二级c语言真题100道.docx
- 文档编号:9519812
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:281
- 大小:89.99KB
二级c语言真题100道.docx
《二级c语言真题100道.docx》由会员分享,可在线阅读,更多相关《二级c语言真题100道.docx(281页珍藏版)》请在冰豆网上搜索。
二级c语言真题100道
第1套
填空题
请补充FUN函数,FUN函数的功能是求10的阶乘。
注意:
部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,
仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
longfun(intn)
{
if(___1___)
return(n*fun(___2___));
return___3___;
}
main()
{
printf("10!
=%ld\n",fun(10));
}
第1处填空:
n>1或1 第2处填空: n-1 第3处填空: 1或11或1L 改错题 下列给定程序的功能是: 读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。 例如,若输入整数2310,则应输出: 2、3、5、7、11。 请改正程序中的错误,使程序能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include /********found********/ IsPrime(intn); { inti,m; m=1; /********found********/ for(i=2;i if! (n%i) { m=0; break; } return(m); } main() { intj,k; printf("\npleaseenteranintegernumberbetween2and10000: "); scanf("%d",&k); printf("\n\nTheprimefactor(s)of%dis(are): ",k); for(j=2;j if((! (k%j))&&(IsPrime(j))) printf("%4d,",j); printf("\n"); } 第1处: Isprime(intn);应改为Isprime(intn) 第2处: if! (n%i)应该为if(! (n%i)) 第2套 填空题 请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。 斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如: 011235813….. 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 试题程序: #include intfun(intn); main() { inti,n=0; scanf("%d",&n); for(i=0;i printf("%d",fun(i)); } intfun(intn) { if(___1___) return0; elseif(___2___) return1; else return___3___; } 第1处填空: n==0或0==n或! n 第2处填空: n==1或1==n 第3处填空: fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1) 改错题 下列给定程序中,函数FUN的功能是: 逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。 例如,若a中的字符串为aBCDeFgH,b中的字符串为: ABcd,则c中的字符串应为: aBcdeFgH。 请改正程序中的错误,使程序能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include voidfun(char*p,char*q,char*c) { /********found********/ intk=1; /********found********/ while(*p! =*q) { if(*p<*q) c[k]=*q; else c[k]=*p; if(*p) p++; if(*q) q++; k++; } } main() { chara[10]="aBCDeFgH",b[10]="ABcd",c[80]={'\0'}; fun(a,b,c); printf("Thestringa: "); puts(a); printf("Thestringb: "); puts(b); printf("Theresult: "); puts(c); } 第1处: intk=1应改为intk=0; 第2处: while(*p! =*q)应改为while(*p||*q) 第3套 填空题 请补充函数FUN(CHAR*S),该函数的功能是把字符串中的内容逆置. 例如: 字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba. 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #defineN81 voidfun(char*s) { inti,n=strlen(s)-1; chart; for(i=0;i { t=s[i]; ___2___; ___3___; } } main() { chara[N]; printf("Enterastring: "); gets(a); printf("Theoriginalstringis: "); puts(a); fun(a); printf("\n"); printf("Thestringaftermodified: "); puts(a); } 第1处填空: n--或--n或n-=1或n=n-1 第2处填空: s[i]=s[n]或*(s+i)=*(s+n) 第3处填空: s[n]=t或*(s+n)=t 改错题 下列给定的程序中,函数fun的功能是: 依次取出字符串中所以数字字符,形成新的字符串,并取代 原字符串。 请改正函数fun中的错误,使程序能得出正确的结果。 #include #include voidfun(char*s) { inti,j; /********found********/ for(i=0,j=0;s[i]! ='\0';i++) if(s[j]>='0'&&s[i]<='9') s[j]=s[i]; /********found********/ s[j]="\0"; } main() { charitem[80]; printf("\nEnterastring: "); gets(item); printf("\n\nThestringis: %s\n",item); fun(item); printf("\n\nThestringofchangingis: %s\n",item); } 第1处: s[j]=s[i];应改为s[j++]=s[i] 第2处: s[j]=”/0”;应改为s[j]=’\0’; 编程题 请编写函数voidfun(intx,intpp[],int*n),它的功能是: 求出能整除x且不是偶数的各整数,并按从小到大 的顺序放在pp所指的数组中,这些除数的个数通过形参n返回. 例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15. 答案是: voidfun(intx,intpp[],int*n) { inti=1,j=0,k=0,*t=pp; for(i=0;i<=x;i++) if(i%2! =0) { t[j]=i; j++; } for(i=0;i if(x%t[i]==0) { pp[k]=t[i]; k++; } *n=k; } 第4套 填空题 请补充函数FUN,它的功能是: 计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之 和。 例如,在主函数中从键盘给N输入30后,输出为: S=1.226323。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语 句。 试题程序: #include doublefun(intn) { inti; doublesum=0.0; for(i=1;___1___;i++) if(i%3==0___2___i%7==0) sum+=___3___/i; returnsum; } main() { intn; doubles; printf("\nInputn: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n",s); } 第1处填空: i<=n或n>=i 第2处填空: || 第3处填空: 1.0或(double)1 改错题 下列给定程序中,fun函数的功能是: 分别统计字符串中大写字母和小写字母的个数。 例如,给字符串s 输入: AaaaBBb123CCccccd,则应输出结果: upper=6,lower=8 请改正程序中的错误,使程序能得出正确的结果。 注意: 不要改动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)++; 第5套 填空题 给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积 (注: 圆面积公式为: S=πR,在程序中定义的变量名要与公式的变量相同)。 例如,输入圆的半径值: 19.527,输出为: S=598.950017。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语 句。 试题程序: #include doublefun(doubler) { return3.14159*___1___/2.0; } main() { doublex; printf("Enterx: "); scanf("%lf",___2___); printf("s=%lf\n",fun(___3___)); } 第1处填空: r*r 第2处填空: &x 第3处填空: x 改错题 假定整数数列中的数不重复,并存放在数组中。 下列给顶程序中,函数fun的功能是删除数列中值为 x的元素,同时将其他元素前移。 N中存放的是数列中元素的个数。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #defineN20 fun(int*a,intn,intx) { intp=0,i; a[n]=x; while(x! =a[p]) p=p+1; if(p==n) { return-1; } else { /********found********/ for(i=p;i a[i+1]=a[i]; returnn-1; } } main() { intw[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i; n=10; printf("Theoriginaldata: \n"); for(i=0;i printf("%5d",w[i]); printf("\nInputx(todelete): "); scanf("%d",&x); printf("Delete: %d\n",x); n=fun(w,n,x); if(n==-1) { printf("***Notbefound! ***\n\n"); } else { printf("Thedataafterdelete: \n"); for(i=0;i printf("%5d",w[i]); printf("\n\n"); } } 第1处: a[i+1]=a[i];应改为a[i]=a[i+1] 第6套 填空题 给定程序的功能是计算并输出下列级数的前N项之和s,直到s大于Q为止,Q的值通过形参传 NN 入。 =2+3+4+....+N+1 sN 123N 例如,若Q的值为50.0,则函数值为50.416687。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语 句。 试题程序: #include doublefun(doubleq) { intn; doubles; n=2; s=2.0; while(s___1___q) { s=s+(double)(n+1)/n; ___2___; } printf("n=%d\n",n); ___3___; } main() { printf("%f\n",fun(50)); } 第1处填空: <= 第2处填空: n++或n+=1或n=n+1 第3处填空: returns或return(s) 改错题 下列给定程序中,函数fun的功能是: 根据整型参m的值,计算如下公式的值。 T=1-111 2*2−3*3−....−m*m 例如,若m中的值为5,则应输出: 0.536389 请改正程序中的错误,使程序能得出正确的结果。 #include #include doublefun(intm) { doubley=1.0; inti; /********found********/ for(i=2;i /********found********/ y-=1/(i*i); return(y); } main() { intn=5; printf("\nTheresultis%1f\n",fun(n)); } 第1处: for(i=2;i 第2处: y-=1/(i*i);应改为y-=1.0/(i*i) 第7套 填空题 函数fun的功能是: 统计长整数n的各个位上出现数字1,2,3的次数,并通过外部(全局)变量c1,c2,c3 返回主函数。 例如,当=123114350时,结果应该为: c1=3,c2=1,c3=2. 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语 句。 试题程序如下: #include intc1,c2,c3; voidfun(longn) { c1=c2=c3=0; while(n) { switch(___1___) { case1: c1++; ___2___; case2: c2++; ___3___; case3: c3++; } n/=10; } } main() { longn=123114350L; fun(n); printf("\nTheresult: \n"); printf("n=%ldc1=%dc2=%dc3=%d\n",n,c1,c2,c3); } 第1处填空: n%10 第2处填空: break 第3处填空: break 改错题 下列给定程序中函数fun的功能是: 用选择法对数组中的n个元素按从小到大的顺序进行排序。 请改正程序中的错误,使程序能得出正确的结果。 #include #defineN20 voidfun(inta[],intn) { inti,j,t,p;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 100