计算机二级C语言试题 改错部分.docx
- 文档编号:28848658
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:132
- 大小:48.94KB
计算机二级C语言试题 改错部分.docx
《计算机二级C语言试题 改错部分.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言试题 改错部分.docx(132页珍藏版)》请在冰豆网上搜索。
计算机二级C语言试题改错部分
国家二级计算机-C语言上机100套题-电子版(改错上)
==========================================
001
==========================================
------------------------------------------
下列给定程序中,函数fun的功能是:
分别统计字符串中大写字母和小写字母的个数。
例如,给字符串s输入:
AaaaBBb123CCccccd,则应输出结果:
upper=5,1ower=9。
请改正程序中的错误,使它能计算出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
------------------------------------------
#include
#include
/*********found***********/
voidfun(char*s,inta,intb)
{
while(*s)
{
/*********found***********/
if(*s>='A'&&*s<='Z')
a++;
/*********found***********/
if(*s>='a'&&*s<='z')
b++;
s++;
}
}
main()
{
chars[100];
intupper=0,lower=0;
printf("\npleaseastring:
");
gets(s);
fun(s,&upper,&lower);
printf("\nupper=%dlower=%d\n",upper,lower);
}
------------------------------------------
(1)错误:
voidfun(char*s,inta,intb) 正确:
voidfun(char*s,int*a,int*b)
(2)错误:
a++; 正确:
(*a)++;
(3)错误:
b++; 正确:
(*b)++;
==========================================
002
==========================================
下列给定程序中,函数fun()的功能是:
根据整型形参m的值,计算如下公式的值。
t=1-1/(2×2)-1/(3×3)-…-1/(m×m)
请改正函数fun()中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
doublefun(intm)
{doubley=1.0;
intI;
/*************found**************/
for(I=2;I /*************found**************/ y-=1/(I*I); return(y); } voidmain() {intn=5; system("CLS"); printf("\nTheresultis%1f\n",fun(n)); } ----------------------------------------------- (1)错误: for(I=2;I for(I=2;I<=m;I++) (2)错误: y-=1/(I*I); 正确: y-=1.0/(I*I); ================================================== 003 ================================================== 下列给定程序中,fun函数的功能是: 根据形参m,计算下列公式的值。 t=1+1/2+1/3+1/4+…+1/m 例如,若输入5,则应输出2.283333。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include doublefun(intm) { doublet=1.0; intI; for(I=2;I<=m;I++) /*************found**************/ t+=1.0/k; /*************found**************/ returnI; } voidmain() {intm; system("CLS"); printf("\nPleaseenter1integernumber: "); scanf("%d",&m); printf("\nTheresultis%1f\n",fun(m)); } ------------------------------------------------------- (1)错误: t+=1.0/k; 正确: t+=1.0/I; (2)错误: returnI; 正确: returnt; ====================================================== 004 ====================================================== 下列给定的程序中,函数fun的功能是: 计算并输出k以内最大的10个能被13或17整除的自然数之和。 K的值由主函数传入,若k的值为500,则函数的值为4622。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include intfun(intk) {intm=0,mc=0,j; while((k>=2)&&(mc<10)) { /*************found**************/ if((k%13=0)||(k%17=0)) {m=m+k;mc++;} k--; /*************found**************/ returnm; } voidmain() {system("CLS"); printf("%d\n",fun(500)); } ------------------------------------------------ (1)错误: if((k%13=0)||(k%17=0)) 正确: if((k%13==0)||(k%17==0)) (2)错误: 缺少大括号 正确: 加} 005 ==================================================== 下列给定程序中,函数fun的功能是: 根据整型形参m,计算如下公式的值。 例如,若m中的值为5,则应输出: 1.463611。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include doublefun(int m) { double y=1.0; int i; /********found********/ for (i=2; i /********found********/ y+=1/(i*i); return(y); } main() { int n=5; printf("\nTheresultis%1f\n",fun(n)); } ------------------------------------------------------ (1)错误: for(i=2;i for(i=2;i<=m;i++) (2)错误: y+=1/(i*i) 正确: y+=1.0/(i*i) ========================================================== 006 ========================================================== 下列给定程序中,函数fun的功能是: 按如下递归公式求函数值。 例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include /********found********/ intfun(n) { int c; /********found********/ if(n=1) c=10; else c=fun(n-1)+2; return (c); } main() { int n; printf("Entern: "); scanf("%d",&n); printf("Theresult: %d\n\n",fun(n)); } ------------------------------------------------------ (1)错误: intfun(n) 正确: intfun(intn) (2)错误: if(n=1) 正确: if(n==1) ======================================================= 007 ======================================================= 下列给定程序中函数fun的功能是: 计算n! 。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include doublefun(int n) { double result=1.0; /********found*******/ ifn==0 return1.0; while (n>1&&n<170) /********found********/ result=n--; returnresult; } main() { intn; printf("InputN: "); scanf("%d",&n); printf("\n\n%d! =%lf\n\n",n,fun(n)); } --------------------------------------------------- (1)错误: ifn==0 正确: if(n=0) (2)错误: result=n--; 正确: result*=n--; ====================================================== 008 ====================================================== 下列给定程序中函数fun的功能是: 计算正整数num各位上的数字之积。 例如,若输入252,则输出应该是20。 若输入202,则输出应该是0。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include longfun(long num) { /********found********/ longk; do { k*=num%10; /********found********/ num\=10; }while(num); return(k); } main() { longn; printf("\pleaseenteranumber: "); scanf("%ld",&n); printf("\n%ld\n",fun(n)); } ----------------------------------------------------- (1)错误: longk; 正确: longk=1; (2)错误: num\=10; 正确: num/=10; 009 ======================================================= 下列给定程序中函数fun的功能是: 将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。 高位仍在高位,低位仍在低位。 例如当s中的数为87653142时,t中的数为7531。 请改正函数fun中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include voidfun(longs,long*t) {intd; longs1=1; /*************found**************/ t=0; while(s>0) {d=s%10; /*************found**************/ if(d%2==0) {*t=d*s1+*t; s1*=10; } s/=10; } } voidmain() {longs,t; system("CLS"); printf("\nPleaseenters: ");scanf ("%ld",&s); fun(s,&t); printf("Theresultis: %ld\n",t); } --------------------------------------------- (1)错误: t=0; 正确: *t=0; (2)错误: if(d%2==0) 正确: if(d%2! =0) ================================================ 010 ================================================ 下列给定程序中,函数fun的功能是: 计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。 请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include #defineN80 intfun(char*s,char*t) { intn; char*p,*r; n=0; /********found********/ p=&s[0]; *r=t; while(*p) { if(*r==*p) { r++; if(*r=='\0') { n++; /*******found*******/ ____填空____ } } p++; } returnn; } main() { chara[N],b[N]; intm; printf("\nPleaseenterstringa: "); gets(a); printf("\nPleaseentersUbstringb: "); gets(b); m=fun(a,b); m=printf("\nTheresultis: m=%d\n",m); } ------------------------------------------ (1)错误: *r=t; 正确: r=t; (2)应填: r=t;或r=&t[0]; ================================================ 011 ================================================ 数列中,第一项为3,后一项都比前一项的值增5。 下列给定程序中,函数fun的功能是: 计算前n(4≤n≤50)项的累计和。 在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。 如,当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。 符合此条件的累加值应为42,126,366,570,1010。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #defineN20 intfun(intn,int*a) /*************found**************/ {inti,j,k,sum; sum=0; for(k=3,i=0;i {sum=sum+k; /*************found**************/ if(sum%4=2) a[j++]=sum; } /*************found**************/ returnj; } voidmain() {inta[N],d,n,i; printf("\nEntern(4<=n<=50): "); scanf("%d",&n); d=fun(n,a); printf("\n\nTheresult: \n"); for(i=0;i printf("%6d",a[i]); printf("\n\n"); } ----------------------------------------------- (1)错误: inti,j,k,sum; 正确: inti,j=0,k,sum; (2)错误: if(sum%4=2) 正确: if(sum%4==2) (3)错误: returnj; 正确: returnj++; ================================================== 012 ================================================== 在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。 下列给定程序中,函数fun的功能是: 计算数组元素中值为正数的平均值(不包括0)。 例如: 数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include double fun(int x[]) { /********found********/ int sum=0.0; int c=0,i=0; while(x[i] ! =0) { if(x[i] > 0) { sum+=x[i]; c++; } i++; } /********found********/ sum\=c; returnsum; } main() { int x[1000]; int i=0; printf("\nPleaseentersomedata(endwith0): "); do { scanf("%d",&x[i]); }while(x[i++]! =0); printf("%lf\n",fun(x)); } -------------------------------------------------- (1)错误: intsum=0.0; 正确: doublesum=0.0; (2)错误: sum\=c; 正确: sum/=c; ================================================== 013 ================================================== 下列给定程序中,函数fun的功能是: 求k! (k<13),所求阶乘的值作为函数值返回。 例如: 若k=10,则应输出3628800。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include longfun(int k) { /********found********/ ifk>1 return(k*fun(k-1)); return1; } main() { int k=10; printf("%d! =%ld\n",k,fun(k)); } -------------------------------------------------- (1)错误: ifk>1 正确: if(k>1) ================================================== 014 ================================================== 下列给定程序中,函数fun的功能是: 求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机二级C语言试题 改错部分 计算机 二级 语言 试题 改错 部分