計(jì)算機(jī)二級(jí)c語言歷年(2004-2011)真題及標(biāo)準(zhǔn)答案_第1頁
計(jì)算機(jī)二級(jí)c語言歷年(2004-2011)真題及標(biāo)準(zhǔn)答案_第2頁
計(jì)算機(jī)二級(jí)c語言歷年(2004-2011)真題及標(biāo)準(zhǔn)答案_第3頁
計(jì)算機(jī)二級(jí)c語言歷年(2004-2011)真題及標(biāo)準(zhǔn)答案_第4頁
計(jì)算機(jī)二級(jí)c語言歷年(2004-2011)真題及標(biāo)準(zhǔn)答案_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2011年3月計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試一、選擇題(1)下列關(guān)于棧敘述正確的是A)棧頂元素最先能被刪除B)棧頂元素最后才能被刪除C)棧底元素永遠(yuǎn)不能被刪除D)以上三種說法都不對(duì)(2)下列敘述中正確的是A)有?個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不定是非線性結(jié)構(gòu)B)只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C)循環(huán)鏈表是非線性結(jié)構(gòu)D)雙向鏈表是非線性結(jié)構(gòu)(3)某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)A)3B)4C)6D)7(4)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A)軟件集成測(cè)試計(jì)劃B)軟件詳細(xì)設(shè)計(jì)說明書C)用戶手冊(cè)D)軟件需求規(guī)格說明書(5)結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括A)順序結(jié)構(gòu)B)GOT。跳轉(zhuǎn)C)選擇(分支)結(jié)構(gòu)D)重復(fù)(循環(huán))結(jié)構(gòu)(6)卜面描述中錯(cuò)誤的是A)系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)B)軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過程C)數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一D)PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具(7)負(fù)責(zé)數(shù)據(jù)傳中查詢操作的數(shù)據(jù)庫語言是A)數(shù)據(jù)定義語言B)數(shù)據(jù)管理語言C)數(shù)據(jù)操縱語言D)數(shù)據(jù)控制語言(8)一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授。則實(shí)體教師和課程間的聯(lián)系是A)1:1聯(lián)系B)1:m聯(lián)系C)m:1聯(lián)系D)m:n聯(lián)系(9)有三個(gè)關(guān)系R、S和T如下:RSTABCABCa12C31B21C31則由關(guān)系R和S得到關(guān)系T的操作是A)自然連接B)交C)除D)并(10)定義無符號(hào)整數(shù)類為Ulnt,下面可以作為類Ulnt實(shí)例化值的是A)-369B)369C)0.369D)整數(shù)集合{1,2,3,4,5}(11)計(jì)算機(jī)高級(jí)語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩利,,以下敘述中正確的是A)C語言程序僅可以編譯執(zhí)行B)C語言程序僅可以解釋執(zhí)行C)C語言程序既可以編譯執(zhí)行乂可以解釋執(zhí)行D)以上說法都不對(duì)(12)以下敘述中錯(cuò)誤的是A)C語言的可執(zhí)行程序是由系列機(jī)器指令構(gòu)成的B)用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行C)通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行D)在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件(13)以下選項(xiàng)中不能用作C程序合法常最的是A)1,234B)'123'C)123D)"\x7G"(14)以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是A).1e0B)3.0e0.2C)E9D)9.12E(15)若有定義語句:inta=3,b=2,c=1;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是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);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinum=1001〈回車〉后,name的值為A)LiliB)name=LiliC)Lilinum=D)name=Lilinum=1001(17)if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是A)必須是邏輯值B)必須是整數(shù)值C)必須是正數(shù)D)可以是任意合法的數(shù)值(18)有以下程序#includemain(){intx=011;printf("%d\n",++x);)程序運(yùn)行后的輸出結(jié)果是A>12B)11C)10D)9(19)有以下程序#includemain(){ints;scanf("%d",&s);while(s>0){switch(s){easel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:printf("%d",s+1);break;)scanfC%d",&s);)}運(yùn)行時(shí),若輸入123450v回車>,則輸出結(jié)果是A)6566456B)66656C)66666D)6666656(20)有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf(M%d\n",n);break;case2:case4:printf(M%d\n'\n);continue;caseO:exit(O);}printf(,,%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是A)for循環(huán)語句固定執(zhí)行8次B)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作C)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作D)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行(21)有以下程序#includemain(){chars[]=M012xy\08s34f4w2M;inti,n=O;for(i=0;sf]!=0;i++)if(s[i]>=,0'&&s[i]<=,9,)n++;printf(M%d\n",n);)程序運(yùn)行后的輸出結(jié)果是A)0B)3C)7D)8(22)若i和k都是int類型變量,有以下for語句for(i=0,k=-1;k=1;k++)printf(H*****\n");卜,面關(guān)于語句執(zhí)行情況的敘述中正確的是A)循環(huán)體執(zhí)行兩次B)循環(huán)體執(zhí)行?次C)循環(huán)體一次也不執(zhí)行D)構(gòu)成無限循環(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(M\nM);}程序運(yùn)行后的輸出結(jié)果是A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef(24)設(shè)有定義:doublex[10],*p=x;,以下能給數(shù)組x下標(biāo)為6的元素讀入數(shù)據(jù)的正確語句是A)scanf("%r,&x[6]);B)scanf(M%lfM,*(x+6));C)scanf(**%lfn,p+6);D)scanf("%lf",p[6]);(25)有以卜程序(說明:字母A的ASCII碼值是65)#includevoidfun(char*s){while(*s){if(*s%2)printf("%cM,*s);s++;))main(){chara[]="BYTE";fun(a);printf(H\nM);)程序運(yùn)行后的輸出結(jié)果是A>BYB)BTC)YTD)YE(26)有以下程序段#includemain(){…while(getchar()!='\n');)以下敘述中正確的是A)此while語句將無限循環(huán)B)getchar()不可以出現(xiàn)在while語句的條件表達(dá)式中C)當(dāng)執(zhí)行此while語句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行D)當(dāng)執(zhí)行此while語句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行(27)有以卜程序#includemain(){intx=1,y=0;if(!x)y++;elseif(x==O)if(x)y+=2;elsey+=3;printf(M%d\n",y);}程序運(yùn)行后的輸出結(jié)果是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-fa'-'A,);C++;}}main(){chars[81];gets(s);fun(s);puts(s):)當(dāng)執(zhí)行程序時(shí)從鍵盤上輸入HelloBeijingv回車,,則程序的輸出結(jié)果是A)hellobeijingB)HelloBeijingC)HELLOBEIJINGD)hELLOBeijing(30)以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#include#defineN10voidfun(intx[N]){inti=0;while(i<p>)在程序中下劃線處應(yīng)填入的是A>x+iB)&x[i+1]C)x+(i++)D)&x[++i](31)有以下程序#includemain(){chara[30],b[30];scanf(H%sM,a);gets(b);printf("%s\n%s\nM,a,b);)程序運(yùn)行時(shí)若輸入:howareyou?Iamfinev同車>則輸出結(jié)果是A)howareyou?B)howIamfineareyou?IamfineC)howareyou?IamfineD)rowareyou?(32)設(shè)有如下函數(shù)定義intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;)若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是A>2B)3C)4D)5(33)有以下程序#includeintfun(intxjnty){if(x!=y)return((x+y);2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(M%d\nH,fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是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(N%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A)0B)10C>30D)64(35)有以下程序#include#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf(M%d\n",S(k+j));}程序運(yùn)行后的輸出結(jié)果是A)197B)143C)33D)28(36)設(shè)有定義:struct{charmark[12];intnum1;doublenum2;}t1,t2;,若變量均已正確賦初值,則以卜?語句中錯(cuò)誤的是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(H%d,",++(p->x));printf("%d\nM,++(p->y));)程序運(yùn)行后的輸出結(jié)果是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));}程序運(yùn)行后的輸出結(jié)果是A)10B>11C)20D)21(39)有以下程序#includemain(){unsignedchara=8,c;c=a?3;printf(r,%d\n",c);程序運(yùn)行后的輸出結(jié)果是A>32B)16C)1D)0(40)設(shè)fp已定義,執(zhí)行語句fp=fopen(”file”,W);后,以下針對(duì)文本文件file操作敘述的選項(xiàng)中正確的是A)寫操作結(jié)束后可以從頭開始讀B)只能寫不能讀C)可以在原有內(nèi)容后追加寫D聲J以隨意讀和寫二、填空題(1)有序線性表能進(jìn)行二分查找的前提是該線性表必須是[1]順序存儲(chǔ)的。(2)一棵二叉樹的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF,則后序遍歷結(jié)果為【2】DEBFCA.(3)對(duì)軟件設(shè)計(jì)的最小單位(模塊或程序單元)進(jìn)行的測(cè)試通常稱為【3】單元測(cè)試。(4)實(shí)體完整性約束要求關(guān)系數(shù)據(jù)庫中元組的14】主鍵屬性值不能為空。(5)在關(guān)系A(chǔ)(S,SN,D)和關(guān)系B(D,CN,NM)中,A的主關(guān)鍵字是S,B的主關(guān)鍵字是D,則稱【5】D是關(guān)系A(chǔ)的外碼。⑹以卜一程序運(yùn)行后的輸出結(jié)果是[6】3。#includemain(){inta;a=(int)((double)(3/2)+0.5+(int)1.99*2);printfC'%d\n",a);)(7)有以下程序#includemain(){intx;scanf(M%dM,&x);if(x>15)printf(M%dM,x-5);if(x>10)printf("%d”,x);if(x>5)printf("%d\n",x+5);}若程序運(yùn)行時(shí)從鍵盤輸入12V回車>,則輸出結(jié)果為【7】1217。(8)有以下程序(說明:字符0的ASCII碼值為48)#includemain(){charc1,c2;scanf(M%d",&c1);c2=c1+9;printf(M%c%c\nM,c1,c2);}若程序運(yùn)行時(shí)從鍵盤輸入48〈回車〉,則輸出結(jié)果為【8】09o(9)有以下函數(shù)voidprt(charch,intn)(inti;for(i=1;i<=n;i++)printf(i%6!=0?"%c":',%c\nM,ch);}執(zhí)行調(diào)用語句prt「,24);后,函數(shù)共輸出了【9】4行?號(hào)。(10)以下程序運(yùn)行后的輸出結(jié)果是[10]200,#includemain(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf("%d%d\n",x,y);}(11)己知a所指的數(shù)組中有N個(gè)元素。函數(shù)fun的功能是,將下標(biāo)k(k>0)開始的后續(xù)元素全部向前移動(dòng)一個(gè)位置。請(qǐng)?zhí)羁铡oidfun(inta[N],intk){inti;for(i=k;i填入i-1)(12)有以下程序,請(qǐng)?jiān)赱12]處填寫正確語句,使程序可正常編譯運(yùn)行。#include[12]Doubleave(doublea,doubleb);main(){doublex,y,(*p)();scanf(H%lf%lfH,&x,&y);p=avg;printf(M%f\nH,(*p)(x,y));}doubleavg(doublea,doubleb){return((a+b)/2);}(13)以下程序運(yùn)行后的輸出結(jié)果是【13】13715o#includemain(){inti,n[5]={0};for(i=1;i<=4;i++){n[i]==np-1]*2+1;printfC%dM,n[i]);}printf(M\n");}(14)以卜程序運(yùn)行后的輸出結(jié)果是[14]emoclew#include#include#includemain(){char*p;inti;p=(char*)malloc(sizeof(char)*20);strcpy(p,MwelcomeM);for(i=6;i>=0;i-)putchar(*(p+i));printtHn-");free(p);}(15)以下程序運(yùn)行后的輸出結(jié)果是【15】123456。#includemain(){FILE*fp;intx[6]={1,2,3,4,5,6},i;fpnfopeM'test.datlWb");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(M\nH);fclose(fp);}2010年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷C語言程序設(shè)計(jì)〈附答案)(考試時(shí)間90分鐘,滿分100分)一、選擇題((1)—(10)、(21)—(40)每題2分(11)—(20)每題1分,共70分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確的選項(xiàng)填涂在答題卜相應(yīng)位置上,答在試卷上不得分。(1)下列敘述中正確的是A)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間?般要多于順序存儲(chǔ)結(jié)構(gòu)C)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D)上述三種說法都不對(duì)(2)下列敘述中正確的是A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化D)上述三種說法都不對(duì)(3)軟件測(cè)試的目的是A)評(píng)估軟件可靠性B)發(fā)現(xiàn)并改正程序中的錯(cuò)誤C)改正程序中的錯(cuò)誤D)發(fā)現(xiàn)程序中的錯(cuò)誤(4)下面描述中,不屬了軟件危機(jī)表現(xiàn)的是A)軟件過程不規(guī)范B)軟件開發(fā)生產(chǎn)率低C)軟件質(zhì)量難以控制C)軟件成本不斷提高(5)軟件生命周期是指A)軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程B)軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程C)軟件的開發(fā)過程D)軟件的運(yùn)行維護(hù)過程(6)面向?qū)ο蠓椒ㄖ校^承是指一組對(duì)象所具有的相似性質(zhì)?個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C)各對(duì)象之間的共同性質(zhì)D)類之間共享屬性和操作的機(jī)制(7)層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是A)記錄長(zhǎng)度B)文件的大小B)聯(lián)系的復(fù)雜程度D)數(shù)據(jù)之間的聯(lián)系方式個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),而?臺(tái)計(jì)算機(jī)可被多個(gè)人使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是A)一對(duì)一B)一對(duì)多C)多對(duì)多D)多對(duì)一(9)數(shù)據(jù)庫設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是A)內(nèi)模式B)概念模式C)外模式D)設(shè)計(jì)模式(10)有三個(gè)關(guān)系R、S和T如下:ABCDc31ABCa1 2b2 1ADc3 1c4則由關(guān)系R和S得到關(guān)系T的操作是A)自然連接B)交C)投影D)并(11)以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是A)一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成B)結(jié)構(gòu)化程序使用got。語句會(huì)很便捷C)在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的D)由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題(12)以下關(guān)于簡(jiǎn)單程序設(shè)計(jì)的步驟和順序的說法中正確的是A)確定算法后,整理并寫出文檔,最后進(jìn)行編碼和上機(jī)調(diào)試B)首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機(jī)調(diào)試,最后整理文檔C)先編碼和上機(jī)調(diào)試,在編碼過程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔D)先寫好文檔,再根據(jù)文檔進(jìn)行編碼和上機(jī)調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)(13)以下敘述中錯(cuò)誤的是C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行C)所有C程序都需要編譯鏈接無誤后才能進(jìn)行D)C程序中整型變量只能存放整數(shù),實(shí)型變量只能存放浮點(diǎn)數(shù)(14)有以下定義:inta;longb;doublex,y;則以卜選項(xiàng)中正確的表達(dá)式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(15)以下選項(xiàng)中能表示合法常量的是A)整數(shù):1,2OOB)實(shí)改:1.5E2.0C)字符斜杠:"\"D)字符串:',007”(16)表達(dá)式a+=a?=a=9的值是A)9B)-9018D)0(17)若變量已正確定義,在if(W)printf("%d\n”,k);中,以下不可替代W的是A)aob+cB)ch=getchar()C)a==b+cD)a++(18)有以下程序#includemain(){inta=1,b=0;)程序運(yùn)行后的輸出結(jié)果是A)tuvB)字符t的ASCH值C)tD)出錯(cuò)(23)有以下程序#include<stdio.h>#include<string.h>main(){charx[]='STRING^;x[0]=0; x[2]="0";printf(**%d%d\n,\sizeof(x),strlen(x));)程序運(yùn)行后的輸出結(jié)果是if(!a)b++;elseif(a=O)if(a)b+=2;elseb+=3;printf("%d\n'',b);A)61B)70C)63D)71(24)有以下程序#includeintf(intx);main()}程序運(yùn)行后的輸出結(jié)果是A)OB)IC)2D)3(19)若有定義語句inta,b;{intn=l,m;m=f(f(f(n)));printf("%d\n",m);)intf(intx)doublex;則下列選項(xiàng)中沒有錯(cuò)誤的是switch(x%2){case0:a++;break;case1:b++;break;default:a++;b++;]switch((inl)x/2.0){case0:a++;break;case1:b++;break;default:a++;b++;}C)switch((int)x%2){case0:a++:break;case1:b++;break;{returnx*2;}程序運(yùn)行后的輸出結(jié)果是A)1B)204D)8(25)以下程序段完全1E確的是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];以下選項(xiàng)中與此語句等價(jià)的是A)intp[4];B)int**p;C)int*(p[4]);D)int(*p)[4J;(27)下列定義數(shù)組的語句中,正確的是A)intN=IO;B)#defineN10intx[N];intx[N];C)intx[0..10];D)intdefault:a++;b++;}D)switch((int)(x)%2){case0.0:a++;break;x[];(28;若要定義一個(gè)具有5個(gè)元素的整型數(shù)組,以下錯(cuò)誤的定義語句是A)inta[5]=(0}:B)intb[]={0,0,0,0,0);C)intc[2+3];D)inti=5,d[i];case1.0:b++;break;(29)有以下程序default:a++;b++;}(20)有以下程序#includemain(){inta=1,b=2;while(a<6){b+=a;a+=2;b%=10;}printf("%d,%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是A)5,11B)7,lC)7,llD)6,l(21)有以下程序#includemain(){inty=10;while(y—);printf("y=%d\n”,y);}程序執(zhí)行后的輸出結(jié)果是A)y=0B)y=-1C)y=lD)while構(gòu)成無限循環(huán)(22)有以下程序#includemain(){chars[]=MrstuvM;#includevoidf(int*p);main(){inta[5]={h2,3A5},*r=a;f(r);primf("%d\n”,*r);}voidf(int*p){p=p+3;printfC4%d;\*p);)程序運(yùn)行后的輸出結(jié)果是A)l,4B)4,4C)3,1D)4,l(30)有以下程序(函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作)#includevoidfun(int*a,intn){inti,j,k,t;for(i=0;i<n-l;i+=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,43,6,7)4;printfC%c\n",*s+2);fun(aa,7);for(i=0;i<7;i++)printfC*%d,M,aa[i]);printf("\n”);}程序運(yùn)行后輸出結(jié)果是A)7,254,3,6/,B)1,6,345,2,7,C)76,5,4,3,2,1,D)1,7,3,5,6,2,1,(31)下列選項(xiàng)中,能夠滿足“若字符串si等于字符串s2,則執(zhí)行sr要求的是if(strcmp(s2,s1)=0)ST;if(sl==s2)ST;if(strcpy(sl,s2)==i)ST;if(sl-s2==0)ST;(32)以卜不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是A)while(*t=*s){t++,s++;}B)for(i=0;t[i]=s[i];i++);C)do{*t++=*s++;)while(*s);D)for(i=0j=0;t[i++]=s|j++););(33)有以下程序(stmat函數(shù)用以連接兩個(gè)字符串)#include<stdio.h>#include<string.h>main(){chara[20]=,,ABCD\0EFG\0,\b[]='TJK”;strcat(a,b);printfft%s\n,\a);1程序運(yùn)行后的輸出結(jié)果是A)ABCDE\OFG\OIJKB)ABCDIJKC)UKD)EFGIJK(34)有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母#include<stdio.h>#include<ctype.h>voidfun(char*p){inti=0;while(p[i]){if(p[i]==M?&&islower(p[i-l]))p[i-l]=p[i-l]-MaM+°AM;i++;))main(){charsl[100]=MabcdEFG!”;fun(sl);printf("%s\n”,sl);}程序運(yùn)行后的結(jié)果是A)abcdEFG!B)AbCdEFg!C)aBcDEFG!D)abcdEFg!(35)有以下程序#includevoidfun(intx){if(x/2>l)fun(x/2);printf(4i%d",x);)main(){fim⑺;printf("\n”);}程序運(yùn)行后的輸出結(jié)果是A)137B)731073D)37(36)有以下程序#includeintfun(){staticintx=l;x+=l;returnx;1main(){inti,s=1;fbr(i=l;i<=5;i-H-)s+=fun();printf(u%d\n\s);)程序運(yùn)行后的輸出結(jié)果是A)11B)21C)6D)120(37)有以下程序'#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=l;*b=2;*c=3;a=b;printf("%d,%d,%d\n”,*a,*b,*c);)程序運(yùn)行后的輸出結(jié)果是A)3,3,3B)2,2,301,2,3D)1,1,3(38)有以下程序#includemain(){ints,UA=IO;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n”.s,。;)在VC6平臺(tái)上編繹運(yùn)行,程序運(yùn)行后輸出結(jié)果是A)2,4B)1,404,8D)10,6(39)若有以下語句typedefstructS{intg;charh;)T;以卜敘述中正確的是A)麗S定義結(jié)構(gòu)體變量T定義結(jié)構(gòu)體變量C)S是struct類型的變量D)T是structS類型的變量(40)有以下程序#includemain(){shortc=124;c=c;printfC*%d\n*\c);)若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是A)?2B)1248C)&0248D)?1二、填空題(每空2分,共30分)請(qǐng)將每空的正確答案寫在答題卡【1】至【15】序號(hào)的橫線上,答在試卷上不得分。(1)一個(gè)棧的初始狀態(tài)為空。首先將元素543,2,1依次入棧,然后退棧一次,再將元素A,B,C,D依次入棧,之后將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的順序?yàn)椤?】。(2)在長(zhǎng)度為n的線性表中,尋找最大項(xiàng)至少需要比較【2】次。(3)一棵二叉樹有10個(gè)度為1的結(jié)點(diǎn),7個(gè)度為2的結(jié)點(diǎn),則該二叉樹共有【3】個(gè)結(jié)點(diǎn)。(4)僅由順序、選擇(分支)和重復(fù)(循環(huán))結(jié)構(gòu)構(gòu)成的程序是[4】程序。(5)數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析,概念設(shè)計(jì),邏輯設(shè)計(jì)和15].(6)以下程序運(yùn)行后輸出結(jié)果是[6】。#includemain。{inta=200,b=010;printfC%d%d\n,\a,b);)(7)有以下程序#includemain(){intx,y;scanf("%2d%】d",&x,&y);printfC*%d\nM,x+y);)程序運(yùn)行時(shí)輸入:1234567,程序的運(yùn)行結(jié)果是[7】。(8)在C語言中,當(dāng)表達(dá)式值為0時(shí)表示邏輯值“假”,當(dāng)表達(dá)式為【8】時(shí)表示邏輯值“真(9)有以下程序#includemain(){inti,n[]={O,O,OAO);for(i=l;i<=4;i++){n[i]=n[i-l]*3+l;printfC%dM,n[i]);))程序運(yùn)行后輸出結(jié)果是19】o(10)以下fun函數(shù)的功能是:找出具有N個(gè)元素的一維數(shù)組中的最小值,并作為函數(shù)值返回,清填空。(設(shè)N已定義)intfun(intx[N]){inti,k=0;for(i=0;i<N;i++)if(x[i]<x[k])k=[10];returnx[k];)(11)有以下程序#include<stdio.h>int*f(int*p,int*q);main(){intm=l,n=2,*r=&m;r=f(r,&n);printf("%d\n”,*r);)int*f(int*p,int*q){return(*p>*q)?p:q;)程序運(yùn)行后的輸出結(jié)果是(IDo(12)以bfun函數(shù)的功能是在N行M列的整型:維數(shù)組中,選出一個(gè)最大值作為函數(shù)值返回,請(qǐng)?zhí)羁铡?設(shè)M,N已定義)intfun(inta[N][M]){intij,row=0,col=0;for(i=0;ia[row][col]){row=i;col=j;)return([12]);}(13)有以下程序#includemain(){intn[2],ij;for(i=0;i<2;i++)n[i]=0;for(i=0;i<2;i++)forg=0;j<2;j++)nU]=n[i]+l;printfC4%d\n'\n[l]);)程序運(yùn)行后的輸出結(jié)果是[13]?(14)以下程序的功能是:借助指針變量找出數(shù)組元素中最大值所在的位置并輸出該最大值。請(qǐng)?jiān)谳敵稣Z句中填寫代表最大值的輸出項(xiàng)。#includemain(){inta[10],*p,*s;for(p=a;p-a<10;p++)scanf(44%d,\p);for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;printf("max二%d\n",[14]);)(15)以卜.程序打開新文件f.txt,并調(diào)用字符輸出函數(shù)將a數(shù)組中的字符寫入其中,請(qǐng)?zhí)羁铡?includemain(){[15]*fp;chara[5]={」:2"「3'”「5li;fp=fopen{,“w");for(i=0;i<5;i++)fputc{a[i],fp};fclose(fp);2010年9月二級(jí)C語言筆試真題參考答案一、選擇題1-5BCDAA6-10DDCCA11-15CBBAD16-20DAACB21-25BCBDC26-30CBDDA31-35ACBCD36-40BACBD二、填空題1.1DCBA23452.13.254.結(jié)構(gòu)化5.物理設(shè)計(jì)6.20087.158.非09.14134010.i11.212.a[row][col]13.314.*s15.FILE2010年3月計(jì)算機(jī)等級(jí)考試二級(jí)C筆試試題(文字版)一、選擇題(D下列敘述中正確的是A)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行杳找,最壞清況卜需要的比較次數(shù)為nB)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分杏找,最壞情況卜需要的比較次數(shù)為(n/2)C)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需耍的比較次數(shù)為(log2n)D)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分杳找,最壞情況卜.需要的比較次數(shù)為(nlog2n)(2)算法的時(shí)問復(fù)雜度是指A)算法的執(zhí)行時(shí)間B)算法所處理的數(shù)據(jù)量C)算法程序中的語司或指令條數(shù) D)算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件).卜.面屬于系統(tǒng)軟件的是A)編輯軟件 B)操作系統(tǒng) C)教務(wù)管理系統(tǒng) D)瀏覽器(4)軟件(程序)調(diào)試的任務(wù)是A)診斷和改正程序中的錯(cuò)誤B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C)發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤 D)確定程序中錯(cuò)誤的性質(zhì)(5)數(shù)據(jù)流程圖(DFD圖)是A)軟件概要設(shè)計(jì)的工具 B)軟件詳細(xì)設(shè)計(jì)的,具0結(jié)構(gòu)化方法的需求分析工具 D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?6)軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于A)定義階段 B)開發(fā)階段 C)維護(hù)階段 D)上述三個(gè)階段(7)數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是A)數(shù)據(jù)定義語言 B)數(shù)據(jù)管理語言C)數(shù)據(jù)操縱語言 D)數(shù)據(jù)控制語言(8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是A)文件 B)數(shù)據(jù)庫 C)字段 D)記錄(9)數(shù)據(jù)庫設(shè)計(jì)中,用E-R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計(jì)的A)需求分析階段 B)邏輯設(shè)計(jì)一階段C)概念設(shè)計(jì)階段D)物理設(shè)計(jì)階段(10)有兩個(gè)關(guān)系R和T如下:R ?' 則由關(guān)系K得到關(guān)系T的BJ B'操作是A)選擇B)a1'? 「投影C)交D)并TOC\o"1-5"\h\z[卜、2. .d_,3 ;>v5 ,卜——i-??———,(11)以下敘述正確的是A)C語言程序是由過程和函數(shù)組成的 B)C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C)C語言函數(shù)不可以單獨(dú)編譯 D)C語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在(12)以下關(guān)于C語言的敘述中正確的是A)C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間 B)C語言中的變量可以在使用之前的任何位置進(jìn)行定義C)在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致 D)C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示(13)以下C語言用戶標(biāo)識(shí)符中,不合法的是A)_l B)AaBcC)a_b D)a—b(14)若有定義:doublea=22;inti=0,k=18;,則不符合C語言規(guī)定的賦值語句是A)a=a++,i++; B)i=(a+k)<=(i+k);C)i=a;D)i=!a;(15)有以下程序#includemainO{chara,b,c,d;scanf("%c%c",&a,&b);c=getchar();d=getchar();printf(a%c%c%c%c\nM,a,b,c,d);)當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第1列開始,代表回車,注意:回車也是一個(gè)字符)1234則輸出結(jié)果是A)1234B)120123D)1234(16)以i關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是A)若要準(zhǔn)確無誤差的表示自然數(shù),應(yīng)使用整數(shù)類型B)若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型C)若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型D)若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型(17)若a是數(shù)值類型,則邏輯表達(dá)式(a==l)||(a!=l)的值是A)1 B)0 02D)不知道a的值,不能確定(18)以下選項(xiàng)中與if(a=l)a=b;elsea++;語句功能不同的switch語句是A)switch(a){case:a=b;break;default:a++;)C)switch(a){default:a++;break;case1:a=b;)D)switch(a==l){case1:a=b;break;case0:a++;)(19)有如下嵌套的if語句if(a<p>if(a<p>elsek=c;elseif(belsek=c;以下選項(xiàng)中與上述if語句等價(jià)的語句是A)k=(a<p>B)k=(ac)?b:c);C)k=(a<p>D)k=(a<p>(20)有以下程序ttincludemainO{ini,for(i=l;i<3;i++){for(j=3;j>0;j-){if(i*j)>3)break;m=i*j;)}printf(*m=%d\n*,m);)程序運(yùn)行后的輸出結(jié)果是m=6m=2m=4D)m=5(21)有以下程序[include(stdio.h>mainO{inta=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf(*%d,%d\rT,a,b);}程序運(yùn)行后的輸出結(jié)果是A)9,18B)8,1107,11D)10,14(22)有以下程序,其中k的初值為八進(jìn)制數(shù)ttincludemainO{intk=011;printf(*%d\n*,k++);)程序運(yùn)行后的輸出結(jié)果是12B)llC)10D)9(23)下列語句組中,正確的是A)char*s;s=*01ympic*;B)chars[7];s=*01ympic*;C)char*s;s={"Olympic"};D)chars[7];s={*Olympic*);(24)以下關(guān)于return語句的敘述中正確的是A)一個(gè)自定義函數(shù)中必須有一條return語句B)一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句0定義成void類型的函數(shù)中可以有帶返回值的return語句D)沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處(25)下列選項(xiàng)中,能正確定義數(shù)組的語句是A)intnum[O..2008];intnum[];OintN=2008;intnum[N];D)#defineN2008intnum[N];(26)有以下程序-includevoidfun(char*c,intd)(*c=*c+l;d=d+l;printf(*%c,%c,*,*c,d);mainO{charb-a*,a-A';fun(&b,a)jprintf(*%e,%e\n*.b,a);

程序運(yùn)行后的輸出結(jié)果是A)b,B,b,AB)b,B,B,AC)a,B.B>aD)a,B.a>B(27)若有定義int(*Pt)[3];,則下列說法正確的是A)定義了基類型為int的三個(gè)指針變鼠B)定義了基類型為int的具有三個(gè)元素的指針數(shù)組ptC)定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組D)定義了?個(gè)名為ptD)定義了?個(gè)名為pt的指針變量,它可以指向每行有二個(gè)整數(shù)(28)設(shè)有定義doublea[10],*s=a;,以下能夠代表數(shù)組元素a[3]A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main()(inta[5]={l,2,3,4,5},b[5]={0,2,1,3,0),i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n”,s);)程序運(yùn)行后的輸出結(jié)果是6B)10OilD)15(30)有以下程序Uincludemain(){intb[3][3]={0,1,2,0,1,2,0,1,2),i,j,t=l;for(i=0;i<3;i++)for(j=ij<=l;j++)t+=b[i][b[j][i]];printf("%d\n",t);)程序運(yùn)行后的輸出結(jié)果是A)1B)304D)9(31)若有以下定義和語句charsi[10]=*abcd!*s2=*\nl23W:printf(*%d%d\n*,strlen(sl),strlen(s2));則輸出結(jié)果是55B)105C)107D)58(32)有以下程序^include#defineN8voidfun(int*x,inti){*x=*(x+i);}tnainO{inta[N]={l,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<>{printfa[i]);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A)1313B)223403234D)1234(33)有以下程序#includeintf(intt[],intn);main{inta[4]={l,2,3,4},s;s=f(a,4);printf("%d\n",s);)intf(intt[],intn)(if(n>0)returnt[n-l]+f(t,n-1);elsereturn0;1程序運(yùn)行后的輸出結(jié)果是A)4B)10014D)6(34)有以卜程序#includeintfun0{staticintx=l;x*2;returnx;}main(){inti,s=l,for(i=l;i<=2;i++)s=fun();printf(*%d\n*,s);)程序運(yùn)行后的輸出結(jié)果是A)0B)104D)8(35)有以下程序#includettdefineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(*%d\n*,d);)程序運(yùn)行后的輸出結(jié)果是A)0B)-120-20D)10(36)設(shè)有定義:structcomplex{intreal,unreal;}datal={l,8},data2;則以下賦值語句中錯(cuò)誤的是A)data2=datal;B)data2=(2,6);C)data2.real=datal.real;D)data2.real二datai.unreal;(37)有以下程序ttinclude#includestructA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa”,1098.0};f(a);printf(*%d,%s,%6.lf\n*?a.a,a.b,a.c);)voidf(structAt){t.a=1002;strcpy(t.b,*ChangRong*);t.c=1202.0;}程序運(yùn)行后的輸出結(jié)果是A)1001,zhangDa,1098.01002,changRong,1202.01001,ehangRong,1098.01002,ZhangDa,1202.0(38)有以下定義和語句structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是A)*pw.year=1980;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);)程序運(yùn)行后的輸出結(jié)果是A)0B)102D)3(40)有以下程序^includemain(){FILE*fp;charstr[10];fp=fopen(*myfi1e.dat","w"):fputs("abc”,fp);fclose(fp);fpfopen(*myfile.data",,a++”);fprintf(fp,*%d*,28);rewind(fp);fscanf(fp,str);puts(str);fclose(fp);1程序運(yùn)行后的輸出結(jié)果是A)abc28cabc28D)因類型不一致而出錯(cuò)二、填空題(D一個(gè)隊(duì)列的初始狀態(tài)為空?,F(xiàn)將元素A,B,C,D,E,F,5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)椤?】。(2)設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針front=45(指向隊(duì)頭元素的前一位置),尾指針rear=10(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有[2]個(gè)元素。(3)設(shè)二叉樹如下:對(duì)該二叉樹進(jìn)行后序遍歷的結(jié)果為【3】o(4)軟件是[4]、數(shù)據(jù)和文檔的集合。(5)有一個(gè)學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,班級(jí),年齡),課程的關(guān)系模式為:課程(課號(hào),課程名,學(xué)時(shí)),其中兩個(gè)關(guān)系模式的鍵分別是學(xué)號(hào)和課號(hào),則關(guān)系模式選課可定義為:選課(學(xué)號(hào),[5],成績(jī))。(6)設(shè)x為int型變量,請(qǐng)寫出一個(gè)關(guān)系表達(dá)式[6],用以判斷x同時(shí)為3和7的倍數(shù)時(shí),關(guān)系表達(dá)式的值為真。(7)有以下程序^includemainO{inta=l,b=2,c=3,d=0;if(a==l)if(b!=2)if(c==3)d=l;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf(M%d\nw,d);)程序運(yùn)行后的輸出結(jié)果是[7】。(8)有以下程序#includemainO{intm,n;scanf(*%d%d*,&m,&n);while(m!=n){while(m>n)m=m-n;while(m)printf("%d\n",m);)程序運(yùn)行后,當(dāng)輸入1463<回車>時(shí),輸出結(jié)果是[8]。(9)有以下程序#includemainO{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(M%d%,a[i][j]);printf(*\n*);)程序運(yùn)行后的輸出結(jié)果是[9]0(10)有以下程序#includemainO{inta[]={l,2,3,4,5,6},*k[3],i=0;while(i<3){k[i]=&a[2*i];printf*k[i]);i++;))程序運(yùn)行后的輸出結(jié)果是【10】o(11)有以卜.程序#includemainO{inta[3][3]={{l,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");)程序運(yùn)行后的輸出結(jié)果是[11]O(12)有以下程序ttinclude#includevoidfun(char*str){chartemp;intn,i;n=strlen(str);temp=str[n-l];for(i=n-l;i>0;i-)str[i]=str[i-l];str[0]=temp;)mainO{chars[50];scanfs);fun(s);printf(*%s\n*,s);}程序運(yùn)行后輸入:己氏加長(zhǎng)回車),則輸出結(jié)果是[12]o(13)以下程序的功能是:將值為三位正整數(shù)的變量x中的數(shù)值按照個(gè)位、十位、百位的順序拆分并輸出。請(qǐng)?zhí)羁?。ttincludemain(){intx=256;printf(*%d-%d-%d\n*,[13],x/10,x/100);}(14)以卜程序用以刪除字符串所有的空格,請(qǐng)?zhí)羁铡?includemainO{chars[100]={*0urteacherteachClanguage!*};inti,j;for(i=j=0;s[i]!=>\0';i++)if(s[i]!=**){s[j]=s[i];j++;}s[j]=[14]printf( ,s);)(15)以下程序的功能是:借助指針變量找出數(shù)組元素中的最大值及其元素的下標(biāo)值。請(qǐng)?zhí)羁铡?includemain(){inta[10],*p,*s;for(p=a;p-a<10;p++)scanfp);for(p=a,s=a;p-a<10;p++)if(*p>*s)s=[15]printf(windex=%d\nM,s-a);)2010年3月計(jì)算機(jī)等級(jí)考試二級(jí)C筆試試題答案一.選擇題1-5:ADBAC6-10:BADAA11-15:BBDCC16-20:DABCA21-25:DDABD26-30:ADBCC31-35:ACBCC二.填空(1)A,,BC,D,E,5,4,3,2,1(3)EDBGHFCA(5)課號(hào)(7)4(9)123569(11)101418(13)X%100%10(15)s+136-40:BADAC⑵15(4)程序(6)(x%3==0)&&(x%7==0)(8)7(10)135(12)12fabcde(14)14s[i+l]A)定義語句出錯(cuò),A)定義語句出錯(cuò),case是關(guān)鍵字,不能用作用戶門定義標(biāo)識(shí)符B)定義語句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符C)定義語句無錯(cuò),scanf不能作為輸入函數(shù)使用D)定義語句無錯(cuò),printf不能輸出case的值2009年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A)循環(huán)隊(duì)列B)帶鏈隊(duì)列0二叉樹D)帶鏈棧(2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是A)循環(huán)隊(duì)列B)棧0隊(duì)列D)二叉樹(3)對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是A)隊(duì)頭指針是固定不變的B)隊(duì)頭指針一定大于隊(duì)尾指針C)隊(duì)頭指針一定小于隊(duì)尾指針D)隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針(4)算法的空間復(fù)雜度是指A)算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間B)算法所處理的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合0低內(nèi)聚高耦合D)高內(nèi)聚高耦合(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是A)可封裝D)自頂向下0模塊化D)逐步求精(7)軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如卜.:該圖是N-S圖PAD圖0程序流程圖D)E-R圖C語言程序設(shè)計(jì)(考試時(shí)間90分鐘,滿分100分)(8)數(shù)據(jù)庫管理系統(tǒng)是A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件0一種編譯系統(tǒng)D)一種操作系統(tǒng)(9)在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是A)橢圓圖B)矩形0菱形D)三角形(10)有三個(gè)關(guān)系R,S和T如下:其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為A)選擇B)投影0交D)并(11)以下敘述中正確的是A)程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)調(diào)試B)程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)C)程序設(shè)計(jì)的任務(wù)就是確定所用算法D)以上三種說法都不完整(12)以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是void8_8_0_unsigned(13)閱讀以下程序^includemain(){intcase;floatprintF;printf(“請(qǐng)輸入2個(gè)數(shù):”);scanf("%d%fw,&case,ftpjrintF);printf(**%d%f\nn,case,printF);)該程序編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是(14)表達(dá)式:(int)((double)9/2)-(9)%2的值是B)if((a>b)||(b>c)k=l;A)0elsek=0;B)3C)if(a<=b)k=0;C)4elseif(b<=c)k=l;D)5D>if(a>b)k=l;(15)若有定義語句:intx=10;,則表達(dá)式x-=x+x的值為elseif(b>c)k=l;A)-20elsek=0;B)-1020)有以下程序C)0#includeD)10main()(16)有以下程序{chars[]={M012xyM};inti,n=0;#includefor(i=0;s[i]!=0;i-H-)mainOif(s[i]>=,a'&&s[i]<=,z')n++;{inta=l,b=0;printf(<<%d\nM,n);printf("%d,",b=a+b);)printf(w%d\nw,a=2*b);程序運(yùn)行后的輸出結(jié)果是}A)0程序運(yùn)行后的輸出結(jié)果是B)2A)0,0C)3B)1,0D)5C)3,2(21)有以下程序D)1,2ftinclude17)設(shè)有定義:inta=l,b=2,c=3;,以下語句中執(zhí)行效果與其它三main()個(gè)不同的是{intn=2,k=0;A)if(a>b)c=a,a=b,b=c;while(k++&&n++>2);B)if(a>b){c=a,a=b,b=c;)printf(M%d%d\nw,k,n);C)if(a>b)c=a;a=b;b=c;)D)if(a>b){c=a;a二b;b=c;}程序運(yùn)行后的輸出結(jié)果是(18)有以下程序A)02#includeB)13mainO057{intc=0,k;D)12for(k=l;k<3;k-H-)(22)有以下定義語句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是switch(k)A)chara='a';{default:c+=kB)chara=>\n';case2:c++;break;C)chara=,aaf;case4:c+=2;break;D)chara='\x2d';)(23)有以下程序printf("%d\n",c);#include}mainO程序運(yùn)行后的輸出結(jié)果是{charcl,c2;A)3cl='A'+'8'-'4';B)5c2=fA'+'8'-5;C)7printf("%c,%d\n”,cl,c2);D)9!(19)以下程序段中,與語句:k=a>b?(b>c?l:O):O;功能相同的是已知字母A的ASCH碼為65,程序運(yùn)行后的輸出結(jié)果是A)if((a>b)&&(b>c))k=l;A)E,68elsek=0;B)D,69C)E,DD)輸出無定值(24)有以下程序ttincludevoidfun(intp)intd=2;p=d++;printf(“%d",p);}main()inta=l;fun(a);printf(M%d\nM,a);}程序運(yùn)行后的輸出結(jié)果是32122122(25)以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<N:I++)<p=〃〃/>{max=MIN;if(maxreturnmax;}造成錯(cuò)誤的原因是A)定義語句inti,max;中max未賦初值B)賦值語句max二MIN;中,不應(yīng)給max賦MIN值C)語句if(maxI))賦值語句max=MIN;放錯(cuò)了位置(26)有以下程序#includemainO{intm=l,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(a%d,%d,%d,%d\nw,m,n,*p,*q);}程序運(yùn)行后的輸出結(jié)果是1,2,1,21,2,2,12,1,2,12,1,1,2(27)若有定義語句:inta[4][10],*p,*q[4]:且0Wi<4,則錯(cuò)誤的賦值是p=aq[i]=a[i]p=a[i]p=&a[2][l](28)有以下程序#include#includemain(){charstr[][20]={00ne*WorldM,a0ne*Dream!”},*p=str[1]printf(w%d,w,strlen(p));printf("%s\n",p);)程序運(yùn)行后的輸出結(jié)果是9,0ne*World9,One*Dreani10,One*Dream10,One*World(29)有以下程序#includemain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]一;}break;case1:a[i[=0;)for(i=0;i<4;i++)printf(a%dw,a[i]);printf(M\nw);}3344205003040D)0304(30)有以下程序#include#includemain(){chara[10]=vabedw;printf( ,strlen(a),sizeof(a));}程序運(yùn)行后的輸出結(jié)果是7,44,108,810,10(31)下面是有關(guān)C語言字符數(shù)組的描述,其中錯(cuò)誤的是A)不可以用賦值語句給字符數(shù)組名賦字符串B)可以用輸入語句把字符串整體輸入給字符數(shù)組C)字符數(shù)組中的內(nèi)容不一定是字符串D)字符數(shù)組只能存放字符串(32)下列函數(shù)的功能是fun(char*a,char*b){while((*b=*a)!='\0'){a++,b++;}}A)將a所指字符串賦給b所指空間B)使指針b指向a所指字符串C)將a所指字符串和b所指字符串進(jìn)行比較D)檢查a和b所指字符串中是否有’\0,(33)設(shè)有以下函數(shù)voidfun(intn,char*s){ )則下面對(duì)函數(shù)指針的定義和賦值均是正確的是void(*pf)();pf=fun;viod*pf();pf-fun;void*pf():*pf=fun;void(*pf)(int,char);pf=&fun;(34)有以下程序#includeintf(intn);main(){inta=3,s;s=f(a);s=s+f(a)jprintf(M%d\nM,s);}intf(intn){staticinta=l;(37)設(shè)有定義:char*c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是charstr[]=wstringw;c=str;scanf(“%s”,c);c=getchar();*c=Mstring";(38)有以下程序*include*includestructA{inta;charb[10];doublec;);structAf(structAt);main(){structAa={1001,wZhangDa",1098.0};a=f(a);jprintf( %6.lf\nw,a.a,a.b,a.c);}structAf(structAt)(t.a=1002;strcpy(t.b,nChangRongM);t.c=l202.0;returnt;)程序運(yùn)行后的輸出結(jié)果是A)1001,ZhangDa,1098.01001,ZhangDa,1202.01001,ChangRong,1098.0n+=a++;returnn;1D)1001,ChangRong,1202.0(39)若有以下程序段intr=8;程序運(yùn)行以后的輸出結(jié)果是78910(35)有以下程序^includettdefinef(x)x*x*xmainO{inta=3,s,t;s=f(a+1);t=f((a+1));printf(a%d,%d\n*,s,t);)printf(<<%d\nw,r?l);輸出結(jié)果是16842(40)下列關(guān)于C語言文件的敘述中正確的是A)文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件B)文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件C)文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D)文件由字符序列組成,其類型只能是文本文件二、填空題(每空2分,共30分)(1)某二叉樹有5個(gè)度為2的結(jié)點(diǎn)以及3個(gè)度為1的結(jié)點(diǎn),則該二程序運(yùn)行后的輸出結(jié)果是10,6410,1064,10D)64,64(36)下面結(jié)構(gòu)體的定義語句中,錯(cuò)誤的是struct ord {int x;int y;int z;};struct ord a;struct ord {int x;int y;int z;} struct ord a;struct ord {int x;int y;int z;} a;struct {intx;inty;intz;} a;叉樹中共有【1】個(gè)結(jié)點(diǎn)。(2)程序流程圖中的菱形框表示的是[2]。(3)軟件開發(fā)過程主要分為需求分析、設(shè)計(jì)、編碼與測(cè)試四個(gè)階段,其中【3】階段產(chǎn)生“軟件需求規(guī)格說明1人(4)在數(shù)據(jù)庫技術(shù)中,實(shí)體集之間的聯(lián)系可以是一對(duì)一或一對(duì)多或多對(duì)多的,那么“學(xué)生”和“可選課程”的聯(lián)系為[4]。(5)人員基本信息一般包括:身份證號(hào),姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是【5】.(6)若有定義語句:inta=5;,則表達(dá)式:a++的值是【6】。(7)若有語句doublex=17;inty;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值為【7】o(8)以下程序運(yùn)行后的輸出結(jié)果是[8]o#includemain(){intx=20;printf(“刎",0<X<20);<p="/>printf("%d\n",0<X&&X<=""/>(9)以下程序運(yùn)行后的輸出結(jié)果是[9]o#includemain(){inta=l,b=7;do{b=b/2;a+=b;}while(b>l);printf("%d\n",a);}(10)有以下程序#includemainO{intf,fl,f2,i;fl=0;f2=l;printf(w%d%d",fl,f2);for(i=3;i<=5;i++){f=fl+f2;printf(a%dv,f);fl=f2;f2=f;)printfCa\nff);}程序運(yùn)行后的輸出結(jié)果是【10】o(11)有以下程序#includeinta=5;voidfun(intb){inta=10;a+=b;printf(,a);}mainO{intc=20;fun(c);a+=c:printf("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是[11]Ostructperson{intID;charname[12];}p;請(qǐng)將scanf(“%d",[12]);語句補(bǔ)充完整,使其能夠?yàn)榻Y(jié)構(gòu)體變量P的成員ID正確讀入數(shù)據(jù)。(13)有以下程序#includemainO{chara[20]=wHowareyou?”,b[20];scanf(w%sw,b);printf("%s%s\nw,a,b);)程序運(yùn)行時(shí)從鍵盤輸入:Howareyou?〈回車》則輸出結(jié)果為【13】o(14)有以下程序#includetypedefstruct{intnum;doubles}REC;voidfunl(RECx){x.num=23;x.s=88.5;}mainO{RECa={16,90.0};funl(a);printf(u%d\nM,a.num);)程序運(yùn)行后的輸出結(jié)果是【14】。(15)有以下程序^includefun(intx){if(x/2>0)run(x/2);printf(M%d”,x);)mainO{fun(6);printf(“\n");}程序運(yùn)行后的輸出結(jié)果是[15]o2009年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試參考答案一、選擇題(12)設(shè)有定義:(1)C(2)B(3)D(1)(6)A(7)C(8)B(9)(11)D(12)C(13)A(14)(16)1)(17)C(18)A(19)(21)D(22)C(23)A(24)(10)01123A(26)B(5)427)A(2

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論