二級c語言試題2005-2011_第1頁
二級c語言試題2005-2011_第2頁
二級c語言試題2005-2011_第3頁
二級c語言試題2005-2011_第4頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2005.04-2007.042005年4月全國計算機等級考試二級C語言筆試班及答案一、選擇題((1)?(10)每小題2分(11)?(50)每小題1分,共60分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)數(shù)據(jù)的存儲結(jié)構(gòu)是指。A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示(2)下列關(guān)于棧的描述中錯誤的是。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針(3)對于長度為n的線性表,在最壞情況下,下列各排序法所對應的比較次數(shù)中正確的是。A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2(4)對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為。Iog2nn/2nn+1(5)下列對于線性鏈發(fā)的描述中正確的是。A.存儲空間不?定是連續(xù),且各元素的存儲順序是任意的B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面D.存儲空間必須連續(xù),且各元素的存儲順序是任意的(6)下列對于軟件測試的描述中正確的是.A.軟件測試的目的是證明程序是否正確B.軟件測試的目的是使程序運行結(jié)果正確C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則(7)為了使模塊盡可能獨立,要求。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱D.模塊的內(nèi)聚程度耍盡量低,且各模塊間的相合程度要盡量強(8)下列描述中正確的是.A.程序就是軟件B.軟件開發(fā)不受計算機系統(tǒng)的限制C.軟件既是邏輯實體,乂是物理實體D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合(9)數(shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一,所謂數(shù)據(jù)獨立性是指A.數(shù)據(jù)與程序獨立存放B.不同的數(shù)據(jù)被存放在不同的文件中C.不同的數(shù)據(jù)只能被對應的應用程序所使用D.以上三種說法都不對(10)用樹形結(jié)構(gòu)表示實體之間聯(lián)系的模型是0A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是(11)算法具有五個特性,以卜一選項中不屬于算法特性的是。A.有窮性B.簡潔性C.可行性D.確定性(12)以下選項中可作為C語言合法常量的是 。-80.-080-8el.O-80.0e(13)以下敘述中正確的是。A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要輸入c.用c程序?qū)崿F(xiàn)的算:法可以沒有輸入但必須要有輸出D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出(14)以下不能定義為用戶標識符的是oMain_0_intsizeof(15)以下選項中不能作為合法常量的是oL234e041.234e0.41.234e+41.234e0(16)數(shù)字字符0的ASCII值為48,若有以下程序main。{chara=rI',b='2printf(',%c;,,b++);printf(,r%d\n';b-a);)程序運行后的輸出結(jié)果是_一。3,250,22,22,50(17)有以下程序main(){intm=12,n=34;printf(n%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序運行后的輸出結(jié)果是.12353514123535131234351412343513(18)有定義語句:intb;charc[10];,則正確的輸入語句是。scanf(,'%d%sH,&b,&c);scanf("%d%s”,&b,c);scanf(',%d%s",b,c);scanf(',%d%s,,,b,&c);(19)有以下程序main(){intm,n,p:scanf(ltm=%dn=%dp=%d,,,&m,&n,&p);printf("%d%d%d\n,1,m,n,p);)若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是、A.m=123n=456p=789B.m=123n=456p=789C.m=123,n=456,p=789D.123456789(20)有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-l);printf("%d,%d\n';a,b);)程序運行后的輸出結(jié)果是。A)6,12,16,02,0(21)有以下程序main()inti=l,j=2,k=3;if(i++==l&&(++j==3llk++=3))printf("%d%d%d\nK,ij,k);}程序運行后的輸出結(jié)果是。123234223233(22)若整型變量a、b、c、d中的值依次為:1、4、3、2。則條件表達式a1234(23)有以下程序niain(){intp[8]={11,12,1334,15,16,17,18},i=0j=0;while(i+4-<7)if(p|i]%2)j+=p[i];printf(M%d\n"j);)程序運行后的輸出結(jié)果是o42455660(24)有以下程序main(){chara[7]="a0\0a0\0";intij;i=sizeof(a);j=strlen(a);prinlf("%d%d\n'\i,j);1程序運行后的輸出結(jié)果是o22767262(25)以下能正確定義一維數(shù)組的選項是oA.inta[5]={0J,2,3,4,5):B.char叫={0,1,2,3,4,5};C.chara={,A?Br;C,};D.inta[5]=',0123H;(26)有以下程序intfl(intx,inty){returnx>y?x:y;)intf2(intx,inty){returnx>y?y:x;)main()(inta=4,b=3,c=5,d=2,e,f,g;e=f2(fl(a,bXfl(c,d));f=fl(f2(a,b),f2(c,d));g=a+b+c+d-e*f;printf("%d,%d,%d\n';eXg);}程序運行后的輸出結(jié)果是.A.4,3,7B.3,4,7C.5,2,7D.2,5,7(27)已有定義:chara[]="xyz",bO={'x','y','z');.以下敘述中正確的是 .A.數(shù)組a和b的長度相同a數(shù)組長度小于b數(shù)組長度a數(shù)組長度大于b數(shù)組長度D.上述說法都不對(28)有以下程序voidf(int*x,int*y)(intt;}main()(inta[8]=(1,2,3,4,5,6,7,8),i,*p,*q;p=a;q=&a[7];while(p{f(p,q);p-H-;q-;}for(i=0;i<8;i++)printfC%d;,,a[i]);)程序運行后的輸出結(jié)果是oA.8,234,5,6,7」,B.5,6,7,8,1234C.1,2,3,4,5,6,7,8,D.8,7,6,5,43,2,1,(29)有以下程序main()(inta[3][3],*p,i;p=&a[0H01;fbr(i=O;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf(',%d,\a[l][i]);)程序運行后的輸出結(jié)果是。012123234345(30)以下敘述中錯誤的是oA.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變c.當程序執(zhí)行中,數(shù)組元素的卜一標超出所定義的卜標范圍時,系統(tǒng)將給出“卜標越界’的出錯信息D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)(31)有以下程序#dcfineN20fun(inta[],intn,intm)(血ij;for(i=m;i>=n;i-)a[i+l]=a[i];}main(){inti,a[N]=(1,2,3,4,5,6,7,8,9,10);fun(a,2,9);forfi=0;i<5;i++)printfC%dH,a[i]);}程序運行后的輸出結(jié)果是。10234123441233412234(32)有以卜程序main(){inta[3][2]={0},(*ptr)[2],ij;for(i=0;i<2;i++){ptr=a+i;scanf("%dM,ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printfC-H?a[i]|j]);priiUfCXn");)(若運行時輸入:123<回車),則輸出結(jié)果是。A.產(chǎn)生錯誤信息\01210203020000030(33)有以下程序prt(int*m,intn){inti;for(i=0;i}main()(intaO=(l,2,3A5),i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);)程序運行后的輸出結(jié)果是。1,2,3,452,3,4,5,6,34,5,6,7,2,3,4,53,(34)有以下程序main(){inta口;{1,2,34,5,6,7,8,9,0},*p;for(p=a;p)程序運行后的輸出結(jié)果是。A.1,234,5,678,9,0,B.2,3,4,5,6,7,8,9,10,1,C.0,123,4,567,89D.(35)有以F程序#defineP3voidF(intx){return(P*x*x);}main(){printf(',%d\n",F(3+5));)程序運行后的輸出結(jié)果是,1922925D.編譯出錯(36)有以下程序main(){intc=35;prmtf(',%d\nH,c&c);}程序運行后的輸出結(jié)果是.070351(37)以下敘述中正確的是。A.預處理命令行必須位于源文件的開頭B.在源文件的一行上可以有多條預處理命令C.宏名必須用大寫字母表示D.宏替換不占用程序的運行時間(38)若有以下說明和定義uniondt{inta;charb;doublec;)data;以卜敘述中錯誤的是。A.data的每個成員起始地址都相同B.變量data所占的內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000D.data可以作為函數(shù)的實參(39)以下語句或語句組中,能正確進行字符中賦值的是char*sp;*sp="right!”;chars[10];s="right!”;chars[10];*s="right!H;char*sp=,'right!H;(40)設有如下說明typedefstructST{longa;intb;charc[2];)NEW;則下面敘述中正確的是。A.以上的說明形式非法ST是一個結(jié)構(gòu)體類型NEW是一個結(jié)構(gòu)體類型NEW是一個結(jié)構(gòu)體變量(41)有以卜程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;)printf("%d\n*\b);)程序運行后的輸出結(jié)果是O34C.5D.6(42)有以下程序main(){chars[]="159M,*p;p=s;printf(',%c,\*p++);printf(',%c,,,*p++);)程序運行后的輸出結(jié)果是O15161259(43)有以下函數(shù)fun(char*a,char*b){while((*a!='\O,)&&(*b!='\O,)&&(*a=*b)){a++;b++;)retum(*a-*b);)該函數(shù)的功能是。A.計算a和b所指字符串的長度之差B.將b所指字符串連接到a所指字符串中C.將b所指字符串連接到a所指字符串后面D.比較a和b所指字符串的大小(44)有以下程序main(){intnum[4][4]M{l,234)45,6,7,8},{9,10,ll,12),{13,l4,15J6}},i,j;for(i=0;i<4;i++){for(j=OJ<=i;j++)printfC'L'*;);for(j=;j<4;j++)printf("M”,num[i][j]);printf("\nH);)1若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應填入的是Oi-1ii+14-i(45)有以下程序point(char*p){p+=3;)main(){charb[4]=(,aVb7c';d'},*p=b;point(p);printf("%c\n",*p);)程序運行后的輸出結(jié)果是。abcd(46)程序中若有如下說明和定義語句charfun(char*);main()(char*s=,,one,,,a[5]={0},(*fl)()=fun,ch;}以下選項中對函數(shù)fun的正確調(diào)用語句是。(*fl)(a);*f1(*s);fiin(&a);ch=*fl(s);(47)有以下結(jié)構(gòu)體說明和變量定義,如圖所示:structnode{intdata;structnode*next;}*p,*q,*r;datanextdatanextdatanextpqr現(xiàn)要將q所指結(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能完成指定操作的語句是P->next=q->next;p->next=p->next->next;p->next=r;p=q->next;(48)以下對結(jié)構(gòu)體類型變量td的定義中,錯誤的是。typcdefstructaastructaa{intn;{intn;floatm;floatm;}AA;}td;AAtd;structaatd;structstructintn;{intn;floatm;floatm;}aa;)td;structaaid;(49)以下與函數(shù)fscck(fj),OL,SEEK_SET)有相同作用的是。feof(fp)ftell(fp)fgetc(fp)rewind(fp)(50)有以卜程序#includevoidWritcStr(char*fn,char*str){FILE*fp;fp=fopen(fn/,w,,);fputs(str,fp);fclose(fp);)main()(WriteShTtLdat*飛忸rt”);WriteStr("tLdat\"end");)程序運行后,文件tl.dat中的內(nèi)容是。startendstartendendrt二、填空題(每空2分,共4"分)請將每空的正確答案寫在【1】至[20]序號的橫線上,答在試卷上不得分。(I)某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【1】個葉子結(jié)點。(2)在面向?qū)ο蠓椒ㄖ?,類的實例稱為【2】。(3)診斷和改正程序中錯誤的工作通常稱為【3】。(4)在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,每一個二維表稱為【4】。(5)問題處理方案的正確而完整的描述稱為【5】0(6)以下程序運行時,若從鍵盤輸入:102030c回車>,輸出的結(jié)果是[6].includemain0{htF0,j=0,k=0;scanfC%d%*d%d”,&i&j&k);printf("%d%d%d\n",i,j,k);}(7)以下程序運行后的輸出結(jié)果是[7]。#defiieS&)4*x*x+lmaii0(htF6,j=8;printfC%d\n",S(i+j));)(8)以下程序運行后的輸出結(jié)果是【8】.main0{tita=3,b=4,c=5,t=99;if。if(aprintfC%d%d%d\n",a,b,c);)(9)以下程序運行后的輸出結(jié)果是[9】omain(){inta,b,c;a=10;b=20;c=fe%b<l)||M)>l);prhtfC%d%d%d\n",a,b,c);)(10)以下程序運行后的輸出結(jié)果是【10】omail0{charcl,c2;forfcl=*0,,c2=,9,;clprhtfC\nM);1(11)已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33〈回車),則輸出結(jié)果是]Otthchdemail0{chara,b;a=getcharO;scanfC%d”,&b);a=a-'A'+,0';b=b*2;prhtfr%c%c\n",a,b);}(12)以卜程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請?zhí)羁铡oidfijn(ht,ht,ht^)[41iit*);mail0{hta[3][4]:{{12,41,36,28},{19,33,15.27},{3,27,19,1}},b[3],i;fun6,4,a,b);for(F0;K3;R+)prhtffM*,b[fl);prhtfCn");)voidfun(ritm,htn,htar[][4],rit*bi){htijx;for(i=O;i<M;I++){x=ar[i][0];for(j=O;j[12]=x;)}(13)以下程序運行后的輸出結(jié)果是[13]ovoidswap(intx,inty){htt;t=xpc=yy=tj)rhtfC%d%d*,x,y);}mail0{iita=3,b=4;swapfe,b);prhtfC%d%d*,a,b);}(14)以下程序運行后的輸出結(jié)果是【141otthciidevoidfunfchar*s,iitp,iitk){hti;for(j=pa}inahO{charsD=*abcdefg";fiin(s,3,strlenfc));putsfc);)15)以下程序運行后的輸出結(jié)果是[15]ofthchdemahO{charch0=*abc*,x[3][4];inti;fbr(i=0;K3*+)strcpy6c[i],ch);fbr(A0;K3*+)prhtfC%s”,&xprhtfCn");}(16)以下程序運行后的輸出結(jié)果是【16】。fiin(hta){intb=O;staticiitc=3;b++;c++;returnS+b+c);}mahO{htia=5;fbr(UO;K3;V+)prhtf("%d%d",i,fun(a));prhtf,C\nM);(17)以下程序運行后的輸出結(jié)果是[17].stiuctNODE{htk;stiuctNODE*lhk;);mahO{structN0DEm[5],*p=m,*q=m+4;htFO;while(p!=q){p->k=++i;p++;q->k=i++;q—;)q->k=i;for(F0;K5;i++)printf(M%dM,ni[i].k);prhtf*r\n");)(18)以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出,所謂回文即正向與反向的拼寫都一樣,例如:adgda?請?zhí)羁?。ttinclidechar*huwenfch<ir*stri(char*pl,*p2;ritit=0;pl=strj)2=[18];for(tO;i<=strlen(str)/2;i++)if依pl++!=*p2—){t=1;break;}if([19])retum("yes!M);elsereturnCno!*);mahO(charstr(50];prhtfflnput:*);scanff%s”,stri;prhtff%s\n",[20]);2005年4月筆試試卷參考答案一、選擇題1-5DBDCA6-10CBDDC11-15BACDB16-20CABAB21-25DABCB26-30ACDDC31-35CBBAD36-40CDCDC41-45BADBA46-50ADCDB二、填空題[1]19(2)[2]對象G)【3】程序調(diào)試(4)【4】關(guān)系(5)【5】算法6)[6]10300(7)[7]81(8)[8]4599(9)[9]10200(10)[10]0918273645(11)[11]1B(12)[12]br[i](13)[13]4334(14)[14]abcfg(15)[15]abcbcc(16)[16]010111212(17)[17]13431(18)[18]str+strlen(str)-1[19]t==0或!t【20】huiwen(str)2005年9JJ全國計算機等級考試二級C語言筆試試題及答案一、選擇題((1)—(10)每題2分,(11)—(50)每題1分,共60分)下列各題A)、B)、C)、D)四個選項中,只有?個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)下列敘述中正確的是A.程序設計就是編制程序B.程序的測試必須由程序員自己去完成C.程序經(jīng)調(diào)試改錯后還應進行再測試D.程序經(jīng)調(diào)試改錯后不必進行再測試(2)下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是A.順序存儲的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表(3)下列關(guān)于棧的描述正確的是A.在棧中只能插入元素而不能刪除元素B.在棧中只能刪除元素而不能插入元素C.枝是特殊的線性表,只能在一端插入或刪除元素D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素(4)下列敘述中正確的是A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬「線性結(jié)構(gòu),存儲結(jié)構(gòu)屈了非線性結(jié)構(gòu)一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率(5)下列描述中正確的是A.軟件工程只是解決軟件項口的管理問題B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題c.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應用,:程化原則D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題(6)在軟件設計中,不屬手過程設計工具的是PDL(過程設計語言)PAD圖N-S圖DFD圖(7)下列敘述中正確的是A.軟件交付使用后還需耍進行維護B.軟件一旦交付使用就不需要再進行維護C.軟件交付使用后其生命周期就結(jié)束D.軟件維護是指修復程序中被破壞的指令(8)數(shù)據(jù)庫設計的根本目標是要解決A.數(shù)據(jù)共享問題B.數(shù)據(jù)安全問題C.大量數(shù)據(jù)存儲問題D.簡化數(shù)據(jù)維護(9)設有如下關(guān)系表:RSTABCABCABC112313112223223313則下列操作中正確的是T=RHST=RUST=RxST=R/S(10)數(shù)據(jù)庫系統(tǒng)的核心是A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員(11)以卜.敘述中錯誤的是A.用戶所定義的標識符允許使用關(guān)鍵字B.用戶所定義的標識符應盡量做到“見名知意”C.用戶所定義的標識符必須以字母或下劃線開頭D.用戶定義的標識符中,大、小寫字母代表不同標識(12)以下敘述中錯誤的是A.C語句必須以分號結(jié)束B.復合語句在語法上被看作?條語句C.空語句出現(xiàn)在任何位置都不會影響程序運行D.賦值表達式末尾加分號就構(gòu)成賦值語句(13)以下敘述中正確的是A.調(diào)用printf函數(shù)時,必須要有輸出項B.使用putchar函數(shù)時,必須在之前包含頭文件stdio.hC.在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出D.調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應的ASCII碼(14)以下關(guān)于函數(shù)的敘述中正確的是A.每個函數(shù)都可以被其它函數(shù)調(diào)用(包括main函數(shù))B.每個函數(shù)都可以被單獨編譯C.每個函數(shù)都可以單獨運行D.在一個函數(shù)內(nèi)部可以定義另一個函數(shù)(15)若有語句:char*line[5];,以下敘述中正確的是A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符D.定義line是一個指向字符型函數(shù)的指針(16)有以下程序段typedefstructNODE{intnum;structNODE*next;)OLD;以下敘述中正確的是A.以上的說明形式非法NODE是一個結(jié)構(gòu)體類型OLD是一個結(jié)構(gòu)體類型OLD是一個結(jié)構(gòu)體變量(17)以下敘述中錯誤的是C語言中對二進制文件的訪問速度比文本文件快C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)C.語句FILEfp;定義了一個名為fp的文件指針D.C語言中的文本文件以ASCH碼形式存儲數(shù)據(jù)(18)當把以下四個表達式用作if語句的控制表達式時,有一個選項與其它三個選項含義不同,這個選項是k%2k%2=l(k%2)!=0!k%2=l(19)以下不能正確計算代數(shù)式值的C語言表達式是l/3*sin(l/2)*sin(l/2)sin(O.5)*sin(O.5)/3C.pow(sin(0.5),2)/3D.l/3.0*pow(sin(1.0/2),2)(20)以下能正確定義且賦初值的語句是intnl=n2=10;charc=32;floatf=f+l.1;doublex=12.3E2.5;(21)以下程序的功能是:給「輸入數(shù)據(jù)后計算半徑為i?的圓面積s。程序在編譯時出錯。main()/*Beginning*/{intr;floats;scanf(H%d';&r);s=*p*r*r;printf("s=%f\n,',s);)出錯的原因是A.注釋語句書寫位置錯誤B.存放圓半徑的變量r不應該定義為整型C.輸出語句中格式描述符非法D.計算圓面積的賦值語句中使用了非法變量(22)設有定義:intk=l,m=2;floatf=7;,則以下選項中錯誤的表達式是k=k>=kB.-k++C.k%int(f)D.k>=f>=m(23)設有定義:ima=2,b=3,c=4;,則以下選項中值為0的表達式是A.(!a==l)&&(!b==O)(aa&&bD.all(b+b)&&(c-a)(24)有以下程序段intk=O,a=l,b=2,c=3;k=ac?c:k;執(zhí)行該程序段后,k的值是3210(25)設變量a、b、c、d和y都已正確定義并賦值。若有以下if語句if(aif(c==d)y=0;elsey=l;該語句所表示的含義是A) pa<bS.c=d B) [0a<bRc=d[1a>b 1a>b^.c#dC) [0a<b且c=d 口) jba<b且c=d,[1a<6且cwd [1c手d(26)有以下程序段intn,t=l,s=O;scanf(H%dH,&n);do{s=s+t;t=t-2;)while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應該是A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)(27)設變量-正確定義,則以下能正確計算f=n!的程序段是f=0;f=l;fbr(i=l;i<=n;i++)f*=i;for(i=l;if=l;f=l;for(i=n;i>l;i++)f*=i;fbr(i=n;i>=2;i--)f*=i;(28)設有定義:intnl=0,n2,*p=&n2,*q=&nl;,以下賦值語句中與n2=nl;語句等價的是A.*p=*q;p=q;*p=&nl;p=*q;(29)若有定義:intx=O,*p=&x;,則語句printf("%d\n",*p);的輸出結(jié)果是A.隨機值0x的地址p的地址<30)設函數(shù)fun的定義形式為voidfun(charch,floatx){...}則以下對函數(shù)fun的調(diào)用語句中,正確的是fun("abc';3.0);t=fun('D;16.5);funC65',2.8);fun(32,32);(31)有以下程序main(){inta[10]={1,2,3,4,5,6,7,8,9,10),*p=&a[3],*q=p+2;printf("%d\n,\*p+*q);I程序運行后的輸出結(jié)果是161086(32)有以下程序main()(charp[]=Cam,q[]="abc”;printf("%d%d\nM,sizeof(p),sizeof(q));};程序運行后的輸出結(jié)果是44333443(33)有以下程序#definef(x)(x*x)main(){intil,i2;il=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n';il,i2);)程序運行后的輸出結(jié)果是A.64,284,44,364,64(34)有以下程序main(){chara2='m';printf("%c\nH,(al,a2));}以下敘述中正確的是A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,編譯出錯D.程序運行時產(chǎn)生出錯信息(35)有以下程序#includemain(){charcl=,l;c2='2,;cl=getchar();c2=getchar();putchar(cl);putchar(c2);)當運行時輸入:a<回車〉后,以下敘述正確的是A.變量cl被賦予字符a,c2被賦予回車符B.程序?qū)⒌却脩糨斎氲?個字符C.變量cl被賦予字符a,c2中仍是原有字符2D.變量cl被賦予字符a,c2中將無確定值(36)有以下程序main(){intk=5,n=O;while(k>0){switch(k){default:break;:n+=k;::n+=k;)I}printf("%d\n",n);}程序運行后的輸出結(jié)果是0467(37)有以下程序main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[l];fbr(x=1;x<3;x++)y+=p[x];printf("%d\n",y);}程序運行后的輸出結(jié)果是10111415(38)有以下程序voidsort(inta[],intn){inti,j,t;for(i=0;ifor(j=i+l;jif(a[i]}main(){intaa[10]=[123.4.5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)prinlf("%d,".aa[i]);printf("\nw);)程序運行后的輸出結(jié)果是1,2,3,4,5,6,7,8.9,10,1,2,7,6,3,4,5,8910,1,27654,3,8,9,10,1,2,9,876,5,4,3,10,(39)有以下程序voidsum(inta[]){a[0]=a[-l]+a[U;)main(){inta[10]={1,2,34,5,6,7,8,9,10);sum(&a[2]);printf("%d\n",a[2]);)程序運行后的輸出結(jié)果是6758(40)有以下程序voidswap1(intc0[],intcl[J)(intt;t=cO|()];cO[O]=cl[O];cl[Ol=t;voidswap2(int*c0,int*cl){intt;t=*cO;*cO=*cl;*cl=t;}main(){inta[2]={3,5),b[2]=13,5);swap1(a,a+1);swap2(&b(0],&b[l]);printf(M%d%d%d%d\nM,a[0],a[l],b[0],b[l]);)程序運行后的輸出結(jié)果是3553533535355353(41)有以下程序#includemain(){charp[]=「amq[10]={W.K'c');printf("%d%d\n",strlen(p),strlen(q));)以下敘述中正確的是A.在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3B.由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符串長度為3C.由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但p數(shù)組中字符串長度為3D.由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定(42)有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序#includevoidf(char*p[],intn){char*t;intij;for(i=0;ifor(j=i+l;jif(strcmp(p[i],p|j])>O){t=p[i];p[i]=p[j];p[j]=t;})main(){char*p[5]={,,abcM;,aabdfg,\"abbd":,dcdbe";,cdn);f(p,5);printf("%d\n",strlen(p|11));)程序運行后的輸出結(jié)果是2364(43)有以下程序#includevoidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t-;if(*s)f(s,t);!main(){charstr[10]="abcdefg'\*p;p=str+strlen(str)/2+1;f(p,p-2);printf(',%s\n,\str);)程序運行后的輸出結(jié)果是abcdefggfedcbagbcdefaabedcfg(44)有以下程序floatfl(floatn){returnn*n;}floatf2(floatn)(return2*n;}main(){float(*pl)(floatX(*p2)(float),(*t)(float),yl,y2;pl=fl;p2=f2;yl=p2(pl(2.0));t=pl;pl=p2;p2=t;y2=p2(pl(2.0));printf(M%3.Of,%3.Of\nM,yl,y2);}程序運行后的輸出結(jié)果是8,168,816,164,8(45)有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;)else{staticinta=5;t+=a++;}returnt+a++;)main(){ints=a,i;forfi=0;i<3;i++)s+=f(i);printf("%d\n",s);}程序運行后的輸出結(jié)果是26282924(46)有以下程序#includestructSTU{intnum;floatTolalScore;);voidf(structSTUp){structSTUs[2]=({20044,550},{2()045,537});p.num=s[l].num:p.TotalScore=s[l].TotalScore;)main(){structSTUs[21=()20041,703},{20042,580}};f(s[O]);printf("%d%3.0f\nH,s[()].num,s[0].TotalScore);}程序運行后的輸出結(jié)果是20045537200445502(X)4258020041703(47)有以下程序#includestructSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan,,,20044),{"Penghua",20045)};num=s[0].num;strcpy(name,s[0J.name);)main(){structSTUs[21={{"YangSan\2(X)41},{"LiSiGuo”,20042}},*p;p=&s[l];f(p->name,p->num);printf("%s%d\n,\p->name,p->num);}程序運行后的輸出結(jié)果是SunDan20042SunDan20044LiSiGuo20042YangSan20041(48)有以下程序structSTU{charname[10];intnum;floatTotalScore;};void('(structSTU*p){structSTUs[2]={{"SunDan",20044,550),{"Penghua",20045,537}),*q=s;++p;++q;*p=*q;)main(){structSTUs[3]={{MYangSan,;20041,703),{nLiSiGuo,',20042,580}};f(s);printf("%s%d%3.0f\nM,s[l].name,s[l].num,s[l].TotalScore);}程序運行后的輸出結(jié)果是SunDan20044550Penghua20045537LiSiGuo20042580SunDan20041703(49)以下程序的功能是進行位運算main(){unsignedchara,b;a=7A3;b=?4&3;prhtfC%d%d\n';a,b);)程序運行后的輸出結(jié)果是43737040(50)有以下程序#includemain(){FILE*fp;inti,k,n;fp=fopen(',data.datn,Mw+H);for(i=l;i<6;i++){fprintf(fp,"%d\i);if(i%3==0)fprintf(fp,"\nM);}rewind(fp);fscanf(fp,,,%d%dM,&k,&n);printf("%d%d\nM,k,n);fclose(fp);}程序運行后的輸出結(jié)果是00123451412二、填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡【1】至【20】序號的橫線上,答在試卷上不得分。(1)數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個階段,其中數(shù)據(jù)獨立性最高的階段是【1】o(2)算法復雜度主要包括時間復雜度和【2】復雜度。(3)在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中【3】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。(4)一棵二叉樹第六層(根結(jié)點為第一層)的結(jié)點數(shù)最多為【4】個。(5)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于【5】結(jié)構(gòu)。(6)以下程序運行后的輸出結(jié)果是[6】omain(){intx=0210;printf("%X\n”,x);(7)以下程序運行后的輸出結(jié)果是[7】omain(){inta=l,b=2,c=3;if(c=a)printf(,'%d\n',,c);elseprintf(M%d\nM,b);}(8)已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元[8]o(9)以下程序運行后的輸出結(jié)果是[9】omain(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf("%d%f\n'\n,x);)(10)以下程序的功能是計算:s=l+12+123+1234+12345o請?zhí)羁?。main(){intt=O,s=O,i;fbr(i=l;i<=5;i++){t=i+[10];s=s+t;)printf(',s=%d\n",s);)(11)已知字母A的ASCH碼為65。以下程序運行后的輸出結(jié)果是[11]。main(){chara,b;a='A'+5-'3';b=a+'6'?'2';printf("%d%c\nH,a.b);)(12)有以下程序intsub(intn){return(n/10+n);}main()(intx,y;scanf(H%d';&x);y=sub(sub(sub(x)));printf("%d\nM,y);)若運行時輸入:1234<回車>,程序的輸出結(jié)果是[12]o(13)以下函數(shù)sstrcat。的功能是實現(xiàn)字符串的連接,即將t所指字符串復制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數(shù)調(diào)用后s所指字符串為abcdefgh。請?zhí)羁铡?includevoidsstrcat(char*s,char*t){intn;n=strlen(s);while(*(s+n)=[13]){s++;t++;)(14)以下程序運行后的輸出結(jié)果是[14]o#includechar*ss(char*s){char*p,t;p=s+1;t=*s;while(*p){*(p-l)=*p;p++;)*(p-l)=t;returns;)main(){char*p,str[10]=MabcdefghM;p=ss(str);printf(M%s\nM,p);)(15)以下程序運行后的輸出結(jié)果是[15]ointf(inta[],intn){if(n>=1)returnf(a,n-l)+a[n-l];elsereturn0;Imain(){intaa[5]={1,2,3,4,5},s;s=f(aa,5);printf(M%d\nM,s);)(16)以下程序運行后的輸出結(jié)果是【161ostructNODE(intnum;structNODE*nexl;);main(){structNODEs[3]={{1,W},{2,W},{3,W}},*p,*q,*r;intsum=0;s[O].next=s+l;s[I].next=s+2;s[2].next=s;p=s;q=p->next;r=q->next;sum+=q->next->num;sum+=r->next->next->num;printf("%d\n",sum);)(17)以卜程序的功能是輸出如卜.形式的方陣:13141516910111256781234請?zhí)羁?。main(){inti,j,x;for(j=4;j[17];j-){for(i=l;i<=4;i++){x=(j-l)*4+[18];printf("M'\x);)printf("\nH);))(18)以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。#defineN4voidrotate(inta[][N],intb[][N]){intij;for(i=0;i{b[i][N-l]=[19];[20]=a[N-l][i];)(2005年下半年C語言筆試參考答案一、題答案—(10)CACDCDAABB—(20)ACBBACCDAB(21)—(30)DCABCDDABD(31)—(40)BCCAADCCAA(41)—(50)BCBACDABAD二、填空題(I)數(shù)據(jù)庫系統(tǒng)(2)空間(3)驅(qū)動模塊(4)32(5)存儲結(jié)構(gòu)(6)88(7)I(8)p=(double*)malloc(sizeof(double))(9)220(10)t*10(11)67G(12)10(13)*t(14)bcdefgha(15)15(16)5(17)>0(18)6(19)a[0][i](20)b[i][0]2006年4月仝國計算機等級考試二級C語言筆試試題及答案一、選擇題((1)一(10)每題2分,(11)一(50)每題1分,共60分)卜列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)卜一列選項中不屬于結(jié)構(gòu)化程序設計方法的是A.自頂向下B.逐步求精C.模塊化D.可復用⑵兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為A.耦合度B.內(nèi)聚度C.復雜度D.數(shù)據(jù)傳輸特性⑶下列敘述中正確的是A.軟件測試應該由程序開發(fā)者來完成B.程序經(jīng)調(diào)試后一般不需要再測試C.軟件維護只包括對程序代碼的維護D.以上三種說法都不對(4)按照“后進先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是A.隊列B.棧C.雙向鏈表D.二叉樹(5)下列敘述中正確的是A.線性鏈表是線性表的鏈式存儲結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.雙向鏈表是非線性結(jié)構(gòu)D.只有根結(jié)點的二叉樹是線性結(jié)構(gòu)(6)對如下二叉樹ABDECF進行后序遍歷的結(jié)果為ABCDEFDBEAFCABDECFDEBFCA(7)在深度為7的滿二叉樹中,葉子結(jié)點的個數(shù)為A.326463(8)“商品”與“顧客”兩個實體集之間的聯(lián)系一般是一對一一對多C.多對一D.多對多(9)在E-R圖中,用來表示實體的圖形是A.矩形B.橢圓形C.菱形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)以下不合法的用戶標識符是j2_KEYDouble4d_8_(12)以下不合法的數(shù)值常量是011lei8.0E0.5Oxabcd(13)以下不合法的字符常量是A.r\018rB?\\''\xcc'(14)表達式3.6-5/2+1.2+5%2的值是3.8(15)以卜能正確定義字符串的語句是charstr[]={,\064,(;charstr=nkx43H;charstr=":charstr[]="\0";(16)以下數(shù)組定義中錯誤的是intx[][3]={0};intx[2][3]={{1,2),(3,4],[5,6}};intx[][3]={{1,2,3},(4,5,6}};intx[2][3]={1,2,3,4,5,6};(17)若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)getc()gets()getchar()scanf()(18)以下四個程序中,完全正確的是#include<stdio.h>#include<stdio.h>main():main(){/*programming*/j/*/programming/*/printf("programming!\nM):)printf("programming!\nH);)#include<stdio.h>include<stdio.h>main()main())/*/*programming*/*/(/*programming*/printf("programming!\nM):)printfC'programming!\nH);)(19)若有定義:floatx=1.5;inta=l,b=3,c=2;則正確的switch語句是switch(x)switch((int)x);{case1.0:printf(H*\n");{case1:printf(M*\n");case2.0:printf(H**\n");)case2:printf("**\nM);}switch(a+B.switch(a+B.(case1:printfC*\n");{case1:printf(M*\nM);case2+1:printf(M**\nM);Jcasec:printfC**\nM);)(20)若各選項中所用變量己正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是main()floatfun(inta*intB.{……}{ x=fun(2,10); }main()floatfun(inta,int{ } { x=fun(ij); }floatfun(intyint):main()main(){floatfun(inti,intj):{ x=fun(2>10); } x=fun(i,j); }floatfun(inta,intB.{ }floatfun(intintB.(……)(21)在以卜.給出的表達式中,與while(E)中的(E)不等價的表達式是(!E==0)(E>0IIE<0)(E==0)(E!=0)(22)要求通過while循環(huán)不斷讀入字符,當讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是A.while((ch=geicharO)!MN')prinm"%c",ch);B.while(ch=getcharO!W)printf("%c",ch);C.while(chugetcharOs^^NXrintfV'%c",ch):D.while((ch=getchar())=^N')printf(M%cM,ch);(23)已定義以下函數(shù)intfun(int*p){return*p;)fun函數(shù)返回值是A.不確定的值B.一個整數(shù)C.形參P中存放的值D.形參P的地址值(24)若有說明語句:double*p,a:則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是*p=&a;scanf(M%If,p);*p=&a;scanf("%f\p):p=&a;scanf("%lf*',*p);p=&a;scanfC'%If,p):(25)現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、I?分別指向一個鏈表中連續(xù)的三個結(jié)點。structnode(chardata;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->next=q;p->next=r;q->next=r->next;(26)有以下程序段structst{intx;int*y;)*pl:inta[]={1,2),b[]=(3,4);structstc[2]={10,a,20,b|;pt=c;以下選項中表達式的值為11的是*pt->ypt->x++pt->x(pt++)->x(27)設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為A.EOFB.非。值0NULL(28)設有以卜語句inta=l*b=2,c:c=a*(b?2);執(zhí)行后,C的值為6789(29)有以下程序#include<stdio.h>main(){charc1*c2,c3,c4,c5?c6:scanf("%c%c%c%c”,&cl,&c2,&c3?&c4);c5=getchar();c6=getchar();putchar(cl);putchar(c2);printf(H%c%c\n",c5,c6):)程序運行后,若從鍵盤輸入(從第1列開始)123<回車,45678V回車〉則輸出結(jié)果是1267125612781245(30)有以下程序main(){inty=10;while(y-);printf("y=%d\n"?y);}程序執(zhí)行后的輸出結(jié)果是A.y=0y=lwh加構(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.:}程序輸出0,1,2,00,0,0,31,1,2,0D.編譯有錯(32)有以卜程序main()(inti,j,x=0;for(i=0:i<2;i++){x++;for(j=0:j<=3:j++){if(j%2)continue;X++;}X++;}printf("x=%d\nM,x):}程序執(zhí)行后的輸出結(jié)果是x=4x=8x=6x=12(33)有以下程序intfun1(doublea){returna*=a;}intfun2(doublex?doubley){doublea=0?b=0;a=funl(x);b=fiinl(y):retum(int)(a+B.;)main()(doublew:w=fun2(l.l,2.0): }程序執(zhí)行后變量w中的值是5.2155.00.0(34)有以卜程序main(){inli,t[][3]={9,8,7,6,5,4,3,2,1);for(i=0:i<3:i++)printf(H%d",t[2-i][i]);}程序執(zhí)行后的輸出結(jié)果是753357369751(35)有以卜程序fun(charp[][10]){intn=0,i;for(i=0:i<7;i++)if(p[i]L0]==T)n++;returnn;}main(){charstr[][10]={,,Mon%"Tue","Wed","Thu%"Fri“JSat",,,Sun,,};printf(M%d\n",fun(str));}程序執(zhí)行后的輸出結(jié)果是123D.0(36)有以下程序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é)果是45202536(37)有以卜程序voidfunl(char*p)(char*q;q=p:while(*q!-\O'){(*q)++:q++:))main(){chara[]={"Program"),*p;p=&a[3]:funl(p):printf("%s\n",a):)程序執(zhí)行后的輸出結(jié)果是ProhsbnPrphsbnProgsbnProgram(38)有以下程序voidswap(char*x,char*y)(chart:t=*x;*x=*y;*y=t:}main()(char*sl="abc",*s2=“123”;swap(sl,s2):printf("%s,%s\n”,sLs2);程序執(zhí)行后的輸出結(jié)果是123,abcabc,123Ibc,a23321,cba(39)有以下程序intfun(intn){if(n=l)retum1;elseretum(n+fun(n-l)):}main()(intx;scanf("%d”,&x);x=fim(x):printf(M%d\nH,x);)執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是55546545(40)有以下程序intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n:i++)sum+=x[i]:returnsum;)mainO{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é)果是45506055(41)有以下程序{union{charch[2];intd:)s;s.d=Ox4321;printf("%x,%x\n”,s.ch[0],s.ch[1]);)在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是21,4343,2143,0021,(X)(42)有以下程序main(){char*p[]={"3697","2584"}:inti*j;longnum=0;for(i=0:i<2;i++){j=0;while(p[i][j]!=,\0,){if((p[i][j]-r0r)%2)num=10*num+p[i][j]j+=2:))printf("%d\n",num);)程序執(zhí)行后的輸出結(jié)果是3537393975(43)執(zhí)行以下程序后,test.txl文件的內(nèi)容是(若文件能正常打開)#include<stdio.h>main(){FILE*fp;char*sl="FortranM,*s2=nBasic":if((fp=fopen(,,test.txt";,wb,,))==NULL){printf("Can'topentest.txtfile\n");exit(l):)fwrite(s1,7.1.fp);/*把從地址si開始的7個字符寫到fp所指文件中*/fseek(fp,OL,SEEK_SET); /*文件位置指針移到文件開頭*/fwrite(s2.5)1>fp);fclose(fp):)BasicanBasicFortranBasicFortranBasic(44)以卜.敘述中錯誤的是C語言源程序經(jīng)編譯后生成后綴為.obj的R標程序C程序經(jīng)過編譯、連接步驟之后才能形成?個真正可執(zhí)行的二進制機器指令文件C.用C語言編寫的程序稱為源程序,它以ASCH代碼形式存放在一個文本文件中D.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令(45似卜.敘述中錯誤的是A.算法正確的程序最終一定會結(jié)束B.算法正確的程序可以有零個輸出C.算法正確的程序可以有零個輸入D.算法正確的程序?qū)τ谙嗤妮斎?定有相同的結(jié)果(46)以下敘述中錯誤的是A.C程序必須由一個或一個以上的函數(shù)組成B.函數(shù)調(diào)用可以作為一個獨立的語句存在C.若函數(shù)有返回值,必須通過return語句返回D.函數(shù)形參的值也可以傳回給對應的實參(47)設有以卜.定義和語句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ōu)先級最低C程序中,j++;是賦值語句C程序中,+、-、*、/、%號是算術(shù)運算符,可用于整型和實型數(shù)的運算(49)以卜.敘述中正確的是A.預處理命令行必須位于C源程序的起始位置B.在C語言中,預處理命令行都以“#"開頭C.每個C程序必須在開頭包含預處理命令行:#include<stdio.h>D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能(50)以下敘述中錯誤的是A.可以通過typedef增加新的類型B.可以用typedef將已存在的類型用一個新的名字來代表C.用typedef定義新的類型名后,原有類型名仍有效D.用typedef可以為各種類型起別名,但不能為變量起別名二、填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡【1】至[20]序號的橫線上,答在試卷上不得分。(1)對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為【1】。⑵在面向?qū)ο蠓椒ㄖ?,?】描述的是具有相似屬性與操作的一組對象。(3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個【3】.(4)程序測試分為靜態(tài)分析和動態(tài)測試。其中【4】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。(5)數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應用程序不必修改,稱為【5】。(6)若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的的輸出語句【6】.(7)以下程序用于判斷a、b、c能否構(gòu)成二角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁?。main(){floata?b,c;scanf("%f%f%f',&a,&b,&C.;if([7])printf("YES\nH);/*a、b、c能構(gòu)成三角形*/elseprintf(MNO\nM);/*a、b、c不能構(gòu)成三角形*/}(8)以下程序的輸出結(jié)果是[8】omain(){inta[3][3]={{1,2,9},{3,4,8),[5,6,7}),i,s=0:for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-l];printf(H%d\n'\s);)⑼當運行以下程序時,輸入abed,程序的輸出結(jié)果是:【9】。insert(charstr口)(inti:i=strlen(str);while(i>0){str[2*i]=str[i];str='*';i-;}printf(M%s\nM,str);}main(){charstr[40];scanf("%s",str);insert(str);}(10)下面程序的運行結(jié)果是:【10】。fiin(intt[]?intn){inti?m:if(n=l)retumt[0];elseif(n>=2)(m=fun(t?n-1);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<stdio.h>#include"myfun.c"main(){fun();printfCXn");!myfun.c文件如下:voidfun(){chars[80],c;intn=0;while((c=getchar())!=^\nf)s[n++]=c;n-;while(n>=0)printf("%c”,s[n-]);1當編譯連接通過后,運行程序T18時,輸入Thank!則輸出結(jié)果是:[11]o(12)以卜.函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為:Hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若sti?所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁?。char*fun(char*str,charC.{intn=0:char*p=str:if(p!=NULL)while(p[n]!=c&&p[n]!=f\0%++:if(p[n]=*\09returnNULL;retum([12]):}(13)以下程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡ain()(inti,j;for(i=0;[13];i++){j=i*10+6:if([14]Continue;printf("%d”,j);})(14)以下isprime函數(shù)的功能是判斷形參a是否

溫馨提示

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

評論

0/150

提交評論