欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2015年2011年计算机二级C语言99套上机操作题及答案.docx

    • 资源ID:64471803       资源大小:388.89KB        全文页数:210页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2015年2011年计算机二级C语言99套上机操作题及答案.docx

    C语言上机操作题.第1套 填空题请补充FUN函数,FUN函数的功能是求10的阶乘。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容, 仅在fun函数的横线上填入所编写的若干表达式或语句。 试题程序:#include <stdio.h> long fun(int n) (if (1)return (n*fun(2);return 3;main()(printf(n10!=%ldnH, fun(10);)第1处填空:n>!或!<n第2处填空:n-1第3处填空:1或11或IL改错题下列给定程序的功能是:读入个整数K (2=K <=10000),打印它的所有因子(即 所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/found/IsPrime(int n); int i, m;m = 1 ;/ *£ ound/for (i=2; i<n; i+) if !(n%i)(m = 0 ; break;)return(m);)main() (int j, k;printf (Hnplease enter an integer number between 2 and 10000 : ,); scanf(n%d", &k);printf(HnnThe prime factor(s) of %d is(are):H, k);for (j=2; j<k; j+)if (!(k%j) && (IsPrime(j)printf("吿4d,",j );printf(Mn");第 1 处:Isprime(inl n);应改为 Isprime(int n) 第 2 处:if !(n%i)应该为 if(!(n%i)编程题M个人的成绩存放在scom数组中,请编写函数fun,它的功能是:返回低于平均分的 认输,并将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的认 输应该是4, below中的数据应我10、20、30、40。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写 的若干语句。试题程序:ttinclude <conio.h>#include <stdio.h>#include string.h>int fun(int score,int m, int below)(main()(int i,n,below9;int score 9=10,20,30,40,50,60,70,80,90;FILE *out;n=fun(score,9,below);printf(HnBelow the average score are :,;out=fopen("out.dat", "w");for(i=0;i<n;i+)(printf("%d ",belowi);fprintf(out, "%dn", belowi);fclose(out);)答案是:int fun(int score, int m, int below)int I, k=0,aver=0;for(i=0;i<m;i+)aver+=scorei;aver/=m;for(i=0;i<m;i+)if(scorei<aver)(belowk=scorei;k+;)return k;第2套填空题请在函数FUN的横线上填写若干表达式,使从键盘上输入个整数N,输出斐波纳契 数列。斐波纳契数列是种整数数列,其中每数等于前面两数之和,如:01 1 2 3 5 8 13 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干 表达式或语句。试题程序:#include <stdio.h> int fun(int n); main() (int i, n = 0 ; scanf(H%dH, &n); for (i = 0; i<n; i+) printf (*'%d ", fun (i); ) int fun(int n) ( if (_1_) return 0; else if (2)return 1;elsereturn 3; 第1处填空:n=0或0=n或!n 第2处填空:n=l 或 l=n 第 3 处填空:fun(n-l)+fun(n-2)或 fun(n-2)+fun(n-l)改错题下列给定程序中,函数FUN的功能是:逐个比较a、b两个字符串对应位置中的字符, 把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字 符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include <stdio.h> #include string.h> void fun (char *p, char *q, char *c) (int k = 1 ;I£ ound*I while (*p != *q) ( if (*p < *q) c k = *q; else ck = *p; if (*p)P+; if (*q) q+ + ; k+ ; ) main() (char a 10 = "aBCDeFgHn, b 10 = "ABcd”,c 80 = ' 0 ' ; fun(a, b, c);printf(nThe string a:n);puts(a);printf(nThe string b:n);puts(b);printf(HThe result:");put s(c);)第1处:int k=!应改为int k=0;第 2 处:while(*p!=*q)应改为 while(*pll*q)编程题请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7 或1I整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写 的若干语句。试题程序:#include <conio.h>#include <stdio.h>void fun(int *a,int *n)()main()(int aa 1000 ,n,k;FILE *out;fun(aa,&n);out=fopen("out.dat", "w");for(k=0;k<n;k+)if(k+1)%10=0)(printf("%5dn",aak);fprintf(out, "%dn", aa k);else(printf("%5d,",aak);fprintf(out, "%d,", aak);)fclose(out);)答案是:void fun(int *a,int *n)(int i,j=0;for(i=2;i<1000;i+)if( (i%7=0lli%l l=0)&&i%77!=0)a+=i;*n=j;)填空题请补充函数FUN(CHAR *S),该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的 若干表达式或语句。试题程序:#include <string.h>#include <conioh>#include <stdio.h>#define N 81 void fun(char *s) (int i, n = strlen(s)-1; char t;for (i = 0 ; i<n; i + +, 1)( t = si;2_;3;) main()(char a N;printf(HEnter a string:"); gets (a);printf (11 The original string is:"); puts(a); fun(a);printf (*' n");printf (nThe string after modified :;puts(a);第!处填空:n或-n或n-=!或n=n-l第 2 处填空:si=sn或(s+i)二*(s+n)第 3 处填空:sn=t 或(s+n)=t 改错题下列给定的程序中,函数fun的功能是:依次取出字符串中所以数字字符,形成新的字 符串,并取代原字符串。请改正函数fun中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio .h>#include <conio.h> void fun(char *s) int i, j;/ *f ound*/for (i = 0, j =0; s i ! = 10'; i+ + ) if (s j>=10' && s i<=191)s j = s i;s j = "X")main()char item80;printf ("nEnter a string : );gets(item);printf(HnnThe string is : %snn # item);fun(item);printf(nnnThe string of changing is : %snn, item);)第 ! 处:sj=si;应改为 sj+=si第 2 处:应改为 sj='、'编程题请编写函数void fun(int x,int pp,int *n),它的功能是:求出能整除x且不是偶数的各整数, 并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回.例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写 的若干语句。试题程序:ttinclude <conio. h>#include <stdio.h>void fun (int x, int pp ,int *n) main()(int x, aa 1000, n, i;FILE *out;printf("nPlease enter an integer number:nH); scanf(H%dH,&x);fun(x,aa,&n);for(i=0;i<n;i+)printf(H%d ”, aa i);printf("n");fun(730, aa, &n);out = fopen("out.dat", "w");for (i = 0; i < n; i+)fprintf(out, "%dn", aai);fclose(out);答案是:void fun(int x,inl pp,int *n)(int i= 1 ,j=O,k=O,*t=pp;for(i=0;i<=x;i+)if(i%2!=0)(tj=i;j+;)for(i=0;i<j;i+)if(x%ti=O)(pplk=ti;k+;*n=k;第4套请补充函数FUN,它的功能是:计算并输出N (包括N)以内能被3或整除的所有 自然数的倒数之和。例如,在主函数中从键盘给N输入30后,输出为:S=1.226323o请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的 若干表达式或语句。试题程序:#include <stdio.h>double fun(int n)(int i;double sum = 0.0;for (i=l; 1; i+ + )if (i營3=02 i%7=0)sum += 3/i;return sum; ) main() (int n; double s ; printf (Hnlnput n: ); scanf(“吿d”, &n);s = fun(n);printf(Hnns=%fn", s); )第1处填空:i<=n或n>=i第2处填空:II第3处填空:1.0或(double) 1改错题下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如, 给字符串s输入:AaaaBBbl23CCccccd,则应输出结果:upper=6,lower8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include <conio.h>#include <stdio.h>I£ oundIvoid fun (char *s, int a, int b) (while (*s) (/*found* */ if (*s>='A* && *s<=»Z')a+ ;I£ ound/if (*s>='a 1 && *s<=1z') b+;s+ ; )main()char s 100;int upper = , lower = 0;printf (nnPlease a string : *');gets (s);fun(s, &upper, &lower);printf (*'n upper=%d lower=%dnn, 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)+;编程题请编写个函数voidfun(char*tt,intppn),统计在tt字符串中“a”到“ z” 26个字母各 自出现的次数,并依次存放在pp所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写 的若干语句。试题程序:# include <conio.h># include <stdio.h>void fun(char *tt, int pp)main()char aa 1000;int bb26, k;FILE *out;printf("nPlease enter a char string:H);scanf(n%sn,aa);fun(aa,bb);for(k=0;k<26 ; k+)printf(n%d",bbk);printf(Hn");fun(Ha bosom friend afar brings a distant land near", bb); out = fopen("out.dat", "w");for (k = 0; k < 26; k+)fprintf(out, "%dn", bbk);fclose(out);答案是:void fun(char *tt,int pp)(int I;for(i=0;i<26;i+)ppi=O;while(*tt)switch(九t)case 'a':ppO+;break; case ,b':ppl+;break; case ,c,:pp2+;break; case 'd':pp3+reak; case ,e,:pp4+;break; case 'f':pp5+;break; case 'g':pp6+;break; case 'h':pp7+;break;case 4, :pp8+;break;case 'j':pp9+;break; case ,kpp10+;break; case ,F:ppll+;break;case ,m,:pp12+;break; case 'n':pp13+;break; case ':pp14+;break; case 'p':pp15+;break; case 'q' :pp 16+;break; case 'r':pp 17+;break; case 's':pp18+;break; case 't':pp19+4-;break;case 'u':pp20+;break; case ' v' :pp21 +;break; case 'w':pp22+;break; case 'x':pp23+;break; case 'y':pp24+;break; case 'z':pp25+;break;tt+;第5套填空题给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之 -的圆面积(注:圆面积公式为:S=成,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:19.527,输出为:S=598.950017。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的 若干表达式或语句。试题程序:#include <stdio.h>double fun(double r)return 3.14159*1/2.0;main()(double x;printf("Enter x:");scanf("%lf", 2);printf (" s = %lf n ”,fun (3);第1处填空:r*r 第2处填空:&x第3处填空:x改错题假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删 除数列中值为x的元素,同时将其他元素前移。N中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include <stdio.h>#define N 20 fun(int *a, int n, int x) (int p = 0, i ; a n = x; while (x != ap)P = P+1; if (p = n) (return -1; else (/£ oundIfor (i=p; i<n; i+)a i+1 = a i;return n-1; main()(int wN = -3, 0, 1, 5, 7, 99, 10, 15, 30, 90, x, n, i;n = 10 ;printf(nThe original data:nH);for (i=0; i<n; i+)printf("%5d", wi);printf(nnlnput x (to delete):n);scanf(n%dH, &x);printf (''Delete : %dn" , x);n = fun (w, n, x);if (n = -1)(printf("*Not be found!*nn");)else(printf("The data after delete :n");for (i = 0; i<n; i + +)printf("%5d", wi); printf("nn");)第 ! 处:ai+l=a国;应改为 ai=ai+l编程题请编写个函数void fun(int m,int k,int xx),该函数的功能是:将大于整数m且紧靠m 的k个素数存入xx所指的数组中。例如,若输入:17, 5,则应输出:19, 23, 29, 31, 37。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写 的若干语句。试题程序:#include <conio.h>#include <stdio.h>void fun(int m, int k, int xx) main()(int m,n,zz1000;FILE *out;printf(nnPlease enter two integers:n);scanf(n%d,%dH,&m,&n);fun( m,n,zz);for(m=0; m<n; m+)printf(n%d ", zzm);printf(Mn");fun(28, 20, zz);out = fopen ( "out. dat" , ,'wn );for (m = 0; m < 20; m+)fprintf (out, 1'%dnH , zz m);fclose(out);答案是:void fun(int m,int k,int xx)(int g=O,I,j,flag=l;for(i=m+1 ;i<m*m;i+)(for(j=2;j<I;j+)(if(i%j!=O)flag=l;else(flag=O;break;)if(flag=l&&j>=i)(if(k>=0)(xxg+=l;k-;)elsebreak;)填空题给定程序的功能是计算并输出下列级数的前N项之和Sn,直到Sn大于Q为止,Q的 值通过形参传入。例如,若Q的值为50.0,则函数值为50.416687。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的 若干表达式或语句。试题程序:#include <stdio.h>double fun(double q)( 'int n; double s;n = 2 ;s = 2.0;while (s 1 q)(一 s = s + (double)(n+1)/n; 2;printf (*'n=%dnn, n);3;)main()( printf(n%fnn, fun(50);)第1处填空:<=第2处填空:n+或n+=l或n=n+l第 3 处填空:return s 或 return (s)改错题下列给定程序中,函数fun的功能是:根据整型参m的值,计算如下公式的值。 例如,若m中的值为5,则应输出:0.536389请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序: ttinclude <conio.h>#include <stdio.h> double fun(int m) (double y = 1.0; int i ;/*found*/for (i=2; i<m; i+)IfoundI y -= 1/ (i*i);return(y);)main()(int n = 5;printf(HnThe result is %lfn"z fun(n); 第 1 处:for (i=2;i<m;i+)应改为 for(i=2;i<=m;j+)第 2 处:y=l/(i*i);应改为 y=1.0/(i*i)编程题请编写个函数void fun(char al,char b,int n)淇功能是:删除个字符串中指定下标的 字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下 标。例如,输入一个字符串World,然后输入3,则调用该函数后的结果为Word。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写 的若干语句。试题程序:# include <stdio. h># include <conio.h># define LEN 20void fun (char a ,char b , int n) )main()(char strlLEN,str2LEN;int n;FILE *out;printf(nEnter the string:nu);gets(strl);printf("Enter the position of the string deleted:"); scanf(“彩d”,&n);fun(strl, str2, n);printf("The new string is:%sn",str2);fun("Hello World!", str2, 9);out = fopen("out.dat", "w");fprintf(out, "%s", str2);fclose(out);)答案是:void fun(char a, char b, int n)int I,j=0;for(i=0;i<LEN;i+)if(i!=n)(b|jJ=aLiJ;j+;)bjl='、0'第7套填空题函数fun的功能是:统计长整数n的各个位上出现数字1, 2, 3的次数,并通过外部(全 局)变量cl,c2,c3返回主函数。例如,当=123114350 时,结果应该为:cl=3,c2=l,c3=2.注意:部分源程序给出如。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的 若干表达式或语句。试题程序如下:#include <stdio.h>int cl, c2, c3; void fun(long n) (cl = c2 = c3 = 0; while (n)( switch (1)(case 1: cl+ ;2_; case 2:c2+;3_; case 3:c3 + + ;n /= 10; main()(long n = 123114350L;fun(n);printf(nnThe result :nn);printf(nn=%ld cl=%d c2=%d c3=%dnH, n, cl, c2, c3);)第1处填空:n%10第2处填空:break第3处填空:break改错题下列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进 行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:ttinclude <stdio .h>#define N 20void fun (int a , int n)int i, j, t, p;for (j =0; j<n-l; j +)(/*fouiid*/P = jfor (i=j; i<n; i+)if (a i < a p)(/* *found*/P = i;t = a p;a p = a i;ai = t;main()(int a N = 9, 6, 8, 3, -1, i, m = 5;printf("AAd6Q°£°");for (i=0; i<m; i+)printf("吿d,", a i);printf (*'n");fun(a, m);printf ( HAADd°6£ ° ,);for (i=0; i<m; i+)printf("吿d,", a i);printf(Mn");第1处:p = j应改为p=j;第2处:p = i应改为p=j;编程题请编写个函数int fun(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k 所指的存储单位中。例如,输入如下整数:876 675 896 101 301 401 980 431 451 777则输出结果为:6, 980注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若 干语句。试题程序:# include <conio. h># include <stdio.h>void fun(int *s, int t , int *k)main()int a 10=876,675,896,101,3 01,401,980,431,451,777, k ;FILE *out;fun(a,10,&k);printf(H%d, %dnH, k, a k);out = fopen("out.dat", "wH);fprintf(out, n%dn%d", k, a k);fclose(out);答案是:void fun (int *s,int t,int *k)(int I ,max;max=s0;for(i=0;ivt:i+)if(si>max)max=si;*k=I;) )第8套填空题请补充main函数,该函数的功能是:从键盘输入组整数,使用条件表达式找出最大的整 数。当输入的整数为0时结束。例如,输入123540时,最大的数为5。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干 表达式或语句。试题程序: #include <stdio. h>#include <conio.h>#define N 100main()(int numN;int i = -1 ;int max = 0 ;printf(nnlnput integer number: nn);do(i+;printf("num%d =n , i);scanf(n吿d”, 1);max = 2 num i : max; while (3 );printf(nmax=%dnH, max);)第1处填空:&numi或num+i第 2 处填空:maxvnumi?或 numi>max?第 3 处壊空:numi!=0 或 0!=numi改错题下列给定程序中,函数fun的功能是:在字符串str中找出ASCH码值最大的字符,将其放 在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串 输入:ABCDeFGH»调用后字符串中的内容为eABCDFGH请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>/*found*/void fun (char *p);char max, *q;int i = 0;max = p i;while (p i != 0)(if (max < p i)(I£ ound/max = p i;p = q+i;i+;)while (q > p)(*q = *(q-1);q-;)p0 = max;main()(char str 80;printf(HEnter a string: n);gets(str);printf(MnThe original string:");puts(str);fun(str);printf (nThe string after moving :11);puts(str);printf(Hnnn);第 1 处:void fun(char *p);应改为 void fun(char *p)第2处:p=q+I;应改为q=p+i;编程题编写函数fun,函数功能是:根据以下公式计算s,计算结果作为函数值返回;n通过型参传 入c 111S= 1H1F41 + 2 1 + 2 + 31 + 2 + 3+.例如:若n的值为的时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若 干语句。试题程序:#inc

    注意事项

    本文(2015年2011年计算机二级C语言99套上机操作题及答案.docx)为本站会员(文***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开