二级C语言上机题库2012年9月新版99题

上传人:痛*** 文档编号:202075591 上传时间:2023-04-21 格式:PDF 页数:198 大小:24.15MB
收藏 版权申诉 举报 下载
二级C语言上机题库2012年9月新版99题_第1页
第1页 / 共198页
二级C语言上机题库2012年9月新版99题_第2页
第2页 / 共198页
二级C语言上机题库2012年9月新版99题_第3页
第3页 / 共198页
资源描述:

《二级C语言上机题库2012年9月新版99题》由会员分享,可在线阅读,更多相关《二级C语言上机题库2012年9月新版99题(198页珍藏版)》请在装配图网上搜索。

1、2012年9月计算机二级C语言上机题库说 明:有灰色底纹的试题是经过验证的或者添加的备注,运行软件版本为Microsoft Visual Studio2010(简体中文)旗舰版,目前已经验证和修改到第69套,欢迎继续完善。vs2010的使用可以参考此教程:hltp: lca8114431b90dd841.himl?sl=l多数试题的答案在该题末尾,少数试题答案在该套试题末尾。部分试题缺少#include stdio.h 的头文件,导致gets等函数无法识别,补充头文件即可。部分scanf命令的输入表列没有&,不过有的仍旧可以继续运行,补充即可。有的程序缺少函数类型说明符,很 多 m ain函数

2、都没有void类型或者说明,调试时注意补充(2010是不默认为int类型的)。考试攻略:考试时可以把本文件存为txt形式,趁老师不备copy进电脑了,在不同的地方多粘贴几份,稍微隐藏一下。需要的时候C trl+F,多半就可以搜出需要的题目,然后,你 懂 的(老师一般不会检查你电脑是否有违纪文档的)当然,对于认真做过题的,这招基本不需要。如果遇上题库里没有的题,那就另外,如果平常用的是vs2010,还是建议考前熟悉一下vc6,vc6一般需要依次进行“编译”“一“连接”一“执行”,与 vs2010还是有较大差异目录2012年9月计算机二级C语言上机题库.1第1套.10填空题.10改错题.10编程题

3、.10第2套.12填空题.12改错题.12编程题.12第 3 套.14填空题.14改错题.14编程题.14第 4 套.16填空题.16改错题.16编程题.16第 5 套.18填空题.18改错题.18编程题.18第 6 套.20填空题.20改错题.20编程题.20第 7 套.22填空题.22改错题.22编程题.23第 8 套.24填空题.24改错题.24编程题.24第 9 套.26填空题.26改错题.26编程题.26第 10套.28填空题.28改错题.28编程题.29第 11套.30填空题.30改错题.30编程题.31第 12套.32填空题.32改错题.32编程题.33第 13套.35填空题.3

4、5改错题.35编程题.35第 14套.37填空题.37改错题.37编程题.37第 15套.39填空题.39改错题.39编程题.39第 16套.41填空题.41改错题.41编程题.42第 17套.43填空题.43改错题.43编程题.43第 18套.45填空题.45改错题.45编程题.46第 19套.47填空题.47改错题.47编程题.47第 20套.49填空题.49改错题.49编程题.50第 21套.51填空题.51改错题.51编程题.52第 22套.54填空题.54改错题.54编程题.54第 23套.57填空题.57改错题.57编程题.57第 24套.59填空题.59改错题.59编程题.60第

5、 25套.61填空题.61改错题.61编程题.61第 26套.63填空题.63改错题.63编程题.63第 27套.65填空题.65改错题.65编程题.65第 28套.67填空题.67改错题.67编程题.67第 29套.69填空题.69改错题.69编程题.69第 30套.71填空题.71改错题.71编程题.71第 31套.73填空题.73改错题.73编程题.73第 32套.75填空题.75改错题.75编程题.76第 33套.77填空题.77改错题.77编程题.78第 34套.79填空题.79改错题.79编程题.80第 35套.82填空题.82改错题.82编程题.83第 36套.84填空题.84改

6、错题.84编程题.85第 37套.86填空题.86改错题.86编程题.87第 38套.88填空题.88改错题.88编程题.88第 39套.90填空题.90改错题.90编程题.90第 40套.92填空题.92改错题.92编程题.93第 41套.94填空题.94改错题.94编程题.95第 42套.96填空题.96改错题.96程序题.97第 43套.98填空题.98改错题.98编程题.99第 44套.100填空题.100改错题.100编程题.101第45套.102填空题.102改错题.102编程题.103第46套.104填空题.104改错题.104编程题.104第47套.106填空题.106改错题.

7、106编程题.107第48套.108填空题.108改错题.108编程题.108第49套.110填空题.110改错题.110编程题.I ll第50套.112填空题.112改错题.112编程题.112第51套.114填空题.114改错题.114编程题.114第52套.116填空题.116改错题.116编程题.116第53套.117填空题.117改错题.118编程题.118第54套.120填空题.120改错题.120编程题.120第55套.123填空题.123改错题.123编程题.124第 56套.125填空题.125改错题.125编程题.126第 57套.128填空题.128改错题.128第 58

8、套.131填空题.131改错题.131编程题.131第 59套.133填空题.133改错题.133编程题.134第 60套.135填空题.135改错题.135编程题.135第 61套.137填空题.137改错题.137编程题.137第 62套.139填空题.139改错题.139编程题.139第 63套.141填空题.141改错题.141编程题.142第 64套.143填空题.143改错题.143编程题.143第 65套.145填空题.145改错题.145编程题.145第 66套.147填空题.147改错题.147编程题.147第 67套.149填空题.149改错题.149编程题.149第 68

9、套.151填空题.151改错题.151编程题.151第 69套.153填空题.153改错题.153编程题.153第 70套.154第 71套.155第 72套.157第 73套.158第 74套.160第 76套.163第 77套.164第 78套.165第 79套.167第 80套.169第 81套.170第 82套.172第 83套.173第 84套.174第 85套.175第 86套.177第 87套.179第 88套.180第 89套.182第 90套.183第 91套.185第 92套.186第 93套.187第 94套.189第 95套.191第 96套.192第 97套.194第

10、 98套.195第 99套.197第 1 套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include long fun(int n)(if(一 1一)return(n*fun(_2_);return_3_;)void main()(printf(10!=%ldn,fun(10);)第 1 处填空:n l或 ln第 2 处填空:n-1第 3 处填空:1或 11或 IL改错题下列给定程序的功能是:读入个整数K(2=K =10000),打印它

11、的所有因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include/*砧und*/IsPrime(int n);(int i,m;m=1;/*/for(i=2;in;i+)if!(n%i)(m=0;break;return(m);)void main()(int j,k;printf(nnplease enter an integer numberbetween 2 and 10000:);scanf(n%d

12、&k);printf(HnnThe prime factor(s)of%dis(are):k);for(j=2;jk;j+)if(!(k%j)&(IsPrime(j)printf(u%4d,0,j);printfCn1);)第 1 处:Isprime(inl n);应改为 Isprime(int n)第 2 处:if!(n%i)应该为 if(!(n%i)无法给出结果编程题M 个人的成绩存放在score数组中,请编写函 数 fu n,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。例如,当 score数组中的数据为10、20、30、40、50、60、70、80、

13、90 时,函数返回的认输应该是4,below中的数据应我10、20、30、40。注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include#include ini fun(int score,int m,int below)void main()(int i,n,below 9;intscore 9=10,20,30,40,50,60,70,80,90);FILE*out;n=fun(score,9,below);printf(MnBelow the average score ar

14、eout=fopen(out.datn,w1);for(i=0;in;i+)(printf(n%d n,below i);fprintf(out,%dn below i);)fclose(out);)答案是:int fun(int score,int m,int below)(int I,k=0,aver=0;for(i=0;im;i+)aver+=score i;aver/=m;for(i=0;im;i+)if(score iaver)(below k=score i;k+;return k;第2套填空题请在函数FU N 的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。斐

15、波纳契数列是一种整数数列,其中每数等于前面两数之和,$11:0 1 1 2 3 5 813 请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include int fun(int n);void main()(int i,n=0;scanf(u%d,&n);for(i=0;in;i+)printf(n%d”,fun);)int fun(int n)(if(一 1一)return 0;else i f(_ 2 _)return 1;elsereturn_3_;)第 1 处填空:n=0或 0=n或!n第 2 处填空:n=l或

16、l=n第 3 处 填 空:fun(n-l)+fun(n-2)或fun(n-2)+fun(n-1)改错题下列给定程序中,函 数 FU N的功能是:逐个比较a、b 两个字符串对应位置中的字符,把 ASCII值大或相等的字符依次存放到c 数组中,形成一个新的字符串。例如,若 a 中的字符串为aBCDeFgH,b中的字符串为:A B cd,则 c 中的字符串应为:aBcdeFgH请改正程序中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include void fun(char*p,char*q,char*c)(

17、/*Qund*/int k=1;/*Qund*/while(*p!=*q)(if(*p*q)c k=*q;elsec k=*p;if(*p)P+;if(*q)q+;k+;)void main()(char a 101=aBCDeFgH,b 10=ABcd,c 80=0;fun(a,b,c);printf(The string a:);puts(a);printf(The string b:);puts(b);printf(The result:);put s(c);)第 1 处:intk=l 应改为 intk=0;_第 2 处:while(*p!=*q)应改为 while(*pll*q)编程题

18、请编写函数fun,它的功能是:求出1到 1000之内能被7 或 11整除、但不能同时被7 或11整除的所有整数并将它们放在a 所指的数组中,通过n 返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数void m ain和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int*a,int*n)void main()(int aa 1000,n,k;FILE*out;fun(aa,&n);out=fopen(,out.dat,wn);for(k=0;kn;k+)if(k+l)%10=0)(printf(u%5

19、dn,aa k);fprintf(out,M%dnM,aa k);else(printf(u%5d,H,aa k);fprintf(out,aa k);)fclose(out);)答案是:void fun(int*a,int*n)(int i,j=0;for(i=2;i 1000;i+)if(i%7=0lli%l l=0)&i%77!=0)a|j+=i;*n=j;第3套填空题请补充函数FUN(CHAR*S),该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的

20、横线上填入所编写的若干表达式或语句。试题程序:#include#include#include#define N 81void fun(char*s)(int i,n=strlen(s)-l;char t;for(i=0;in;i+,_1_)(t=s i;一 2;3;)(void main()(char a|N|;printf(Enter a string:);gets(a);prinlf(The original string is:);puts(a);fun(a);printf(n);prinlf(The string after modified:);puts(a);)第 1 处填空:n

21、-或-n或 n-=l或 n=n-l不是n/2第 2 处填空:s i=s n或*(s+i)=*(s+n)第 3 处填空:s n=t 或*(s+n)=t改错题下列给定的程序中,函数fun的功能是:依次取出字符串中所以数字字符,形成新的字符串,并取代原字符串。请改正函数fun中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include void fun(char*s)int i,j;/*found*/for(i=0,j=0;s i!=0;i+)if(s j=O&s i=9,)/*j 应该是i*/s(j=s i

22、;/*Qund*/S j=0;void main()(char item 80;printf(nnEnter a stringgets(item);printf(HnnThe string is:%sn,item);fun(item);printf(MnnThe string of changing is:%sn,item);)第 1 处:s|j=s i;应改为 s j+=s i第 2 处:s j=/O;应改为 s j=0;编程题请编写函数 void fun(int x,int pp,int*n),它的功能是:求出能整除x 且不是偶数的各整数,并按从小到大的顺序放在p p 所指的数组中,这些除

23、数的个数通过形参n 返回.例如,若 x 中的值为30,则 有 4 个数符合要求,它们是1,3,5,15.注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int x,int pp,int*n)()void main()(int x,aa1000,n,i;FILE*out;printf(nPlease enter an integernumber:nu);scanf(%dn,&x);fun(x,aa,&n);for(i=0;in;i+4-)printf(M%

24、d,aai);printf(nnn);fun(730,aa,&n);out=fopen(out.datH,w);for(i=0;i n;i+)fprintf(out,M%dnH,aai);fclose(out);)答案是:void fun(int x,int pp,int*n)(int i=1 ,j=O,k=O,*t=pp;for(i=0;i=x;i+)if(i%2!=0)或者for(i=l;i=h;i+)/i 从 1 开始if(x%i=0)&(i%2!=0)(PP(k|=i;k+;)tj=i;j+;)for(i=0;ij;i+)if(x%ti=0)(ppk=ti;k+;*n=k;第4套填空题

25、请补充函数FU N,它的功能是:计算并输出N(包括N)以内能被3 或 7 整除的所有自然数的倒数之和。例如,在主函数中从键盘给N 输 入 30后,输出为:S=1.226323。请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include double fun(int n)(int i;double sum=0.0;for(i=l;_1;i+)if(i%3=0 2 i%7=0)sum+=_3_/i;return sum;)void main()(int n;double s;printf(nnlnput n:);scanf

26、(u%d,&n);s=fun(n);printf(nns=%fnM,s);)第 1 处填空:i=i第 2 处填空:II第 3 处填空:1.0或(double)l改错题下列给定程序中,fu n 函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s 输入:AaaaBBb 123CCccccd,则应输出结果:upper=6J ower=8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include/*fou nd*/void fun(char*s,int a,int b)(whi

27、le(*s)(/*found*/if(*s=A,&*sv=Z)a+;/*found*/if(*s=a,&*s=,z,)b+;s+;)void main()char s 100;int upper=0,lower=0;printf(nnPlease a string:*);gets(s);fun(s,&upper,&lower);printf(n upper=%d lower=%dn,upper,lower);)第 1 处:void fun(char*s,int a,int b)应改为void fun(char*s,int*a,int*b)与主程序对应第 2 处:a+;应改为(*a)+;第 3

28、处:b+;应改为(*b)+;编程题请编写一个函数 void fun(char*tt,int pp),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次存放在p p 所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(char*tt,ini pp)void main()(char aa 1000;int bb

29、26,k;FILE*out;printf(nPlease enter a char string:);scanf(n%su,aa);fun(aa,bb);for(k=0;k26;k+)printf(n%5d,bb k);printf(Mnn);fun(a bosom friend afar brings a distantland near”,bb);out=fopen(out.dat w);for(k=0;k 26;k+)fprintf(out,n%5dn bb k);fclose(out);)答案是:void fun(char pp)(int i;for(i=0;i=a&*tt=z)pp*

30、tt-,a+;/*将 tt字符串中才到2 2 6 个字母各自出现的次数,依次放在pp数组中,任一个小写字母减去H后所得结果正好是它对应的下标*/第 5 套填空题给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:s=,在程序中定义的变量名要与公式的变量相同)。例 如,输 入 圆 的 半 径 值:19.527,输出为:S=598.950017。请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include double fun(double r)(return 3.141

31、59*_1_/2.0;)void main()(double x;printf(nEnter x:);scanf(,%lfM,2);printf(n s=%lfn,fun(3一);)第 1 处填空:r*r第 2 处填空:&x第 3 处填空:x改错题假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删除数列中值为x 的元素,同时将其他元素前移。N 中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#define N 20fun(int*a,int n

32、,int x)int p=0,i;a n=x;while(x!=afpl)p=p+1;if(p=n)(return-1;)else*found*/for(i=p;in;i+)a i+l=a i;return n-1;)void main()(int w N=-3,0,1,5,7,99,10,15,30,90),x,n,i;n=10;printf(HThe original data:nn);for(i=0;in;i+)printf(5d,w i);printf(nnlnput x(to delete):,1);scanf(n%d&x);printf(HDelete:%dn,x);n=fun(w

33、,n,x);if(n=-l)(printf(n*Not be found!*nnH);)else(printf(The data after delete:nM);for(i=0;in;i+)printf(n%5dH,w i);printf(nnnu);)第 1 处:a i+l=a i;应改为 a i=a i+l;编程题请 编 写 一 个函数 void fun(int m,int k,intx x ),该函数的功能是:将大于整数m 且紧靠m 的 k 个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37o 注意:部分源程序给出如下。请勿改动主函数void m

34、ain和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int m,ini k,int xx)if(flag=l&z5)xx z+=x;void main()(int m,n,zz 1000;FILE*out;printf(MnPlease enter two integers:M);scanf(n%d,%dn,&m,&n);fun(m,n,zz);for(m=0;mn;m+)printf(%d 0,zz m);printf(nH);fun(28,20,zz);out=fopenCout.dat*,w);for(

35、m=0;m 20;m+)fprintf(out,%dn,zz m);fclose(out);)答案void fun(int m,int k,int xx)(int x,y,z=0,flag;for(x=m+l;xl 0000;x+)(for(y=2;y=x/2;y+)if(x%y!=0)flag=l;else flag=0;break;这句话必须要有第6套填空题给定程序的功能是计算并输出下列级数的前 N 项 之 和,直 到 大 于 Q 为止,Q 的值通过形参传入。例 如,若 Q的 值 为 50Q 则函数值为50.416687 1,请勿改动主函数void main和其他函数中的任何内容,仅在fu

36、n函数的横线上填入所编写的若干表达式或语句。试题程序:#include double fun(double q)(int n;double s;n=2;s=2.0;while(s_1_ q)(s=s+(double)(n+l)/n;一 2;)printf(,n=%dn,n);3;)void main()(prinlf(%fn,fun(50);)第 1 处填空:=第 2 处填空:n+或 n+=l或 n=n+l第 3 处填空:return s 或 return(s)改错题下列给定程序中,函数fun的功能是:根据整型参m 的值,计算如下公式的值。例如,若m 中的值为5,则应输出:0.536389请改

37、正程序中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include double fun(int m)(double y=1.0;int i;/*nd*/for(i=2;im;i+)/*found*/y-=l/(i*i);return(y);)void main()(int n=5;printf(nnThe result is%lfnn,fun(n);)第 1 处:for(i=2;im;i+)应 改 为for(i=2;i=m;j+)第 2 处:y-=l/(i*i);应改为 y-=L0/(i*i)编程题请

38、编写一个函数 void fun(char a,char b,inin),其功能是:删除一个字符串中指定下标的字符。其中,a 指向原字符串,删除后的字符串存放在b 所指的数组中,n 中存放指定的下标。例如,输入一个字符串W orld,然后输入 3,则调用该函数后的结果为Word。注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅 在 函 数 fu n 的花括号中填入所编写的若干语句。试题程序:#include#include#define LEN 20void fun(char a,char b|,int n)void main()char strl LEN,s

39、tr2 LEN;int n;FILE*out;printf(Enter the string:nH);gets(strl);printf(nEnter the position of the stringdeleted:*);scanf(n%d,&n);fun(strl,str2,n);printf(nThe new string is:%snM,str2);fun(nHello World!*,str2,9);out=fopen(nout.datn,wn);fprintf(out,%sn,str2);fclose(out);)答案是:void fun(char a,char b,int n)

40、(int I,j=0;for(i=0;iLEN;i+)if(i!=n)(b j=a i;j+;b j=O;第7套填空题函数fun的功能是:统计长整数n 的各个位上出现数字1,2,3 的次数,并通过外部(全局)变 量 cl,c2,c3返回主函数。例 如,当=123114350时,结果应该为:cl=3,c2=l,c3=2.注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序如下:#include int cl,c2,c3;void fun(long n)(cl=c2=c3=0;while(n)(switch(

41、_1_)(case 1:cl+;_2 _;case 2:c2+;3;case 3:c3+;)n/=10;)void main()(long n=123114350L;fun(n);printf(nThe result:nn);printf(n=%ld cl=%d c2=%dc3=%dnu,n,cl,c2,c3);)第 1 处填空:n%10第 2 处填空:break第 3 处填空:break改错题下列给定程序中函数fun的功能是:用选择法对数组中的n 个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的

42、结构!试题程序:#include#define N 20void fun(int a,int n)(int i,j,t,p;for(j=0;jn-l;j+)(/*found*/P=jfor(i=j;in;i+)if(a i a|p)/*Qund*/P=i;t=a p;a p=a i;a i=t;void main()(int a N=9,6,8,3,-l,i,m =5;printf(,?Do?oH);for(i=0;im;i+)printf(d J,a i);printf(,n,);fun(a,m);printf(n?Ddo6ou);for(i=0;im;i+)printf(u%d,n,a i

43、);printf(nn);第 1 处:p=j应改为p=j;第 2 处:p=i 应改为p=j;编程题请编写一个函数 int fun(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k 所指的存储单位中。例如,输入如下整数:876 675 896 101 301 401 980 431451 777则输出结果为:6,980o注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include max=s i;*k=l!void fun(int*s,int t,in

44、t*k)void main()(inta 10=876,675,896,101,301,401,980,431,451,777,k;FILE*out;fun(a,10,&k);printf(%d,%dn”,k,a k);out=fopen(out.dat“,w);fprintf(out,n%dn%dM,k,a k);fclose(out);)答案是:void fun(int*s,int t,int*k)(int I,max;max=s 0;for(i=0;imax)第8套填空题请补充void main函数,该函数的功能是:从键盘输入一组整数,使用条件表达式找出最大的整数。当输入的整数为。时结束

45、。例如,输 入 1 23 5 4 0 时,最大的数为5。请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include#include#define N 100void main()(int num N;int i=-1;int max=0;printf(nnlnput integer number:n);do(i+;printf(,num%d=,i);scanf(%du,1);max=_2_num il:max;)while(_3_);printf(nmax=%dnn,max);)第 1处填空:&num i或 num+i

46、第 2 处填空:maxmax?第 3 处填 空:num i!=0 或 0!=num i改错题下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH请改正程序中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include/*found*/void fun(char*p);char max,*q;int i=0;max=p i;while(p i!=

47、0)(if(max p)后面的字符依次后移一位(*q=*(q-l);q-s)p 0=max;第一位赋予最大的字符)void main()(char str 80;printf(Enter a string:);gets(str);printf(nnThe original string:);puts(str);fun(str);printf(HnThe string after moving:);puts(str);printf(nn);)第 1 处:void fun(char*p)|应改为 voidfun(char*p)第 2 处:p=q+I;应改为q=p+i;编程题编写函数f u n,函数

48、功能是:根据以下公式计 算 s,计算结果作为函数值返回;n 通过型参传入。s=l+l/(l+2)+1/(1+2+3)+1/(1+2+3+4)+.+1/(1+2+.n)例如:若 n 的 值 为 1 1 时,函数的值为1.833333 o注意:部分源程序给出如卜 丁请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include#includefloat fun(ini n)void main()(int n;float s;FILE*out;printf(nPlease enter N:u);scanf(n%d,&n

49、);s=fun(n);printf(,The result is:%fn,s);s=fun(28);out=fopenCout.dat1,wM);fprintf(oul,,s);fclose(out);)答案float fun(int n)(int i;float s=l.O,t=l.O;for(i=2;i=n;i+)(t=t+i;s二 s+LO/t;涉及到除法时要考虑结果为整型还是浮点型return s;第9套填空题给定程序的功能是分别统计字符串中大写字母和小写字母的个数。例 如,给字符串S S 输 入:AaaaBBbl23CCccccd,则 输 出 结 果 应 为:upper=5,lowe

50、r=9o请勿改动主函数void main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include void fun(char*s,int*a,int*b)(while(*s)(if(*s士 A&*s=a&*s=z)_ 2_;s+;void main()(char s 100;int upper=0,lower=0;printf(nPlease a string:);gets(s);fun(s,&upper,&lower);printf(n upper=%d lower=%dnu,3);)第 1 处填空:(*a)+或+(*a)或*a=*a+l或*a+

51、=l第 2 处填空:(*b)+或+(*b)或*b=*b+l或*b+=l第 3 处填空:upperjower改错题下列给定程序中,函数fun的功能是:从 n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在行参aver所指的存储单元中。例如,若输入8 名学生的成绩:80.5 60 72 90.5 9851.5 88 6 4 则低于平均分的学生人数为4(平均分为:75.5625).请改正程序中的错误,使程序能统计出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include#define N 20int

52、fun(float*s,int n,float*aver)(float ave,t=0.0;int count=0,k,i;/*Cund*/for(k=0;kn;k+)t=s k;ave=t/n;for(i=0;in;i+)if(s i ave)count+;/*nd*/*aver=&ave;return count;)void main()(float s 30,aver;int m,i;printf(nPlease enter m:);scanf(n%du,&m);printf(nPlease enter%d mark:n,m);for(i=0;inoP=m!/(n!(m-n)!)例如:m

53、=12,n=8时,运行结果为495.000000注意:部分源程序给出如卜。请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include float fun(int m,int n)()void main()(FILE*out;printf(nP=%fn,fun(l2,8);out=fbpen(out.dat”,w);fprintf(out,H%f,fun(12,6);fclose(out);)答案是:float fun(int m,int n)(float p,t=1.0;/t用实型保证结果有小数int i;f

54、or(i=l;i=m;i+)P=t;for(t=1.0,i=1 ;i=n;i+)t=t*i;p=p/t;for(t=1.0,i=l;i=m-n;i+)t=t*i;p=p/t;return p;第 10套填空题请补充void main函数,该函数的功能是:从键盘键盘输入3个整数然后找出最大的数并输出。例如,输入:12 45 4 3,输出为45注意:部分源程序给出如Ho仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include#include void main()(int a,b,c,max;printf(nnlnput three numbers:n);sc

55、anf(u%d,%d,%dn,&a,&b,&c);printf(HThe three numbersare:%d,%d,%dn,a,b,c);if(ab)一 1一;else一 2;if(max c)3;printf(max=%dn,max);)第 1 处填空:max=a第 2 处填空:max=b第 3 处填空:max=c改错题下列给定程序中,函数fun的功能是:将 s所指字符串出现的t l 所指子串全部替换成t2所指子字符串,错形成的新串放在w 所指的数组中。在此处,要求t l 和 t2 所指字符串的长度相同。例如,当 s 所指字符串的内容为abcdabfab,tl所指子串中的内容为ab,t2

56、 所指子串中的内容为9 9 时,结果,在 w所指的数组中的内容为99cd99f99。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动void main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include#include/*found*/void fun(char*s,*tl,*t2,*w)(int i;char*p,*r,*a;strcpy(w,s);while(*w)(p=w;r=tl;/*ound*/while(r)if(*r=*p)(r+;P+;)else(break;)if(*r=)(a=w;r=t2;while(*r)(*a=*广a+;r+

57、;w+=strlen(t2);)else(w+;)void main()(char s 100,tl 100,t2 100,w 100;printf(nPlease enter string s:u);scanf(u%sM,s);printf(nPlease enter substring tl:n);scanf(n%sn,tl);printf(nPlease enter substring t2:);scanf(n%sM,t2);if(strlen(tl)=strlen(t2)(fun(s,tl,t2,w);printf(nThe result is:%sn,w);)elseprintf(E

58、rror:strlen(tl)!=strlen(t2)n);第 1 处:void fun(char 应改为void fun(char*s,char*tl,char*t2,char*w)调用函数应指明括号中形参的类型第 2 处:while(r)应改为 while(*r)编程题编写函数fu n,它的功能是:利用以下所示的简单迭代方法求方程式cos(x)x=0的一个实根。迭代步骤如下:(1)取 X1初值为0.0;(2)x0=xl,把 x l 的值赋给x0;(3)xl=cos(x0),求出一个新的 xl;(4)若 x0 xl,的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所

59、求x l 就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=0.739085o注意:部分源程序给出如卜请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include#include float fun()void main()(FILE*out;float f=fun();printf(nRoot=%fnM,f);out=fopenCout.dat,w);fprintf(out,f);fclose(out);)答案是:float fun()(float xl=0.0,x0;do(x0

60、=x1;xl=cos(x0);while(fabs(x0-x 1)=1 e-6);绝对值,大小于号与退出循环条件相反return x 1;第 11套填空题给定程序中,涵 数 fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于 2)例如,形 参 s 所指的字符串为:abcdefgh,执行结果为:ahcbedgf.注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include void fun(char*s)(int

61、 i,n,k;char c;n=0;for(i=0;s i!=0;i+)n+;if(n%2=0)k=n-_1_;elsek=n-2;C =_2_,单独定义c 其实没什么作用for(i=k-2;i=l;i=i-2)s i+2=s i;s l=-3一;)void main()(char s 80=abcdefgh;printf(nnThe original string is:%sn,s);fun(s);printf(nThe result is:%sn,s);)第 1 处填空:1第 2 处填空:s k或*(s+k)第 3 处填空:c改错题下列给定程序中,函 数 FU N 的功能是:将一个由八进制

62、数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5 位 8 进制数字。例如,若输入77777,则输出将是32767。请改正程序中的错误,使它能得出正确结果。注意:不要改动VOID MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include#include#include int fun(char*p)int n;/*found*/n=*p-,o,;p+;/*拈und*/while(*p!=0)(n=n*7+*p-*o;*p-0将字符转化为数字p+;)return n;void main()(char s 6;int i;int n;print

63、f(*Enter a string(octal digits):);gets(s);if(strlen(s)5)(printf(u Error:string toolonger!nnH);exit(O);)for(i=0;s i;i+)printf(nError:%c not is octaldigits!nnu,s i);exit(O);printf(MThe original string:);puts(s);n=fun(s);printf(n%s is convered to integenumber:%dnnM,s,n);)第 1 处:n=*p-o ;应改为 n=*p-O;第 2 处:

64、n=n*7+*p-o ;应改为 n=n*8+*p-O;这样输出结果是19607编程题下列程序定义了N X N 的而维数组,并在主函数中自动赋值。请编写函数fun(int a N),该函数的功能是:使数组左下半三角元素的值会全部置成0o例如:a 数组中的值为a=,则返回主程序后a 数组中的值应为。注意:部分源程序给出如下。请勿改动主函数void main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include#include#define N 5void fun(int a|N)()void main()(int a N N,i,j;FIL

65、E*out;prinlf(*The array*n);for(i=0;iN;i+)(for(j=0;jN;j+)a i j=rand()%10;printf(%4da i j);)printf(n);)fun(a);printf(THE RESULTn);for(i=0;iN;i+)(for(j=0;jN;j+)printfC,%4da i(j);printf(nu);)for(i=0;iN;i+)for(j=0;jN;j+)a i j=i*N+j+l;fun(a);out=fopen(out.datM,w);for(i=0;iN;i+)(for(j=0;jN;j+)fprintf(out,n

66、%4dn,a i j);fprintf(out,nnH);)fclose(out);)答案(含对角线)intfun(inta N)int i,j;for(i=0;iN;i+)for(j=0;j=I;j+)a iU=0;第 12套填空题请补充fun函数,该函数的功能是字符串tt中的大写字母都改为对应的小写字母,其它字符不变.例如,若输入 Are you come from Sichuan?则输出,are you come from sichuan?注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include#include#include char*fun(char tt)(int i;for(i=O;tt i;i+)if(tt i=A)&(-1)tt i+=2;)return(_ 3 _);)void main()(char tt 81;printf(nPlease enter a string:);gets(tt);prinlf(nThe result string is:n%s,fun(tt);)第 1 处填空:tt i=

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!