计算机等级 百分网手机站

计算机二级C语言模拟考试题

时间:2018-04-11 17:45:15 计算机等级 我要投稿

2016年计算机二级C语言模拟考试题

  为帮助同学们更好复习C语言,yjbys小编汇集了计算机二级C语言的考试题及答案,希望能帮助到大家!

  函数fun的功能是:统计长整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1,c2,c3返回主函数。例如:当n=123114350时,结果应该为: c1=3 c2=1 c3=2。

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

  注意:源程序存放在考生文件夹下的BLANK1.C中。

  不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  int c1,c2,c3;

  void fun(long n)

  { c1 = c2 = c3 = 0;

  while (n) {

  switch(___1___)

  {

  case 1: c1++;___2___;

  case 2: c2++;___3___;

  case 3: c3++;

  }

  n /= 10;

  }

  }

  main()

  { long n=123114350L;

  fun(n);

  printf("\nThe result :\n");

  printf("n=%ld c1=%d c2=%d c3=%d\n",n,c1,c2,c3);

  }

  解题思路:

  第一处:取个位数上的数,所以n%10就可以得到个位数。

  第二处:switch条件判断中,满足条件做好后,必须使用break语句跳出选择体,所以应填: break。

  第三处:同第二处。

  ***************************************************

  给定程序MODI1.C中函数fun的功能是: 统计一个无符号整数中各位数字值为零的个数, 通过形参传回主函数;并把该整数中各位上最大的.数字值作为函数值返回。例如, 若输入无符号整数30800, 则数字值为零的个数为3, 各位上数字值最大的是8。

  请改正函数fun中指定部位的错误, 使它能得出正确的结果。

  注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!

  给定源程序:

  #include

  int fun(unsigned n, int *zero)

  { int count=0,max=0,t;

  do

  { t=n%10;

  if(t=0)

  count++;

  if(max

  n=n/10;

  }while(n);

  zero=count;

  return max;

  }

  main()

  { unsigned n; int zero,max;

  printf("\nInput n(unsigned): "); scanf("%d",&n);

  max = fun( n,&zero );

  printf("\nThe result: max=%d zero=%d\n",max,zero);

  }

  解题思路:

  第一处:条件相等符号为==。

  第二处:由于zero是一个指针型变量,所以给它进行赋值时应带指针,因此应改为: *zero=count;。

  ***************************************************

  请编写函数fun, 其功能是: 计算并输出下列多项式的值:

  1 1 1

  S = 1 + ── + ─── + … + ─────

  1*2 1*2*3 1*2*3*…50

  例如, 在主函数中从键盘给n输入50后,输出为:s=1.718282。

  注意: 要求n的值大于1但不大于100。

  部分源程序在文件PROG1.C中。

  请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

  给定源程序:

  #include

  double fun(int n)

  {

  }

  main()

  { int n; double s;

  printf("\nInput n: "); scanf("%d",&n);

  s=fun(n);

  printf("\n\ns=%f\n\n",s);

  NONO();

  }

  解题思路:

  本题是根据公式计算多项式的值。注意变量的取值范围。

  参考答案:

  double fun(int n)

  {

  double s=0, t=1;

  int i ;

  for(i=1; i<=n; i++) {

  t *= i;

  s += 1./t;

  }

  return s;

  }

【2016年计算机二级C语言模拟考试题】相关文章:

1.2016年计算机二级C语言考试题及答案

2.2017年计算机二级C语言模拟试题

3.2016年计算机二级《C语言》机考试题与答案

4.2016年计算机二级C语言选择模拟题及答案

5.2016下半年计算机二级C语言模拟试题及答案

6.2016年计算机二级《C语言》操作试题及答案

7.2016年计算机二级C语言练习题及答案

8.2016年计算机二级C语言试题带答案