![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
江蘇計算機等級考試二級C語言考前模擬試卷第2套 |
考試模擬2 1.下面關(guān)于集成電路(IC)的說法中錯誤的是_______(1)_______ A.集成電路是現(xiàn)代信息產(chǎn)業(yè)的基礎(chǔ) B.現(xiàn)代PC機中使用的微型處理器都是超大規(guī)模或極大規(guī)模集成電路 C.集成電路的特點是體積小,重量輕,可靠性強 D.IC卡分存儲器卡與智能卡(CPU卡),比如手機的SIM卡就是一種存儲器卡 2.下面關(guān)于通信技術(shù)的敘述中,錯誤的是_________(2)________ A.數(shù)字通信是當(dāng)代通信技術(shù)的主流,它比模擬通信更能適應(yīng)現(xiàn)代社會的要求 B.計算機網(wǎng)絡(luò)中采用的最基本的多路復(fù)用技術(shù)是時分多路復(fù)用技術(shù) C.信息在光纖中傳輸時,每隔一定距離需要加入中繼器,將信號放大后再繼續(xù)傳輸 D.無線通信可以按頻率分成中波,短波,超短波和微波,其中微波的波長很短,通常在 3.Pentinum處理器中的一個16位帶符號整數(shù),如果它的十六進制數(shù)是FFF0,那么它的實際數(shù)值是________(3)____ A.-16 B 4.下面關(guān)于微處理器的敘述中不正確的是___(4)______ A.微處理器通常以單片集成電路制成 B.它具有運算和控制功能,但不具備數(shù)據(jù)存儲功能 C.Pentinum4及其兼容的微處理器是目前PC機中使用最廣泛的一種處理器 D.Intel公司是國際上研制、生產(chǎn)CPU最著名的公司 5.下面關(guān)于PC機的主機敘述不正確的是_________(5)________ A.RAM代表隨機存取存儲器,ROM代表只讀存儲器,關(guān)機后前者所有存儲的信息會丟失,而后者不會 B.保存在BIOS中的自舉程序的功能是裝入操作系統(tǒng) C. 數(shù)碼相機和優(yōu)盤中使用的芯片類型是Flash Rom D.I/O總線上有三類信號:數(shù)據(jù)信號、地址信號和控制信號 6. .磁盤存儲器的下列敘述中,錯誤的是____(6)____。 A磁盤盤片的表面分成若干個同心圓,每個圓稱為一個磁道 A. 硬盤上的數(shù)據(jù)存儲地址由兩個參數(shù)定位:磁道號和扇區(qū)號 B. 硬盤的盤片、磁頭及驅(qū)動機構(gòu)全部密封在一起,構(gòu)成一個密封的組合件 C. 每個磁道分為若干個扇區(qū),每個扇區(qū)的容量一般是512字節(jié) 7. 在下列幾種存儲器中,速度慢、容量小的是_____(7)___。 A. 優(yōu)盤 B. 光盤存儲器 C. 硬盤存儲器 D.軟盤存儲器 8.下列有關(guān)操作系統(tǒng)作用的敘述中,正確的是___(8)____。 A. 有效地管理計算機系統(tǒng)的資源是操作 系統(tǒng)的主要作用之一 B. 操作系統(tǒng)只能管理計算機系統(tǒng)中的軟件資源,不能管理硬件資源 C. 操作系統(tǒng)提供的用戶界面都是圖形用戶界面 D. 在計算機上開發(fā)和運行應(yīng)用程序與安裝和運行的操作系統(tǒng)無關(guān) 9.下面關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)的敘述中,錯誤的是___(9)__________ A.算法的基本特征是:確定性,有窮性,能行性,輸出 B.算法的一個顯著特征是,它解決的是一個問題而不是一類問題 C.算法的好壞除了考慮正確性外,還要看執(zhí)行算法所占用的空間資源 D.數(shù)據(jù)結(jié)構(gòu)研究如何根據(jù)實際問題組織數(shù)據(jù)與定義新數(shù)據(jù)類型,與具體的程序設(shè)計語言無關(guān) 10. 以太網(wǎng)是一種使用的最廣泛的局域網(wǎng),下面是關(guān)于以太網(wǎng)的敘述, ①以太網(wǎng)的節(jié)點每次只能發(fā)送一幀信息 ②以太網(wǎng)中的每個節(jié)點都有一個唯一的地址,發(fā)送每一幀信息時,必須包含自己的地址和接收節(jié)點的地址,該地址就是IP地址 ③以太網(wǎng)的數(shù)據(jù)傳輸速率為10Mbps—100Mbps,甚至更快 ④以太網(wǎng)大多使用集線器組網(wǎng),網(wǎng)絡(luò)中每一個節(jié)點通過網(wǎng)卡和雙絞線與集線器連接 正確的是_________(10)______ A. ①③④ B. ①② C. ①②③④ D①④ 11.廣域網(wǎng)是一種跨越很廣的的計算機網(wǎng)絡(luò),下面關(guān)于廣域網(wǎng)的敘述中,正確的是______(11)_____ A.廣域網(wǎng)是一種公用計算機網(wǎng),所有計算機都可無條件的接入廣域網(wǎng) B.廣域網(wǎng)使用專門的通信線路,數(shù)據(jù)傳輸更高 C.廣域網(wǎng)能連接任意多的計算機,也能將相距任意距離的計算機互相連接起來 D.廣域網(wǎng)像很多局域網(wǎng)一樣按廣播方式通信 12.能將異構(gòu)的計算機網(wǎng)絡(luò)互相連接起來的基本設(shè)備是________(12)________ A.中繼器 B.路由器 C.集線器 D.調(diào)制解調(diào)器 13.以下關(guān)于因特網(wǎng)提供的服務(wù),錯誤的是_______(13)______ A.電子郵件必須要有郵件服務(wù)器才能使用,郵件服務(wù)器程序包括SMTP協(xié)議與POP3協(xié)議 B.Web服務(wù)器中的網(wǎng)頁采用的是http超文本傳輸協(xié)議傳輸 C.把網(wǎng)絡(luò)上一臺計算機中的文件移動到另外一臺計算機中,稱為遠程文件傳輸,簡稱mailto D.遠程登錄的含義是用戶可以把自己的機器作為一個終端,通過因特網(wǎng)連接到遠程的計算機上,就可以使用這臺計算機了,使用的協(xié)議是Telnet 14.下面對漢字編碼標(biāo)準(zhǔn)敘述錯誤的是______(14)_____ A.采用GB2313,GBK,和GB18030三種不同的漢字編碼標(biāo)準(zhǔn)時,一些常用的漢字如”中”,”國”等,它們在計算機中的表示(內(nèi)碼)都是相同的 B.GB2312,GBK主要在我國大陸使用,而臺灣、香港地區(qū)使用的是BIG5漢字編碼 C.GBK漢字編碼比GB2312的漢字多,已經(jīng)得到了較好的應(yīng)用,微軟公司的Windows操作系統(tǒng)均支持GBK編碼 D.Unicode是包含的漢字比GB18030的漢字多 15.下面關(guān)于圖像壓縮編碼的敘述中,錯誤的是_____(15)_____ A.圖像壓縮編碼的目的是為了節(jié)省壓縮容量和減少在網(wǎng)絡(luò)上的傳輸時間 B.圖像數(shù)據(jù)壓縮都是有損的,重建的圖像與原始圖像不會相同 C.大多數(shù)圖像文件都對圖像進行了壓縮編碼 D.GIF與JPEG是常用的兩種文件格式,Gif圖像是無損壓縮,JPEG圖像是有損壓縮 16.下面關(guān)于計算機輸入輸出聲音信息的敘述中,錯誤的是_____(16)_____ A.聲卡的主要功能是實現(xiàn)波形聲音和MIDI聲音的輸入和輸出 B.無論是波形聲音還是MIDI聲音的輸入,都需要使用麥克風(fēng) C. 無論是波形聲音還是MIDI聲音的輸出,都需要使用揚聲器 D.波形聲音和MIDI聲音可以混合在一起進行輸出 17.數(shù)字視頻信息的數(shù)據(jù)量很大,目前DVD光盤上存儲的數(shù)字視頻應(yīng)用存儲的數(shù)字視頻采用的壓縮編碼標(biāo)準(zhǔn)是____(17)________ A.MPEG-1 B.MPEG 18.用結(jié)構(gòu)化生命周期方法進行信息系統(tǒng)開發(fā),一般經(jīng)過五個階段,其正確順序為____(18)__ A.系統(tǒng)分析,系統(tǒng)規(guī)劃,系統(tǒng)設(shè)計,系統(tǒng)實施,系統(tǒng)維護 B. 系統(tǒng)規(guī)劃,系統(tǒng)分析,系統(tǒng)設(shè)計,系統(tǒng)實施,系統(tǒng)維護 C. 系統(tǒng)分析,系統(tǒng)規(guī)劃,系統(tǒng)設(shè)計,系統(tǒng)維護,系統(tǒng)實施 D. 系統(tǒng)分析,系統(tǒng)設(shè)計,系統(tǒng)規(guī)劃,系統(tǒng)實施,系統(tǒng)維護 19. 在下列有關(guān)Microsoft Office 2000的應(yīng)用程序功能的敘述中,正確的是___(19)____。 A.Word和Excel編輯的文檔均可以另存為HTML語言 B.Word可以直接讀取Excel文檔(.xls),且Excel可以直接讀取Word文檔(.doc) C.Word與Excel均支持表格的自動填充功能 D.用戶不能利用“剪切板”功能在Word與Excel編輯的文檔之間進行交換數(shù)據(jù) 20在使用Microsoft Word 97/2000編輯文檔時,如果需要打印當(dāng)前文檔的第4、6-8頁,則應(yīng)___(20)_____,然后在出現(xiàn)的對話框中設(shè)置需打印的頁碼。 A.使用菜單命令“文件/打印” B.單擊“常用”工具欄上的“打印”按鈕 C.按鍵盤上的PrtSc(PrintScreen)鍵 D.按組合鍵ALT+PrtSc(PrintScreen) C語言部分 21.在定義任何一個函數(shù)時,下列選項中,______________是不可缺少的 A.函數(shù)名之前的數(shù)據(jù)類型 B.函數(shù)名之后的一對圓括號 C.形式參數(shù)聲明 D.函數(shù)體內(nèi)的語句 22.已知某程序如下: float p=1.5; #define p 2.5 main() {printf("%f",p);} 則main函數(shù)中標(biāo)識符P代表的操作數(shù)是(22) 。 A.float型變量 B.double型變量 C.float型常量 D.double型常量 23.已有聲明"int s[2][3]",以下選項中(23)正確地引用了數(shù)組S中的基本元素。 A.S[1>2][!1] B.S[2][0] C.S[1] D.S 24.已有數(shù)據(jù)類型定義和變量聲明如下: struct person { int num; char name[20],sex; strrut{int class;char prof[20];}in; }a={20,"Li ning",'M',{5,"computer"}},*P=&a; 下列語句中正確的是(24) A•printf("%s",a->name); B.printf("%s",P->in.prof); C•printf("%s",*p.name); D.printf(" Ctr P->in->prof); 25.若有以下程序: int x: int f(int Y) {return 標(biāo)識符;} #include<stdio.h> int w: main() {int z=2;f(z);…} 則在函數(shù)f中return語句后允許出現(xiàn)的標(biāo)識符是 (25) 。 A.x或w B.x或y C.z或w D.NULL 26.邏輯"異或"運算可描述為"a xor b",其中a和b為參加運算的兩個操作數(shù),運算結(jié)果為當(dāng) 且僅當(dāng)a、b兩個操作數(shù)中只有一個為真時才為真,其他情況下均為假。以下表達式中 (26)可以正確表示邏輯"異或"運算。 A.a||b B.a&&b C.(a&&b)&&!(a||b) D.(a||b)&&!(a&&b) 27.若有聲明"int a [5],*b=a,(*c)[3],*d[3];",則在以下表達式中有語法錯誤的是 (27) 。 A.a[0]=0 B.b[0]= 28.若有聲明: int k,a,b; unsigned long y=5; double x=1.23; 則以下表達式中正確的是(28) 。 A.x%(-5) B.x=y[6] C.k=(a=l,b=2,&a+&b) D.a+=a-=(b=2)*(a=3) 29.以下跳轉(zhuǎn)語句中,只有 (29) 可以選擇不唯一的跳轉(zhuǎn)目的地。 A.continue; B.break; ’C.goto標(biāo)識符; D•return; 30.在缺省情況下,標(biāo)準(zhǔn)C的編譯系統(tǒng)中預(yù)定義的標(biāo)準(zhǔn)輸出流stdout直接連接的設(shè)備是 (30) 。 A.軟盤 B.硬盤 C.鍵盤 D.顯示器 二、填空題(請將答案填寫在答題紙的相應(yīng)答題號內(nèi),每個答案只占一行) ●基本概念題(共5分) 1.在聲明變量時,類型修飾符unsigned一般用于修飾基本類型中的int和____(1)_________。 2.已知某程序中有如下片段: int i;float f; /*P的聲明*/ P=&i;P=&f; 若要保證該段程序沒有任何語法錯誤,P應(yīng)當(dāng)聲明為( 2 ) 3.已有聲明"float x;double y;int a;long b;chat c;",則表達式x+y*a/x+b/y+c值的類型為(3) 4.系統(tǒng)庫函數(shù)scanf和gets在被調(diào)用執(zhí)行時都可以讀取從鍵盤輸入的一串?dāng)?shù)字字符,其中函數(shù) (4)具有將讀取的數(shù)字字符串轉(zhuǎn)換為整型數(shù)的功能。 5.在文件中,以符號常量EOF作為文本文件(字符流文件)的結(jié)束標(biāo)記,EOF代表的值是( 5 ) ●閱讀程序題(共11分) 6.以下程序運行時輸出結(jié)果是( 6 ) 。 #define PT 3.14 #define S(x) PT*x*x main() ’ {int a=2; printf("% } 7.已知int型變量的存儲字節(jié)數(shù)為2,以下程序運行時輸出結(jié)果是( 7 )。 #include<stdio.h> main() {int a=3,b=2,c=7,d=6,e=8; long f=a*10000+b*1000+c*100+d*10+e; printf("%ld",f); } 8.以下程序運行時輸出結(jié)果是( 8 ) 。 #include<stdio.h> main() {char *P="student"; if(P=="student") printf("yes"); else printf("no"); } 9.以下程序運行時輸出結(jié)果是( 9 )。 #include<ctype.h> #include<stdio.h> main() {char *s=" int k=0,a=0,b=0; do {if(isdigit(s[k])) {if(s[k]%2==0) {a=a+s[k]-'0'; continue; } a=a+s[k]-'0';b=b+s[k]-'0'; } }while(s[k+1]&&++k); printf("%d,%d,%d\n",k,a,b); } 10.以下程序運行時輸出結(jié)果是(10) 。 #include<stdio.h> int f(int a[],int m,int b[],int n,int c[]) {int i,j,k=0,t; for(i=0;i<m;i++) {for(t=1,j=0;j<n;j++) if(a[i]==b[j]) {t=O;break;} if(t) c[k++]=a[i]; } return k; } void main() {int x[]={7,2,3,6,5,4,1},y[]={5,10,7,9,8,6},z[10],w,j; w=f(x,7,y,6,z); for(j=0;j<w;j++)printf("%d",z[j]); } 11.以下程序運行時輸出結(jié)果是(11) void fun(int *p1,int *p2); main() {int i,a[6]={1,2,3,4,5,6}; fun(a,a+5); for(i=O;i<5;i++) printf("%2d",a[i]); } void fun(int *pl,int *p2) {int t; if(pl<p2) . { t=*p1,*pl=*p2;*p2=t; fun(p1+=2,p2-=2); } } 12.以下程序運行時輸出結(jié)果的第一行是 ( 12 ) ,第二行是( 13 )。 void swap(int *a,int *b) {int c; c=*a; *a=*b; *b=c; } main() {int i,j,a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0:i<2:i++) for(j=0;j<2-i;j++) if(i==j) swap(&a[i][j],&a[i+2][j+2]); else swap(&a[i][j],&a[i+1][j+1]); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d",a[i][j]); printf("\n"); } } 13.以下程序運行時輸出結(jié)果的第一行是 ( 14 ) ,第二行是 ( 15 ) ,第三行是(16 ) 提示:函數(shù)int toupper(int ch)的功能是:將小寫字母字符轉(zhuǎn)換為對應(yīng)的大寫字母字符。 #include<stdio.h> #include<ctype.h> long fun(char *s) {long n,sign,base=10,t; for(;isspace(*s);s++); sign=(*s=='-')?-1:1; if(*s=='+'||*s=='-')s++; if(*s=='0'&&s++) {if(*s=='x||*s=='X') {base=16;S++;} else base=8; } for(n=0,t=1;t&&(isdigit(*s)||isalpha(*s));s++) switch(base) {case 10:if(isdigit(*s)) n=n*base+*s-'0'; else t=0; break: case 8:if(*s>='0'&&*s<='7')n=n*base+*s-'0'; else t=0: break; default:if(isdigit(*s))n=n*base+*s-'0'; else if(toupper(*s)>='A'&&toupper(*s)<='F') n=n*base+toupper(*s)-'A'+lO; else t=0; } return sign*n: } main() {char c1[]="0x printf("%ld\n%ld\n%ld",fun(c1),fun(c2),fun(c3)); } ●完善程序題(共14分) 14.程序中函數(shù)double,mycos(double x)的功能是:根據(jù)下列公式計算cos(x)的近似值。 cos(x)=1-x^2/2!+x^4/4!-x^6/6!+....+(-1)^n*(x^2*n/(2*n)!) 精度要求:當(dāng)通項的絕對值小于等于10^-6時為止。 #include<stdio.h> #include< ____(17)____________> . double mycos(double x) . {int n=1; double sum=0,term=1.0; while( ___(18)_________ >=le-6) {sum+=term; term*= ___(19)_________ ; n=n+2: } return sum; } main() {double x; scanf("%lf",&x); printf("fx(%f)=%f,%f\n",x,mycos(x),cos(x)); } 15.main函數(shù)內(nèi)結(jié)構(gòu)數(shù)組P中的元素已按結(jié)構(gòu)成員index的值升序排列。以下程序先在P中插入s1和s2兩組數(shù)據(jù),再將數(shù)組的所有元素輸出。要求插入數(shù)據(jù)后數(shù)組p中的元素仍按 結(jié)構(gòu)成員index的值升序排列。 #include<stdio.h> typedef struct s {int index; char text[10]; }T; int inserttv(T *p,T s,int n) {int k,j; for(k=0;k<n;k++) if( 20 )>s.index) {for(j=n;j>k;j--)p[j]=p[j一1]; break; } ( 21 ) =s; return n+1; } main() {int n; T p[8]={{0,"a",},{5,"t",},{10,"e",},{15,"r"}}; T s1={3,"f"},s2={16,"s"},*q; n=inserttv(p,s2, __________(22)__________ ); for(q=p;q<p+n;q++)printf("%d%s\n",q->index,q->text); } 16.以下程序的功能是:查找所有滿足以下條件的兩個整數(shù)對:(1)兩個整數(shù)都是3位數(shù);(2) 組成兩個整數(shù)各位的數(shù)字各不相同并且不出現(xiàn)數(shù)字O;(3)第二個數(shù)等于第一個數(shù)的兩 倍。例如,134和268就是滿足該條件的一個整數(shù)對。 main() {int a,b,c,j,k,w,s[6],sum; for(a=1;a<=5;a++) /*a百位,b十位,c個位*/ for(b=1;b<=9;b++) for(c=1;c<=9;c++) {s[o]=a;s[1]=b;s[2]=c; sum= ____(23)_________ ; sum=2*sum; if(sum>999) continue; s[3]= ______(24)_____________ ; s[4]=(sum-s[3]*100)/10; s[5]=sum%10; _____(25)___________________ ; for(j=0;j<5;j++) for(k=0;k<6;k++) if(s[k]==0||j!=k&& ___(26)____________ w=0; if(w) for(k=0;k<2;k++) printf("%d%d%d\n",s[k*3],s[k*3+1],s[k*3+2]); } } 17.設(shè)有一個線性單鏈表的結(jié)點定義如下: struct node {int d; struct node next; }; . 函數(shù)int copy_dellist(struct node *head,int x[])的功能是:將head指向的單鏈表中存儲的所有 整數(shù)從小到大依次復(fù)制到x指向的整型數(shù)組中并撤消該鏈表;函數(shù)返回復(fù)制到x數(shù)組中的整 數(shù)個數(shù)。算法:找出鏈表中數(shù)值最小的結(jié)點,將其值存儲到x數(shù)組中,再將該結(jié)點從鏈表中刪 除,重復(fù)以上操作直到鏈表為空為止。 int copy_dellist(struct node *head,int x[]) {struct node *pk,*pj,*pm,*pn; int data,k=O; while(head!=0) {pk=head;data=pk->d;pn=pk; while(______(27)_______!=0) {pj=pk->next; if(_____(28)___________<data) {data=pj->d;pm=pk;pn=pj;} pk=pj; } x[k++]=pn->d; . if( ___29___________)pm->next=pn->next; else head=pn->next; free(pn); } . ____(30)__________________ ; } 參考答案 1.D2.D3.A4.B5.B6.B7.D8.A9.B10.A11.C12.C13.C14.D15.B16.B17.B18.B19.A20.A 21.B 22. D 23.A 24.B 25.B 26.D (1)char (2)void *p; (3)double (4) scanf (5)-1 (6)8.0 (7)-32768 (8) no (9)3, 9, 3 (10)2,3,4,1 (11)6,2,4,3,5,1 (12)9 6 3 (13)8 5 2 (14)31 (15)32 (16)-33 (17) math.h (18)fabs(term) (19)--x*x/(n*(n+1)) (20)p[k].index (21)p[k] (22)inserttv(p,s1,4) (23)a*100+b*10+c (24)sum/100 (25)w=1; (26)s[j]==s[k] (27)pk->next (28)pj->d (29)pn!=head (30)return k 一:改錯題(20分) 題目: 函數(shù)find_replace的功能是:在s1串中查找s2子串,并用s3子串替換找到的所有s2子串,若s1串中沒有出現(xiàn)s2子串,則不做替換并使函數(shù)返回0,否則返回1. 例如:若s1子串為”This is a test program and a test data.”,s2子串為”test”,s3子串為”actual”,若程序正確,輸出結(jié)果應(yīng)為:”This is a actual program and a actual data.” 含有錯誤的源程序如下: #include <stdio.h> #include <string.h> int find_replace(char *s1, char *s2, char s3) { int i,j,k=0,t=0; char temp[80]; if(*s1='\0' || *s2='\0') return t; for(i=0;s1[i]!='\0';i++) { for(j=0,k=0;s1[j]= =s2[k];j++,k++); /*比較s2是否在s1中*/ if(s2[k]= ='\0') { strcpy(temp, s1[j]); strcpy(&s1[i],s3); i=i+strlen(s3); strcpy(&s1[i],temp); t=1; } } return t; } main() { char line[80]="This is a test program and a test data.", substr1[10]="test",substr2[10]="actual"; puts(line); if(find_replace(line,substr1,substr2)) puts(line); else printf("not found"); } 編程題目: [題目] 1. 編寫函數(shù)int encode(int a[ ][4]),對二維數(shù)組中左下三角的全部元素(包括對角線上的元素)做如下變換:(1)若該元素不是素數(shù)則保持不變(2)若該數(shù)是素數(shù),則用大于它的最小素數(shù)替換該數(shù),函數(shù)返回二維數(shù)組左下三角的元素中素數(shù)的個數(shù) 2. 編寫main函數(shù),聲明一個二維數(shù)組并用以下測試數(shù)據(jù)給二維數(shù)組賦初值。調(diào)用encode函數(shù)對該數(shù)組作變換,將變換后的數(shù)組全部元素(以二維數(shù)組形式)及左下三角元素中素數(shù)的個數(shù)寫入文件myf2.out中 測試數(shù)據(jù) 3 6 4 7 8 5 9 10 12 19 7 20 4 14 21 23 變換后的數(shù)據(jù) 5 6 4 17 8 7 9 10 12 23 11 20 4 14 21 29 1.將源文件取名為myf2.c,輸出結(jié)果文件取名為myf2.out。 ‘ 2.?dāng)?shù)據(jù)文件的打開、使用和關(guān)閉等操作均用C標(biāo)準(zhǔn)庫中緩沖文件系統(tǒng)的文件操作函數(shù) 實現(xiàn)。 3.源程序文件和運行結(jié)果文件均須保存在T:盤的根目錄下,供閱卷用。 4.不要將myf2.obj、myf2.exe保存到T:盤中。 改錯題答案: (1) int find_replace(char *s1, char *s2, char s3) 修改為:int find_replace(char *s1, char *s2, char *s3) (2) if(*s1='\0' || *s2='\0') 修改為: if(*s1= ='\0' || *s2= ='\0') (3) for(j=0,k=0;s1[j]= =s2[k];j++,k++); 修改為:for(j=i,k=0;s1[j]= =s2[k];j++,k++); (4) strcpy(temp, s1[j]); 修改為: strcpy(temp, &s1[j]); 編程題答案: #include <stdio.h> #include <math.h> int prime(int n) /*判斷素數(shù)算法*/ { int i,k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) return 0; return 1; } int encode(int a[][4]) { int i,j,k=0; for(i=0;i<4;i++) for(j=0;j<=i;j++) if(prime(a[i][j])) { while(!prime(a[i][j]+=2));k++;/*求大于它的最小素數(shù)*/ } return k; } main() { FILE *fp; int a[4][4]={3,6,4,17,8,5,9,10,12,19,7,20,4,14,21,23},i,j,count=0; if((fp=fopen("myf2.out","w"))==NULL) {printf("create file myf2.out failed!\n");exit(0);} count=encode(a); for(i=0;i<4;i++) { for(j=0;j<4;j++) {fprintf(fp,"%4d",a[i][j]); printf("%4d\n",a[i][j]); } fprintf(fp,"\n"); } fprintf(fp,"count=%4d\n",count); fclose(fp); } |