模拟试题答案120课案.docx
- 文档编号:7058868
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:75
- 大小:45.58KB
模拟试题答案120课案.docx
《模拟试题答案120课案.docx》由会员分享,可在线阅读,更多相关《模拟试题答案120课案.docx(75页珍藏版)》请在冰豆网上搜索。
模拟试题答案120课案
…………………………………………>
全国二级C上机模拟试题
2.1全国二级C上机考试模拟试题1
注意:
下面出现的“考生文件夹”均为C:
\C\MNST\01
1.填空题
数组xx[N]保存着一组3位数的无符号正整数,其元素的个数通过变量num传入函数fun()。
请补充函数fun(),该函数的功能是:
从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。
例如:
当xx[8]={135,787,232,222,424,333,141,541}时,bb[6]={787,232,222,424,333,141}。
注意:
部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
#defineN1000
intfun(intxx[],intbb[],intnum)
{
inti,n=0;
intg,b;
for(i=0;i { g=xx[i]%10; b=xx[i]/100; if(g==b) bb[n++]=xx[i]; } Returnn; } voidmain() { intxx[8]={135,787,232,222,424,333, 141,541}; intyy[N]; intnum=0,n=0,i=0; num=8; system("CLS"); printf("***originaldata***\n"); for(i=0;i printf("%u",xx[i]); printf("\n\n\n"); n=fun(xx,yy,num); printf("\nyy="); for(i=0;i printf("%u",yy[i]); } 2.改错题 下列给定程序中函数fun()的功能是计算1/n! 的值。 例如: 给n输入5,则输出0.008333。 请改正程序中的错误,使它能得到正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include /**********************found***********************/ doublefun(intn) {doubleresult=1.0; if(n==0) return1.0; while(n>1&&n<170) /**********************found***********************/ result*=n--; result=l/result; returnresult; } voidmain() { intn; printf("InputN: "); scanf("%d",&n); printf("\n1/%d! =%lf\n",n,fun(n)); } 3.编程题 编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。 例如: n为1000时,函数值应为s=96.979379。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include #include doublefun(intn) { doubles=0.0; inti; for(i=0;i s=s+i; s=sqrt(s); returns; } voidmain() { system("CLS"); printf("s=%f\n",fun(1000)); } 2.2全国二级C上机考试模拟试题2 注意: 下面出现的“考生文件夹”均为C: \C\MNST\02 1.填空题 请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。 方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入a、b、c的值。 例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00,x2=-1.00。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include voidmain() { floata,b,c,disc,x1,x2; system("CLS"); do { printf("Inputa,b,c: "); scanf("%f,%f,%f",&a,&b,&c); disc=b*b-4*a*c; if(disc<0) printf("disc=%f\nInputagain! \n",disc); }while(disc<0); printf("*******theresult*******\n"); x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("\nx1=%6.2f\nx2=%6.2f\n",x1,x2); } 2.改错题 下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。 y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m) 例如: m中的值为5,则应输出0.838611。 请改正程序中的错误,使它能得到正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include doublefun(intm) {doubley=1.0; /**********************found***********************/ doublej=1.0; inti; for(i=2;i<=m;i++) { j=-1*j; /**********************found***********************/ y+=j/(i*i); } return(y); } voidmain() { intn=5; system("CLS"); printf("\nTheresultis%lf\n",fun(n)); } 3.编程题 请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。 二维数组中的数已在主函数中给出。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include #defineM3 #defineN4 voidfun(inttt[M][N],intpp[N]) { inti,j,max; for(j=0;j { max=tt[0][j];/*假设各列中的第一个元素最大*/ for(i=0;i if(tt[i][j]>max)/*如果各列中的其他元素比最大值还大, 则将这个更大的元素看作当前该列中最大的元素*/ max=tt[i][j]; pp[j]=max;/*将各列的最大值依次放入pp数组中*/ } } voidmain() { intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; system("CLS"); printf("Theriginaldatais: \n"); for(i=0;i { for(j=0;j printf("%6d",t[i][j]); printf("\n"); } fun(t,p); printf("\nTheresultis: \n"); for(k=0;k printf("%4d",p[k]); printf("\n"); } 2.3全国二级C上机考试模拟试题3 注意: 下面出现的“考生文件夹”均为C: \C\MNST\03 1.填空题 请补充main函数,该函数的功能是: 从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。 例如,当str1="cdefghij",则str2="cegi"。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #defineLEN80 voidmain() { charstr1[LEN],str2[LEN]; char*p1=str1,*p2=str2; inti=0,j=0; system("CLS"); printf("Enterthestring: \n"); scanf("%s",str1); printf("***theorigialstring***\n"); while(*(p1+j)) { printf("%c",*(p1+j)); j++; } for(i=0;i *p2++=*(str1+i); *p2='\0'; printf("\nThenewstringis: %s\n",str2); } 2.改错题 在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。 下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。 例如: 数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。 请改正程序中的错误,使它能得到正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include doublefun(intx[]) { doublesum=0.0; intc=0,i=0; /**********************found***********************/ while(x[i]! =0) { if(x[i]<0) { sum=sum+x[i]; c++; } i++; } /**********************found***********************/ sum=sum/c; returnsum; } voidmain() { intx[1000]; inti=0; system("CLS"); printf("\nPleaseentersomedata(endwith0): "); do { scanf("%d",&x[i]); }while(x[i++]! =0); printf("%f\n",fun(x)); } 3.编程题 请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数: 234345753134436458100321135760则输出结果为6,100。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include intfun(int*s,intt,int*k) { inti; *k=0;/*k所指的数是数组的下标值*/ for(i=0;i if(s[*k]>s[i]) *k=i;/*找到数组的最小元素,把该元素的下标赋给k所指的数*/ returns[*k]; } voidmain() { inta[10]={234,345,753,134,436,458,100,321,135,760},k; system("CLS"); fun(a,10,&k); printf("%d,%d\n",k,a[k]); } 2.4全国二级C上机考试模拟试题4 注意: 下面出现的“考生文件夹”均为C: \C\MNST\04 1.填空题 请补充main函数,该函数的功能是: 把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。 例如: 当str[N]="123abcdefABCDEF! ",结果输出: "123ABCDEFABCDEF! "。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #defineN80 voidmain() { intj; charstr[N]="123abcdefABCDEF! "; char*pf=str; system("CLS"); printf("***originalstring***\n"); puts(str); j=0; while(*(pf+j)) { if(*(pf+j)>='a'&&*(pf+j)<='z') { *(pf+j)=*(pf+j)-32; j++; } else j++; } printf("******newstring******\n"); puts(str); system("pause"); } 2.改错题 下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。 例如: a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。 请改正程序中的错误,使它能得到正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include voidfun(char*p,char*q,char*c) {intk=0; while(*p||*q) /**********************found***********************/ { if(*p>=*q) c[k]=*q; elsec[k]=*p; if(*p)p++; if(*q)q++; /**********************found***********************/ k++; } } voidmain() {chara[10]="fshADfg",b[10]="sdAEdi",c[80]={'\0'}; fun(a,b,c); printf("Thestringa: ");puts(a); printf("Thestringb: ");puts(b); printf("Theresult: ");puts(c); } 3.编程题 请编写函数fun,其功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。 例如,当a=16,b=35,调用该函数后,c=5361。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include voidfun(inta,intb,long*c) { *c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; } voidmain() { inta,b; longc; system("CLS"); printf("Inputa,b;"); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); } 2.5全国二级C上机考试模拟试题5 注意: 下面出现的“考生文件夹”均为C: \C\MNST\05 1.填空题 请补充函数fun(),该函数的功能是: 把一个整数转换成字符串,并倒序保存在字符数组str中。 例如: 当n=13572468时,str="86427531"。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #defineN80 charstr[N]; voidfun(longintn) { inti=0; while(n>0) { str[i]=n%10+'0'; n/=10; i++; } str[I]='\0'; } voidmain() { longintn=13572468; system("CLS"); printf("***theorigialdata***\n"); printf("n=%ld",n); fun(n); printf("\n%s",str); } 2.改错题 下列给定程序中,函数fun的功能是按以下递归公式求函数值。 例如: 当给n输入5时,函数值为240;当给n输入3时,函数值为60。 请改正程序中的错误,使它能得到正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include /**********************found***********************/ fun(intn) { intc; /**********************found***********************/ if(n==1) c=15; else c=fun(n-1)*2; return(c); } voidmain() { intn; printf("Entern: "); scanf("%d",&n); printf("Theresult: %d\n\n",fun(n)); } 3.编程题 请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码升序排列。 编写完程序,运行程序后输入: 字符串为Bdsihad,则排序后输出为应为Badhisd。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include #include #include voidfun(char*s,intnum) { chart; inti,j; for(i=1;i for(j=i+1;j if(s[i]>s[j])/*如果后面字符的ASCII码值小于该字符的ASCII码值*/ {t=s[i];/*则交换这两个字符*/ s[i]=s[j]; s[j]=t; } } voidmain() { chars[10]; system("CLS"); printf("输入7个字符的字符串: "); gets(s); fun(s,7); printf("\n%s",s); } 2.6全国二级C上机考试模拟试题6 注意: 下面出现的“考生文件夹”均为C: \C\MNST\06 1.填空题 请补充函数fun(),该函数的功能是: 计算N×N维矩阵元素的方差,结果由函数返回。 维数N在主函数中输入。 例如: 的计算结果是14.414,求方差的公式为: 其中 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #include #defineN20 doublefun(inta[][N],intn) { inti,j; doubles=0.0; doublef=0.0; doubleaver=0.0; doublesd=0.0; for(i=0;i for(j=0;j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 试题答案 120 课案
![提示](https://static.bdocx.com/images/bang_tan.gif)