版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、四川省普通高等學(xué)校計(jì)算機(jī)應(yīng)用知識和能力第三十二次等級考試二級(C與C+語言) 筆 試 試 卷時(shí)間: 2010年4月 17 日 上午 9:0011:00第一部分軟件技術(shù)基礎(chǔ)(共15分)一、是非判斷題(每小題1分,共10分)( 判斷下列各題是否正確,如正確,在客觀答題紙上對應(yīng)編號選A,否則選B )1. 在程序設(shè)計(jì)中,常用一維數(shù)組來表示線性表的順序存儲空間。( 1 )2. 軟件測試的目的是為用戶提供沒有錯(cuò)誤的程序。( 2 )3. 棧頂?shù)奈恢弥荒苓M(jìn)行進(jìn)棧操作不能進(jìn)行退棧操作。( 3 )4. 處于等待狀態(tài)的進(jìn)程,若其等待的事件已發(fā)生,就立即轉(zhuǎn)入運(yùn)行狀態(tài)。( 4 )5. 線性表若采用鏈?zhǔn)酱鎯Ρ硎緯r(shí)其結(jié)點(diǎn)之
2、間的存儲單元地址可以不連續(xù)。( 5 )6. 在進(jìn)行插入排序時(shí),其數(shù)據(jù)比較次數(shù)與數(shù)據(jù)的初始排列有關(guān)。( 6 )7. 數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯關(guān)系上描述數(shù)據(jù),它與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān),是獨(dú)立于計(jì)算機(jī)的。( 7 )8. 在操作系統(tǒng)中,進(jìn)程最基本的特征是靜態(tài)性和并發(fā)性。( 8 )9. 軟件危機(jī)是由于軟件產(chǎn)品過多而產(chǎn)生的。( 9 )10.面向過程系統(tǒng)需求分析使用的主要工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。( 10 )二、選擇題(每小題1分,共5分)1. 進(jìn)程從運(yùn)行狀態(tài)進(jìn)入就緒狀態(tài)的原因可能是( 11 ) 。 11 (A) 時(shí)間片用完(B) 等待某一事件(C) 等待的事件已發(fā)生(D) 被選中占有處理機(jī)2. 需求分析中開發(fā)
3、人員主要從用戶那里了解( 12 )。 12 (A) 軟件怎樣做(B) 軟件做什么(C) 輸入的信息(D) 軟件的測試3. 隊(duì)列的操作原則是( 13 )。 13 (A) 先進(jìn)后出(B) 先進(jìn)先出(C) 只進(jìn)不出(D) 只出不進(jìn)4. 在需要經(jīng)常查找結(jié)點(diǎn)的前驅(qū)后后繼的情況下,使用( 14 )比較合適。 14 (A) 單鏈表(B) 循環(huán)鏈表(C) 雙鏈表(D) 順序表5. 任何兩個(gè)并發(fā)進(jìn)程之間 ( 15 )。 15 (A) 一定存在互斥關(guān)系 (B) 一定存在同步關(guān)系 (C) 一定彼此獨(dú)立無關(guān)(D) 可能存在同步或互斥關(guān)系第二部分C與C+語言程序設(shè)計(jì)(共85分)一、單項(xiàng)選擇題 ( 每小題1分,共10分
4、) 1. 若x和y為double類型,則表達(dá)式x=1,y=x+3/2的值為( 16 ) 。(考點(diǎn):數(shù)據(jù)類型、運(yùn)算符)16 (A) 1(B) 2(C) 2.0(D) 2.5 2. 如果a,b,c,x,y均為int型變量,x=5,y=10,則執(zhí)行下面語句后,a,b,c的值分別為( 17 )。a=(-y=x+)?-y:+x; (考點(diǎn):數(shù)據(jù)類型、運(yùn)算符)b=y+;c=x;17 (A) a=7,b=9,c=7(B) a=7,b=9,c=6(C) z=6,b=9,c=7(D) z=6,b=9,c=6 3. 執(zhí)行下面語句段的輸出結(jié)果是( 18 )。(考點(diǎn):邏輯運(yùn)算符)int i=1,j=1,k=2;if(
5、(j+|k+)&i+) printf(%d,%d,%dn, i, j , k );18 (A) 1 , 1 , 2(B) 2 , 2 , 1(C) 2 , 2 , 2(D) 2 , 2 , 3 4. 若要求表示 “a不等于0”的關(guān)系,則不能正確表示這一關(guān)系的表達(dá)式為( 19 )。(考點(diǎn):關(guān)系運(yùn)算)19 (A) a0(B) a(C) a0|aa(B) p-b+(C) p-a+(D) (p+)-a 7. 以下能對二維數(shù)組a進(jìn)行正確初始化的是( 22 )。(考點(diǎn):二維數(shù)組)22 (A) int a2=1,0,1,5,2,3;(B) int a3=1,2,3,4,5,6;(C) int a24=1,2
6、,3,4,5,6;(D) int a3=1,0,1,1,1; 8. 有以下結(jié)構(gòu)體說明和變量定義:(考點(diǎn):鏈表操作)struct node int data; Struct node *next;*p,*q,*r;建立如圖所示的鏈表結(jié)構(gòu),指針變量p、q分別指向如圖所示的結(jié)點(diǎn),指針變量r指向一新結(jié)點(diǎn),則可以實(shí)現(xiàn)將r指向的結(jié)點(diǎn)插入到p、q所指結(jié)點(diǎn)之間的語句組是( 23 )。r4 NULL268pqhead23 (A) q=r; p-next=q-next;(B) p-next=r; r-next=p-next;(C) r-next=q; p-next=r;(D) p=r; r-next=q; 9.
7、以下程序的運(yùn)行結(jié)果為( 24 )。(考點(diǎn):宏定義)# define # define PT 3.5# define S(x) PT*x*xvoid main() int a=1,b=2; printf(%4.1fn, S(a+b) );24 (A) 14.0(B) 31.5(C) 7.5(D) 10.5 10. 下面程序段的運(yùn)行結(jié)果為 ( 25 ) 。(考點(diǎn):位運(yùn)算)int a=9,b=020;printf(%on, a&b1 );25 (A) 40(B) 41(C) 42(D) 43二、讀程序回答問題 ( 每個(gè)選擇3分,共45分 ) 1. 有如下程序:(考點(diǎn):字符數(shù)組、函數(shù)(地址參數(shù))int
8、 count(char *str,char substr20) int i,j,k,num=0; for(i=0; *(str+i)!=0; i+) j=i; k=0; while(substrk=strj) k+;j+; if(substrk=0) num+; return num;void main() char str80,substr20; gets(str); gets(substr); printf(%dn,count(str,substr);(1) 若運(yùn)行程序時(shí)輸入abcdabad和ab兩個(gè)字符串,則輸出結(jié)果為( 26 )。26 (A) 3 (B) 4(C) 2(D) 11(2)
9、 該程序的功能是( 27 )。27 (A) 比較兩個(gè)字符串str和substr的大小(B) 統(tǒng)計(jì)子串substr在母串str中出現(xiàn)的次數(shù)(C) 將子串substr復(fù)制到母串str中(D) 統(tǒng)計(jì)兩個(gè)字符串中字符的總個(gè)數(shù) 2. 有下列程序(考點(diǎn):函數(shù))# include int fun(int a,int b) static c=0; if(ab) c=c+a; else c=c+b; return c;void main() int a=2,b=5,c=6,d; d=fun(2*a,fun(b,c); printf(%d,d);(1) fun(2*a,fun(b,c)的函數(shù)調(diào)用中,實(shí)參的個(gè)數(shù)為(
10、 28 )。28 (A) 1 (B) 2(C) 3(D) 4(2) 程序的運(yùn)行結(jié)果是( 29 )。29 (A) 6 (B) 10(C) 12(D) 15 3. 有下列程序(考點(diǎn):帶參數(shù)的宏定義)# include # define M(x,y) (x%y=1)?1:0)int fun(int *a,int n) int i,s=0; for(i=0;in;i+) if( M(ai,2) & M(ai,3) ) s=s+ai; return s;void main() int a=1,2,3,4,5,6,7; printf(%dn,fun(a,7);(1) 宏調(diào)用M(ai,2) & M(ai,3
11、)為真時(shí)所要表達(dá)的是( 30 )。30 (A) 判斷ai是否能被2或3整除(B) 判斷ai是否能被2和3整除(C) 判斷ai被2或3整除時(shí),是否至少有一種情況余1(D) 判斷ai被2和3整除時(shí),是否都余1(2) 程序的運(yùn)行結(jié)果是( 31 )。31 (A) 15 (B) 6(C) 16(D) 8 4. 有下列程序(考點(diǎn):函數(shù)(地址參數(shù))、指針運(yùn)算)# include stdio.hvoid prt(int *x,int *y,int *z) printf(%d,%d,%dn,+*x,+*y,*(z+);void main() int a=10,b=40,c=20; prt(&a,&b,&c);
12、prt(&a,&b,&c);(1) 第一次調(diào)用函數(shù)prt的運(yùn)行結(jié)果是( 32 )。32 (A) 11,42,31(B) 11,41,20(C) 11,21,40(D) 11,41,21(2) 第二次調(diào)用函數(shù)prt的運(yùn)行結(jié)果是( 33 )。33 (A) 12,42,20(B) 12,22,41(C) 11,21,41(D) 12,42,22 5. 有如下程序(考點(diǎn):全局變量和局部變量、函數(shù)(地址參數(shù))、)# include int b=1;int fun(int *a) int b=0; b=b+a0; return b;void main() int a=1,2,3,4,5,6,i; for(
13、i=0;i2;i+) b=b+fun(a+i); printf(%d ,b); (1) 程序的運(yùn)行結(jié)果是( 34 )。34 (A) 2 4(B) 4 12(C) 2 3(D) 4 10(2) 若將函數(shù)fun中的定義“int b=0;”去掉,則程序的運(yùn)行結(jié)果為( 35 )。35 (A) 2 4(B) 4 12(C) 2 3(D) 4 10 6. 有如下程序(考點(diǎn):字符數(shù)組、函數(shù)(地址參數(shù))、邏輯表達(dá)式)#include void fun(char *s,char *t1,char *t2) int i,j=0; for(i=0;si!=0;i+) if(i%2&(si=a&si=0&si=9)
14、t2j=si; j+; t1i=t2j=0;void main() char s20=2abcde3fg45,t120,t220; fun(s,t1,t2); puts(t1); puts(t2);(1)程序中第一個(gè)puts的輸出結(jié)果為( 36 )36 (A) abcdefg(B) 2345(C) 2AbCdE3Fg45(D) 2aBcDe3fG45(2)程序中第二個(gè)puts的輸出結(jié)果為( 37 )37 (A) abcdefg(B) 2345(C) 2AbCdE3Fg45(D) 2aBcDe3fG45 7. 有如下程序:(考點(diǎn):命令行參數(shù)、宏定義、條件運(yùn)算符)# include # defin
15、e IsAlpha(c) c=a&c=z?1:0void main(int argc,int *argv) char *str,cx; int cn=0; if(argc2) return; str=(*+argv); while(*str) cx=(*str+); if(IsAlpha(cx) cn+; printf(%dn,cn); 若上述程序經(jīng)編譯連接后形成的可執(zhí)行文件名為:2-8.exe (1) 當(dāng)輸入命令行: 2-8.exe 2abHc abA2時(shí),輸出為( 38 )。38 (A) 5 (B) 3(C) 1(D) 2 (2) 上述程序的功能是( 39 )。39 (A) 命令行第一參數(shù)
16、2abHc中出現(xiàn)的小寫字母個(gè)數(shù)(B) 命令行第一參數(shù)2abHc中出現(xiàn)的大寫字母個(gè)數(shù)(C) 命令行第二參數(shù)abA2中出現(xiàn)的小寫字母個(gè)數(shù)(D) 命令行第二參數(shù)abA2中出現(xiàn)的大寫字母個(gè)數(shù) 8. 有如下程序:(考點(diǎn):文件、大小寫字母轉(zhuǎn)換方法 )# include void main() char ch; FILE *fp; if(fp=fopen(test.dat,r+)=NULL) printf(Can not open file.n); exit(0); ch=fgetc(fp); while(ch!=EOF) if(ch=a&ch=A&ch=Z) ch+=32; putchar(ch); ch
17、=fgetc(fp); fclose(fp);若磁盤文件test.dat中的內(nèi)容為ab12HD,則程序運(yùn)行結(jié)果為( 40 )。40 (A) ab12HD(B) Ab12hD(C) aB12Hd(D) AB12hd注意: 請把下面“程序填空”中各小題答案寫在主觀題答題紙上 每一個(gè)空只填一個(gè)語句或一個(gè)語句所缺的部分內(nèi)容三、程序填空 ( 每空2分,共30分 ) 1. 以下程序能計(jì)算數(shù)列1/2,3/4,1/6,3/8,1/10,3/12的前15項(xiàng)之和。請?zhí)羁?。(考點(diǎn):序列處理算法)# include # define N 15void main() int i; double sum=0.0,a,b=
18、0.0; for(i=0;iN;i+) if( ) a= ; else a=1.0; b+=2.0; sum+= ; printf(1/2+3/4+1/6.+1/30=%fn,sum); 2. 一結(jié)構(gòu)體數(shù)組中放置了10名學(xué)生的學(xué)號和成績(成績互不相同),程序功能是求出學(xué)生的最高分,輸出他的學(xué)號和成績。請?zhí)羁?。(考點(diǎn):結(jié)構(gòu)體數(shù)組、求最值算法)# include typedef struct sutdent char no10; int score;ST;void main() ST s10=A01,65,A02,70,A03,60,A04,84,A05,82, A06,90,A07,75,A08
19、,72,A09,95,A10,93; int max,i,maxi; max=s0.score; maxi=0; for(i=1;i10;i+) if(si.score max) max= ; maxi= ; printf(Max: No %s; Score %dn,smaxi.no,smaxi.score); 3. insert()函數(shù)在一維數(shù)組y中把x插到下標(biāo)為i的元素之前,i0。如果i大于等于元素個(gè)數(shù)則插在末尾。原有的元素個(gè)數(shù)存放在指針變量n所指的變量中。請?zhí)羁?。(考點(diǎn):數(shù)組、插入元素算法)# include # define N 11void insert(int y,int *n,i
20、nt x,int i) int j; if(i*n) for(j=*n-1; ; j-) =yj; else i=*n; yi= ; (*n)+;void main() int yN=0,1,2,3,4,5,6,7,8,9,x,i,*n,j; j=N-1; printf(nPlease input x: ); scanf(%d,&x); printf(nPlease input i: ); scanf(%d,&i); insert(y,&j,x,i); for(j=0;jN;j+) printf(%d ,yj); 4. 下面程序能將Hello!反向打印出來。請?zhí)羁?。(考點(diǎn):函數(shù)(地址參數(shù))、字
21、符數(shù)組、遞歸算法)# include void main() int print_hello(char *); print_hello(nHello!n);int print_hello(char *string) char *str=string; if(*str= ) return; while(*str) ; -str; printf(%c,*str); ; print_hello(string); 5. 函數(shù)fun的功能是:根據(jù)以下公式計(jì)算s,計(jì)算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請?zhí)羁铡?(考點(diǎn):循環(huán)、序列處理算法)# include void main()
22、 void fun(float *,int ); float a; int k=2; fun(&a,k); printf(%fn,a);void fun(float *sn,int n) float s=0.0,w,f=-1.0; int i=0; for(i=0;i=n;i+) f= *f; w=f/ ; s+=w; =s;(第一套)(60分鐘)一、程序調(diào)試題(文件名為test1-1.c) (40分)在main函數(shù)中分別輸入兩個(gè)字符串s和t,調(diào)用fun函數(shù),并將結(jié)果輸出到屏幕和文本文件test1-1.txt中。函數(shù)fun的功能是:找出字符串s中,在s 和t中都出現(xiàn)過的字符,并將其放入字符串p
23、中。例如:假設(shè)字符串s 為“abcdaef”,字符串t為“catbrd”,則輸出“abcda”。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include void fun(char *s,char *t,char p) int i,j,k=0; for(i=0;si!=0;i+) for(j=0;tj!=0;j+) if(si=ti) pk=si; k+; break; pk-1=0;void main() FILE *fp; char s80,t80,p80; if(fp=fopen(test1-1.txt,r)=NULL) printf
24、(Cannot open the file.n); exit(0); gets(s); gets(t); fun(s,t,p); printf(Result:n); puts(p); fputc(p,fp); fclose(fp);二、編寫程序(程序文件名命為test1-2.c)(60分)(1)請編寫函數(shù)fun,它的功能是:求兩個(gè)整數(shù)x和y的最大公約數(shù),最大公約數(shù)作為函數(shù)值返回。(2)在main函數(shù)中輸入三個(gè)整數(shù),通過調(diào)用fun函數(shù)求出三個(gè)數(shù)的最大公約數(shù),并輸出結(jié)果。(第二套)(60分鐘)一、程序調(diào)試題(文件名為test2-1.c) (40分)fun函數(shù)功能是在一個(gè)字符串,根據(jù)給定的插入位置i
25、,插入一個(gè)指定的字符ch。如果i超過了字符串的長度,則將字符ch添加到字符串的末尾。在main函數(shù)中,輸入一個(gè)字符串、插入位置和要插入的一個(gè)字符,調(diào)用函數(shù)fun,最后將插入后的結(jié)果輸出到屏幕和文件test1-2.dat中。例如輸入abcdefg字符串,給定插入位置為3,插入字符為A。則輸出結(jié)果為:abcAdefg。若給定的插入位置為20,則輸出結(jié)果為:abcdefgA。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)。源程序如下:#include #include #include #define N 80char insert(char str,int i
26、,char ch) int j,len; len=strlen(str); if(ilen) for(j=len-1;j=i;j+) strj+1=strj; stri=ch; strlen=0; else i=len; stri=ch; strlen+1=0; void main() char str81,ch; int i; FILE *fp; fp=fopen(test1-2.dat,r); if(fp=NULL) printf(file can not open!n); exit(0); printf(Input a string:); gets(str); printf(Input
27、insert position and character:); scanf(%d,%c,&i,&ch); insert(str,i,ch); printf(%sn,str); fprintf(fp,%sn,str); fclose(fp); 二、編寫程序(程序文件名命名為test2-2.c) (60分)(1)編寫函數(shù)fun,該函數(shù)的功能是:求出整型數(shù)組a中N個(gè)數(shù)的平均值,并將大于平均值的整數(shù)放入數(shù)組b中,數(shù)組b的個(gè)數(shù)作為函數(shù)值返回。(2)在main函數(shù)中,輸入N個(gè)整數(shù),調(diào)用fun函數(shù),最后輸出結(jié)果。(第三套)(60分鐘)一、程序調(diào)試題(文件名為test3-1.c) (40分)fun函數(shù)的功能
28、是統(tǒng)計(jì)M行字符串中最長的字符串,并返回最長字符串的字符個(gè)數(shù)。在main函數(shù)中,從文件test3-1.dat中輸入M行字符串(每行字符串的長度不超過80個(gè)字符),調(diào)用fun函數(shù),然后輸出最長字符串的字符個(gè)數(shù)。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:# include # define M 10# define N 80void main() int max,lin,i=0,aM; char strMN; int fun(char MN,int *); FILE *fp; if(fp=fopen(test3-1.dat,r)=null) pri
29、ntf(Cannot open file.n); exit(0); while(!feof(fp) gets(stri+,N,fp); fclose(fp); fun(str,a); printf(max=%dn,max);int fun(char strN,int a) int i,j=0,max; for(i=0;iM;i+) while(strij) j+; ai=i; j=0; max=a0; for(i=1;imax) max=ai; return;二、編寫程序(程序文件名命名為test3-2.c) (60分)(1)編寫函數(shù)fun,其功能是從給定的N個(gè)整數(shù)中順序查找一個(gè)指定的數(shù),找到
30、則返回該數(shù)的位置,否則返回-1。(2)在main函數(shù)中輸入N個(gè)整數(shù)和需要查找的數(shù),調(diào)用fun函數(shù),若返回值大于等于0則輸出該數(shù)以及該數(shù)在數(shù)組中的位置,否則輸出-1。(第四套)(60分鐘)一、程序調(diào)試題(文件名為test4-1.c ) (40分)fun函數(shù)的功能是:將字符串s中的數(shù)字字符取出,轉(zhuǎn)換成一個(gè)整數(shù),整數(shù)作為函數(shù)值返回。例如:字符串為“ab12CD34”,則取出數(shù)字字符轉(zhuǎn)換成整數(shù)1234。在main函數(shù)中調(diào)用fun函數(shù),并將轉(zhuǎn)換后的結(jié)果寫到文本文件test4-1.dat中。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#define N
31、20# include int fun(char s) int i,t=0; for(i=0;si!=0;i+) if(si=0|si=9) t=t*10+si; return t;void main() char s20; int t; file *fp; if(fp=fopen(test4-1.dat,w)=NULL) printf(Cannot open file!n); exit(0); gets(s); t=fun(s); printf(t=%dn,t); fprintf(t=%dn,t); fclose(fp);二、編寫程序(程序文件名命名為test4-2.c) (60分)(1)編
32、寫fun函數(shù),其功能是對長度為N 的字符串中的N個(gè)元素進(jìn)行從大到小冒泡排序。(2)在main函數(shù)中輸入一個(gè)長度為N的字符串,調(diào)用 fun函數(shù),然后輸出排序后的結(jié)果。(第五套)(60分鐘)一、程序調(diào)試題(文件名為test5-1.c )(40分)在main函數(shù)中,從文本文件test5-1.dat中讀出N個(gè)數(shù),調(diào)用fun函數(shù),統(tǒng)計(jì)其中素?cái)?shù)的個(gè)數(shù),并在main函數(shù)中輸出其素?cái)?shù)的個(gè)數(shù)及其所有素?cái)?shù)。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:# include # define N 10int fun(int *a,int c) int i,j,k=0;
33、for(i=0;iN;i+) for(j=2;j=*(a+i)/2;j+) if(*(a+i)/j=0) break; if(j*(a+i)/2) ck=a+i; k+; return k;void main() int aN,cN,cnt,i; FILE *fp; fp=fopen(test5-1.dat,r); if(fp=NULL) printf(Can not open file!n); exit(0); for(i=0;iN;i+) fscanf(%d,a+i,fp); cnt=fun(a,c); printf(amount: %4dn,cnt); printf(prime numb
34、er: ); for(i=0;icnt;i+) printf(%4d,ci);二、編寫程序(程序文件名命名為test5-2.c) (60分)(1)編寫函數(shù)fun,其功能是:將一個(gè)NN的二維數(shù)組進(jìn)行轉(zhuǎn)置,轉(zhuǎn)置以后的結(jié)果仍然存放在原來的二維數(shù)組中。(2)在main函數(shù)中按如下數(shù)據(jù)對一個(gè)二維數(shù)組a進(jìn)行初始化,輸出原始數(shù)組,調(diào)用 fun函數(shù),輸出轉(zhuǎn)置后的數(shù)組。原始數(shù)據(jù) 1 2 3 4 轉(zhuǎn)置后的數(shù)據(jù) 1 3 5 7 3 4 5 6 2 4 6 8 5 6 6 7 3 5 6 9 7 8 9 0 4 6 7 0(第六套)(60分鐘)一、程序調(diào)試題(文件名為test6-1.c )(40分)fun函數(shù)的功能是
35、:將一個(gè)字符串中連續(xù)的數(shù)字串轉(zhuǎn)換成一個(gè)整數(shù),依次存放在數(shù)組a中,并統(tǒng)計(jì)該字符串中共有多少個(gè)整數(shù)。在main函數(shù)中從test6-1.dat中讀入一個(gè)字符串,調(diào)用fun函數(shù),然后輸出字符串中的所有整數(shù)。例如,如讀入的字符串為“wd123er34gdfk”,則輸出的整數(shù)為123和34。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:# define N 80# include int fun(char p,int a) int i=0,j=0,flag=0,val=0,d; while(p+i)!=0) if(*(p+i)9) if(flag) aj+=
36、val; flag=val=0; else d=*(p+i)-48; val=val+10+d; flag=1; i+; if(*(p+i)=0&flag) aj+=val; return j;void main() char strN; int aN,n,i; FILE *fp; if(fp=fopen(test6-1.dat,r)=NULL) printf(Cannot open the file!n); exit(0); fgets(fp,str,N-1); fclose(fp); n=fun(str,a); for(i=0;in;i+) printf(%dn,ai); printf(n
37、sum to %d data.n,n);二、編寫程序(程序文件名命名為test6-2.c) (60分)(1)編寫fun函數(shù),其功能是將N個(gè)數(shù)按如下規(guī)律輸出。例如輸入:1,2,3,4,fun函數(shù)輸出:4 1 2 33 4 1 22 3 4 11 2 3 4(2)在main函數(shù)中輸入N個(gè)數(shù),調(diào)用函數(shù)fun。四川省普通高等學(xué)校計(jì)算機(jī)應(yīng)用知識和能力第三十三次等級考試二級(C與C+語言) 筆 試 第一部分軟件技術(shù)基礎(chǔ)(共15分)一、是非判斷題(每小題1分,共10分)( 判斷下列各題是否正確,如正確,在客觀答題紙上對應(yīng)編號選A,否則選B )1. 棧是一種先進(jìn)先出的線性表,只能采用順序存儲結(jié)構(gòu)。( ) 分析
38、:也可以采用鏈?zhǔn)酱鎯?. 從循環(huán)鏈表中任意一個(gè)結(jié)點(diǎn)出發(fā)都能訪問到整個(gè)鏈表。( )3. 為了便于對單鏈表實(shí)現(xiàn)結(jié)點(diǎn)的插入、刪除操作,通常增設(shè)一個(gè)表頭結(jié)點(diǎn)。( )4. 隊(duì)列在操作系統(tǒng)的各種資源請求排隊(duì)及數(shù)據(jù)緩沖區(qū)管理中廣泛使用。( )5. 死鎖產(chǎn)生的根本原因是操作系統(tǒng)能夠提供的資源比請求該資源的進(jìn)程數(shù)少。( ) 分析:死鎖產(chǎn)生原因:爭奪共享資源;進(jìn)程推進(jìn)順序不當(dāng)6. 虛擬設(shè)備技術(shù)能將獨(dú)占設(shè)備轉(zhuǎn)換為可共享的設(shè)備,提高資源利用率。( )7. 進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)志。( )8. 軟件維護(hù)是長期的過程,交付使用的軟件仍然需要排錯(cuò)、修改和擴(kuò)充。( )9. 墨盒測試要求測試人員根據(jù)程序內(nèi)部邏輯結(jié)構(gòu)設(shè)計(jì)或
39、選擇測試用例。( ) 分析:白盒測試才是根據(jù)程序內(nèi)部邏輯結(jié)構(gòu)設(shè)計(jì)測試用例,黑盒測試是功能測試10.軟件設(shè)計(jì)時(shí),應(yīng)力求增加模塊的內(nèi)聚,減少模塊間的耦合。( )二、選擇題(每小題1分,共5分)1. 如果進(jìn)棧序列為1、2、3、4,則可能的出棧序列是( 11 ) 。 11 (A) 3、1、4、2(B) 2、4、3、1(C) 3、4、1、2(D) 任意順序2. 已知某二叉樹的后序遍歷序列是dabec,中序遍歷序列是debac,則它的前序遍歷序列是( 12 )。 12 (A) acbed(B) decab(C) deabc(D) cedba3. 下列的進(jìn)程狀態(tài)變化中,( 13 )變化是不可能發(fā)生的。 13
40、 (A) 運(yùn)行就緒(B) 運(yùn)行等待(C) 等待運(yùn)行(D) 等待就緒4. 很好地解決了碎片問題的存儲管理方法是( 14 )。 14 (A) 頁式存儲管理(B) 段式存儲管理(C) 可變分區(qū)管理(D) 多重分區(qū)管理5. 在軟件生命周期中,所花費(fèi)用最多的階段是( 15 )。 15 (A) 詳細(xì)設(shè)計(jì) (B) 軟件編碼 (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) 1(C) 10(D) 沒有正確答案 2. 求取滿足式
41、12+22+32+n21000的n,正確的語句是( 17 )。(考點(diǎn):循環(huán)結(jié)構(gòu))17 (A) for(i=1,s=0;(s=s+i*i)=1000;n=i+);(B) for(i=1,s=0;(s=s+i*i)=1000;n=+i);(C) for(i=1,s=0;(s=s+i*+i)=1000;n=i);(D) for(i=1,s=0;(s=s+i*i+)=1000;n=i); 3. 以下敘述中正確的是( 18 )。(考點(diǎn):循環(huán)語法)18 (A) C語言中所有的循環(huán)語句都是先判斷條件再執(zhí)行循環(huán)體(B) break語句只能中斷循環(huán)(C) continue 語句可以結(jié)束所有的循環(huán)(D)C語言中,
42、任意表達(dá)式都可作為循環(huán)條件,只要能做出0和非0的判斷即可 4. 設(shè)有以下定義:struct node int data; struct node *next;*p;則以下的語句中正確的是( 19 )。(考點(diǎn):結(jié)構(gòu)體指針、動(dòng)態(tài)分配存儲空間函數(shù))19 (A) p=malloc(sizeof(struct node)(B) p=(struct node *)malloc(sizeof(struct node)(C) *p=(struct node *)malloc(4)(D) p=(struct node )malloc(sizeof(struct node) 5. 運(yùn)行以下程序的輸出結(jié)果為( 20
43、 )。(考點(diǎn):枚舉類型)# include void main() enum color Black=1,Red,Blue,Green; enum color c1,c2; c1=Red; c2=Blue; printf(%d,%dn,c1,c2);20 (A) 2,3(B) 1,2(C) 1,1(D) 0,-1 6. 若變量x和y都為int類型,x=100,y=200,下面程序段的輸出結(jié)果是( 21 )。(考點(diǎn):逗號運(yùn)算)printf(%d,(x,y); 21 (A) 200(B) 100(C) 100 200(D) 輸出不確定的值 7. 以下程序的輸出結(jié)果是( 22 )。(考點(diǎn):帶參數(shù)的宏
44、)# include # define f(x) x*xvoid main() int a=6,b=2,c; c=f(a+b)/f(a-b); printf(%dn,c);22 (A) -2.5(B) -2(C) 64(D) 4 8. C語言中fscanf函數(shù)的正確調(diào)用形式是(考點(diǎn):文件)23 (A) fscanf(文件指針,格式字符串,輸出列表);(B) fscanf(格式字符串,輸出列表,文件指針);(C) fscanf(格式字符串,文件指針,輸入列表);(D) fscanf(文件指針,格式字符串,輸入列表); 9. 設(shè)有定義:int a=1,b=2,c=3; ,以下語句中執(zhí)行效果與其它三個(gè)不同的是( 24 )。(考點(diǎn):if語句)24 (A) if(ab) c=a,a=b,b=c;(B) if(ab) c=a,a=b,b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)員工晉升與調(diào)動(dòng)制度
- 會(huì)議宣傳與媒體報(bào)道制度
- 2026福建省福州市閩侯縣教育局招聘44人備考題庫附答案
- 2026西安工業(yè)大學(xué)招聘參考題庫附答案
- 2026貴州沿河土家族自治縣遴選縣直機(jī)關(guān)事業(yè)單位19人參考題庫附答案
- 2026重慶九龍新城謝家灣學(xué)校招聘備考題庫附答案
- 2026陜西寧強(qiáng)縣漢江源景區(qū)招聘參考題庫附答案
- 中共南充市委政策研究室下屬事業(yè)單位2025年公開選調(diào)工作人員的備考題庫附答案
- 樂平市市屬國資控股集團(tuán)有限公司面向社會(huì)公開招聘人員【15人】參考題庫附答案
- 南充市司法局2025年下半年公開遴選公務(wù)員(參公人員)公 告(2人)考試備考題庫附答案
- 天津市重點(diǎn)名校2026屆高一數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- 工程車輛銷售合同范本
- 新人抖音直播獎(jiǎng)勵(lì)制度規(guī)范
- 2026年消防安全評估協(xié)議
- 【小學(xué)】【期末】家長會(huì):孩子在學(xué)校的底氣【課件】
- 鋼結(jié)構(gòu)防腐涂裝工藝方案
- 云上(貴州)數(shù)據(jù)開發(fā)有限公司招聘筆試題庫2026
- 書法美育課件
- JJF1033-2023計(jì)量標(biāo)準(zhǔn)考核規(guī)范
- DB37-T 1854-2020 山東省化工裝置安全試車工作規(guī)范-(高清版)
- 動(dòng)火作業(yè)施工方案模板
評論
0/150
提交評論