c語言歷年題庫_第1頁
c語言歷年題庫_第2頁
c語言歷年題庫_第3頁
c語言歷年題庫_第4頁
已閱讀5頁,還剩116頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2006年4月全國計算機(jī)等級考試二級C語言筆試試題(含參考答案)ー選擇題((1)-(10)每題2分,(11)-(50)每題1分,共60分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。1)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是A)自頂向下B)逐步求精〇模塊化D)可復(fù)用2)兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為A)耦合度B)內(nèi)聚度〇復(fù)雜度D)數(shù)據(jù)傳輸特性3)下列敘述中正確的是A)軟件測試應(yīng)該由程序開發(fā)者來完成B)程序經(jīng)調(diào)試后一般不需要再測試〇軟件維護(hù)只包括對程序代碼的維護(hù)D)以上三種說法都不對4)按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是A)隊列B)棧〇雙向鏈表D)二叉樹5)下列敘述中正確的是A)線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)B)棧與隊列是非線性結(jié)構(gòu)〇雙向鏈表是非線性結(jié)構(gòu)D)只有根結(jié)點的ニ叉樹是線性結(jié)構(gòu)6)對如下ニ叉樹進(jìn)行后序遍歷的結(jié)果為A)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA7)在深度為7的滿ニ叉樹中,葉子結(jié)點的個數(shù)為A)32B)31C)64D)63“商品”與“顧客”兩個實體集之間的聯(lián)系一般是A)一對ーB)ー對多C)多對ーD)多對多9)在E-R圖中,用來表示實體的圖形是A)矩形B)橢圓形〇菱形D)三角形10)數(shù)據(jù)庫DB,數(shù)據(jù)庫系統(tǒng)DBS,數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是

DB包含DBS和DBMSDBMS包含DB和DBSDBS包含DB和DBMSD)沒有任何關(guān)系11)以下不合法的用戶標(biāo)識符是A)J2KEYB)DoubleC)4dD)_8_12)以下不合法的數(shù)值常量是A)011B)leiC)8.0E0.5D)Oxabcd13)以下不合法的字符常量是A)'\018'B)VC)*\\'D)へxcc'14)表達(dá)式3.6-5/2+1.2+5%2的值是A)4.3B)4.8C)3.3D)3.815)以下能正確定義字符串的語句是charstr[[={へ064'};char§tr="\x43”;charstr=w;charstr[]="\〇”;16)以下數(shù)組定義中錯誤的是A)intx|||3|={0};B)intx[2][31={{1,2},{3,4},{5,6}};C)ntx[H3]={{1,23},{4,5,6));D)intx[2][3]={l,23,4,S,6};17)若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A)getc()B)gets()C)getchar()18)A)getc()B)gets()C)getchar()18)下四個程序中,完全正確的是A)#includemain();{/*programming*/printf("programming!\n");}C)includemain(){/*/*programming*/printf("programming八n");}D)scanf()B)#includemain(){"/programming/*/printf("programming!\n");}D)includemain()*/{"programming*/printf(“programming八n");}19)19)若有定義:floatx=l.5;inta=l,b=3,c=2;則正確的switch語句是A)switch(x){case1.0:printf(A)switch(x){case1.0:printf(M*\nw);Case2.0:printf(“**\n");}C)switch(a+b)B)switch((int)x);{case1:printf("*\n“);case2:printf(u**\nM);}D)switch(a+b)case2+1:printf(M**\nw);}casec:printf(“**\n");}{case1:printf(M*\nw);{case1:printf(ハ!!”);20)若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是A)main(){……x=fun(2,10);……}floatfun(inta,intb){ }C)floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){ }21)在以下給出的表達(dá)式中,B)floatfun(inta,intb){ }main(){ x=fun(ij); }D)main(){floatfun(intijntj); x=fun(i,j); }floatfun(inta,intb){ }與while(E)中的(E)不等價的表達(dá)式是A)(!E=0)B)(E>0||E<0)C)(E=0)D)(E!=0)22)要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是A)while((ch=getchar())!=,N,)print負(fù)“%c”,ch);B)while(ch=getchar()!=,N,)printf("%c”,ch);C)while(ch=getchar()=N,)printf(“%c”,ch);D)while((ch=getchar())==,N,)printf("%c”,ch);23)已定義以下函數(shù)intfun(int*p){return*p;}fun函數(shù)返回值是A)不確定的值B)ー個整數(shù)〇形參p中存放的值D)形參p的地址值24)若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是A)*p=&a;scanf(w%ir,p);B)*p=&a;scanf(w%f\p);C)p=&a;scanf(u%ir\*p);D)p=&a;scanf(“%lf”,p);25)現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p,q,r分別指向ー個鏈表中連續(xù)的三個結(jié)點。structnodechardata;structnode*next;}*p,*q,*r;現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的連續(xù),以下不能完成此操作的語句是q->next=r->next;p->next=r;r->next=q;p->next=r;q->next=r->next;r-.next=q;q->next=r->next;r->next=q;p->next=r;r->ncxt=q;p-next=r;q-next=r->next;26)有以下程序段structst{intx;int*y;}*pt:inta||={l,2}.b|]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達(dá)式的值為11的是A)*pt->yB)pt->xC)++pt->xD)(pt++)->x27)設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為A)EOFB)非〇值〇〇D)NULL28)設(shè)有以下語句inta=l,b=2,c;c=aA(b?2);執(zhí)行后,C的值為A)6B)7C)8D)929)有以下程序#includemain(){charcl,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&cl,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(cl);putchar(c2);printf("%c%c\n”,c5,c6);程序運(yùn)行后,若從鍵盤輸入(從第1列開始)123V回車〉45678V回車〉則輸出結(jié)果是A)1267B)1256C)1278D)124530)若有以下程序main(){inty=10;while(y--);printf(“y=%d\n"y);}程序運(yùn)行后的輸出結(jié)果是A)y=OB)y=-1C)y=lD)vvhile構(gòu)成無限循環(huán)31)有以下程序main(){inta=O,b=O,c=O,d=O;if(a=l)b=l;c=2;elsed=3;printf("%d,%d,%d,%d\n”,a,b,c,d);程序輸出A)0,1,2,0B)0,0,0,3C)l,l,2,0D)編譯有錯32)有以下程序main(){inti,j,x=0;for(i=0;i<2;i++)V{x++;for(j=0;j<=3;j++){if(j%2)continue;x++;)x++;printf(“x=%d\n",x);程序執(zhí)行后的輸出結(jié)果是A)x=4B)x=8〇x=6D)x=1233)有以下程序intfunl(doublea){returna*=a;}intfun2(doublex,doubley)doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);main(){doublew;w=fun2(l.1,2.0); }程序執(zhí)行后變量W中的值是A)5,21B)5C)5.0D)0.034)有以下程序main(){inti,t|l[3]=<9,8,7,6,5,4,3,2,l);for(i=0;i<3;i++)printf(“%d”,t[2-i|[i]);程序的執(zhí)行后的輸出結(jié)果是A)753B)3570369D)75135)有以下程序fun(charp[|[10]){intn=0,i;for(i=0;i<7;i++)if(p|i||0|==*r)n++;returnn;}main(){charstr[H10]={“Mon”,“Tue”,“Wed”,“ThuYFrFJSatFSuir};printf(tt%d\nM,fun(str));}程序執(zhí)行后的輸出結(jié)果是A)1NB)2C)3D)036)有以下程序main(){inti,s=O,t||={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是A)45B)20〇25D)3637)有以下程序voidfunl(char*p)char*q;q=p;while(*q!=*\0*){(*q)++;q++;}}main(){chara[]={"Program"},*p;p=&a|3|;funl(p);printf(u%s\n,,,a);}程序執(zhí)行后的輸出結(jié)果是A)ProhsbnB)PrphsbnC)ProgsbnD)Program、38)有以下程序voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;|main(){char*§l="abc",*§2="123”;swap(sl9s2);printf(M%s,%s\nw,sl,s2);}程序執(zhí)行后的輸出結(jié)果是A)123,abcB)abc,123C)lbc,a23D)321,cba39)有以下程序intfun(intn){if(n=l)return1;elsereturn(n+fun(n-l));)main(){intx;scanf(u%dM,&x);x=fun(x);prin氓“%d\n”,x);程序執(zhí)行時,給變量、輸入10,程序的輸出結(jié)果是A)55B)54C)65D)4540)有以下程序intfun(intx||Jntn){staticintsum=0,i;for(i=0;isum+=x|i|;returnsum;}main(){inta[尸{1,2,3,4,5},b[ド{6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n”,s);}程序執(zhí)行后的輸出結(jié)果是A)45B)50060D)5541)有以下程序main()(union{charch|2|;intd;}s;s.d=0x4321;printf(u%x,%x\n"9s.ch|0|,s.ch[l|);)在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是A)21,43B)43,21C)43,00D)21,0042)有以下程序main(){char*p[]={“3697”,“2584"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p|i||j|!=,\0,){if((p|illj|-'0,)%2)num=10*num+p|i]|j|-t0,;j+=2;}}printf("%d\n"num);程序執(zhí)行后的輸出結(jié)果是A)35B)37039D)397543)執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開)#includemain(){FILE*fp;char*sl=,,Fortran,\*s2=,,Basicw;if((fp=fopen(utest.txtM,wwbw))=NULL){printf(wCanftopentest.txtfile\n,,);exit(l);}fwrite(sl,7,l,fp);/*把從地址si開始的7個字符寫到fp所指文件中?/fseek(fp,OL,SEEK_SET);/?文件位置指針移到文件開頭?/fwrite(s2,5,l,fp);fclose(fp);)A)BasicanB)BasicFortranC)BasicD)FortranBasic44)以下敘述中錯誤的是C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序C語言經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的ニ進(jìn)制機(jī)器指令文件C)用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在ー個文本文件中D)C語言的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令45)以下敘述中錯誤的是A)算法正確的程序最終一定會結(jié)束B)算法正確的程序可以有零個輸出〇算法正確的程序可以有零個輸入D)算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果46)以下敘述中錯誤的是A)C程序必須由一個或ー個以上的函數(shù)組成B)函數(shù)調(diào)用可以作為ー個獨立的語句存在〇若函數(shù)有返回值,必須通過return語句返回D)函數(shù)形參的值也可以傳回對應(yīng)的實參47)設(shè)有以下定義和語句charstr|20|="Program",*p;p=str;則以下敘述中正確的是*p與str[0]中的值相等str與p的類型完全相同str數(shù)組長度和p所指向的字符串長度相等D)數(shù)組str中存放的內(nèi)容和指針變量p中存放的內(nèi)容相同48)以下敘述中錯誤的是A)C程序中的#include和#define行均不是C語句B)除逗號運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級最低C程序中,j++;是賦值語句C程序中,+、ー、?、/、%號是算術(shù)運(yùn)算符,可用于整型和實型數(shù)的運(yùn)算49)以下敘述中正確的是A)預(yù)處理命令行必須位于C源程序的起始位置B)在C語言中,預(yù)處理命令行都以“#"開頭C)每個C程序必須在開頭包括預(yù)處理命令行:includeD)C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能50)以下敘述中錯誤的是A)可以通過typedef增加新的類型B)可以用typedef將已存在的類型用ー個新的名字來代表C)用typedef定義新的類型名后,原有類型名仍有效D)用typedef可以為各種類型起別名,但不能為變量起別名填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡至1201序號的橫線上,答在試卷上不得分1)對長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為[1|。2)在面向?qū)ο蠓椒ㄖ?|2]描述的是具有相似屬性與操作的一組對象。3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每ー個二維表稱為ー個ー網(wǎng)〇4)程序測試分為靜態(tài)分析和動態(tài)測試,其中一⑷是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢査,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。5)數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性,當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為」5].6)若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的輸出語句ー[6]—.7)以下程序用于判斷a,b,c能否構(gòu)成三角形,若能輸出YES,若不能輸出NO。當(dāng)a,b,c輸入三角形三條邊長時,確定a,b,c能構(gòu)成三角形的條件是需要同時滿足三條件:a+b>c,a+c>b,b+c>a〇請?zhí)羁?。main(){floata,b,c;scanfr%f%f%P,&a,&b,&c);if(_I7|_)printf("YES\n");/*a,b,c能構(gòu)成三角形?/elseprintf(“NO\n");/*a,b,c不能構(gòu)成三角形?/8)以下程序的輸出結(jié)果是ー網(wǎng)main(){inta|3][3J={{l,2,9},{3,4,8},{5,6,7}},i,s=0;for(i=0;i<3;i++)s+=a[i][il+a[i][3-i-l];printf(<<%d\n,,,s);)9)當(dāng)運(yùn)行以下程序時,輸入abed,程序的輸出結(jié)果是:」9|ー〇insert(charstr[]){inti;i=strlen(str);whiIe(i>0){str[2*i]=str[i];str|2*i-l|=,**;i—;)printf("%s\nZ§tr);}main(){charstr|40];scanf("%s”,str);insert(str);}10)以下程序的運(yùn)行結(jié)果是:_|10]fun(intt[]Jntn){inti,m;if(n=l)returnt|0|;elseif(n>=2){m=fun(t,n-l);returnm;}}main()(inta[]={11,4,6,3,8,2,3,5,9,2};printf("%d\n”,fun(a,10));}11)現(xiàn)有兩個c程序文件T18.C和myfun.c同時在TC系統(tǒng)目錄(文件夾)下,其中T18.C文件如下:#include#include''myfun?c''main(){fun();printf("\n");}myfun.c文件如下:voidfun(){char§[80],c;infn=0;whlle((c=getcharO)!=,\n,)s[n-H-|=c;n-;while(n>=0)printf(w%c^s[n-J);當(dāng)編譯連接通過后,運(yùn)行程序T18時,輸入Thank!則輸出的結(jié)果是:—111|.12)以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為Hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁?。char*fun(char*str,charc){intn=0;char*p=str;if(p!=NULL)while(p[n!!=c&&p[n]!=,\0,)n++;if(p|n|=,\0,returnNULL;return(_|12]_);}13)以下程序的功能是:輸出100以內(nèi)(不含!00)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡ain(){inti,j;for(i=0;_|13]_;i++){j=i*10+6;)continue;printf(“%d”,j);}}14)以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,否則返回0,請?zhí)羁読ntisprime(inta){inti;for(i=2;i<=a/2;i-H-)if(a%i=0)_|15]—;_|16|—;}15)以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形,例如,輸入整數(shù)5時(注意:n不得大于10),程序運(yùn)行結(jié)果如下:ABCDEFGH1JKLMNO請?zhí)羁胀瓿稍摮绦?。main(){intij,n;charch=,A*;scanf(w%dM,&n);if(n<ll){for(i=l;i<=n;i++){forG=l;j<=n-i+l;j++){printf("%2c”,ch);—1171—;[18]}}elseprintf(unistoolarge!\nw);printf(“\n");}16)以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點的單向鏈表,在結(jié)點數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。#includetypedefstructnode/?鏈表結(jié)點結(jié)構(gòu)?/{charsub|3|;Structnode*next;}Node;Nodefun(chars)/?建立鏈表?/voiddisp(Node*h)(Node*p;p=h->next;While([19]){printf("%s\n”,p?>§ub);p=[20];}}main()Node*hd;hd=fun();disp(hd);printff如う;}2006年4月全國計算機(jī)等級考試二級C語言筆試試題參考答案ー、選擇題1-10:DADBADCDACll-20:CCADDBBBCA21-30:CABDDCDDDB31-40:DBCBBCACAC41-50:ACADBDCDBA、二、填空題1、452、類3、關(guān)系4、靜態(tài)分析5、物理獨立性6、printf("a=%d,b=%d",a,b)7、a+b>c&&a+c>b&&b+c>a8、309、a*b*c*d*10、1111、ahT12、p+n或str+nl3、i<=9或i<1014,j%3!=015、return016、return117、ch=ch+118、printf("\n'')19、p!=NULL20、p->next2006年9月二級C語言筆試試題(考試時間120分鐘,滿分100分)ー、選擇題((1)?(10)每題2分,(11)?(50)每題I分,共60分)下列各題A)、B)、 C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。(1)下列選項中不符合良好程序設(shè)計風(fēng)格的是。A)源程序要文檔化B)數(shù)據(jù)說明的次序要規(guī)范化〇避免濫用goto語句D)模塊設(shè)計要保證髙耦合、髙內(nèi)聚(2)從工程管理角度,軟件設(shè)計一般分為兩步完成,它們是.A)概要設(shè)計與詳細(xì)設(shè)計B)數(shù)據(jù)設(shè)計與接口設(shè)計〇軟件結(jié)構(gòu)設(shè)計與數(shù)據(jù)設(shè)計D)過程設(shè)計與數(shù)據(jù)設(shè)計(3)下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是?A)軟件測試B)概要設(shè)計 C)軟件維護(hù)D)詳細(xì)設(shè)計(4)在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為〇A)概念模式B)外模式C)內(nèi)模式D)物理模式(5)數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和.A)編碼設(shè)計B)測試階段 〇運(yùn)行階段D)物理設(shè)計(6)設(shè)有如下三個關(guān)系表BC13BC13ABCm13n13T下列操作中正確的是.A)T=RnS B)T=R3C)T=RXS D)T=R/S(7)下列敘述中正確的是〇ー個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大ー個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小〇ー個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小D)上述三種說法都不對(8)在長度為64的有序線性表中進(jìn)行順序査找,最環(huán)境情況下需要比較的次數(shù)為A)63B)64C)6D)7(9)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的。A)存儲問題B)共享問題〇安全問題D)保護(hù)問題(10)對下列二叉樹進(jìn)行中序遍進(jìn)行中序遍歷的結(jié)果是.A)ACBDFEGB)ACBDFGE〇ABDCGEFD)FCADBEG(11)下列敘述中錯誤的是。ー個C語言程序只能實現(xiàn)ー種算法C程序可以由多個程序文件組成C程序可以由一個或多個函數(shù)組成ー個C函數(shù)可以單獨作為ー個C程序文件存在(12)下列敘述中正確的是.A)每個C程序文件中都必須有一個main。函數(shù)B)在C程序中main()函數(shù)的位置是固定的C)C程序可以由一個或多個函數(shù)組成D)在C程序的函數(shù)中不能定義另ー個函數(shù)(13)下列定義變量的語句中錯誤的是〇A)int__int;B)doubleint_;C)charFor;D)floatUSS(14)若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是0A)++x,y=x—B)x+l=yC)x=x+10=x+yD)double(x)/10(15)以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是。A)只能是整數(shù)()或1B)只能是整數(shù)〇或非〇的整數(shù)〇可以是結(jié)構(gòu)體類型的數(shù)據(jù)D)可是任意合法的表達(dá)式(16)若有定義intx,y;并已正確給變量賦值,則以下選項中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價的是.A)(x-y>0)B)(x-y<0)C)(x-y<|x-y>0)D)(x-y-0)(17)有以下程序main(){intx,y,z;x=y=l;z=x-H-,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是。A)2,3,3B)2,3,2C)2,3,1D)2,2,1(18)設(shè)有定義:inta;floatb;執(zhí)行scanグ%2d%「,&a,&b);語句時,若從鍵盤輸入876543.0<回車》,a和b的值分別是0A)876和543.000000B)87和6.0000。〇C)8フ和543.000000D)76和543.000000(19)有以下程序main(){inta=0,b=0;a=10;/?給a賦值b=20;給b賦值?/printf("a+b=%d\n",a+b);/*輸出計算結(jié)果?/}程序運(yùn)行后輸出結(jié)果是。A)a+b=0B)a+b=30C)30D)出錯(20)在嵌套使用if語句時,C語言規(guī)定else總是〇A)和之前與其具有相同縮進(jìn)位置的if配對B)和之前與其最近的if配對〇和之前與其最近的且不帶else的if配對D)和之前的第一個if配對(21)下列敘述中正確的是〇A)break語句只能用于switch語句B)在switch語句中必須使用defaultC)break語句必須與switch語句中的case配對使用D)在switch語句中,不一定使用break語句(22)有以下程序mianO{intk=5;while(-k)printf(n%dtr,k-=3);printf(n\nH))執(zhí)行后的輸出結(jié)果是。A)1B)2C)4D)死循環(huán)(23)有以下程序main(){inti;for(l==1;l<=40;I++){if(I++%5=0)if(++I%8=0)printグ%d”,i)}printf(n\nM)}執(zhí)行后的輸出結(jié)果是〇A)5B)24C)32D)40(24)以下選項中,值為1的表達(dá)式0A)B) C)T?0D)"MTJO”(25)有以下程序fun(intx,inty){return(x+y);}main(){inta=l,b=2,c=3,sum;sum=fun((a++,b++b,a+b),c++);printf(n%d\nn,sum);)執(zhí)行后的輸出結(jié)果是〇A)6B)7 C)8D)9(26)有以下程序main(){chars||="abcde";s+=2;printf("%d\n",s|0|);)執(zhí)行后的結(jié)果是。A)輸出字符a的ASCII碼B)輸出字符c的ASCII碼C)輸出字符cD)程序出錯(27)有以下程序fun(intx,inty){staticintm=0,I=2;I+=m+I;m=I+x+y;returnm;}main(){intj=l,m=I,k;k=funO,m);printf(M%dM,k);k=fun(j,m);printf(M%d\nM,k)}執(zhí)行后的輸出結(jié)果是.A)5,5B)5,11C)11,11D)11,5(28)有以下程序fun(intx){intp;if(x=OIx==1)return(3);p=x-fun(x=2);returnp;}main(){prinf(M%d\nH,fun(7));}執(zhí)行后的輸出結(jié)果是.A)7B)3 03D)0(29)在16位編譯系統(tǒng)上,右有定義inta[]={10,2030},*p=&a;,當(dāng)執(zhí)行p++:后,下列說法錯誤的是?A)p向髙地址移了一個字節(jié)B)p抽髙地址移了一個存儲單元〇p向髙地址移了兩個字節(jié)D)p與a+!等價(30)有以下程序main(){inta=l,b=3,c=5;int*pl=&a,*p2=&b,*p=&c;*p=*pl*(*p2);printf(M%d\nM,c);)執(zhí)行后的輸出結(jié)果是A)1B)2 03D)4(31)若有定義:intw|3||5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是,A)*(*w+3)B)*(w+l)|4]C)*(*(w+l))D)*(&w|01|0]+l)(32)若有以下函數(shù)首部intfun(doublex|10|,int*n)則下面針對此函數(shù)聲母語句中正確的是.A)intfun(doublex,int*n);B)intfun(doubleJnt);C)intfun(double*x,intn);D)intfun(double*,int*);(33)若有定義語句:intk[2][3],*pk[3];,則以下語句中正確的是?A)pk=k;B)pk|0|=&k|l||2|;C)pk=k|0|;D)pk|l|=k;(34)有以下程序voidchange(intk||){k|0|=k|5|;)main(){intx[10]={l,2,3,4,5,6,7,8,9,10},n=0while(n<=4){change(&x|n|);n++;)for(n=0;n<5;n-H-)printf(M%dn,x[n|);printf(H\nM);)程序運(yùn)行后輸出的結(jié)果是.A)678910B)13579 0!2345D)62345(35)若要求定義具有10個int型元素的ー維數(shù)組a,則以下定義語句中錯誤的是A)#defineN10Inta[N]B)#definen5Inta[2*n]C)inta[5+5]D)intn=10,a{n|(36)有以下程序main(){intx網(wǎng)[2]={〇},I;for(l=0;I<3;I++)scanf("%d",x[i]);printf(,,%3d%3d%3d\n",x[0][0],x[0]|l],x|1][0]);}若運(yùn)行時輸入:246V回車〉,則輸出結(jié)果為.A)200B)204C)240D)246(37)有以下程序main(){chars||={"aeiou"},*ps;ps=s;printf("%c\n",*ps+4);)程序運(yùn)行后的輸出結(jié)果是〇aB)eC)uD)元素s[4]的地址(38)以下語句中存在語法錯誤的是〇A)charss|6||20|;ss|l|=Mright?charss|][20]={nright?n);char*ss[6];ss[l]="right?u;char*ss[|={Hright?H};(39)若有定義:char*x="abcdefghi”以下選項中正確運(yùn)用了strepy函數(shù)的是chary|10];strcpy(y,x|4|);chary[10];strcpy(-H-y,&x(l]);chary|10],*s;strcpy(s=y+5,x);chary[10],*s;strcpy(s=y+l,x+l);(40)有以下程序intadd(inta,intb){return+b};}main(){intk,(*D(),a=5,b=10;f=add;}則以下函數(shù)調(diào)用語句錯誤的是〇A)k=(*f)(a,b);B)k=add(a,b);C)k=*f(a,b);D)k=f(a,b);(41)有以下程序#include<string.h>main(intargc,charwargv||){inti=l,n=0;while(i<arge){n=n+strlen(argv[i]);i-H-;}printf("%d'n",n);)該程序生成的可執(zhí)行文件名為:proc.exeo若運(yùn)行時輸入命令行:proc1234567則程序的輸出結(jié)果是〇A)3B)5C)7D)11(42)有以下程序voidfun2(chara,charb){printi("%b%c"出,b);}chara='A',b='B';voidfun1(){a=1b='D';}main(){funl()printf(“%c%c”,a,b);fun2('E,,'ド);}程序的運(yùn)行結(jié)果是〇A)CDEFB)ABEF〇ABCDD)CDAB(43)有以下程序#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){intil,i2;ii=f(2);i2=f(l+l);printf("%d%d\nw}程序的運(yùn)行結(jié)果是。A)1212B)117C)1111D)127(44)設(shè)有以下語句typedefstructTT(charc;inta|4|;}CIN;則下面敘述中正確的是。A)可以用TT定義結(jié)構(gòu)體變量B)TT是struct類型的變量C)可以用CIN定義結(jié)構(gòu)體變量D)CIN是structTT類型的變量(45)有以下結(jié)構(gòu)體說明、變量定義和賦值語句structSTD{charname[10);intage;charsex;}s|5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語句中錯誤引用結(jié)構(gòu)體變量成員的是.A)scanf("%s",s[〇].name);B)scanf("%d" [0].age);C)scanf("%c”,&(ps>sex));D)scanf("%d”,ps>age);(46)若有以下定義和語句uniondata{inti;charc;floatf;}x;inty;則以下語句正確的是?A)x=10.5;B)x.c=101;C)y=x;D)printf("%d'n",x);(47)程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量§、p、q均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為頭指針指向鏈表的第一個結(jié)點。datanexteNULL若有以下程序段q=s;s=s>next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實現(xiàn)的功能是。A)首結(jié)點成為尾結(jié)點B)尾結(jié)點成為首結(jié)點〇刪除首結(jié)點D)刪除尾結(jié)點(48)若變量已正確定義,則以下語句的輸出結(jié)果是。s=32;sA=32;printf("%d”,s);A)-1B)0C)1D)32(49)以下敘述中正確的是.A)C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)B)打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋〇在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)D)當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失(50)有以下程序#include<stdio.h>main(){FILE*fp;inti;charch|]=wabed”,t;fp=fopen("abc.dat"wb+");for(i=0;i<4;i++)fwriter&ch[],1,1fp;fseek(fp,-2L,SEEK_END);fread(&t,l,l,fp);fclose(fp);printf(“%c\n”,t);}程序執(zhí)行后的輸出結(jié)果是A)dB)cC)bD)a06年9月二級c答案ー、選擇題:01—05DACBD06—10CDBBA11—15ADDAD16—20CCBBC21—25DACBC26—30ABCDC31—35ADBAD36—40BBADC41—45CBBCD46—50BABDC二、填空題:1、32、調(diào)試3、元組4、棧5、線性6、12346.07、(0118、19、 7410、n=n/1011、(x+8)12、sin(x)13、014、i%2=015、s-16、?s++17、1818、!611 19、->data20、“rb”2007年4月全國計算機(jī)等級考試二級筆試試卷C語言程序設(shè)計(考試時間120分鐘,滿分100分)ー、選擇題¢(1)?(10)每題2分,(11)?(50)每題I分,共60分)下列各題A)、B)、〇、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。(1)下列敘述中正確的是()A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B)算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量〇數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是ーー對應(yīng)的D)算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)(2)在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是()A)各模塊應(yīng)包括盡量多的功能B)各模塊的規(guī)模應(yīng)盡量大〇各模塊之間的聯(lián)系應(yīng)盡量緊密D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度(3)下列敘述中正確的是()A)軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤B)軟件測試的主要目的是確定程序中錯誤的位置

〇為了提髙軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作D)軟件測試是證明軟件沒有錯誤(4)下面選項中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是()A)繼承性 B)多態(tài)性 C)類比性 D)封閉性(5)下列對列的敘述正確的是()A)隊列屬于非線性表B)隊列按“先進(jìn)后出”原則組織數(shù)據(jù)〇隊列在隊尾刪除數(shù)據(jù)D)隊列按“先進(jìn)先出”原則組織數(shù)據(jù)(6)對下列ニ叉樹進(jìn)行前序遍歷的結(jié)果為()B)YDEBFZXCAD)ABCDEFXYZB)YDEBFZXCAD)ABCDEFXYZ〇ABDYECFXZ(7)某ニ叉樹中有n個度為2的結(jié)點,則該ニ叉樹中的葉子結(jié)點為()A)n+1 B)n-1 C)2n D)n/2(8)在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是()A)并 B)交 C)投影 D)笛卡兒乘積(9)在E-R圖中,用來表示實體之間聯(lián)系的圖形是()A)矩形 B)橢圓形 C)菱形 D)平行四邊形(10)下列敘述中錯誤的是()A)在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致B)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題0數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持(11)算法中,對需要執(zhí)行的每ー步操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的()A)正當(dāng)性 B)可行性 C)確定性 D)有窮性(12)下列敘述中錯誤的是()A)計算機(jī)不能直接執(zhí)行用C語言編寫的源程序B)C程序經(jīng)C編譯后,生成后綴為.obj的文件是ー個二進(jìn)制文件〇后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是ー個二進(jìn)制文件D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行(13)按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()A)大寫字母 B)連接符 〇數(shù)字字符 D)下劃線(14)以下敘述中錯誤的是()A)C語言是ー種結(jié)構(gòu)化程序設(shè)計語言B)結(jié)構(gòu)化程序有順序、分支、循環(huán)三種基本結(jié)構(gòu)組成〇使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題D)結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法(15)對于ー個正常運(yùn)行的C程序,以下敘述中正確的是()A)程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束〇程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束D)程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束(16)設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&al,&cl*&a2,&c2);語句為變量al和a2賦數(shù)值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式正確的是(注:口代表空格字符)()A)10oXn20nY(回車〉 B)10nX20nY〈回車〉〇IOdX(回車〉 D)10X〈回車)20cYく回車〉 20Y〈回車)(17)若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是()A)sqrt(abs(nAx+eAx)) B)sqrt(fabs(pow(n,x)+pow(x,e)))C)sqrt(fabs(pow(n,x)+exp(x,e))) D)sqrt(fabs(pow(x,n)+exp(x)))(18)設(shè)有定義:intk=0;,以下選項的四個表達(dá)式中與其他三個表達(dá)式的值不相同的是()A)k++ B)k+=l C)++k D)k+1(19)有以下程序,其中%u表示按無符號整數(shù)輸出main(){unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)?/printf(M%u\nn,x);}程序運(yùn)行后的輸出結(jié)果是()A)-1 B)65535 C)32767 D)0XFFFF(20)設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息的是()A)if(x++); B)if(x>y?&y!=0);C)if(x>0)x--; D)if(y<0){;}elsey-H-: elsex-H-;(21)以下選項中,當(dāng)x為大于1的奇數(shù)時,值為〇的表達(dá)式()A)x%2=l B)x/2 C)x%2!=0 D)x%2=0(22)以下敘述中正確的是()break語句只能用于switch語句題中continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)〇break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同(23)有以下程序main(){intk=5,n=0;do{switch(k){easel:case3:n+=l;k-;break;default:n=O;k—;case2:case4:n+=2;k—;break;}printf(M%dn,n);}while(k>0&&n<5);}程序運(yùn)行后的輸出結(jié)果是()A)235 B)0235 C)02356 D)2356(24)有以下程序main(){inti,j;for(i=l;i<4;i-H-){ for(j=i;j<4;j++)printf(M\nM);jprintf(M%d*%d=%dM,i,j,i*j);i}程序運(yùn)行后的輸出結(jié)果是()1*1=11*2=21*3=3B)1*1=11*2=21*3=32*1=22*2=42*2=42*3=63*1=33*3=9C)1*1=1D)1*1=11*2=22*2=42*1=22*2=4

1*3=32*3=6 3*3=93*1=33*2=63*3=9(25)以下合法的字符型常量是()A)へ13' B)'\081'C)'65'D)“\n”(26)在C語言中,函數(shù)返回值的類型最終取決于()A)函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型B)return語句中表達(dá)式值的類型〇調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型D)函數(shù)定義時形參的類型(27)已知大寫字母A的ASCII碼是65,小寫字母a的ACSH碼是97,以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()B)c=c+32D)c=(,B)c=c+32D)c=(,A,+c)%26-,a,B)計算s所指字符串占用內(nèi)存字節(jié)的個D)將s所指字符串復(fù)制到字符串t中C)c=c?’A'+'a'(28)有以下函數(shù)intfun(char*s){char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是()A)比較兩個字符串的大小數(shù)〇計算s所指字符串的長度(29)設(shè)已有定義:floatx;,則以下指針變量p進(jìn)行定義且賦初值的語句中正確的是()A)float*p=1024;B)int*p=(float)x;C)floatp=&x;D)float*p=&x;(30)有以下程序#include<stdio.h>main(){intn,*p=NULL;*p=&n;printf(nInputn:");§canf("%d",&p);printf(noutputn:");printf("%d\n”,p);}該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()A)intn,*p=NULL;B)*p=&n; C)scanf("%d",&p)D )printf("%d\n",p);(31)以下程序中函數(shù)f的功能是:當(dāng)nag為4時,進(jìn)行有小到大排序;當(dāng)nag為0時,進(jìn)行由大到小排序。voidf(intb|],intn,intflag){inti,j,t;for(i=0;i<n-l;i-H-)forG=i+l;j<n;j++)if(nag?b[i|>b|jl:b[i]<b[j]){t=b(i];b(i]=bU];bUI=t;}}main(){inta|10|={5,4,3,2,l,6,7,8,9,10},i;f(&a(2|,5,0);f(a,5,l);for(i=0;i<10;i++)printf("%d,"a|i|);}程序運(yùn)行后的輸出結(jié)果是()A)1,2,3,4,5,6,7,8,9,10,C)5,4,3,2,1,6,7,8,9,10,(32)有以下程序voidf(intb||){inti;for(i=2;i<6;i++)b|i|*=2;}main(){ inta|10]={l,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10;i++)printf("%d,",a(i]);}程序運(yùn)行后的輸出結(jié)果是()A)1,2,3,4,5,6,7,8,9,10,01,2,3,4,10,12,14,16,9,10,(33)有以下程序typedefstruct{intb,p;}A;voidf(Ac)/?注意:c是結(jié)構(gòu)變量名?/{<ntj;c.b+=l;c.p+=2;}main(){inti;Aa={l,2};f(a);printf("%d,%d\n",a.b,a.p);}程序運(yùn)行后的輸出結(jié)果是()A)2,3 B)2,4B)3,4,5,6,7,2,1,8,9,10,D)10,9,8,7,6,5,4,3,2,1,B)1,2,6,8,10,12,7,8,9,10D)1,2,6,8,10,12,14,16,9,10,C)1,4 D)(34)有以下程序main(){ inta[4][4]={{l,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,l,}},ij,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+l;k<4;k4-4-)if(a|j||i|>a|k||i|){t=a|j||i|;a|j||i]=a|k||i|;a|k||i|=t;} /?按列排序?/for(i=0;i<4;i+4-)printf(n%d/,,a|i][j|);}程序運(yùn)行后的輸出結(jié)果是()A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1,(35)有以下程序main(){ inta[4][4F{{l,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,l,}},i,k,t;for(i=0;i<3;i++)for(k=i+l;k<4;k++)if(a|i||i|<a|k||k|){t=a|i||i|;a|i||i|=a|k||k|;a|k||k|=t;}for(i=0;i<4;i++)printf("%d,",a|0||i|);}程序運(yùn)行后的輸出結(jié)果是()A)6,2,1,1, B)6,4,3,2, C)1,1,2,6, D)2,3,4,6,(36)有以下程序voidf(int*q){inti=0;for(;i<5;i-H-)(*q)++;}main(){inta[5]={l,23A5}4;f(a);for(i=0;i<5;i++)printf(n%d,,\a|i|);}程序運(yùn)行后的輸出結(jié)果是()A)2,2,3,4,5, B)6,2,3,4,5, C)1,23,4,5, D)2,3,4,5,6,(37)有以下程序#include<string.h>main(){charp|20]={,a7b7c\,d,},q||=nabcM,r||=Mabcdenstrcpy(p+strlen(q),r);strcat(p,q);printf(n%d%d\nn,sizeof(p),strlen(p));)程序運(yùn)行后的輸出結(jié)果是()A)209 B)99 C)2011 D)1111(38)有以下程序#include<string.h>main(){charp[20]={WJbソゼ」d}q[]="abc",r[]="abcde”strcat(p,r);strcpy(p+strlen(q),q);printf(u%d\nM,sizeof(p));}程序運(yùn)行后的輸出結(jié)果是()A)9 B)6 C)11 D)7(39)有以下程序#include<string.h>voidf(charp|||10|4ntn){chart|10|;intij;for(i=0;i<n-l;i++)forG=i+l;j<n;j++)if(strcmp(p(i|,p|jl)>0){strcpy(t,p|i|);strcpy(p[i],p[j]);strcpy(p|j|,t);)}main(){ charp[5][10]=『abc”Jaabdfg”Jabbd”Jdcdbc"Jed"};f(P,5);printf("%d\n",strlen(p|O|));}程序運(yùn)行后的輸出結(jié)果是()A)2 B)4 〇6 D)3(40)有以下程序voidf(intn9int*r){intrl=0;if(n%3=0)rl=n/3;elseif(n%5==0)rl=n/5;elsef(—n,&rl);*r=rl;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是()A)2 B)1 C)3 D)0(41)有以下程序main(intargc,char*argv||){intn=0,i;for(i=l;i<argc;i++)n=n*10+*argv|i]-'0,;printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe,若運(yùn)行時輸入以下命令行tt12345678程序的運(yùn)行輸出結(jié)構(gòu)是()A)12 B)12345 C)12345678 D)136(42)有以下程序inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf(u%d\nM,s);}程序運(yùn)行后的輸出結(jié)果是()A)24 B)28 C)32 D)36(43)有一個名為init.txt的文件,內(nèi)容如下:#defineHDY(A,B)A/B#definePRINT(Y)printf(My=%d\nM,Y)有以下程序#include"init.txt''main(){inta=l,b=2,c=3,d=4,k;k=HDY(a+c,b+d);PRINT(k);

)下面針對該程序的敘述正確的是()B)運(yùn)行出錯D)運(yùn)行結(jié)果為y=6C)B)運(yùn)行出錯D)運(yùn)行結(jié)果為y=6C)元素ch⑸地址D)字符y的地址〇運(yùn)行結(jié)果為y=0(44)有以下程序main(){charch||=vuvwxyzM,*pc;pc=ch;printf(M%c\nM,*(pc4-5));)程序運(yùn)行后的輸出結(jié)果是()A)z B)0(45)有以下程序structS{intn;inta|20|;};voidf(structS*p){inti,j,t;for(i=0;i<p->n-l;i++)for(j=j+l;j<p->n-l;j++)if(p->a[ij>p->a[j]){t=p->a|i|;p->a|i]=p->a|j|;p->a[j]=t;}}main(){inti;structS§={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s,n;i++)printf("%d,",s.a|i|);)程序運(yùn)行后的輸出結(jié)果是()A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,43,2,1,C)2,3,1,6,8,7,5,4,10,9,D)10,9,8,7,6,1,2,3,4,5,(46)有以下程序structS{intn;inta|20];};voidf(int*a,intn){inti;for(i=0;i<n-l;i++)a(ij+=i;}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(s.a,s.n);for(i=0;i<s.n;i++)printf(M%d,M,s.a|i|);}程序運(yùn)行后的輸出結(jié)果是()

A)2,4,3,9,12,12,11,11,18,9,C)2,3,1,6,8,7,5,4,10,9,A)2,4,3,9,12,12,11,11,18,9,C)2,3,1,6,8,7,5,4,10,9,B)3,4,2,7,9,8,6,5,11,10,D)1,2,3,6,8,7,5,4,10,9,(47)有以下程序段typedefstructnode{intdata;structnode*next;}*NODE;NODEp;以下敘述中正確的是()p是指向structnode結(jié)構(gòu)變量的指針的指針NODEp:語句出錯p是指向structnode結(jié)構(gòu)變量的指針p是structnode結(jié)構(gòu)變量(48)有以下程序main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf(n%d\nn,d);}程序運(yùn)行后的輸出結(jié)果是()A)3 B)4 C)5 D)6(49)有以下程序#include<stdio.h>main(){FILE*fp;inti,a|6|={l,2,3,4,5,6);fp=fopen("d2,daビJw”);fprintf(fpj%d%d%d\n",a[〇],a[l],a[2]); fprintf(fp,n%d%d%d\nH,a|3|,a|4|,a|5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,n%d%d\nn,&k,&n);printf(M%d%d\nM,k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()A)12 B)14 C)1234 D)123 456(50)有以下程序#include<stdio.h>main(){FILE*fp;inti,a[6]={l,2,3,4,5,6k};fp=fopen("d3.dat"Jw+b'');fwrite(a,size(int),6,fp);fseek(fp,sizeof(int)*3,SEEK一SET);/?使讀文件的位置指針從文件頭向后移動3個!nt型數(shù)據(jù)?/fread(a,sizeof(int),3,fp);fclose(fp);for(i=0;i<6;i++) printグ%dJ,a同);}程序運(yùn)行后的輸出結(jié)果是()A)4,5,6,4,5,6, B)1,23,4,5,6,C)4,5,6,1,23,D)6,5,43,2,1,二.填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡⑴至[20|序號的橫線上,答在試卷上不得分。(1)在深度為7的滿ニ叉樹中,度為2的結(jié)點個數(shù)為.(2)軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于測試。(3)在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為。(4)軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測試屬于階段。(5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用對其中的圖形元素進(jìn)行確切解釋。(6)執(zhí)行以下程序后的輸出結(jié)果是。main(){inta=10;a=(3*5,a+4);printf(Ma=%d\nn,a);)(7)當(dāng)執(zhí)行以下程序時,輸入1234567890V回車>,則其中while循環(huán)體將執(zhí)行 次。#include<stdio.h>main(){charch;while((ch=getchar0)=,0,)printf(パ#");}(8)以下程序的運(yùn)行結(jié)果是〇intk=0;voidfun(intm){ m+=k;k+=m;printf(Hm=%dk=%dH,m,k++);)main(){inti=4;fun(i++);printf(ni=%dk=%d\n”,i,k);}(9)以下程序的運(yùn)行結(jié)果是〇main(){inta=2,b=7,c=5;switch(a>0){ casel:switch(b<0){ casel:switch(M@M);break;case2:printf(n!n);break;}case0:switch(c=5){case0:printf(M*M);break;printf(M#M);break;prlntf(,,$M);break;}default:printグ&”);}printf(n\nM);}(10)以下程序的輸出結(jié)果是?include<string.h>main(){printf(M%d\nn,strlen(nIBM\nO12\l\\M));}⑴)已定義charch=$;inti=l,j;執(zhí)行j=!ch&&i++以后,i的值為.(12)以下程序的輸出結(jié)果是.include<string.h>main(){chara||={,\r,,\2,;\3\,\4,;\0,};printf(n%d%d\nH,sizeof(a)),srelen(a));}(13)設(shè)有定義語句:inta|][3]={{0},{1},{2}};,則數(shù)組元素的值為.(14)以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和,依次存放到a數(shù)組中,然后輸出,請?zhí)羁?。main(){ intx|10|,a|9],i;for(i=0;i<10;i++)scanf(n%dn,&x|i|);for(;i〈10;i++)a|i-l]=x|i]+;for(i=0;i<9;i++)printf(n%dn,a[i|);printf(n\nM);(15)以下程序的功能是:利用指針指向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中的最大值,輸出到屏幕上,請?zhí)羁?main(){intx,y,z,max,*px,*py,*pz,*pmax;scanf(“%d%d%d”,&x,&y,&z);px=&x;py=&y;pz=&z;pmax=&max;if(*pmax<*py)*pmax=*py;if(*pmax<*pz)*pmax=*pz;printf(nmax=%d\nn,max);}(16)以下程序的輸出結(jié)果是。intfun(int*x,intn){if(n=O)returnx|0|;elsereturnx[O]+fun(x+l,n-l);}main(){ inta|]={1,233,5,6,7);printf(n%d\nu,fun(a,3));)(17)以下程序的輸出結(jié)果是〇#include<stdlib.h>main(){char*sl,*s2,m;sl=s2=(char*)malloc(sizeof(char));*sl=15;*s2=20;m=*sl+*§2;printグ%d\n”,m);)(18)設(shè)有說明structDATE{intyear;intmonth;intday;};請寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體變量,并同時為其成員year、month、day依次賦初值2006、10、1:;(19)設(shè)有定義:FlLE*fw;,請將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。fw=fopen("readme.txt", );

2007年4月全國計算機(jī)等級考試二級C語言筆試參考答案ー、選擇題:1-5BDACD6-10CABCA11-15CDBCA16-20DCABC21-25DCABA26-30ADBDA31-35BBDAB36-40BCBCA41-45DBDAA46-50ACBDA二、填空題:1.63 2.黑盒 3.DBMS4,開發(fā)5.數(shù)據(jù)字典6,a=14 7,0 8,m=4k=4i=5k=5 9,#&10,9 11,1 12,54 13,0 14,i=lx|i-l|15,max=*px 16,10 17,40 18,structDATEd={2006,10,l}19,“a”2007年9月計算機(jī)等級考試二級C語言試卷及答案考試時間120分鐘,滿分100分)ー、選擇題((1)-(10)每題2分,(11)-(50)每題1分.共60分))下列各題A)、B)、C)、D)四個選項中,只有一個是正確的,請將正確選項涂寫在答題卡上,答在試卷上不得分。(1)軟件是指B)程序和文檔D)B)程序和文檔D)程序、數(shù)據(jù)和相關(guān)文檔的集合B)改正錯誤D)驗證軟件的正確性〇算法加數(shù)據(jù)結(jié)構(gòu)(2)軟件調(diào)試的目的是A)發(fā)現(xiàn)錯誤〇改善軟件的性能(3)在面向?qū)ο蠓椒ㄖ?實現(xiàn)信息隱蔽是依靠A)對象的繼承 B)對象的多態(tài)C)對象的封裝 D)對象的分類(4)下列敘述中,不符合良好程序設(shè)計風(fēng)格的是A)程序的效率第一,清晰第二 B)程序的可讀性好〇程序中有必要的注釋 D)輸入數(shù)據(jù)前要有提示信息(5)下列敘述中正確的是A)程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)B)程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)〇程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D)以上三種說法都不對(6)下列敘述中正確的是A)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定是ーー對應(yīng)的B)由于計算機(jī)存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)〇程序設(shè)計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線線結(jié)構(gòu)D)以上三種說法都不對(7)冒泡排

溫馨提示

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

評論

0/150

提交評論