计算机二级c++上机考试题库80题答案.docx

上传人:无*** 文档编号:68392192 上传时间:2022-12-27 格式:DOCX 页数:189 大小:224.39KB
返回 下载 相关 举报
计算机二级c++上机考试题库80题答案.docx_第1页
第1页 / 共189页
计算机二级c++上机考试题库80题答案.docx_第2页
第2页 / 共189页
点击查看更多>>
资源描述

《计算机二级c++上机考试题库80题答案.docx》由会员分享,可在线阅读,更多相关《计算机二级c++上机考试题库80题答案.docx(189页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、填空题给定程序的功能是求1/4的圆周长。函数通过形参得到圆的直径,函数返回1/4的圆周长(圆周长公式为:L=rid,在程序中定义的变量名要与公式的变量相同)。例如:输入圆的直径值:19.527,输出为:15.336457请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句。#includedouble fun(double d)(return 3.14159*d/4.0;main()(double z;printf(nInput the d of the round:H);scanf(H%ir,&z);printf(,L=%lfn,fun(z);二、改错题下列

2、给定程序中函数fun的功能是:计算正整数m的各位上的数字之积。例如,若输入202,则输出应该是0。请修改程序中的错误,得出正确的结果注意:不要改动main函数,不能增行或删行,也不能更改程序的结构#include#includelong fun(long n)(long r=l;do(r*=n%10;n/=10;while(n);retum(r);main()(long m;printf(nplease enter a number:n);scanf(n%ld,&m);printf(,n%ldn,fun(m);三、编程题请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整初的

3、所有整数放在数组b中,通过n返回这些数的个数。例如,若传送给m的值为20,则程序输出71114,请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include#include#define N 100void fun(int m,int*b,int*n)(int i,j=O;*n=O;for(i=1;i=m;i+)if(i%7=0lli%ll=0)(bUJ=;j+;)*n=j;main()(int aN,n,i;FILE*out;fun(20,a,&n);for(i=0;in;i+)if(i+l)%20=0)printf(M%4dnM,ai);el

4、seprintf(n%4dH,ai);printf(Mnn);out=fopen(Moutfile.dat,w,);fun(100,a,&n);for(i=0;in;i+)if(i+l)%10=0)fprintf(out,%4dn,ai);elsefprintf(out,n%4d,ai);fclose(out);)第2套一、填空题函数fun的功能是:统计长整数test的各位上出现数字5、6、7的次数,并通过外部(全局)变量sum5、sum6、sum7返回主函数。例如:当 test=89431676时,结果应该为:sum5=0 sum6=2 sum7=lo请勿改动主函数main与其它函数中的任何

5、内容,仅在fun函数的横线上填写所需的若干表达式或语句。#includeint sum5,sum6,sum7;void fun(long test)(sum5=sum6=sum7=0;while(test)(switch(test%10)(case 5:sum5+;break;case 6:sum6+;break;case 7:sum7+;test/=10;)main()(long test=89431676L;fun(test);printf(nnThe count result:n);printf(Htest=%ld sum5=%d sum6=%d sum7=%dn,test,sum5,s

6、uin6,sum7);二、改错题下列给定程序中,函数fun的功能是:将字符串str中的小写字母都改为对应的大写字母,其它字符不变。例如,若输入“asAS”,则输出“ASAS”。请修改程序中的错误,使它能统计出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构#include#include#includechar*fun(char str)(inti;for(i=0;stri;i+)if(stri=,a&stri=z,)stri-=32;return(str);main()char str81;printf(nplease enter a string:*);gets

7、(str);printf(nnThe result string is:n%sH,fun(str);)三、编程题请编写一个函数fun,它的功能是:找出一维整型数组元素中最小的值和它所在的下标,最小的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中a是数组名,n是a中的数据个数,min存放最小值,flag存放最小值所在元素的下标请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include#include#includevoid fun(int b,int n,int*min,int*d)(int i;*min=b0;*d=0;

8、for(i=0;in;i+)if(bi*min)I*min=bi;*d=i;main()(int i,a20,min,flag,n=10;FILE*out;for(i=0;ivn;i+)(ai=rand()%50;printf(M%4d,ai);)printf(Hnn);fun(a,n,&min,&flag);printf(nmin=%5d,Index=%4dnH,min,flag);out=fopen(Moutflie.dat,MwM);memcpy(a,H3.141592653589793238462643383279:32);fun(a,8,&min,&flag);fprintf(out

9、,nmin=%5d,Index=%4dmin,flag);fclose(out);)第3套上机考试试题一、填空题请补充main函数,该函数的功能是:从键盘输入一组整数,使用条件表达式找出最大的整数。当输入的整数为时结束。例如:输入9612123343232548936589-1时,最大的数为365 o仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其它任何内容#include#include#define NUM 100main()(intnNUM;int i=-l;int MAX=-1;printf(MnInsert integer with the T as end:nH);do(i

10、+;printf(n%d=,i);scanf(H%dM,&nli);MAX=MAXni?ni:MAX;while(ni!=-l);printfCThe MAX=%dnH,MAX);二、改错题下列给定程序中,函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其数值相等的十进制整数.例如,若输入的十1,则输出将是4681。请修改程序中的错误,使它能得出正确结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构#include#include#includeint fun(char*s)(int n;n=*s-O;s+;while(*s!=0)(n=n*8+*sO;s+;

11、return n;main()(char str6;inti;int n;printf(nEnter a string(octal digits):*);gets(str);if(strlen(str)5)(printf(,Error:string too longer!nnH);exit(O);)fdr(i=O;stri;i+)if(stri,7,)(printf(Error:%c not is octal digits!nnM,stri);exit(O);printf(MThe original string:);puts(str);n=fun(str);printf(nn%s is co

12、nvered to intege number:%dnn,str,n);)三、编程题下列程序定义了 NXN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的ro例如:若c数组中的值为:197C=452383则返回主程序后r的值应为4.625000请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句#include#include#include#define N 3double fun(int bN)int i,j,k=O;double r=0.0;for(j=0;jN;j+)r+=bOj;k

13、+;lbr(j=O;jN;j+)r+=bN-l|j;k+;for(i=1;i=N-2;i+)(r+=biO;k+;)for(i=1;i=N-2;i+)(r+=biJlN-lJ;k+;return r/=k;)main()(int CNN=1,9,7,4,5,2,3,8,3);int i,j;FILE*out;double r;pr*求木*n ,for(i=0;iN;i+)(for(j=0;jN ;j+)(printf(,%4dcij);)printf(MnM);)r=fun(c);printf(HTHE RESULTnn);printfCThe r is %lfnM,r);out=fopen(

14、,outfile.dat,/,w,);fprintf(out,u %lf,r);fclose(out);第4套上机考试试题一、填空题请补充fun函数,该函数的功能是将字符串str中的小写字母都改为对应的大写字母,其它字符不变。例如:若输入Welcome!”,程序输出结果是WELCOME!”。请勿改动主函数main与其它函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。#include#include#includechar*fun(char str)(intj;for(j=0;strj;j+)(if(strj=a)&(strj=,z)str(j-=32;)retum(str)

15、;main()(char str100;printf(nnplease enter a string:*);gets(str);printf(nnThe result string is:n%sH,fun(str);二、改错题下列给定程序中,函数fun的功能是:计算并输出n以内最大的10个能被11或19整除的自然数之和。n的值由主函数传入,若n的值为300,则函数值为2646。请修改程序中的错误或在横线处填上适当的内容并把横线删除,使程序能得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。#include#includeint fun(int n)int m=0

16、,mix=0;while(n=2)&(mix10)(if(n%ll=0)ll(n%19)=0)m=m+n;mix+;n-;return m;main()(printf(n%dnM,fun(300);三、编程题请编写函数fun,其功能是:将sir所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全部删除;串中剩余字符所形成的一个新串放在s所指的数组中。例如,若sir所指字符串中的内容为ABCDEFG123456,其中字符A的ASCH码值为奇数,因此应当删除;其中字符B的ASCII值为偶数,但在数组中的口标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的标也为

17、偶数,因此不应当删除,其它以此类推。最后s所指的数组中的内容应是246。请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。#include#include#includevoid fun(char*str,char sJ)(int i,j=O,n;n=strlen(str);for(i=0;in;i+)if(i%2=0&stri%2=0)(sj=stri;j+;)sj=V);)main()char str100,s100;FILE*out;printf(nnplease enter string:1);scanf(,%s,st

18、r);fun(str,s);printf(MnThe result is:%sn,s);out=fopen(uoutfile.dat,V,wM);strcpy(str,please enter string:1);fun(str,s);fprintf(out,%s,s);fclose(out);第5套上机考试试题一、填空题请补充fun函数,该函数的功能是:依次取出字符串中所有大写字母,形成新的字符串,并取代原字符串。例如,输入sdfASDsd,则输出ASD。请勿改动主函数main与其它函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如卜。#include

19、#includevoid fun(char*s)(int j=0;char*p=s;while(*p)(if(*p=A&*p=Z)(sj=*p;j+;)P+;)sinw;)main()(char str100J;printf(nPlease Input a string:*);gets(str);printf(nnnThe original string is:%snstr);fun(str);printf(nnThe string of changing is:%snn,str);二、改错题下列给定程序中,函数fun的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素

20、之和。请修改函数fun中的错误或在横线处填上适当的内容并把横线删除,得出正确结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。#includevoid fun()(int aa33,sum;int i,j;sum=0;for(i=0;i3;i+)for(j=0;j3;j+)for(i=0;i3;i+)sum=sum+aaii;printf(,sum=%dn,sum);)main()(fun();三、编程题请编写一个函数void fun(int*s,int t,int*result),用来求出数组的最小元素在数组中的下一标,并存放在result所指的存储单元中。例如,输入如

21、下整数:564,165,567,121,948,324,329,454,5345,783,434,124,561,985,555则输出结果为:3,121.请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。#include#includevoid fun(int*s,int t,int*result)(int temp,min;min=s0;for(temp=0;tempt;temp+)if(stempmin)(min=stemp;*result=temp;Imain()(int store15=564,l65,567,121,

22、948,324,329,454,5345,783,434,124,561,985,555,result;FILE*out;fun(store,10,&result);printf(M%d,%dnM,result,storeresult);out=fopen(,outfile.dat,w,);fprintf(out,M%dn%dM,result,storeresult);fclose(out);第6套上机考试试题一、填空题给定程序的功能是判断字符串s中的某个字符是否与字符ch相同,若相同什么也不做,若不同则插在字符串的最后。例如,输入test,如果输入e,输出的结果不变,但如果输入a,结果tes

23、ta请勿改动主函数main与其它函数中的任何内容,仅在横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。#include#includevoid fun(char*s,char ch)(while(*s&*s!=ch)s+;if(*s!=ch)(s0=ch;sl=0;)main()(char str81,c;printf(MnPlease input a string:n);gets(str);printf(nn Please enter the character to search:0);c=getchar();fun(stnc);printf(nThe result is %s

24、W,str);二、改错题下列给定程序中,函数fun的功能是:按顺序给t所指数组中的元素赋予从2开始的偶数。然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在r所指的数组中。若t所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,t所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。请修改程序中的错误,得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。#include#define NUM 20int fun(double*t,double*r)(intj,i;double sum;for(j=2,i=0;iNUM;i+)(

25、ti=j;j+=2;)sum=0.0;for(j=0,i=0;iNUM;i+)(sum+=ti;if(i+l)%5=0)(rj=sum/5;sum=0;j+;)return j;main()(double aNUM,bNUM/5;int i,j;j=fun(a,b);printf(The original data:n);for(i=0;iNUM;i+)(if(i%5=0)printf(HnM);printf(M%4.0f;ai);)printf(MnnThe result:nM);for(i=0;ij;i+)printf(n%6.2f,bi);printf(nnnM);)三、编程题请编写一个

26、函数void fun(int x,int sum,int select),该函数的功能是:将大于整数x且紧靠x 的sum个素数存入select所指的数组中=例如,输入:1218,则应输出:127131137139149151157163请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。#include#includevoid fun(int x,int sum,int selectf)(int r=O,temp,p,sign=1;for(temp=x+1;tempx*x;temp+)(for(p=2;p=temp)(if(su

27、m=0) selectr+=temp; sum-;1elsebreak;)int x,y,a500;FILE*out;printf(nlnpul two number:);scanf(M%d,%dM,&x,&y);fun(x,y,a);for(x=0;xy;x+)printf(M%d M,ax);printf(MnM);fun(121,10,a);out=fopen(,outfile.dat,1,w,);for(x=0;x10;x+)fprintf(out,M%dnn,ax);fclose(out);第7套上机考试试题一、填空题给定程序的功能是计算score中n个人的平均成绩aver,将高于a

28、ver的成绩放在high中,通过函数名返回人数。例如,score=88,75,50,60,80,90,n=6时,函数返回的人数应该是4, high=88,75,80,90).请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。#include#includeint fun(int score J,int m,int highJ)(int i,j=0;float aver=0.0;for(i=0;iaver)high|j+=;return j;)main()(int i,n,high6;int score6=88,75,50,60,80,

29、90);n=fun(score,6,);printf(HnThe high of average score are:);for(i=0;in;i+)printf(%d ,); printf(n);二、改错题已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项之和。下列给定程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=4时,程序输出结果应为2.000000。请修改程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。#include#include#include

30、double fun(int n)(double sum,a0,al,a2,a;int i;sum=1.0;if(n=2)sum=0.0;a0=0.0;a 1=0.0;a2=1.0;for(i=4;i=n;i+)(a=a0+al+a2;sum+=sqrt(a);a0=al;al=a2;a2=a;)return sum;)main()(int n;printf(MInput N=);scanf(,%d,&n);printf(lfn”,fun(n);三、编程题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组score中,请编写函数fun,它的功能是把分数最低的学生数据放在low

31、所指的数组中,注意:分数最低的学生可能不只一个,函数返回分数最低的学生的人数。请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。#include#define M 10 typedef struct (char num10;int s; SCORE;int fun(SCORE*a,SCORE*b)(int i,j=0,n=0,min;min=a0.s;for(i=0;iM;i+)if(ai.smin) min=ai.s;for(i=0;iM;i+)if(ai.s=min)(*(b+j)=ai;j+; n+;) return n

32、;) main()(SCOREstuM=,GA03n,76,GA04H,85,nGA0r,91,MGA08,1,64,MGA06,87,MGA014,1,91,MGAO 11”,77,“G AO 17”,64,“G AO 18,64,“GA016”,72;SCORE lowM;int i,n;FILE*out;n=fun(stu,low);printf(The %d lowest score:n,n);for(i=0;in;i+)printf(M%s %4dn;lowi.num,lowi.s);printf(MnM);out=fopen(,outfile.dat,wn);fprintf(out

33、,M%dnH,n);fbr(i=O;in;i+)fprintf(out,M%4dn,lowi.s);fclose(out);第8套上机考试试题一、填空题请补充main函数,该函数的功能是:从键盘输入3个整数,然后找出最小的数并输出。例如:输入78,53,123,则输出为53。请勿改动主函数main与其它函数中的任何内容,仅在横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。#include#includemain()(int x,y,z,min;printf(nlnput three number:n);scanf(M%d,%d,%d*&x,&y,&z);printf(nThe th

34、ree numbers are:%d,%d,%dn,x,y,z);if(xz)min=z;printf(,min=%dn,min);二、改错题下列给定程序中,fun函数的功能是:分别统计字符串中小写字母和大写字母的个数。例如,给字符串t输入:adfsFFssefSCGSDew,则应输出结果:big=7,small=10o请修改程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。#include#includevoid fun(char*t,int*c,int*d)(while(*t)(if(*t=,A,&*t=,a,&*t=z)(*d)+;t

35、+;char t200;int big=O,small=O;printf(nplease input a string:1);gets(t);fun(t,&big,&small);printf(Mn big=%d small=%dnbig,small);三、编程题请编一个函数voidfun(intaMnN,intbN), c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中。二维数组中的数己在主函数中赋予。请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如Fo#include# i nclude#

36、define M 3# define N 4void fun(int aMN,int bN)int ij,max;for(j=0;jN;j+)max=a0Jj;for(i=0;imax)max=ali|jj;)bj=max;)main()(int cMN=10,22,15,30)419,33,45,38,20,22,66,40);int pN,i,j,k;FILE*out;printf(The original data is:n);for(i=0;iM;i+)for(j=0;jN;j+)printf(M%6dcij);printf(Mnn);)fun(c,p);printf(nnThe re

37、sult is:nn);for(k=0;kN ;k+)printf(n%4d;pk);printf(nn);out=fopen(,outfile.dat,wn);for(k=0;kN ;k+)fprintf(out;%dn,pkj);fclose(out);第9套上机考试试题一、填空题请补充fun函数,该函数的功能是:从键盘输入一个卜标n,把数组a中比元素an小的元素放在它的左边,比它大的元素放在它的右边,排列成的新数组仍然保存在原数组中。例如,数组a=33,55,66,44,77,22,88,99,11,10,输入2,则结果输出“33554422111066778899”。请勿改动主函数ma

38、in与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。#include#define N 10void fun(int a,int n)(int i,j=O,k=O,t;int bN;t=an;for(i=0;it)bj+=ai;if(ait)ak+=ai;for(i=0;i+,k+) ak=bi;)main()int i,n;int aN=33,55,66,44,77,22,88,99,11,10);printf(MThe original array:n);for(i=0;iN ;i+)printf(M%4dM,ai);printf(nn

39、suffix n:);scanf(M%dM,&n);fun(a,n);printf(HThe new array:nM);for(i=0;iN;i+)printf(H%4dn,aiJ);printf(Mnn);二、改错题下列给定程序中,fun函数的功能是:求a=xxxx-xx-xx-x(lH:xx-xx表示n个x,x和n 的值在1至9之间)。例如x=3, a=6,则以上表达式为:a=333333-33333-3333-333-33-3其值是296298。X和n是fun函数的形参,表达式的值作为函数值传回main函数。请修改程序的错误,使它能计算出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。#include#includelong fun(int x,int n)(intj;long a=O,t=l;for(j=0;j=n;j+)t=t*10+x;a=t;forQ=l;jn;j+)(t=t%10;a=a-t;retum(a);)main()(int x,n;printf(MnPlease enter x and n:M);scanf(n%d%dn,&x,&n);printf(MThe value of fun is %ldnM,fun(x,n);)三、编程题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁