四川省計算機等級考試二級C語言機試題22.doc_第1頁
四川省計算機等級考試二級C語言機試題22.doc_第2頁
四川省計算機等級考試二級C語言機試題22.doc_第3頁
四川省計算機等級考試二級C語言機試題22.doc_第4頁
四川省計算機等級考試二級C語言機試題22.doc_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

四川省計算機等級考試二級C語言機試題(第二十二次) 2009-03-29 16:37:54 (第一套)(60分鐘)一、程序調(diào)試題 (文件名 testl-l.c)(40分) 軟盤上有一個名為testl-l.c的C程序文件,其中函數(shù)move的功能是將字符串str中的字符循環(huán)左移 r位。例如,輸入HELLO,r=2,則應(yīng)該輸出LLOHE。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)。源程序如下:#include #include char move( char *str, int r) char t; int i,len; len=strlen(str); for(k=0;kstrlen(s) printf(n Data error!n); while(mstrlen(s); printf(n Result:%sn,move(s,m);二、編寫程序 (程序文件名取為 testl-2.c)(60分) 編寫一個程序,從文件testl-2.in中讀出一行字符(即一個字符串,長度在128個字符內(nèi)),將排列在奇數(shù)位上的字符取出,按從小到大的順序排列并輸出到屏幕上。 要求: (1) 在main函數(shù)中實現(xiàn)從文件testl-2.in中讀出一行字符,調(diào)用sort函數(shù)排序,然后將結(jié)果輸出到屏幕上。(2)編寫sort函數(shù),實現(xiàn)將排列在奇數(shù)位上的字符取出,然后按從小到大的順序排列。例如,hqwbodze奇數(shù)位為q、b、d、e,排序后為bdeq。(第二套)(60分鐘)一、程序調(diào)試題 (文件名為 test2-l.c)(40分)程序的功能是找出數(shù)組a中每行的最小值并輸出。請改正程序申的錯誤,使程序能得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)。源程序如下:#include main() float a 10, min; int i, j; int invert(); for(i=0;i10;i+) for(j=0;j10;j+) aij= i+j; for(i=0;i10;i+) min=invert(a,10); printf(a%dmin=%fn,i,min); float invert(float *a, n) int i; float min; min=*(a+0); for(i=1;in;i+) if(min*(a+i) min=(a+i); return min;二、編寫程序 (程序文件名取為 test2-2.c)(60分)請編寫函數(shù)select判斷一個數(shù)能否被3和5整除,main函數(shù)中調(diào)用select函數(shù),求出所有小于400、能被3和5整除的數(shù)(例如15,30等),然后將求得的數(shù)以每行5個數(shù),每個數(shù)占10列方式輸出到屏幕上和存放到文件test2-2.dat中。(第三套)(60分鐘)一、程序調(diào)試題 (文件名為 test3-1.c) (40分)函數(shù)fun的功能是:從n個學(xué)生的成績中統(tǒng)計出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)返回,平均分存放在形參aver所指的存儲單元中。例如,若8名學(xué)生的成績?yōu)椋?0.5 60 72 90.5 98 51.5 88 64,則低于平均分的學(xué)生人數(shù)為4(平均分為75.5625)。請改正程序中的錯誤,便它能計算出正確的結(jié)果。洼意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)。源程序如下:#include int fun(float s, int n, float *aver) float ave,t=0.0; int count,k,i; for(k=0;kn;k+) t=sk; ave=t/n; for(i=0;iave) count+; *aver=&ave; return count;main() float s30,aver; int m, i; printf(nPlease enter n(30):); scanf(%d, &m); printf(nPlease enter %d mark:n,m); for(i=0;im;i+) scanf(%f, s+i); printf(nThe number of students:%d n,fun(s, m, aver); printf(Ave=%f n, aver);二、編寫程序 (程序文件名取為 test3-2.c) (60分)編寫函數(shù)fun和input:(1) 函數(shù)fun對整數(shù)數(shù)組s中除首、尾數(shù)據(jù)外的其余M-2個數(shù)據(jù)按升序排列。 例如,若原來的數(shù)據(jù)為9876543,則排序后輸出為9456783。(2) 函數(shù)input從文件test3-2.in中讀出待排序的數(shù)據(jù)。編寫main函數(shù),調(diào)用input函數(shù)和fun函數(shù),將排序的結(jié)果輸出到屏幕上四川省計算機等級考試二級C語言機試題(第二十二次)答案 2009-03-29 16:38:21 22-1套 參考答案:一、程序調(diào)試題(文件名為test1-1.c)(40分)#include #include char move( char *str, int r) /* 改為 *move */ char t; int i,len; /* 改為 k */ len=strlen(str); for(k=0;k=r;k+) /* 改為 kstrlen(s) printf(n Data error!n); while(mstrlen(s); printf(n Result:%sn,move(s,m);評分標準:每改對1處得5分,結(jié)果正確得10分。二、編寫程序(程序文件取名為 test1-2.c)(60分)評分標準:1被調(diào)函數(shù)編寫正確 25分2文件打開、數(shù)據(jù)讀出正確 10分3函數(shù)調(diào)用正確 10分4屏幕輸出正確 10分5程序結(jié)構(gòu)合理 5分參考程序:#include sort(char a,char b) char c; int i,j=0; for(i=1;istrlen(a);i+=2) bj+=ai; bj=0; for(i=1;istrlen(b);i+) for(j=0;jbj+1) c=bj; bj=bj+1; bj+1=c; main() FILE *in; char a128,b65; in=fopen(test1-2.in,r); fgets(a,128,in); fclose(in); sort(a,b); puts(b);22-2套 參考答案:一、程序調(diào)試題(文件名為test2-1.c)(40分)#include main() float a 10, min; /* 改為 a1010 */ int i, j; int invert(); /* 改為 float */ for(i=0;i10;i+) for(j=0;j10;j+) aij= i+j; for(i=0;i10;i+) min=invert(a,10); /* 改為 ai */ printf(a%dmin=%fn,i,min); float invert(float *a, n) /* 改為 int n */ int i; float min; min=*(a+0); for(i=1;in;i+) if(min */ min=(a+i); /* 改為 *(a+i) */ return min;評分標準:每改對1處得5分,結(jié)果正確得10分。二、編寫程序(程序文件取名為 test2-2.c)(60分)評分標準:1被調(diào)函數(shù)編寫正確 15分2文件打開、數(shù)據(jù)寫入正確 15分3函數(shù)調(diào)用正確 10分4屏幕輸出正確 10分5程序結(jié)構(gòu)合理 10分參考程序:# include int select(int a) if(!(a%3)&!(a%5) return 1; else return 0;main() int i,k=0; FILE *fp; if(fp=fopen(test2-2.dat,wb)=NULL) printf(cannot open the filen); exit(0); for(i=3;i400;i+) if(select(i) k=k+1; printf(%10d,i); fprintf(fp,%10d,i); if(k%5=0) printf(n); fprintf(fp,n); fclose(fp);22-3套 參考答案:一、程序調(diào)試題(文件名為test3-1.c)(40分)#include int fun(float s, int n, float *aver) /* 改為 *s */ float ave,t=0.0; int count,k,i; /* 改為 count=0 */ for(k=0;kn;k+) t=sk; /* 改為 += */ ave=t/n; for(i=0;iave) count+; /* 改為 */ *aver=&ave; /* 改為 ave */ return count;main() float s30,aver; int m, i; printf(nPlease enter n(30):); scanf(%d, &m); printf(nPlease enter %d mark:n,m); for(i=0;im;i+) scanf(%f, s+i); printf(nThe number of students:%d n,fun(s, m, aver); /* 改為 &aver */ printf(Ave=%f n, aver);評分標準:每改對1處得5分,結(jié)果正確得10分。二、編寫程序(程序文件取名為 test3-2.c)(60分)評分標準:1被調(diào)函數(shù)編寫正確 20分2文件操作和讀數(shù)據(jù)正確 15分3函數(shù)調(diào)用正確 10分4屏幕輸出正確 10分5程序結(jié)構(gòu)合理 5分參考程序:#include#include#define M 10void fun(int *s) int i,j,t; for(i=1;iM-2;i+) for(j=i+1;jsj) t=si; si=sj; sj=t; int input(int s) FILE *fp;

溫馨提示

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

評論

0/150

提交評論