二级C语言上机试题汇编.pdf
《二级C语言上机试题汇编.pdf》由会员分享,可在线阅读,更多相关《二级C语言上机试题汇编.pdf(282页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国计算机等级考试二级C语言上机试题汇编2011年版第1套填空题请补充F U N函数,F UN函数的功能是求10的阶乘。注意:部分源程序给出如下。请勿改动主函数m a i n和其他函数中的任何内容,仅在fu n函数的横线上填入所编写的若干表达式或语句。试题程序:#inclu de long fu n(int n)(if(1 )retu rn(n*fu n(_2 _);retu rn_3 _;)main()printf(/z 1 0!=%ldnz,,fu n(1 0);)第1处填空:n l或ln第2处填空:n-1第3处填空:1或1 1或1 L改错题下列给定程序的功能是:读入一个整数K (2 =K
2、 (=1 0 0 0 0),打印它的所有因子(即所有为素数的因子)。例如,若输入整数2 3 1 0,则应输出:2、3、5、7、I K请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#inclu de#inclu de/*fou nd*/I sP rime(int n);(int i,m;m=1;/*fou rid*/for(i=2;in;i+)if!(n%i)(m=0;break;)retu rn(m);main()(int j,k;printf(nplease enter an integer nu mber betwe
3、en 2 and 1 O O O O:);scanf(%d,&k);printf(nnT he prime factor(s)of%d is(are):,k);for(j=2;jk;j+)if(!(k%j)&(I sP rime(j)printf(/z%4 d,j);printf(n);)第 1 处:I sprime(int n);应改为I sprime(int n)第2处:if!(n断)应该为if(!(n%i)编程题M 个人的成绩存放在score数组中,请编写函数fu n,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为1 0
4、、2 0、3 0、4 0、5 0、6 0、7 0、8 0、90 时,函数返回的认输应该是4,below中的数据应我1 0、2 0、3 0、4 0 o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fu n的花括号中填入所编写的若干语句。试题程序:#inclu de#inclu de#inclu de int fu n(int score,int m,int below)main()int i,n,below9;int score9=1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,90);F I L E *ou t;n=fu n(score,9,b
5、elow);printf(z/nB elow the av erage score are:;ou t=fopen(ou t.dat,w);for(i=0;in;i+)(printf C%d z,,belowi);fprintf(ou t,%dn,belowi);fclose(ou t);)答案是:int fu n(int score,int m,int below)(int I,k=0,av er=0;for(i=0;im;i+)av er+=scorei;av er/二 m;for(i=0;im;i+)if(score E iav er)(belowk=scorei;k+;)retu rn
6、 k;)第2 套填空题请在函数F U N 的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:0 1 1 2 3 5 8 1 3-.请勿改动主函数main和其他函数中的任何内容,仅在fu n函数的横线上填入所编写的若干表达式或语句。试题程序:S inclu de int fu n(int n);main()(int i,n=0;scanf(%d,&n);for(i=0;in;i+)printf(,z%d ,fu n(i);)int fu n(int n)(if(1 )retu rn 0;else if(_2 _)retu
7、 rn 1;elseretu rn _3 _;)第1处填空:n=0 或0=二 n或!n第2处填空:n=l或l=n第3 处填空:,1 1 1 1(1 1-1)+1 1 1 1(1 1-2)或1 1 1 1(1 1-2)+1 1 1 1(1 1-1)改错题下列给定程序中,函数F U N 的功能是:逐个比较a、b 两个字符串对应位置中的字符,把A S C I I 值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aB C D eF gH,b 中的字符串为:A B cd,则c中的字符串应为:aB cdeF gHo请改正程序中的错误,使程序能得出正确的结果。注意:不要改动ma
8、in函数,不得增行或删行,也不得更改程序的结构!试题程序:#inclu de#inclu de v oid fu n(char*p,char*q,char*c)(/*fou nd*/int k=1;/*fou nd*/while(*p!=*q)if(*p *q)ck=*q;elseck=*p;if(*p)p+;if(*q)q+;k+;)main()(char a1 0 =aB C D eF gH,b1 0 =A B cd,c8 0 =0 ;fu n(a,b,c);printf(Z/T he string a:);pu ts(a);printf(,zT he string b:);pu ts(b
9、);printf(/zT he resu lt:,z);pu t s(c);)第1处:int k=l 应改为int k=0;第2 处:while(*p!=*q)应改为while(*p|*q)编程题请编写函数fu n,它的功能是:求出1到1 0 0 0之内能被7或1 1整除、但不能同时被7或1 1整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int*a,int*n)main()int aa1 0 0
10、 0,n,k;F I L E *out;fun(aa,&n);out=fopen(out.dat,w);for(k=0;k n;k+)if(k+l)%1 0=0)(printf(/z%5 dn/z,aak);fprintf(out,aak);)else(printf(%5 d,”,aak);fprintf(out,%d,aak):)fclose(out):)答案是:void fun(int*a,int*n)int i,j=0;for(i=2;i 1 0 0 0;i+)if(i%7=0 i%ll=0)&i%77!=0)aj+=i;*n=j;)第3套填空题请补充函数F UN (C H AR*S),
11、该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include#include#include Sdefine N 8 1void fun(char*s)(int i,n=strlen(s)-1;char t;for(1=0;i n;i+,_1 _)t=si;2:3;)main()(char aN;printf(E nter a string:z/);gets(a);printf(The original string
12、 is:);puts(a);fun(a);printf(n);printf(/zThe string after modified:);puts(a);)第1处填空:n一或一n或1 1-=1 或1 1=1 1-1第2 处填空:si=sn或*(s+i)=*(s+n)第3 处填空:sn=t或*(s+n)=t改错题下列给定的程序中,函数f u n 的功能是:依次取出字符串中所以数字字符,形成新的字符串,并取代原字符串。请改正函数fun中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:include#include void fun(char
13、*s)int i,j;/*found*/for(i=0,j=0;si!=0*;i+)if(sj=0&si=,9,)sj=si;/*found*/sj=0”;)main()(char item80;printf(z/nEnter a string:);gets(item);printf(z,nnThe string is:%sn,item);fun(item);printf(z/nnThe string of changing is:%sn,item);)第 1 处:sj=si;应改为sj+=si第2 处:sj=/0 ;应改为sji 0,;编程题请编写函数void fun(int x,int p
14、p,int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回.例如,若x中 的 值 为30,则 有4个数符合要求,它 们 是1,3,5,15.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int x,int pp,int*n)main()(int x,aa1000,n,i;FILE*out;printf(,znPlease enter an integer number:nz,);scanf(
15、%d,&x);fun(x,aa,&n);for(i=0;in;i+)printf(d,aai);printf(n);fun(730,aa,&n);out=fopen(out.dat,w);for(i=0;i n;i+)fprintf(out,%drT,aai);fclose(out);答案是:void fun(int x,int pp,int*n)int i=l,j=0,k=0,*t=pp;for(i=0;i=x;i+)if(i%2!=0)(j+;)for(i=0;i j;i+)if(x%ti=0)(ppk=ti;k+;)*n=k;)第4 套填空题请补充函数F UN,它的功能是:计算并输出N
16、(包括N)以内能被3或7 整除的所有自然数的倒数之和。例如,在主函数中从键盘给N输入3 0 后,输出为:S=l.2 2 63 2 3 c请勿改动主函数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;)main()(int n;double s;printf(z,nlnput n:);scanf(/d,&n);s=fun(n);printf C,
17、nns=%fn/Z,s);)第1处填空:i=i第2处填空:|第3处填空:1.0或(double)1改错题下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaB B bl2 3 C C ccccd,则应输出结果:upper=6,lower=8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include ttinclude/*found*/void fun(char*s,int a,int b)(while(*s)(/*found*/if(*s=A&*s=a&*s=,
18、z)b+;s+;)main()(char s1 0 0;int upper=0,lower=0;printf(,znPlease a string:);gets(s);fun(s,feupper,&lower);printf(z,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处:b+;应改为(*b)+;编程题请编写一个函数void fun(char*tt,int pp),统计在tt字符串中“a”到“z”26
19、个字母各自出现的次数,并依次存放在PP所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(char*tt,int pp)()main()(char aa1 0 0 0;int bb2 6,k;F I L E *out;printfC nPlease enter a char stri
20、ng:);scanf(/z%s/z,aa);fun(aa,bb);for(k=0;k 2 6;k+)printf(z z%dz,,bb k);printf(n);funC a bosom friend afar brings a distant land near”,bb);out=fopen C out.datz/,w);for(k=0;k 2 6;k+)fprintf(out,dn,bbk);fclose(out);)答案是:void fun(char*tt,int pp)(int I;for(i=0;i 2 6;i+)PpE i=O;while(*tt)switch(*tt)(case
21、a :pp0+;break;case b :ppl+;break;case c:pp2+;break;case d,:pp3+;break;case e:pp4+;break;case f:pp5+;break;case g:pp6+;break;case h,:pp7+;break;case i,:pp8+;break;case j:pp9+;break;case k,:pp1 0+;break;case r:pp1 1+;break;case m:pp1 2+;break;case n:pp1 3+;break;case o:pp1 4+;break;case P:pp1 5+;break
22、;case q:pp1 6+;break;case r:pp1 7+;break;case s:pp1 8+;break;case t:pp1 9+;break;case u,:pp2 0+;break;case V,:pp2 1+;break;case w,:pp2 2+;break;case X9:pp2 3+;break;case y:pp2 4+;break;case,z:pp2 5+;break;)tt+;)第5 套填空题给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:S=pR,在程序中定义的变量名要与公式的变量相同)。例如,
23、输入圆的半径值:1 9.5 2 7,输出为:S=5 9 8.9 5 0 0 1 7。请勿改动主函数m ai n 和其他函数中的任何内容,仅在fu n 函数的横线上填入所编写的若干表达式或语句。试题程序:t t i n clu de do u ble fu n (do u ble r)(r et u r n 3.1 4 1 5 9*_1 _/2.0;)m ai n()(do u ble x;p r i n t f(,zE n t er x:);s can f(,z%lfz/,_2 _);p r i n t f(/z s=%lfn ,fu n(_3 _);)第1处填空:r*r第2处填空:&x第3处
24、填空:x改错题假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fu n 的功能是删除数列中值为x的元素,同时将其他元素前移。N 中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动m ai n 函数,不得增行或删行,也不得更改程序的结构!试题程序:i n clu de t t defi n e N 2 0fu n(i n t *a,i n t n,i n t x)(i n t p =0,i;ar i =x;w h i le(x !=ap)P=p+1;i f(p =n)(r et u r n -1;)els e(/*fo u n d*/fo r (i
25、=p;i n;i+)ai+l=ai;r et u r n n-l;)m ai n()(i n t w N=-3,0,1,5,7,9 9,1 0,1 5,3 0,9 0 ,x,n,i;n =1 0;p r i n t f(,zTh e o r i gi n al dat a:n,z);fo r (i=0;i n;i+)p r i n t f CW,w i);p r i n t f(z/n ln p u t x (t o delet e):,z);s can f(d,&x);p r i n t f(Z/D elet e:%dn ,x);n =fu n (w,n,x);i f(n =-1)print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 上机 试题 汇编
限制150内