C語(yǔ)言答案及分析_第1頁(yè)
C語(yǔ)言答案及分析_第2頁(yè)
C語(yǔ)言答案及分析_第3頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、四川省普通高等學(xué)校計(jì)算機(jī)應(yīng)用知識(shí)和能力第三十三次等級(jí)考試二級(jí)(C與C+語(yǔ)言)筆試試卷時(shí)間:2010年10月23日上午 9:00 11:00第一部分軟件技術(shù)基礎(chǔ)(共15分)-、是非判斷題(每小題1分,共10分)(判斷下列各題是否正確,如正確,在客觀答題紙上對(duì)應(yīng)編號(hào)選A,否則選B)1. 棧是一種先進(jìn)先出的線(xiàn)性表,只能采用順序存儲(chǔ)結(jié)構(gòu)。(B)分析:也可以釆用鏈?zhǔn)酱鎯?chǔ)2. 從循環(huán)鏈表中任意一個(gè)結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表。(A)3. 為了便于對(duì)單鏈表實(shí)現(xiàn)結(jié)點(diǎn)的插入、刪除操作,通常增設(shè)一個(gè)表頭結(jié)點(diǎn)。(A)4. 隊(duì)列在操作系統(tǒng)的各種資源請(qǐng)求排隊(duì)及數(shù)據(jù)緩沖區(qū)管理中廣泛使用。(A)5. 死鎖產(chǎn)生的根本原因是操作

2、系統(tǒng)能夠提供的資源比請(qǐng)求該資源的進(jìn)程數(shù)少。(B)分析:死鎖產(chǎn)生原因:爭(zhēng)奪共享資源;進(jìn)程推進(jìn)順序不當(dāng)6. 虛擬設(shè)備技術(shù)能將獨(dú)占設(shè)備轉(zhuǎn)換為可共享的設(shè)備,提高資源利用率。(A)7. 進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)志。(A)&軟件維護(hù)是長(zhǎng)期的過(guò)程,交付使用的軟件仍然需要排錯(cuò)、修改和擴(kuò)充。(A)9. 墨盒測(cè)試要求測(cè)試人員根據(jù)程序內(nèi)部邏輯結(jié)構(gòu)設(shè)計(jì)或選擇測(cè)試用例。(B)分析:白盒測(cè)試才是根據(jù)程序內(nèi)部邏輯結(jié)構(gòu)設(shè)計(jì)測(cè)試用例,黑盒測(cè)試是功能測(cè)試10. 軟件設(shè)計(jì)時(shí),應(yīng)力求增加模塊的內(nèi)聚,減少模塊間的耦合。(A)二、選擇題(每小題1分,共5分)1. 如果進(jìn)棧序列為 1、2、3、4,則可能的岀棧序列是(11)。1

3、1 (A) 3、1、4、2( B) 2、4、3、1(C) 3、4、1、2( D)任意順序2. 已知某二叉樹(shù)的后序遍歷序列是dabec,中序遍歷序列是 debac,則它的前序遍歷序列是(12)。(D)cedba(D) 等待9就緒(D)多重分區(qū)管()理12 (A) acbed(B)decab(C)deabc3下列的進(jìn)程狀態(tài)變化中,13)變化是不可能發(fā)生的。.13 (A)運(yùn)行9就緒(B)運(yùn)行9等待(C)等待9運(yùn)行4很好地解決了碎片問(wèn)題的存儲(chǔ)管理方法是(14)。.14 (A)頁(yè)式存儲(chǔ)管理(B)段式存儲(chǔ)管理(C)可變分區(qū)管5在軟件生命周期中,所花費(fèi)用最多的階段是(15理)。15 (A)詳細(xì)設(shè)計(jì)(B)軟件

4、編碼(C)軟件測(cè)試(D)軟件維護(hù)第_翹分C與C+壽言程序設(shè)計(jì)(共85分)、單項(xiàng)選擇題(每小題1分,共10分)1. 已知int i=10;表達(dá)式"5<=i<=10"的值是(16 )。(考點(diǎn):關(guān)系運(yùn)算表達(dá)式)16 (A) 0(B)l(C) 10(D)沒(méi)有正確答案2. 求取滿(mǎn)足式1 2+22+32+ +n2a1000的n,正確的語(yǔ)句是(17 )。(考點(diǎn):循環(huán)結(jié)構(gòu))17 (A)for(i=l,s=0;(s=s+i*i)<=1000; n=i+);(B) for(i=l,s=0;(s=s+i*i)<=1000; n=+i);(C) for(i=l,s=0;(s

5、=s+i*+i)<=1000; n=i);(D) for(i=l,s=0;(s=s+i*i+)<=1000; n=i);3. 以下敘述中正確的是(18 )o (考點(diǎn):循環(huán)語(yǔ)法)18 (A) C語(yǔ)言中所有的循環(huán)語(yǔ)句都是先判斷條件再執(zhí)行循環(huán)體(B) break語(yǔ)句只能中斷循環(huán)(C) continue語(yǔ)句可以結(jié)束所有的循環(huán)(D) C語(yǔ)言中,任意表達(dá)式都可作為循環(huán)條件,只要能做岀0和非0的判斷即可4. 設(shè)有以下定義:struct nodeint data;struct node *n ext;*p;則以下的語(yǔ)句中正確的是(19 ) o (考點(diǎn):結(jié)構(gòu)體指針、動(dòng)態(tài)分配存儲(chǔ)空間函數(shù))19 (A)

6、 p=malloc(sizeof(struct no de) (B) p=(struct node *)malloc(sizeof(struct no de)(C) *p=(struct node *)malloc(4) (D) p=(struct node )malloc(sizeof(struct no de)5. 運(yùn)行以下程序的輸岀結(jié)果為(20 )o(考點(diǎn):枚舉類(lèi)型)# in clude <stdio.h>void mai n()enum color Black=l,Red,Blue,Gree n;enum color cl,c2;cl=Red; c2=Blue;printf

7、( n%d,%dn n,cl,c2);20 (A) 2,3(B) 1,2(C) 1,1(D) 0,-16. 若變量x和y都為int類(lèi)型,x=100, y=200,下面程序段的輸岀結(jié)果是(21 )。(考點(diǎn):逗號(hào)運(yùn)算)printf ( '% d” ,(x,y);21 (A) 200(B) 100(C) 100 200(D)輸岀不確定的值7. 以下程序的輸岀結(jié)果是(22 )?(考點(diǎn):帶參數(shù)的宏)# in clude <stdio.h># define f(x) x*xvoid mai n()int a=6,b=2,c; c=f(a+b)/f(a-b);printf (”n”,c)

8、;22 (A) -2.5(B) -2(C) 64(D) 4& C語(yǔ)言中fscanf函數(shù)的正確調(diào)用形式是(考點(diǎn):文件)23 (A) fscanf (文件指針,格式字符串,輸岀列表);(B) fsca nf(格式字符串,輸岀列表,文件指針);(C) fscanf(格式字符串,文件指針,輸入列表);(D) fscanf(文件指針,格式字 輸入列24 (A) if(a>b)if(a>b)9.設(shè)<c=a;a=ihtb=c=2,c=3;,以下語(yǔ)句中執(zhí)行效果與其它三個(gè)不同的是(24 )。(考點(diǎn):if語(yǔ)句)(C) if(a>b) c=a;a=b;b=c;(D) if(a>

9、b) c=a;a=b;b=c;分析:if語(yǔ)句只能控制之后的一條執(zhí)行語(yǔ)句(B) switch(a=l)25 (A) switch(a)case 1: a=b;break;case 0: a=b;break;default:a+;(C) switch (a)default:a+;brea10.以下選項(xiàng)中與 if(a=l)a=b; else a+; case 1: a=b; case l:a+;(D) swit(hase=l) 語(yǔ)句功能不同的a=bWftcea語(yǔ)句是 (25 )。(考點(diǎn):switch 語(yǔ)句) case0:a+;、讀程序回答問(wèn)題(每個(gè)選擇3分,共45分)1. 有如下程序:(考點(diǎn):函數(shù)、

10、變量的作用域)# in clude <stdio.h>int k=l; 全局變量 void fun (i nt m) m=4 m+=k; k+=m; 此處用到的k是全局變量, m=5, k=6 char k='D'k為局部變量printf("n%d",k-C);/* */Ivoid main()int i=4;fun(i); i是普通值傳遞,由實(shí)參單向傳遞給形參printf("n%d,%d",i,k);/* /k是全局變量*,4,6i處輸岀結(jié)果為(26 )。26 (A) 2(B)l(C)3(D)A、B、C參考答案都不對(duì)處輸岀結(jié)

11、果為(27)。27 (A) 4,1(B) 5,6(C) 4,6(D)A、B、C參考答案都不對(duì)2.有如下程序(考點(diǎn):函數(shù)、字符數(shù)組)void fun(char *s)int i;char c;c=s0; /c 暫存第一個(gè)字符 for(i=l;si!= ,0,;i+)si-l=si; 從第二個(gè)字符開(kāi)始到末尾,每個(gè)字符左移一個(gè)位置 si-l=c; 將第一個(gè)字符放到字符串的末尾void main()char s10= nabcdefg n;int i;for(i=l;i<=3;i+)fun(s);puts(s);函數(shù) fun 的功能是 ( 28 )o28 (A) 左移一個(gè)字符,并將第一個(gè)字符放到

12、字符串末尾(B) 右移一個(gè)字符,并將最后一個(gè)字符放到字符串開(kāi)頭(C) 刪除第一個(gè)字符(D) 刪除最后一個(gè)字符程序的運(yùn)行結(jié)果是 (29 )。29 (A) bcdefga(B) defgabc (C) efgabcd (D) bcdefg3. 有下列程序 ( 考點(diǎn):遞歸函數(shù) )# include <stdio.h>void fun(int n)int m; m=n/10;if(m!=0) fun(m); putchar(n%10+ ,0,);void main()int n;scanf( H%d n,&n);if(n<0) putcharC*-*);n=-n;fun(n)

13、;若輸入整數(shù) "234, 請(qǐng)回答下面兩個(gè)問(wèn)題: 函數(shù) firn 的調(diào)用次數(shù)為 (30 ) 。30 (A) 5(B) 4(C) 3(D)2程序的輸出結(jié)果為 (31 ) 。31 (A) 4321(B) 1234(C) -4321(D)-4. 有下列程序 (考點(diǎn):函數(shù) ( 地址參數(shù) ) 、指針運(yùn)算 ) 1234z=x; x=y; y=z; 對(duì)指向的目標(biāo)對(duì)象間接交換,實(shí)質(zhì) a=9,b=5對(duì)指針的目標(biāo)對(duì)象自增,實(shí)質(zhì)a=10 ?b=6void fun2(int *x,int *y) int z;z=*x; *x=*y; *y=z; CM+; (*y)+;void main()int a=5,b=

14、9;funl(&a,&b);printf( na=%d,b=%dn M ,a,b);fun2(&a,&b);printf( H a=%d,b=%dn n,a,b);5.main 函數(shù)中第一個(gè)printf 輸出結(jié)果為32 )32 (A) a=9,b=5(B) a=5,b=9main 函數(shù)中第二個(gè)printf 輸出結(jié)果為(A) a=9,b=5 (B)有如下程序 ( 設(shè)其文件名為 2? 5? c)( 考點(diǎn):(C) a=10,b=6)。(C)命令 1參數(shù)=6)(D) a=6,b=10(D)a=6,b=10# include <stdio.h> void ma

15、in(int argc,char *argv) /argc = 4int i; char *p; /p 為一級(jí)字符指針1 個(gè)字符后的字printf('' % dn H ,argc); /4if(argc>2) p=argvl;p 指向第二個(gè)字符串的首地址puts(p+l); 輸出指向字符串加符串若運(yùn)行該程序時(shí),在命令提示符后輸入0/,表示回車(chē)換行符 ):2-5 filel file2 file3Z則執(zhí)行 printf( n%dn n,argc); 時(shí),輸出結(jié)果為(34)。34 (A)l(B)2(C)3(D)4執(zhí)行 puts(p+l);時(shí),輸出結(jié)果為 (35 )o35 (A

16、) filel(B) file2(C) ilel(D) ile26. 有下列程序 (考點(diǎn):字符數(shù)組、函數(shù) ( 地址參數(shù) )# include <stdio.h># include <string.h>long fun(char str)int i; long s=O,t;for(i=0; stri!= ,O ,;i+)t=o ;while(stri>= ,0, && stri<= ,9,) 將連續(xù)的數(shù)字字符串轉(zhuǎn)換成整數(shù)t=t*10+stri-*0*; i+;s=s+t; 累加之前轉(zhuǎn)換的整數(shù),若沒(méi)有則加 0強(qiáng)軀 fA': putchnr

17、rHE&Hitinu紅ue作用于循環(huán),用于結(jié)束本次return s;void mai n()char stri ng= nwelcomel23To456Sichua n789 n; lo ng len;len=fun( str in g);printf( n%ldn n,len);(1) 程序運(yùn)行的輸岀結(jié)果為(3636 (A) 123456789(B) 9(2) 該程序的功能是(37)(C)13(D)37 (A)取岀字符串中的數(shù)字子串連接起來(lái)68450(B) 統(tǒng)計(jì)數(shù)字子串在字符串中岀現(xiàn)的次數(shù)(C) 將數(shù)字子串轉(zhuǎn)換為整數(shù)并累加(D) 將字符串中的數(shù)字字符轉(zhuǎn)換為數(shù)字,結(jié)果加起來(lái)乘以107.

18、 有如下程序:(考點(diǎn):字符數(shù)組、循環(huán)、 switch語(yǔ)句)# in clude <stdio.h>void mai n() static char s="SSSWiL_TECHlHWlWALLMPl" /值為整數(shù) 9,值為整數(shù)1 intj;char ch; fora=2;(ch=sj)!=f0l;j+)-"switch(ch)f、putchar(*);printf( nnH);%1程序的運(yùn)行結(jié)果是(38 )。38 (A) SWi TCH*#(B) SSSWi TCH*#(C) SWi TCH*#W# (D) SSSWi L TECHWWALLMP%1

19、字符串"SSSWiLTECH111W1WALLMP1" 中的 “1”是(39)。39 (A)字符1(B)十制制數(shù)值1(C)兩個(gè)字符(D)八進(jìn)制數(shù)值1&在下面程序中,若 file.dat文件中原有內(nèi)容為:abc,則運(yùn)行程序后flle.dat文件中的內(nèi)容為(40 )。(考點(diǎn):文件 打開(kāi)方式)# in clude <stdio.h>void mai n() FILE *fp;fp=fopen( nfile.dat n,nwn);,w,方式打開(kāi)的文件是新建fprintf(fp, ndefn);將” def9,寫(xiě)到 fp 所指的文件fclose(fp);40 (A

20、) abcdef(B) abc(C) def(D) NULL注意:請(qǐng)把下面“程序填空”中各小題答案寫(xiě)在主觀題答題紙上每一個(gè)空只填一個(gè)語(yǔ)句或一個(gè)語(yǔ)句所缺的部分內(nèi)容三、程序填空(每空2分,共30分)1.下面程序的功能是按學(xué)生的姓名(假設(shè)沒(méi)有重名)查詢(xún)其成績(jī)排名和平均成績(jī)。查詢(xún)可以連續(xù)進(jìn)行,直到輸入0時(shí)查詢(xún)結(jié)束。請(qǐng)?zhí)羁铡?考點(diǎn):結(jié)構(gòu)體類(lèi)型,順序查找算法 )# in clude <stdio.h># in clude <stri ng.h># defi ne NUM 4struct stud定義結(jié)構(gòu)體類(lèi)型int code;排名char *n ame;姓名float score;

21、 / 平均成績(jī);struct stud stu=2,"liuyiiig , 85? 5,3 畀 wangyong*',79.6,4,nli gang n,92.5,l, ntianling n,88.2; 定義結(jié)構(gòu)體數(shù)組并初始化void mai n()char str10;int i;doprnitf( H Enter a name:*);sca nf(u%sn,str);瀚入待查詢(xún)學(xué)生的姓名for(i=0;i<NUM;i+)if(strcmp ( 9Str)=0) printf( nName : %sn n,);printf( u

22、Code: % 3dn * * ,stu i.code);printf( nAverage: %5.1fn n,suti.score);? break ;若找到,輸岀該元素的各個(gè)成員后轉(zhuǎn)入下一次查詢(xún)的while循環(huán)if(? i>ANUM )printf( nNot foundAn");while( strcmp(str, H0n)!=0 );2. 函數(shù)fun的功能是:求岀無(wú)符號(hào)十進(jìn)制數(shù)n中包含0的個(gè)數(shù),及各位數(shù)字的最大值。最大值通過(guò)函數(shù)值返回,0的個(gè)數(shù)通過(guò)形參指針zero帶回。在 main函數(shù)中輸入n的值,調(diào)用fim函數(shù)并輸岀結(jié)果。例如:” 300800則0的個(gè)數(shù)為4,各位數(shù)字

23、的最大值為8。請(qǐng)?zhí)羁铡?考點(diǎn):求最值、整數(shù)的分解算法)# in clude <stdio.h> int fun(un sig ned int n ,i nt *zero)int cn t=O,max=O,t ;while( n!=0)t=? n%10; 取個(gè)位if(t=O) cnt+;計(jì)數(shù)器,計(jì) 0的個(gè)數(shù)if(max<t) max=t;n=n/10;/舍個(gè)位*zero =cnt; 對(duì)形參指針間接運(yùn)算,將0的個(gè)數(shù)賦給其目標(biāo)對(duì)象(主函數(shù)中的zero變量)max;void mai n() un sig ned int n;int zero,max;printf( nInputn:

24、n);scanf(n%u H,&n);max=fun ( n, &zero );printf( nmax=%d,zero=%dnn,max,zero);3?以下程序的功能是把從鍵盤(pán)輸入的字符依次存放在文件testtxt中,但是要過(guò)濾掉其中的數(shù)字字符,輸入字符'并回車(chē)作為結(jié)束標(biāo)志。請(qǐng)?zhí)羁铡?考點(diǎn):文件、字符串)#i nclude <stdio.h>void mai n() FILE *fp;char ch;char fname12=* * testtxt *1; if(fp=fopen( fname, nw*,)= NULL )printf( HFile op

25、en error!'n M);else printf( nPlease enter characterswhile(ch=getchar()!=* %')if(ch>= ,0, && ch<= 9)continue ;若ch是數(shù)字字符,則不輸岀到文件,轉(zhuǎn)入下一次循環(huán)elsefputc(ch,fp );若是非數(shù)字字符,則將ch輸岀到fp所指的文件fclose(fp);4.以下程序是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,綁隨機(jī)函數(shù)為各個(gè)結(jié)點(diǎn)賦值。酗fim的功能是將單結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回。請(qǐng)?zhí)羁铡?考點(diǎn):?jiǎn)捂?表)# in clude <stdio.h># in clude <stdlib.h>typedef struct aaint data;數(shù)據(jù)域return向鏈表struct aa *n ext;指針域,存放下一個(gè)結(jié)點(diǎn)的地址NODE;/typedef自定義類(lèi)型,新的結(jié)構(gòu)體類(lèi)型名為NODEint fun(NODE *h)int sum=O;NODE切;定義結(jié)構(gòu)體類(lèi)型指針pp=(2) h->next ; p指向跳過(guò)頭結(jié)點(diǎn)后的第一個(gè)結(jié)點(diǎn)wh

溫馨提示

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

評(píng)論

0/150

提交評(píng)論