2013年计算机二级C语言上机题库及答案解析

2013年计算机二级C语言上机题库及答案解析

ID:47016516

大小:36.50 KB

页数:3页

时间:2019-05-28

2013年计算机二级C语言上机题库及答案解析_第1页
2013年计算机二级C语言上机题库及答案解析_第2页
2013年计算机二级C语言上机题库及答案解析_第3页
资源描述:

《2013年计算机二级C语言上机题库及答案解析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2013年计算机二级C语言上机题库及答案解析一.填空题  用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数  表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:  2,3,5,7,11,13,17,19,23,……函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。  注意:源程序存放在考

2、生文件夹下的BLANK1.C中。  不得增行或删行,也不得更改程序的结构!  给定源程序:  #include  intfun(intn)  {inta[10000],i,j,count=0;  for(i=2;i<=n;i++)a[i]=i;  i=2;  while(i<=""p="">  for(j=a[i]*2;j<=n;j+=___1___)  a[j]=0;  i++;  while(___2___==0)  i++;  }  printf("Theprimenumberbetween2to%d",n);  for(i=2;

3、i<=n;i++)  if(a[i]!=___3___)  {count++;printf(count%15?"%5d":"%5d",a[i]);}  returncount;  }  main()  {intn=20,r;  r=fun(n);  printf("Thenumberofprimeis:%d",r);  }  解题思路:  第一处:所有2的倍数的数从数表中删去,所以应填:a[i]。  第二处:找出下一个不是的a[i],所以应填:a[i]。  第三处:输出素数,只要判断a[i]不是0就是素数,所以应填:0。二、 改错题

4、  给定程序MODI1.C中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。  请改正函数fun中指定部位的错误,使它能得出正确的结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!  给定源程序:  #include  #include  voidfun(inta,int*b,int*c)  {inti,j,d,y;  for(i=3;i<=a/2;i=i+2){  Y=1;  for(j=2;j<=sqrt((double)i);j++)  if(i%j==

5、0)y=0;  if(y==1){  d==a-i;  for(j=2;j<=sqrt((double)d);j++)  if(d%j==0)y=0;  if(y==1)  {*b=i;*c=d;}  }  }  }  main()  {inta,b,c;  do  {printf("Inputa:");scanf("%d",&a);}  while(a%2);  fun(a,&b,&c);  printf("%d=%d+%d",a,b,c);  }  解题思路:  第一处:变量y错写成Y。  第二处:给变量d进行赋值,所以应改

6、为:d=a-i;。三、 编程题  请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。  例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。  注意:要求n的值不大于100。  部分源程序在文件PROG1.C中。  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。  给定源程序:  #include  doublefun(intn)  {  }  main()  {intn;doubles;  printf("Inputn:");scan

7、f("%d",&n);  s=fun(n);  printf("s=%f",s);  NONO();  }  解题思路:  本题是计算n(包括n)以内能被5或9整除的所有自然数的倒数之和。  参考答案:  doublefun(intn)  {  inti;  doublesum=0.0;  for(i=1;i<=n;i++)  if(i%5==0

8、

9、i%9==0)/*被5或9整除*/  sum+=1.0/i;  returnsum;  }

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。