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

下載本文檔

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

文檔簡介

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

2、系統(tǒng)能夠提供的資源比請求該資源的進程數(shù)少。(B)分析:死鎖產生原因:爭奪共享資源;進程推進順序不當6. 虛擬設備技術能將獨占設備轉換為可共享的設備,提高資源利用率。(A)7. 進程控制塊是進程存在的唯一標志。(A)&軟件維護是長期的過程,交付使用的軟件仍然需要排錯、修改和擴充。(A)9. 墨盒測試要求測試人員根據(jù)程序內部邏輯結構設計或選擇測試用例。(B)分析:白盒測試才是根據(jù)程序內部邏輯結構設計測試用例,黑盒測試是功能測試10. 軟件設計時,應力求增加模塊的內聚,減少模塊間的耦合。(A)二、選擇題(每小題1分,共5分)1. 如果進棧序列為 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. 已知某二叉樹的后序遍歷序列是dabec,中序遍歷序列是 debac,則它的前序遍歷序列是(12)。(D)cedba(D) 等待9就緒(D)多重分區(qū)管()理12 (A) acbed(B)decab(C)deabc3下列的進程狀態(tài)變化中,13)變化是不可能發(fā)生的。.13 (A)運行9就緒(B)運行9等待(C)等待9運行4很好地解決了碎片問題的存儲管理方法是(14)。.14 (A)頁式存儲管理(B)段式存儲管理(C)可變分區(qū)管5在軟件生命周期中,所花費用最多的階段是(15理)。15 (A)詳細設計(B)軟件

4、編碼(C)軟件測試(D)軟件維護第_翹分C與C+壽言程序設計(共85分)、單項選擇題(每小題1分,共10分)1. 已知int i=10;表達式"5<=i<=10"的值是(16 )。(考點:關系運算表達式)16 (A) 0(B)l(C) 10(D)沒有正確答案2. 求取滿足式1 2+22+32+ +n2a1000的n,正確的語句是(17 )。(考點:循環(huán)結構)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 (考點:循環(huán)語法)18 (A) C語言中所有的循環(huán)語句都是先判斷條件再執(zhí)行循環(huán)體(B) break語句只能中斷循環(huán)(C) continue語句可以結束所有的循環(huán)(D) C語言中,任意表達式都可作為循環(huán)條件,只要能做岀0和非0的判斷即可4. 設有以下定義:struct nodeint data;struct node *n ext;*p;則以下的語句中正確的是(19 ) o (考點:結構體指針、動態(tài)分配存儲空間函數(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. 運行以下程序的輸岀結果為(20 )o(考點:枚舉類型)# 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類型,x=100, y=200,下面程序段的輸岀結果是(21 )。(考點:逗號運算)printf ( '% d” ,(x,y);21 (A) 200(B) 100(C) 100 200(D)輸岀不確定的值7. 以下程序的輸岀結果是(22 )?(考點:帶參數(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語言中fscanf函數(shù)的正確調用形式是(考點:文件)23 (A) fscanf (文件指針,格式字符串,輸岀列表);(B) fsca nf(格式字符串,輸岀列表,文件指針);(C) fscanf(格式字符串,文件指針,輸入列表);(D) fscanf(文件指針,格式字 輸入列24 (A) if(a>b)if(a>b)9.設<c=a;a=ihtb=c=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是(24 )。(考點:if語句)(C) if(a>b) c=a;a=b;b=c;(D) if(a>

9、b) c=a;a=b;b=c;分析:if語句只能控制之后的一條執(zhí)行語句(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.以下選項中與 if(a=l)a=b; else a+; case 1: a=b; case l:a+;(D) swit(hase=l) 語句功能不同的a=bWftcea語句是 (25 )。(考點:switch 語句) case0:a+;、讀程序回答問題(每個選擇3分,共45分)1. 有如下程序:(考點:函數(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是普通值傳遞,由實參單向傳遞給形參printf("n%d,%d",i,k);/* /k是全局變量*,4,6i處輸岀結果為(26 )。26 (A) 2(B)l(C)3(D)A、B、C參考答案都不對處輸岀結

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

12、字符串末尾(B) 右移一個字符,并將最后一個字符放到字符串開頭(C) 刪除第一個字符(D) 刪除最后一個字符程序的運行結果是 (29 )。29 (A) bcdefga(B) defgabc (C) efgabcd (D) bcdefg3. 有下列程序 ( 考點:遞歸函數(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, 請回答下面兩個問題: 函數(shù) firn 的調用次數(shù)為 (30 ) 。30 (A) 5(B) 4(C) 3(D)2程序的輸出結果為 (31 ) 。31 (A) 4321(B) 1234(C) -4321(D)-4. 有下列程序 (考點:函數(shù) ( 地址參數(shù) ) 、指針運算 ) 1234z=x; x=y; y=z; 對指向的目標對象間接交換,實質 a=9,b=5對指針的目標對象自增,實質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ù)中第一個printf 輸出結果為32 )32 (A) a=9,b=5(B) a=5,b=9main 函數(shù)中第二個printf 輸出結果為(A) a=9,b=5 (B)有如下程序 ( 設其文件名為 2? 5? c)( 考點:(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 為一級字符指針1 個字符后的字printf('' % dn H ,argc); /4if(argc>2) p=argvl;p 指向第二個字符串的首地址puts(p+l); 輸出指向字符串加符串若運行該程序時,在命令提示符后輸入0/,表示回車換行符 ):2-5 filel file2 file3Z則執(zhí)行 printf( n%dn n,argc); 時,輸出結果為(34)。34 (A)l(B)2(C)3(D)4執(zhí)行 puts(p+l);時,輸出結果為 (35 )o35 (A

16、) filel(B) file2(C) ilel(D) ile26. 有下列程序 (考點:字符數(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ù)字字符串轉換成整數(shù)t=t*10+stri-*0*; i+;s=s+t; 累加之前轉換的整數(shù),若沒有則加 0強軀 fA': putchnr

17、rHE&Hitinu紅ue作用于循環(huán),用于結束本次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) 程序運行的輸岀結果為(3636 (A) 123456789(B) 9(2) 該程序的功能是(37)(C)13(D)37 (A)取岀字符串中的數(shù)字子串連接起來68450(B) 統(tǒng)計數(shù)字子串在字符串中岀現(xiàn)的次數(shù)(C) 將數(shù)字子串轉換為整數(shù)并累加(D) 將字符串中的數(shù)字字符轉換為數(shù)字,結果加起來乘以107.

18、 有如下程序:(考點:字符數(shù)組、循環(huán)、 switch語句)# 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程序的運行結果是(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)兩個字符(D)八進制數(shù)值1&在下面程序中,若 file.dat文件中原有內容為:abc,則運行程序后flle.dat文件中的內容為(40 )。(考點:文件 打開方式)# in clude <stdio.h>void mai n() FILE *fp;fp=fopen( nfile.dat n,nwn);,w,方式打開的文件是新建fprintf(fp, ndefn);將” def9,寫到 fp 所指的文件fclose(fp);40 (A

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

21、 / 平均成績;struct stud stu=2,"liuyiiig , 85? 5,3 畀 wangyong*',79.6,4,nli gang n,92.5,l, ntianling n,88.2; 定義結構體數(shù)組并初始化void mai n()char str10;int i;doprnitf( H Enter a name:*);sca nf(u%sn,str);瀚入待查詢學生的姓名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 ;若找到,輸岀該元素的各個成員后轉入下一次查詢的while循環(huán)if(? i>ANUM )printf( nNot foundAn");while( strcmp(str, H0n)!=0 );2. 函數(shù)fun的功能是:求岀無符號十進制數(shù)n中包含0的個數(shù),及各位數(shù)字的最大值。最大值通過函數(shù)值返回,0的個數(shù)通過形參指針zero帶回。在 main函數(shù)中輸入n的值,調用fim函數(shù)并輸岀結果。例如:” 300800則0的個數(shù)為4,各位數(shù)字

23、的最大值為8。請?zhí)羁铡?考點:求最值、整數(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; 取個位if(t=O) cnt+;計數(shù)器,計 0的個數(shù)if(max<t) max=t;n=n/10;/舍個位*zero =cnt; 對形參指針間接運算,將0的個數(shù)賦給其目標對象(主函數(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?以下程序的功能是把從鍵盤輸入的字符依次存放在文件testtxt中,但是要過濾掉其中的數(shù)字字符,輸入字符'并回車作為結束標志。請?zhí)羁铡?考點:文件、字符串)#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ù)字字符,則不輸岀到文件,轉入下一次循環(huán)elsefputc(ch,fp );若是非數(shù)字字符,則將ch輸岀到fp所指的文件fclose(fp);4.以下程序是建立一個帶頭結點的單向鏈表,綁隨機函數(shù)為各個結點賦值。酗fim的功能是將單結點(不包括頭結點)數(shù)據(jù)域為偶數(shù)的值累加起來,并且作為函數(shù)值返回。請?zhí)羁铡?考點:單鏈 表)# in clude <stdio.h># in clude <stdlib.h>typedef struct aaint data;數(shù)據(jù)域return向鏈表struct aa *n ext;指針域,存放下一個結點的地址NODE;/typedef自定義類型,新的結構體類型名為NODEint fun(NODE *h)int sum=O;NODE切;定義結構體類型指針pp=(2) h->next ; p指向跳過頭結點后的第一個結點wh

溫馨提示

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

評論

0/150

提交評論