您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 计算机二级C语言99套上机操作题及答案
华信电脑培训中心内部资料余超整理提供C语言上机操作题华信电脑培训中心内部资料华信电脑培训中心内部资料余超整理提供1.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#includestdio.hlongfun(intn){if(___1___)return(n*fun(___2___));return___3___;}main(){printf(10!=%ld\n,fun(10));}第1处填空:n1或1n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#includeconio.h#includestdio.h/********found********/IsPrime(intn);{inti,m;m=1;/********found********/for(i=2;in;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;jk;j++)if((!(k%j))&&(IsPrime(j)))printf(%4d,,j);printf(\n);}第1处:Isprime(intn);应改为Isprime(intn)华信电脑培训中心内部资料余超整理提供2第2处:if!(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的认输应该是4,below中的数据应我10、20、30、40。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.h#includestring.hintfun(intscore[],intm,intbelow[]){}main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};FILE*out;n=fun(score,9,below);printf(\nBelowtheaveragescoreare:);out=fopen(out.dat,w);for(i=0;in;i++){printf(%d,below[i]);fprintf(out,%d\n,below[i]);}fclose(out);}答案是:intfun(intscore[],intm,intbelow[]){intI,k=0,aver=0;for(i=0;im;i++)aver+=score[i];aver/=m;for(i=0;im;i++)if(score[i]aver){below[k]=score[i];k++;}returnk;}第2套填空题请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:011235813…..华信电脑培训中心内部资料余超整理提供3请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#includestdio.hintfun(intn);main(){inti,n=0;scanf(%d,&n);for(i=0;in;i++)printf(%d,fun(i));}intfun(intn){if(___1___)return0;elseif(___2___)return1;elsereturn___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函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdio.h#includestring.hvoidfun(char*p,char*q,char*c){/********found********/intk=1;/********found********/while(*p!=*q){if(*p*q)c[k]=*q;elsec[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:);华信电脑培训中心内部资料余超整理提供4puts(a);printf(Thestringb:);puts(b);printf(Theresult:);puts(c);}第1处:intk=1应改为intk=0;第2处:while(*p!=*q)应改为while(*p||*q)编程题请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7或11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.hvoidfun(int*a,int*n){}main(){intaa[1000],n,k;FILE*out;fun(aa,&n);out=fopen(out.dat,w);for(k=0;kn;k++)if((k+1)%10==0){printf(%5d\n,aa[k]);fprintf(out,%d\n,aa[k]);}else{printf(%5d,,aa[k]);fprintf(out,%d,,aa[k]);}fclose(out);}答案是:voidfun(int*a,int*n){inti,j=0;for(i=2;i1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}第3套填空题华信电脑培训中心内部资料余超整理提供5请补充函数FUN(CHAR*S),该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#includestring.h#includeconio.h#includestdio.h#defineN81voidfun(char*s){inti,n=strlen(s)-1;chart;for(i=0;in;i++,___1___){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中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdio.h#includeconio.hvoidfun(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];华信电脑培训中心内部资料余超整理提供6printf(\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.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.hvoidfun(intx,intpp[],int*n){}main(){intx,aa[1000],n,i;FILE*out;printf(\nPleaseenteranintegernumber:\n);scanf(%d,&x);fun(x,aa,&n);for(i=0;in;i++)printf(%d,aa[i]);printf(\n);fun(730,aa,&n);out=fopen(out.dat,w);for(i=0;in;i++)fprintf(out,%d\n,aa[i]);fclose(out);}答案是: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;ij;i++)if(x%t[i]==0){pp[k]=t[i];k++;华信电脑培训中心内部资料余超整理提供7}*n=k;}第4套填空题请补充函数FUN,它的功能是:计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。例如,在主函数中从键盘给N输入30后,输出为:S=1.226323。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#includestdio.hdoublefun(intn){inti;doublesum=0.0;for(i=1;___1___;i++)if(i%3==0___2___i%7==0)sum+=___3___/i;returnsum
本文标题:计算机二级C语言99套上机操作题及答案
链接地址:https://www.777doc.com/doc-5528929 .html