歷年二級C語言筆試_第1頁
歷年二級C語言筆試_第2頁
歷年二級C語言筆試_第3頁
歷年二級C語言筆試_第4頁
歷年二級C語言筆試_第5頁
已閱讀5頁,還剩174頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

歷年二級C語言筆試資料僅供參考3月計算機等級考試二級C語言筆試一、選擇題(1)下列關于棧敘述正確的是A)棧頂元素最先能被刪除B)棧頂元素最后才能被刪除C)棧底元素永遠不能被刪除D)以上三種說法都不對(2)下列敘述中正確的是A)有一個以上根結點的數據結構不一定是非線性結構B)只有一個根結點的數據結構不一定是線性結構C)循環(huán)鏈表是非線性結構D)雙向鏈表是非線性結構(3)某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)A)3B)4C)6D)7(4)在軟件開發(fā)中,需求分析階段產生的主要文檔是A)軟件集成測試計劃B)軟件詳細設計說明書C)用戶手冊D)軟件需求規(guī)格說明書(5)結構化程序所要求的基本結構不包括A)順序結構B)GOTO跳轉C)選擇(分支)結構D)重復(循環(huán))結構(6)下面描述中錯誤的是A)系統(tǒng)總體結構圖支持軟件系統(tǒng)的詳細設計B)軟件設計是將軟件需求轉換為軟件表示的過程C)數據結構與數據庫設計是軟件設計的任務之一D)PAD圖是軟件詳細設計的表示工具(7)負責數據庫中查詢操作的數據庫語言是A)數據定義語言B)數據管理語言C)數據操縱語言D)數據控制語言(8)一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯系是A)1:1聯系B)1:m聯系C)m:1聯系D)m:n聯系(9)有三個關系R、S和T如下:則由關系R和S得到關系T的操作是A)自然連接B)交C)除D)并(10)定義無符號整數類為UInt,下面能夠作為類UInt實例化值的是A)-369B)369C)0.369D)整數集合{1,2,3,4,5}(11)計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是A)C語言程序僅能夠編譯執(zhí)行B)C語言程序僅能夠解釋執(zhí)行C)C語言程序既能夠編譯執(zhí)行又能夠解釋執(zhí)行D)以上說法都不對(12)以下敘述中錯誤的是A)C語言的可執(zhí)行程序是由一系列機器指令構成的B)用C語言編寫的源程序不能直接在計算機上運行C)經過編譯得到的二進制目標程序需要連接才能夠運行D)在沒有安裝C語言集成開發(fā)環(huán)境的機器上不能運行C源程序生成的.exe文件(13)以下選項中不能用作C程序合法常量的是A)1,234B)'123'C)123D)"\x7G"(14)以下選項中可用作C程序合法實數的是A).1e0B)3.0e0.2C)E9D)9.12E(15)若有定義語句:inta=3,b=2,c=1;,以下選項中錯誤的賦值表示式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(16)有以下程序段charname[20];intnum;scanf("name=%snum=%d",name;&num);當執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinum=1001<回車>后,name的值為A)LiliB)name=LiliC)Lilinum=D)name=Lilinum=1001(17)if語句的基本形式是:if(表示式)語句,以下關于“表示式”值的敘述中正確的是A)必須是邏輯值B)必須是整數值C)必須是正數D)能夠是任意合法的數值(18)有以下程序#includemain(){intx=011;printf("%d\n",++x);}程序運行后的輸出結果是A)12B)11C)10D)9(19)有以下程序#includemain(){ints;scanf("%d",&s);while(s>0){switch(s){case1:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入123450<回車>,則輸出結果是A)6566456B)66656C)66666D)6666656(20)有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%d\n",n);}以下關于程序段執(zhí)行情況的敘述,正確的是A)for循環(huán)語句固定執(zhí)行8次B)當產生的隨機數n為4時結束循環(huán)操作C)當產生的隨機數n為1和2時不做任何操作D)當產生的隨機數n為0時結束程序運行(21)有以下程序#includemain(){chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9')n++;printf("%d\n",n);}程序運行后的輸出結果是A)0B)3C)7D)8(22)若i和k都是int類型變量,有以下for語句for(i=0,k=-1;k=1;k++)printf("*****\n");下面關于語句執(zhí)行情況的敘述中正確的是A)循環(huán)體執(zhí)行兩次B)循環(huán)體執(zhí)行一次C)循環(huán)體一次也不執(zhí)行D)構成無限循環(huán)(23)有以下程序#includemain(){charb,c;inti;b='a';c='A';for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運行后的輸出結果是A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef(24)設有定義:doublex[10],*p=x;,以下能給數組x下標為6的元素讀入數據的正確語句是A)scanf("%f",&x[6]);B)scanf("%lf",*(x+6));C)scanf("%lf",p+6);D)scanf("%lf",p[6]);(25)有以下程序(說明:字母A的ASCII碼值是65)#includevoidfun(char*s){while(*s){if(*s%2)printf("%c",*s);s++;}}main(){chara[]="BYTE";fun(a);printf("\n");}程序運行后的輸出結果是A)BYB)BTC)YTD)YE(26)有以下程序段#includemain(){…while(getchar()!='\n');…}以下敘述中正確的是A)此while語句將無限循環(huán)B)getchar()不能夠出現在while語句的條件表示式中C)當執(zhí)行此while語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行D)當執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行(27)有以下程序#includemain(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序運行后的輸出結果是A)3B)2C)1D)0(28)若有定義語句:chars[3][10],(*k)[3],*p;,則以下賦值語句正確的是A)p=s;B)p=k;C)p=s[0];D)k=s;(29)有以下程序#includevoidfun(char*c){while(*c){if(*c>='a'&&*c<='z')*c=*c-('a'-'A');c++;}}main(){chars[81];gets(s);fun(s);puts(s):}當執(zhí)行程序時從鍵盤上輸入HelloBeijing<回車>,則程序的輸出結果是A)hellobeijingB)HelloBeijingC)HELLOBEIJINGD)hELLOBeijing(30)以下函數的功能是:經過鍵盤輸入數據,為數組中的所有元素賦值。#include#defineN10voidfun(intx[N]){inti=0;while(i<>}在程序中下劃線處應填入的是A)x+iB)&x[i+1]C)x+(i++)D)&x[++i](31)有以下程序#includemain(){chara[30],b[30];scanf("%s",a);gets(b);printf("%s\n%s\n",a,b);}程序運行時若輸入:howareyou?Iamfine<回車>則輸出結果是A)howareyou?B)howIamfineareyou?IamfineC)howareyou?IamfineD)rowareyou?(32)設有如下函數定義intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若執(zhí)行調用語句:n=fun(3);,則函數fun總共被調用的次數是A)2B)3C)4D)5(33)有以下程序#includeintfun(intx,inty){if(x!=y)return((x+y);2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運行后的輸出結果是A)3B)6C)8D)12(34)有以下程序#includeintfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf("%d\n",s);}程序運行后的輸出結果是A)0B)10C)30D)64(35)有以下程序#include#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序運行后的輸出結果是A)197B)143C)33D)28(36)設有定義:struct{charmark[12];intnum1;doublenum2;}t1,t2;,若變量均已正確賦初值,則以下語句中錯誤的是A)t1=t2;B)t2.num1=t1.num1;C)t2.mark=t1.mark;D)t2.num2=t1.num2;(37)有以下程序#includestructord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序運行后的輸出結果是A)1,2B)4,1C)3,4D)2,3(38)有以下程序#includestructS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf("%d\n",++(p.a));}程序運行后的輸出結果是A)10B)11C)20D)21(39)有以下程序#includemain(){unsignedchara=8,c;c=a>>3;printf("%d\n",c);}程序運行后的輸出結果是A)32B)16C)1D)0(40)設fp已定義,執(zhí)行語句fp=fopen("file","w");后,以下針對文本文件file操作敘述的選項中正確的是A)寫操作結束后能夠從頭開始讀B)只能寫不能讀C)能夠在原有內容后追加寫D)能夠隨意讀和寫二、填空題(1)有序線性表能進行二分查找的前提是該線性表必須是【1】存儲的。(2)一棵二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則后序遍歷結果為【2】。(3)對軟件設計的最小單位(模塊或程序單元)進行的測試一般稱為【3】測試。(4)實體完整性約束要求關系數據庫中元組的【4】屬性值不能為空。(5)在關系A(S,SN,D)和關系B(D,CN,NM)中,A的主關鍵字是S,B的主關鍵字是D,則稱【5】是關系A的外碼。(6)以下程序運行后的輸出結果是【6】。#includemain(){inta;a=(int)((double)(3/2)+0.5+(int)1.99*2);printf("%d\n",a);}(7)有以下程序#includemain(){intx;scanf("%d",&x);if(x>15)printf("%d",x-5);if(x>10)printf("%d",x);if(x>5)printf("%d\n",x+5);}若程序運行時從鍵盤輸入12<回車>,則輸出結果為【7】。(8)有以下程序(說明:字符0的ASCII碼值為48)#includemain(){charc1,c2;scanf("%d",&c1);c2=c1+9;printf("%c%c\n",c1,c2);}若程序運行時從鍵盤輸入48<回車>,則輸出結果為【8】。(9)有以下函數voidprt(charch,intn){inti;for(i=1;i<=n;i++)printf(i%6!=0?"%c":"%c\n",ch);}執(zhí)行調用語句prt('*',24);后,函數共輸出了【9】行*號。(10)以下程序運行后的輸出結果是【10】。#includemain(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf("%d%d\n",x,y);}(11)己知a所指的數組中有N個元素。函數fun的功能是,將下標k(k>0)開始的后續(xù)元素全部向前移動一個位置。請?zhí)羁?。voidfun(inta[N],intk){inti;for(i=k;i}(12)有以下程序,請在【12】處填寫正確語句,使程序可正常編譯運行。#include【12】;main(){doublex,y,(*p)();scanf("%lf%lf",&x,&y);p=avg;printf("%f\n",(*p)(x,y));}doubleavg(doublea,doubleb){return((a+b)/2);}(13)以下程序運行后的輸出結果是【13】。#includemain(){inti,n[5]={0};for(i=1;i<=4;i++){n[i]==n[i-1]*2+1;printf("%d",n[i]);}printf("\n");}(14)以下程序運行后的輸出結果是【14】。#include#include#includemain(){char*p;inti;p=(char*)malloc(sizeof(char)*20);strcpy(p,"welcome");for(i=6;i>=0;i--)putchar(*(p+i));printf("\n-");free(p);}(15)以下程序運行后的輸出結果是【15】。#includemain(){FILE*fp;intx[6]={1,2,3,4,5,6},i;fp=fopen("test.dat","wb");fwrite(x,sizeof(int),3,fp);rewind(fp);fread(x,sizeof(int),3,fp);for(i=0;i<6;i++)printf("%d",x[i]);printf("\n");fclose(fp);}

9月全國計算機二級C語言筆試試題:一、選擇題(每小題2分,共70分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應位置上,答在試卷上不得分。(1)下列敘述中正確的是()A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的B)線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構C)線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構D)上述三種說法都不對(2)下列敘述中正確的是()A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化D)上述三種說法都不對(3)軟件測試的目的是()A)評估軟件可靠性B)發(fā)現并改正程序中的錯誤C)改正程序中的錯誤D)發(fā)現程序中的錯誤(4)下面描述中,不屬于軟件危機表現的是()A)軟件過程不規(guī)范B)軟件開發(fā)生產率低C)軟件質量難以控制D)軟件成本不斷提高(5)軟件生命周期是指()A)軟件產品從提出、實現、使用維護到停止使用退役的過程B)軟件從需求分析、設計、實現到測試完成的過程C)軟件的開發(fā)過程D)軟件的運行維護過程(6)面向對象方法中,繼承是指()A)一組對象所具有的相似性質B)一個對象具有另一個對象的性質C)各對象之間的共同性質D)類之間共享屬性和操作的機制(7)層次型、網狀型和關系型數據庫劃分原則是()A)記錄長度B)文件的大小C)聯系的復雜程度D)數據之間的聯系方式(8)一個工作人員能夠使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員、與實體計算機之間的聯系是()A)一對一B)一對多C)多對多D)多對一(9)數據庫設計中反映用戶對數據要求的模式是()A)內模式B)概念模式C)外模式D)設計模式(10)有三個關系R、S和T如下:則由關系R和S得到關系T的操作是A)自然連接B)交C)投影D)并(11)以下關于結構化程序設計的敘述中正確的是()A)一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成B)結構化程序使用goto語句會很便捷C)在C語言中,程序的模塊化是利用函數實現的D)由三種基本結構構成的程序只能解決小規(guī)模的問題(12)以下關于簡單程序設計的步驟和順序的說法中正確的是()A)確定算法后,整理并寫出文檔,最后進行編碼和上機調試B)首先確定數據結構,然后確定算法,再編碼,并上機調試,最后整理文檔C)先編碼和上機調試,在編碼過程中確定算法和數據結構,最后整理文檔D)先寫好文檔,再根據文檔進行編碼和上機調試,最后確定算法和數據結構(13)以下敘述中錯誤的是()A)C程序在運行過程中所有計算都以二進制方式進行B)C程序在運行過程中所有計算都以十進制方式進行C)所有C程序都需要編譯鏈接無誤后才能運行D)C程序中整型變量只能存放整數,實型變量只能存放浮點數(14)有以下定義:int

a;long

b;double

x,y;則以下選項中正確的表示式是()A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(15)以下選項中能表示合法常量的是()A)整數:1,200B)實數:1.5E2.0C)字符斜杠:‘\’D)字符串:"\007"(16)表示式a+=a-=a=9的值是()A)9B)_9C)18D)0(17)若變量已正確定義,在if(W)printf(“%d\n,k”);中,以下不可替代W的是()A)a<>b+cB)ch=getchar()C)a==b+cD)a++(18)有以下程序#include<stdio.h>main(){int

a=1,b=0;if(!a)b++;else

if(a==0)if(a)b+=2;else

b+=3;printf(”%d\n”,b);}程序運行后的輸出結果是()A)0B)1C)2D)3(19)若有定義語句inta,b;doublex;則下列選項中沒有錯誤的是()A)switch(x%2)

B)switch((int)x/2.0{case0:a++;break;

{case0:a++;break;case1:b++;break;

case1:b++;break;default:a++;b++;

default:a++;b++;}

}C)switch((int)x%2)

D)switch((int)(x)%2){case0:a++;break;

{case0.0:a++;break;case1:b++;break;

case1.0:b++;break;default:a++;b++;

default:a++;b++;}

}(20)有以下程序#include<stdio.h>main(){inta=1,b=2;while(a<6){b+=a;a+=2;b%二10;}printf(”%d,%d\n”,a,b);}程序運行后的輸出結果是()A)5,11B)7,1C)7,11D)6,1(21)有以下程序#include<stdio.h>main(){inty=10;while(y--);printf(”Y=%d\n”,Y);}程序執(zhí)行后的輸出結果是()A)y=0B)y=-1C)y=1D)while構成無限循環(huán)(22)有以下程序#include<stdio.h>main(){chars[」=”rstuv";printf(”%c\n”,*s+2);}程序運行后的輸出結果是A)tuvB)字符t的ASCII碼值C)tD)出錯(23)有以下程序#include<stdio.h>#include<string.h>main(){charx[]=”STRING”;x[0」=0;x[1]=’\0’;x[2」=’0’;printf(”%d

%d\n”,sizeof(x),strlen(x));}程序運行后的輸出結果是()A)6

1B)7

0C)6

3D)7

1(24)有以下程序()#include<stdio.h>Int

f(int

x);main(){int

n=1,m;m=f(f(f(n)));printf(”%d\n”,m);}int

f(int

x){return

x*2;}程序運行后的輸出結果是A)1B)2C)4D)8(25)以下程序段完全正確的是()A)int*p;

scanf("%d",&p);B)int*p;

scanf(“%d”,p);C)intk,*p=&k;

scanf("%d",p);D)intk,*p:;

*p=&k;

scanf(“%d”,p);(26)有定義語句:int*p[4];以下選項中與此語句等價的是A)int

p[4];B)int

**p;C)int

*(p「4」);D)int(*p)「4」;(27)下列定義數組的語句中,正確的是A)int

N=10;

B)#defineN10int

x[N];

intx[N];C)int

x[0..10];

D)intx[];(28)若要定義一個具有5個元素的整型數組,以下錯誤的定義語句是()A)int

a[5]=﹛0﹜;B)int

b[]={0,0,0,0,0};C)int

c[2+3];D)int

i=5,d[i];(29)有以下程序#include<stdio.h>void

f(int*p);main(){int

a[5]={1,2,3,4,5},*r=a;f(r);printf(”%d\n”;*r);}voidf(int*p){p=p+3;printf(”%d,”,*p);}程序運行后的輸出結果是()A)1,4B)4,4C)3,1D)4,1(30)有以下程序(函數fun只對下標為偶數的元素進行操作)#include<stdio.h>voidfun(int*a;intn){inti、j、k、t;for(i=0;i<n一1;1+=2){k=i;‘for(j=i;j<n;j+=2)if(a[j]>a〔k])k=j;t=a〔i];a〔i]=a[k];a〔k]=t;}}main(){intaa「10」={1、2、3、4、5、6、7},i;fun(aa、7);for(i=0,i<7;i++)printf(”%d,”,aa[i]));printf(”\n”);}程序運行后的輸出結果是()A)7,2,5,4,3,6,1B)1,6,3,4,5,2,7C)7,6,5,4,3,2,1D)1,7,3,5,6;2,1(31)下列選項中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST"要求的是()A)if(strcmp(s2,s1)==0)ST;B)if(sl==s2)ST;C)if(strcpy(sl,s2)==1)ST;D)if(sl-s2==0)ST;(32)以下不能將s所指字符串正確復制到t所指存儲空間的是()A)while(*t=*s){t++;s++;}B)for(i=0;t[i]=s[i];i++);C)do{*t++=*s++;}while(*s);D)for(i=0,j=0;t[i++]=s[j++];);(33)有以下程序(strcat函數用以連接兩個字符串)#include<stdio.h>#include<string.h>main(){chara[20]=”ABCD\OEFG\0”,b[]=”IJK”;strcat(a,b);printf(”%s\n”,a);}程序運行后的輸出結果是()A)ABCDE\OFG\OIJKB)ABCDIJKC)IJKD)EFGIJK(34)有以下程序,程序中庫函數islower(ch)用以判斷ch中的字母是否為小寫字母#include<stdio.h>#include<ctype.h>void

fun(char*p){int

i=0;while(p[i]){if(p[i]==’’&&islower(p「i-1」))p[i-1]=p[i-1]-‘a’+‘A’;i++;}}main(){chars1[100]=”abcdEFG!”;fun(s1);printf(”%s\n”,s1);}程序運行后的輸出結果是()A)ab

cd

EFG!B)Ab

Cd

EFg!C)aB

cD

EFG!D)ab

cd

EFg?。?5)有以下程序#include<stdio.h>void

fun(intx){if(x/2>1)fun(x/2);printf(”%d”,x);}main(){fun(7);printf(”\n”);}程序運行后的輸出結果是()A)137B)731C)73D)37(36)有以下程序#include<stdio.h>intfun(){staticintx=1;x+=1;returnx;}main(){inti;s=1;for(i=1;i<=5;i++)s+=fun();printf(”%d\n”,s);}程序運行后的輸出結果是()A)11B)21C)6D)120(37)有以下程序#inctude<stdio.h>#include<stdlib.h>Main(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}程序運行后的輸出結果是()A)3,3,3

B)2,2,3

C)1,2,3

D)1,1,3(38)有以下程序#include<stdio.h>main(){ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf(“%d,%d\n”,s,t);}在VC6平臺上編譯運行,程序運行后的輸出結果是()A)2,4

B)4,4

C)4,8

D)10,6(39)若有以下語句()TypedefstructS{intg;charh;}T;以下敘述中正確的是A)可用S定義結構體變量B)可用T定義結構體變量C)S是struct類型的變量D)T是structS類型的變量(40)有以下程序#include<stdio.h>main(){shortc=124;c=c_______;printf(“%d\n”、C);}若要使程序的運行結果為248,應在下劃線處填入的是()A)>>2

B)|248

C)&0248

D)<<I選擇題答案1-5:BCCAB6-10:DDBCA11-15:CDBCC16-20:DACCD21-25:BDBDD26-30:DBADA31-35:ACBCB36-40:BACBC二、填空題(每空2分,共30分)請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。(1)一個棧的初始狀態(tài)為空。首先將元素5,4,3,2,1依次入棧,然后退棧一次,再將元素A,B,C,D依次入棧,之后將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的順序為【1】(2)在長度為n的線性表中,尋找最大項至少需要比較【2】次。(3)一棵二叉樹有10個度為1的結點,7個度為2的結點,則該二叉樹共有【3】個結點。(4)僅由順序、選擇(分支)和重復(循環(huán))結構構成的程序是【4】程序。(5)數據庫設計的四個階段是:需求分析,概念設計,邏輯設計【5】。(6)以下程序運行后的輸出結果是【6】。#include<stdio.h>main(){inta=200,b=010;printf(”%d%d\n”,a,b);}(7)有以下程序#include<stdio.h>main(){int

x,Y;scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);}程序運行時輸入:1234567程序的運行結果是【7】。(8)在C語言中,當表示式值為0時表示邏輯值“假”,當表示式值為【8】時表示邏輯值“真”。(9)有以下程序#include<stdio.h>main(){inti,n[]={0,0,0,0,0};for(i=1;i<=4;i++){n[i]=n[i-1]*3+1;printf(”%d",n[i]);}}程序運行后的輸出結果是【9】。(10)以下fun函數的功能是:找出具有N個元素的一維數組中的最小值,并作為函數值返回。請?zhí)羁?。(設N已定義)intfun(intx[N]){inti,k=0;for(i=0;i<N;I++)if(x[i]returnx[k];}(11)有以下程序#include<stdio.h>int*f(int*p,int*q);main(){intm=1,n=2,*r=&m;r=f(r,&n);printf(”%d\n”,*r);}int*f(int*p,int*q){return(*p>*q)?p:q;}程序運行后的輸出結果是【11】(12)以下fun函數的功能是在N行M列的整形二維數組中,選出一個最大值作為函數值返回,請?zhí)羁?。(設M,.N已定義)intfun(inta[N][M)){inti,j,row=0,col=0;for(i=0;i<N;I++)for(j=0;jif(a[i][j]>a[row][col]){row=i;col=j;}return(【12】):}有以下程序#include<stdio.h>main(){int

n[2],i,j;for(i=0;i<2;i++)n[i]=0;for(i=0;i<2;i++)for(j=0;j<2;j++)n[j]=n「i」+1;printf(”%d\n”,n[1]);}程序運行后的輸出結果是【13】(14)以下程序的功能是:借助指針變量找出數組元素中最大值所在的位置并輸出該最大值。請在輸出語句中填寫代表最大值的輸出項。#include<stdio.h>main(){inta〔10],*p,*s;for(p=a;p-a<10;p++)scanf(”%d”,p);for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P;printf("max=%d\n”,【14】);}(15)以下程序打開新文件f.txt,并調用字符輸出函數將a數組中的字符寫入其中,請?zhí)羁铡#nclude<stdio.h>main(){【15】*fp;chara[5]={’1’,’2’,’3’,’4’,’5’},i;fp=fopen(”f.txt”,”w”);for(i=0;i<5;i++)fputc(a[i],fp);fclose(fp);}填空題1、1DCAB23452、13、254、結構化5、物理設計6、7、38、非09、14134010、i11、212、a[row][col]13、214、*s15、FILE

3月全國計算機二級C語言筆試試題:一、選擇題(每小題2分,共70分)(1)下列敘述中正確的是()A)對長度為n的有序鏈表進行查找,最壞清況下需要的比較次數為nB)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)D)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(nlog2n)(2)算法的時問復雜度是指()A)算法的執(zhí)行時間B)算法所處理的數據量C)算法程序中的語司或指令條數D)算法在執(zhí)行過程中所需要的基本運算次數(3)軟件按功能能夠分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是()A)編輯軟件B)操作系統(tǒng)C)教務管理系統(tǒng)D)瀏覽器(4)軟件(程序)調試的任務是()A)診斷和改正程序中的錯誤B)盡可能多地發(fā)現程序中的錯誤C)發(fā)現并改正程序中的所有錯誤D)確定程序中錯誤的性質(5)數據流程圖(DFD圖)是()A)軟件概要設計的工具B)軟件詳細設計的工具C)結構化方法的需求分析工具D)面向對象方法的需求分析工具(6)軟件生命周期可分為定義階段,開發(fā)階段和維護階段。詳細設計屬于()A)定義階段B)開發(fā)階段C)維護階段D)上述三個階段(7)數據庫管理系統(tǒng)中負責數據模式定義的語言是()A)數據定義語言B)數據管理語言C)數據操縱語言D)數據控制語言(8)在學生管理的關系數據庫中,存取一個學生信息的數據單位是()A)文件B)數據庫C)字段D)記錄(9)數據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數據庫設計的()A)需求分析階段B)邏輯設計一階段C)概念設計階段D)物理設計階段(10)有兩個關系R和T如下:則由關系K得到關系T的操作是()A)選擇B)投影C)交D)并(11)以下敘述正確的是()A)C語言程序是由過程和函數組成的B)C語言函數能夠嵌套調用,例如:fun(fun(x))C)C語言函數不能夠單獨編譯D)C語言中除了main函數,其它函數不可作為單獨文件形式存在(12)以下關于C語言的敘述中正確的是()A)C語言中的注釋不能夠夾在變量名或關鍵字的中間B)C語言中的變量能夠在使用之前的任何位置進行定義C)在C語言算術表示式的書寫中,運算符兩側的運算數類型必須一致D)C語言的數值常量中夾帶空格不影響常量值的正確表示(13)以下C語言用戶標識符中,不合法的是()A)_1B)AaBcC)a_bD)a—b(14)若有定義:doublea=22;inti=0,k=18;,則不符合C語言規(guī)定的賦值語句是()A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#includemain(){chara,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}當執(zhí)行程序時,按下列方式輸入數據(從第1列開始,代表回車,注意:回車也是一個字符)1234則輸出結果是()A)1234B)12C)123D)1234(16)以i關于C語言數據類型使用的敘述中錯誤的是()A)若要準確無誤差的表示自然數,應使用整數類型B)若要保存帶有多位小數的數據,應使用雙精度類型C)若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型D)若只處理“真”和“假”兩種邏輯值,應使用邏輯類型(17)若a是數值類型,則邏輯表示式(a==1)||(a!=1)的值是()A)1B)0C)2D)不知道a的值,不能確定(18)以下選項中與if(a==1)a=b;elsea++;語句功能不同的switch語句是()A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case0:a=b;break;case1:a++;}C)switch(a){default:a++;break;case1:a=b;}D)switch(a==1){case1:a=b;break;case0:a++;}(19)有如下嵌套的if語句if(aif(aelsek=c;elseif(belsek=c;以下選項中與上述if語句等價的語句是()A)k=(aB)k=(ac)?b:c);C)k=(aD)k=(a(20)有以下程序#includemain(){ini,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序運行后的輸出結果是()A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){inta=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序運行后的輸出結果是()A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值為八進制數#includemain(){intk=011;printf("%d\n",k++);}程序運行后的輸出結果是()A)12B)11C)10D)9(23)下列語句組中,正確的是()A)char*s;s="Olympic";B)chars[7];s="Olympic";C)char*s;s={"Olympic"};D)chars[7];s={"Olympic"};(24)以下關于return語句的敘述中正確的是()A)一個自定義函數中必須有一條return語句B)一個自定義函數中能夠根據不同情況設置多條return語句C)定義成void類型的函數中能夠有帶返回值的return語句D)沒有return語句的自定義函數在執(zhí)行結束時不能返回到調用處(25)下列選項中,能正確定義數組的語句是()A)intnum[0..];B)intnum[];C)intN=;intnum[N];D)#defineNintnum[N];(26)有以下程序#includevoidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){charb=''a'',a=''A'';fun(&b,a);printf("%e,%e\n",b,a);}程序運行后的輸出結果是()A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定義int(*Pt)[3];,則下列說法正確的是()A)定義了基類型為int的三個指針變量B)定義了基類型為int的具有三個元素的指針數組ptC)定義了一個名為*pt、具有三個元素的整型數組D)定義了一個名為pt的指針變量,它能夠指向每行有三個整數元素的二維數組(28)設有定義doublea[10],*s=a;,以下能夠代表數組元素a[3]的是()A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){inta[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n",s);}程序運行后的輸出結果是()A)6B)10C)11D)15(30)有以下程序#includemain(){intb[3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序運行后的輸出結果是()A)1B)3C)4D)9(31)若有以下定義和語句chars1[10]="abcd!",*s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));則輸出結果是()A)55B)105C)107D)58(32)有以下程序#include#defineN8voidfun(int*x,inti){*x=*(x+i);}main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i{printf("%d",a[i]);}printf("\n");}程序運行后的輸出結果是()A)1313B)2234C)3234D)1234(33)有以下程序#includeintf(intt[],intn);main{inta[4]={1,2,3,4},s;s=f(a,4);printf("%d\n",s);}intf(intt[],intn){if(n>0)returnt[n-1]+f(t,n-1);elsereturn0;}程序運行后的輸出結果是()A)4B)1OC)14D)6(34)有以下程序#includeintfun(){staticintx=1;x*2;returnx;}main(){inti,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序運行后的輸出結果是()A)OB)1C)4D)8(35)有以下程序#include#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序運行后的輸出結果是()A)0B)-12C)-20D)10(36)設有定義:structcomplex{intreal,unreal;}data1={1,8},data2;則以下賦值語句中錯誤的是()A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include#includestructA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序運行后的輸出結果是()A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定義和語句structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#includemain(){inta=2,b=2,c=2;printf("%d\n",a/b&c);}程序運行后的輸出結果是()A)OB)1C)2D)3(40)有以下程序#includemain(){FILE*fp;charstr[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str);puts(str);fclose(fp);}程序運行后的輸出結果是()A)abcB)28cC)abc28D)因類型不一致而出錯二、填空題(每空2分,共30分)(1)一個隊列的初始狀態(tài)為空?,F將元素A,B,C,D,E,F,5,4,3,2,1依次入隊,然后再依次退隊,則元素退隊的順序為【1】。(2)設某循環(huán)隊列的容量為50,如果頭指針front=45(指向隊頭元素的前一位置),尾指針rear=10(指向隊尾元素),則該循環(huán)隊列中共有【2】個元素。(3)設二叉樹如下:對該二叉樹進行后序遍歷的結果為【3】。(4)軟件是【4】、數據和文檔的集合。(5)有一個學生選課的關系,其中學生的關系模式為:學生(學號,姓名,班級,年齡),課程的關系模式為:課程(課號,課程名,學時),其中兩個關系模式的鍵分別是學號和課號,則關系模式選課可定義為:選課(學號,【5】,成績)。(6)設x為int型變量,請寫出一個關系表示式【6】,用以判斷x同時為3和7的倍數時,關系表示式的值為真。(7)有以下程序#includemain(){inta=1,b=2,c=3,d=0;if(a==1)if(b!=2)if(c==3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf(“%d\n”,d);}程序運行后的輸出結果是【7】。(8)有以下程序#includemain(){intm,n;scanf("%d%d",&m,&n);while(m!=n){while(m>n)m=m-n;while(m}printf(“%d\n”,m);}程序運行后,當輸入1463<回車>時,輸出結果是【8】。(9)有以下程序#includemain(){inti,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=i;j<3;j++)printf(“%d%,a[i][j]);printf("\n");}程序運行后的輸出結果是【9】。(10)有以下程序#includemain(){inta[]={1,2,3,4,5,6},*k[3],i=0;while(i<3){k[i]=&a[2*i];printf("%d",*k[i]);i++;}}程序運行后的輸出結果是【10】。(11)有以下程序#includemain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};intb[3]={0},i;for(i=0;i<3;i++)b[i]=a[i][2]+a[2][i];for(i=0;i<3;i++)printf("%d",b[i]);printf("\n");}程序運行后的輸出結果是【11】。(12)有以下程序#include#includevoidfun(char*str){chartemp;intn,i;n=strlen(str);temp=str[n-1];for(i=n-1;i>0;i--)str[i]=str[i-1];str[0]=temp;}main(){chars[50];scanf("%s",s);fun(s);printf("%s\n",s);}程序運行后輸入:abcdef<回車>,則輸出結果是【12】。(13)以下程序的功能是:將值為三位正整數的變量x中的數值按照個位、十位、百位的順序拆分并輸出。請?zhí)羁铡?includemain(){intx=256;printf("%d-%d-%d\n",【13】,x/10%10,x/100);}(14)以下程序用以刪除字符串所有的空格,請?zhí)羁铡?includemain(){chars[100]={"OurteacherteachClanguage!"};inti,j;for(i=j=0;s[i]!=’\0’;i++)if(s[i]!=''''){s[j]=s[i];j++;}s[j]=【14】printf(“%s\n”,s);}(15)以下程序的功能是:借助指針變量找出數組元素中的最大值及其元素的下標值。請?zhí)羁铡?includemain(){inta[10],*p,*s;for(p=a;p-a<10;p++)scanf("%d",p);for(p=a,s=a;p-a<10;p++)if(*p>*s)s=【15】;printf(“index=%d\n”,s-a);}

9月全國計算機二級C語言筆試試題:1)下列數據結構中,屬于非線性結構的是()A)循環(huán)隊列B)帶鏈隊列C)二叉樹D)帶鏈棧2)下列數據結果中,能夠按照“先進后出”原則存取數據的是()A)循環(huán)隊列B)棧C)隊列D)二叉樹3)對于循環(huán)隊列,下列敘述中正確的是()A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針能夠大于隊尾指針,也能夠小于隊尾指針4)算法的空間復雜度是指()A)算法在執(zhí)行過程中所需要的計算機存儲空間B)算法所處理的數據量C)算法程序中的語句或指令條數D)算法在執(zhí)行過程中所需要的臨時工作單元數5)軟件設計中劃分模塊的一個準則是()A)低內聚低耦合B)高內聚低耦合C)低內聚高耦合D)高內聚高耦合6)下列選項中不屬于結構化程序設計原則的是()A)可封裝B)自頂向下C)模塊化D)逐步求精7)軟件詳細設計產生的圖如下:該圖是()A)N-S圖B)PAD圖C)程序流程圖D)E-R圖8)數據庫管理系統(tǒng)是()A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件C)一種編譯系統(tǒng)D)一種操作系統(tǒng)9)在E-R圖中,用來表示實體聯系的圖形是()A)橢圓圖B)矩形C)菱形D)三角形10)有三個關系R,S和T如下:其中關系T由關系R和S經過某種操作得到,該操作為()A)

選擇B)

投影C)

交D)

并11)以下敘述中正確的是A)程序設計的任務就是編寫程序代碼并上機B)程序設計的任務就是確定所用數據結構C)程序設計的任務就是確定所用算法D)以上三種說法都不完整12)以下選項中,能用作用戶標識符的是()A)voidB)8_8C)_0_D)unsigned13)閱讀以下程序#include<stdio.h>main(){intcase;floatprintF;printf(“請輸入2個數:”);scanf(“%d%f”,&case,&pjrintF);printf(“%d%f\n”,case,printF);}該程序編譯時產生錯誤,其出錯原因是()A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符B)定義語句出錯,printF不能用作用戶自定義標識符C)定義語句無錯,scanf不能作為輸入函數使用D)定義語句無錯,printf不能輸出case的值14)表示式:(int)((double)9/2)-(9)%2的值是()A)0B)3C)4D)515)若有定義語句:intx=10;,則表示式x-=x+x的值為()A)-20B)-10C)0D)1016)有以下程序#include<stdio.h>main(){inta=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序運行后的輸出結果是()A)0,0B)1,0C)3,2D)1,217)設有定義:inta=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是()A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;}18)有以下程序#include<stdio.h>main(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=kcase2:c++;break;case4:c+=2;break;}printf(“%d\n”,c);}程序運行后的輸出結果是()A)3B)5C)7D)919)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是()A)if((a>b)&&(b>c))k=1;elsek=0;B)if((a>b)||(b>c)k=1;elsek=0;C)if(a<=b)k=0;elseif(b<=c)k=1;D)if(a>b)k=1;elseif(b>c)k=1;elsek=0;20)有以下程序#include<stdio.h>main(){chars[]={“012xy”};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’)n++;printf(“%d\n”,n);}程序運行后的輸出結果是()A)0B)2C)3D)521)有以下程序#include<stdio.h>main(){intn=2,k=0;while(k++&&n++>2);printf(“%d%d\n”,k,n);}程序運行后的輸出結果是()A)02B)13C)57D)1222)有以下定義語句,編譯時會出現編譯錯誤的是()A)chara=’a’B)chara=’\n’;C)chara=’aa’;D)chara=’\x2d’;23)有以下程序#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-‘4c2=’A’+’8’-‘5printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII碼為65,程序運行后的輸出結果是()A)E,68B)D,69C)E,DD)輸出無定值24)有以下程序#include<stdio.h>voidfun(intp){intd=2;p=d++;printf(“%d”,p);}main(){inta=1;fun(a);printf(“%d\n”,a);}程序運行后的輸出結果是()A)32B)12C)21D)2225)以下函數findmax擬實現在數組中查找最大值并作為函數值返回,但程序中有錯導致不能實現預定功能#defineMIN-intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];}returnmax;}造成錯誤的原因是()A)定義語句inti,max;中max未賦初值B)賦值語句max=MIN;中,不應給max賦MIN值C)語句if(max<x[i])max=x[i];中判斷條件設置錯D)賦值語句max=MIN;放錯了位置(26)有以下程序#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序運行后的輸出結果是()A)1,2,1,B)1,2,2,1C)2,1,2,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論