絕對(duì)最新2011年9月二級(jí)C語(yǔ)言上機(jī)題庫(kù).doc_第1頁(yè)
絕對(duì)最新2011年9月二級(jí)C語(yǔ)言上機(jī)題庫(kù).doc_第2頁(yè)
絕對(duì)最新2011年9月二級(jí)C語(yǔ)言上機(jī)題庫(kù).doc_第3頁(yè)
絕對(duì)最新2011年9月二級(jí)C語(yǔ)言上機(jī)題庫(kù).doc_第4頁(yè)
絕對(duì)最新2011年9月二級(jí)C語(yǔ)言上機(jī)題庫(kù).doc_第5頁(yè)
已閱讀5頁(yè),還剩257頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2011年3月最新計(jì)算機(jī)二級(jí)C語(yǔ)言題庫(kù)(根據(jù)等考通最新版本自己整理)第一套1.程序填空題在主函數(shù)中從鍵盤輸入若干個(gè)數(shù)放入數(shù)組a中,用0結(jié)束輸入但不計(jì)入數(shù)組。下列給定程序中,函數(shù)fun的功能是:輸出數(shù)組元素中小于平均值的元素。例如,數(shù)組中元素的值依次為34、54、675、456、453、121,則程序的運(yùn)行結(jié)果為34、54、121。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #include void fun(_1_,int n) double count=0.0; double average=0.0; int i=0; for(i=0;in;i+) _2_; average=_3_; for(i=0;in;i+) if(aiaverage) if(i%5=0) printf(n); printf(%d,ai); main() int a1000; int i=0; printf(nPlease enter datas(end with 0):); do scanf(%d,&ai); while(ai+!=0); fun(a,i-1);【答案】 (1) int a (2)count+=ai或count=count+ai (3)count/n2.程序修改題給定程序中,函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值:y=1+1/(2*2)+1/(3*3)+1/(4*4)+1/(m*m)例如:若m中的值為5,則應(yīng)輸出1.463611。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include double fun(int m) double y=1.0; int I;/*found*/ for(i=2;im;i+)/*found*/ y+=1/(i*i); return(y);main() int n=5; printf(nThe result is %lfn, fun(n);【答案】(1)將for(i=2;im;i+) 改為: for(i=2;i=m;i+)(2)將y+=1/(i*i); 改為:y +=1.0/(i*i);3.程序設(shè)計(jì)題函數(shù)fun的功能是:將s所指字符串中除了下標(biāo)為偶數(shù)、同時(shí)ASCII值也為偶數(shù)的字符外,其余的全都刪除;串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG 123456”,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除;其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此也應(yīng)當(dāng)刪除;而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標(biāo)也為偶數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后,t所指的數(shù)組中的內(nèi)容應(yīng)是“246”。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。#include #include void fun(char *s, char t)main() char s100,t100; printf(nPlease enter string S:); scanf(%s, s); fun(s,t); printf(nThe result is: %sn,t);【答案】void fun(char *s,char t) int k,n=0; for(k=0;kstrlen(s);k+) if(k%2=0 & sk%2=0) tn+=sk; tn= 0;第二套1.程序填空題給定程序中,函數(shù)fun的功能是:找出NN矩陣中每列元素中的最大值,并按順序依次存放于形參b所指的一維數(shù)組中。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #define N 4void fun(int(*a)N,int *b) int I,j; for(i=0; iN; i+) /*found*/ bi=_1_; for(j=1;jN;j+)/*found*/ if(bi_2_aji) bi= aji; main() int xNN=12,5,8,7,6,1,9,3,1,2,3,4,2,8,4,3,yN,I,j; printf(nThe matrix :n); for(i=0;iN;i+) for(j=0; jN; j+) printf(%4d,xij); printf(n); /*found*/ fun(_3_); printf(nThe result is:); for(i=0; iN; i+) printf(%3d,yi); printf(n);【答案】(1)a0i (2) =或 (3)x, y2.程序修改題給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指子字符串的地址,通過(guò)函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為NULL。例如,當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”、t中的內(nèi)容為“ab”時(shí),輸出結(jié)果應(yīng)是abcdx。當(dāng)字符串中的內(nèi)容為“abcdabfabcdx”、t中的內(nèi)容為“abd”時(shí),則程序輸出未找到信息not be found!。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #include char *fun(char *s,char *t) char *p,*r,*a;/*found*/ a=Null; while(*s) p=s;r=t; while(*r)/*found*/ if(r=p) r+;p+; else break; if(*r=0) a=s; s+; return a ;main() char s100,t100,*p; printf(nPlease enter string S :); scanf(%s,s); printf(nPlease enter substring t :); scanf(%s,t); p=fun(s,t); if(p) printf(nThe result is :%sn,p); else printf(nNot found !n);【答案】(1)將a=Null; 改為:a=NULL; (2)將if(r=p) 改為:if(*r=*p)3.程序設(shè)計(jì)題編寫函數(shù)fun,它的功能是:利用以下所示的簡(jiǎn)單迭代方法求方程cos(y)-y=0的一個(gè)實(shí)根。Yn+1=cos(yn)迭代步驟如下:(1)取y1初值為0.0。(2)y0=y1,把y1的值賦給y0。(3)y1=cos(y0),求出一個(gè)新的y1。(4)若y0-y1的絕對(duì)值小于0.000001,則執(zhí)行步驟(5),否則執(zhí)行步驟(2)。(5)所求y1就是方程cos(x)-y=0的一個(gè)實(shí)根,作為函數(shù)值返回。程序?qū)⑤敵鼋Y(jié)果Result=0.739085。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語(yǔ)句。#include #include #include float fun()main() FILE *out; float cos=fun(); printf(Result=%fn,cos); out=fopen(outfile.dat,w); fprintf(out,%f,cos); fclose(out);【答案】float y1=0.0,y0;do y0=y1; y1=cos(y0);while(fabs(y0-y1)=1e-6);return y1;第三套1.程序填空題程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到student.dat文件中。函數(shù)fun的功能是從指定文件中找出指定學(xué)號(hào)的學(xué)生數(shù)據(jù),讀入此學(xué)生數(shù)據(jù),對(duì)該生的分?jǐn)?shù)進(jìn)行修改,使每門課的分?jǐn)?shù)加3分,修改后重寫文件中該學(xué)生的數(shù)據(jù),即用該學(xué)生的新數(shù)據(jù)覆蓋原數(shù)據(jù),其他學(xué)生數(shù)據(jù)不變;若找不到,則什么都不做。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #define N 5typedef struct student long sno; char name10; float score3;STU;void fun(char *filename, long sno) FILE *fp; STU n; int I; fp=fopen(filename,rb+);/*found*/ while(!_1_) fread(&n,sizeof(STU),1,fp);/*found*/ if(n.sno_2_) break; if(!feof(fp) for(i=0;i3;i+) n.scorei+=3;/*found*/ fseek(fp,1L*_3_,SEEK_CUR); fwrite(&n, sizeof(STU), 1, fp); fclose(fp);main() STU tN=10001,MaChao,91,92,77,10002,CaoKai,75,60,88,10003,LiSi,85,70,78,10004,FangFang,90,82,87,10005,ZhangSan,95,80,88,ssN; int I,j; FILE *fp; fp=fopen(student.dat,wb); fwrite(t, sizeof(STU), N, fp); fclose(fp); printf(nThe original data :n); fp=fopen(student.dat,rb); fread(ss, sizeof(STU), N, fp); fclose(fp); for(j=0; jN; j+) printf(nNo:%ld Name:%-8sScores: , ssj.sno,); for(i=0;i3;i+) printf(%6.2f ,ssj.scorei); printf(n); fun(student.dat,10003); fp=fopen(student.dat,rb); fread(ss,sizeof(STU),N,fp); fclose(fp); printf(nThe data aftermodifying :n); for(j=0;jN;j+) printf(nNo:%ld Name: %-8s Scores:, ssj.sno,); for(i=0;i3;i+) printf(%6.2f,ssj.scorei); printf(n); 【答案】(1)feof(fp) (2)=sno (3)sizeof(STU) 2.程序修改題給定程序中,函數(shù)fun的功能是:計(jì)算正整數(shù)num的各位上的數(shù)字之積。例如,若輸入252,則輸出應(yīng)該是20;若輸入202,則輸出應(yīng)該是0。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include long fun(long num)【答案】(1)將long k;改為:long k=1;或long k;k=1;(2)將num=10;改為:num/=10; 3.程序設(shè)計(jì)題程序定義了NN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(int aN, int n),函數(shù)的功能是:使NN的二維數(shù)組左下三角元素中的值乘以n。例如:若n的值為3,a數(shù)組中的值為: 1 9 7 2 3 8 4 5 6則返回主程序后a數(shù)組中的值應(yīng)為: 3 9 7 6 9 8 12 15 18注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。#include #include #define N 5int fun(int aN,int n)main() int aNN,n,I,j; printf(*The array*n); for(i=0;iN;i+) for(j=0;j=3); printf(n=%4dn,n); fun(a,n); printf (*THE RESULT*n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); 【答案】int fun(int aN,int n) int j,k; for(j=0;jN;j+) for(k=0;k2)的素?cái)?shù)的個(gè)數(shù),素?cái)?shù)的個(gè)數(shù)作為函數(shù)值返回。例如,輸入x=20,結(jié)果:2,3,5,7,11,13,17,19。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include int fun(int x) int I,j,count=0; printf(nThe prime number between 2 to %dn,x); for(i=2;i=x;i+) for(_1_;j=i) count+; printf(count%15 ? %5d : n%5d,i); return count;main() int x=20,result; result=fun(x); printf(nThe number of prime is : %dn,result);【答案】(1)j=2(2)i(3)j2.程序修改題給定程序中,函數(shù)fun的功能是:依次取出字符串中所有數(shù)字字符,形成新的字符串,并取代原字符串。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include void fun(char *s) int I,j; for(i=0,j=0;si!=0;i+) if(si=0&si=9)/*found*/ sj=si;/*found*/ sj=0;main() char item80; printf(nEnter a string:); gets(item); printf(The string is:%sn,item); fun(item); printf(The string of changing is:%sn,item);【答案】(1)將sj=si; 改為:sj+=si; (2)將sj=0; 改為:sj= 0;3.程序設(shè)計(jì)題請(qǐng)編寫函數(shù)fun,它的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。例如,若有5門課程的成績(jī)是90.5、72、80、61.5、55,則函數(shù)的值為:71.80。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。#include float fun(float *a,int n)main() float score30=90.5,72,80,61.5,55, aver; aver=fun(score,5); printf(Average score is:%5.2fn, aver);【答案】float fun(float *a,int n) float s=0.0; int I; for(i=0; in; i+) s+=ai; return s/n; 第五套1.程序填空題給定程序中,函數(shù)fun的功能是:計(jì)算下式前n項(xiàng)的和作為函數(shù)值返回:S=1*3/2*2+3*5/4*4+5*7/6*6+(2n-1)*(2n+2)/ (2n)*(2n)例如:當(dāng)行參n的值為10時(shí),函數(shù)返回9.612558。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序已給出。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include double fun(int n) int I; double s,t;/*found*/ s=_1_;/*found*/ for(i=1;i=_2_;i+) t=2.0*I;/*found*/ s=s+(2.0*i-1)*(2.0*i+1)/_3_; return s;main() int n=-1; while(n0): ); scanf(%d,&n); printf(The result is: %fn,fun(n);【答案】(1)0 (2)n (3)(t*t)2.程序修改題 在給定程序中,fun函數(shù)的功能是:將n個(gè)無(wú)序整數(shù)從小到大排序。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #include fun(int n,int*a) int I,j,p,t; for(j=0;jn-1;j+) p=j;/*found*/ for(i=j+1;iai)/*found*/ t=I; if(p!=j) t=aj;aj=ap;ap=t; putarr(int n,int *z) int I; for(i=1;i=n;i+,z+) printf(%4d,*z); if(!(i%10) printf(n); printf(n);main() int aa20=9,3,0,4,1,2,5,6,8,10,7, n=11; printf(Before sorting%d numbers:n,n); putarr(n,aa); fun(n, aa); printf(After sorting%d numbers:n,n); putarr(n,aa);【答案】(1)將for(i=j+1;in-1;i+) 改為:for(i=j+1;in;i+)或for(i=j+1;i=n-1;i+)(2)將t=i;改為:p=i;3.程序設(shè)計(jì)題請(qǐng)編寫一個(gè)函數(shù)unsigned fun(unsigned n),n是一個(gè)大于10的無(wú)符號(hào)整數(shù),若n是m(m2)位的整數(shù),則函數(shù)求出n的后m-1位的數(shù)作為函數(shù)值返回。例如,若n的值為1234,則fun()函數(shù)值為234。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語(yǔ)句。#include #include unsigned fun(unsigned m)main() unsigned n; FILE *out; printf(Enter a unsigned integer data : ); scanf (%u,&n); printf(The original data is : %un,n); if(n10) if(t/10) p=t%10; s=s+p*s1; s1=s1*10; t=t/10;return s;第六套1.程序填空題給定程序中,函數(shù)fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后新字符串的首地址作為函數(shù)值返回。例如,s所指字符串為:asd123fgh543df,處理后新字符串為:asdfghdf12543。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #include #include char *fun(char *s) int I,j,k,n; char *p,*t; n=strlen(s)+1; t=(char*)malloc(n*sizeof(char); p=(char*)malloc(n*sizeof(char); j=0;k=0; for(i=0;i=a)&(si=A)&(si=Z)/*found*/ tj=_1_;j+; else pk=si;k+; /*found*/ for(i=0;i_2_;i+) tj+i=pi;/*found*/ tj+k=_3_; return t;main() char s80; printf(Please input: ); scanf(%s,s); printf(The result is:%sn,fun(s);【答案】(1)si (2)k (3)02.程序修改題下列給定程序中,函數(shù)fun的功能是:求三個(gè)數(shù)的最小公倍數(shù)。例如,給變量a、b、c分別輸入15、11、2,則輸出結(jié)果應(yīng)當(dāng)是330。請(qǐng)改正程序中的錯(cuò)誤,使其能得到正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不得更改程序的結(jié)構(gòu)。#include int fun(int x,int y,int z) int I,temp,n,m; /*found*/ i=1; temp=m=n=1; /*found*/ while(temp!=0 & m!=0 & n!=0) i=i+1; temp=i%x; m=i%y; n=i%z; return I;main() int a,b,c,I; printf(Input a b c: ); scanf(%d%d%d,&a,&b,&c); printf(a=%d,b=%d,c=%d n,a,b,c); i=fun(a,b,c); printf(The minimal common multipleis:%dn,i);【答案】(1)將i=1;改為:i=0;(2)將while(temp!=0 & m!=0 & n!=0)改為:while(temp!=0 | m!=0 | n!=0)3.程序設(shè)計(jì)題編寫函數(shù)fun,其功能是:根據(jù)以下公式計(jì)算s,將結(jié)果作為函數(shù)值返回;n通過(guò)形參傳入:S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+n)例如:若n的值為11時(shí),函數(shù)的值為:1.833333注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。#include float fun(int n)main() int n; float s; printf(nPlease enter N:); scanf(%d, &n); s=fun(n); printf(the result is: %fn, s);【答案】float fun(int n) float s=0.0; int t=0, k; for(k=1; k=n; k+) t+=k; s+=1.0/t; return s;第七套1.程序填空題程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。函數(shù)fun的功能是將形參a所指結(jié)構(gòu)體變量中的數(shù)據(jù)賦給函數(shù)中的結(jié)構(gòu)體變量b,并修改b中的學(xué)號(hào)和姓名,最后輸出修改后的數(shù)據(jù)。例如:a所指變量中的學(xué)號(hào)、姓名、和三門課的成績(jī)依次是:10001、“ZhangSan”、95、80、88,則修改后輸出b中的數(shù)據(jù)應(yīng)為:10002、“LiSi”、95、80、88。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #include struct student long sno; char name10; float score3;void fun(struct student a) struct student b; int I;/*found*/ b=_1_; b.sno=10002;/*found*/ strcpy(_2_,LiSi); printf(The data after modified:n); printf(No:%ld Name:%sn Scores: ,b.sno,); for(i=0;i3;i+)/*found*/ printf(%6.2f,b._3_); printf(n);main() struct student s=10001,ZhangSan,95,80,88; int I; printf(The original data :n); printf(No:%ld Name:%snScores: ,s.sno,); for(i=0;i3;i+) printf(%6.2f, s.scorei); printf(n); fun(s);【答案】(1)a (2) (3)scorei2.程序修改題 給定程序是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)賦值。函數(shù)fun的功能是將單向鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #include typedef struct aaint data; struct aa*next;NODE;int fun(NODE*h) int sum=0; NODE *p;/*found*/ p=h; while(p) if(p-data%2=0) sum+=p-data;/*found*/ p=h-next; return sum;NODE *creatlink(int n) NODE *h,*p,*s,*q; int I,x; h=p=(NODE *)malloc(sizeof(NODE); for(I=1;Idata=rand()%16; s-next=p-next; p-next=s; p=p-next; p-next=NULL; return h;outlink(NODE *h,FILE *pf) NODE *p; p=h-next; fprintf(pf,THE LIST :n HEAD); while(p) fprintf(pf,-%d,p-data); p=p-next; fprintf(pf,n);outresult(int s,FILE *pf) fprintf(pf,The sum of even numbers : %dn,s);main() NODE *head; int even; head=creatlink(12); head-data=9000; outlink(head,stdout); even=fun(head); printf(The result :n); outresult(even, stdout);【答案】(1)將p=h; 改為:p= h-next; (2)將p=h-next; 改為:p=p-next;3.程序設(shè)計(jì)題請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出3到m之間所有素?cái)?shù)的平方根之和。例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=63.665791。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語(yǔ)句。#include #include double fun(int m)main() int m; double s; FILE *out; printf(nnInput m: ); scanf(%d,&m); s=fun(m); printf(nns=%fnn,s); out=fopen(outfile.dat,w); for(m=0;m10;m+) fprintf(out,%fn,fun(m+80); fclose(out);【答案】int n,k,i;double sum=0.0;for(n=3;n=m;n+) k=sqrt(n); for(i=2;i=k+1) sum+=sqrt(n);return sum;第八套1.程序填空題給定程序中,函數(shù)fun的功能是用函數(shù)指針指向要調(diào)用的函數(shù),并進(jìn)行調(diào)用。規(guī)定在第2處使f指向函數(shù)f1,在第3處使f指向函數(shù)f 2。當(dāng)調(diào)用正確時(shí),程序輸出:x1=5.000000,x2=3.000000,x1*x1+x1*x2= 40.000000請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序已給出。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include double f1(double x)return x*x;double f2(double x,double y)return x*y;double fun(double a,double b)/*found*/_1_(*f)(); double r1,r2;/*found*/ f=_2_; /* point fountion f1 */ r1=f(a);/*found*/ f=_3_; /* point fountion f2 */ r2=(*f)(a,b); return r1+r2;main() double x1=5, x2=3, r; r=fun(x1,x2); printf(x1=%f,x2=%f,x1*x1+x1*x2=%fn,x1,x2,r);【答案】(1)double (2)f1 (3)f22.程序修改題給定程序中,函數(shù)fun的功能是:先將字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序連接到t串的后面。例如:當(dāng)s中的字符串為“ABCDE”時(shí),則t中的字符串應(yīng)為“ABCDEEDCBA”。請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include #include void fun(char *s,char *t) int I,sl; sl=strlen(s);/*found*/ for(i=0;i=s1;i+) ti=si; for(i=0;isl;i+) tsl+i=ssl-i-1;/*found*/ tsl=0;main() char s100,t100; printf(nPlease enter string s: ); scanf(%s,s); fun(s,t); printf(The result is: %sn,t);【答案】(1)將for( i=0; isl; i +) 改為:for( i=0; i=sl; i +)或for(i=0;isl+1;i+)(2)將tsl= 0; 改為: tsl*2=0;或ti*2=0;3.程序設(shè)計(jì)題請(qǐng)編寫函數(shù)fun,它的功能是:求出1到m之間(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。例如,若傳送給m的值為50,則程序輸出:7 11 14 21 22 28 33 35 42 44 49注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。#include #define M 100void fun(int m,int *a,int *n)main() int aaM,n,k; fun(50,aa

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論