计算机等级 百分网手机站

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

时间:2017-09-28 15:31:27 计算机等级 我要投稿

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

  给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。

  例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。

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

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

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

  给定源程序:

  #include

  void fun(char *s, char c)

  { int i, j, n;

  for(i=0; s[i]!=___1___ ; i++)

  if(s[i]==c)

  {

  n=___2___ ;

  while(s[i+1+n]!=’�’) n++;

  for(j=i+n+1; j>i; j--) s[j+1]=s[j];

  s[j+1]=___3___ ;

  i=i+1;

  }

  }

  main()

  { char s[80]="baacda", c;

  printf(" The string: %s ",s);

  printf(" Input a character: "); scanf("%c",&c);

  fun(s,c);

  printf(" The result is: %s ",s);

  }

  解题思路:

  第一处:在for循环中终止值要判断字符串是否结束符,所以应填:’�’。

  第二处:n用于统计参数c后还有多少个字符,要对其进行初始化,所以应填:0。

  第三处:要求插入相同的字符c,所以应填:c。

  在主函数中从键盘输入若干个数放入数组中, 用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。

  例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,

  则程序的运行结果为:19.250000。

  请改正程序中的错误,使它能得出正确的结果。

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

  给定源程序:

  #include

  double fun ( int x[])

  {

  int sum = 0.0;

  int c=0, i=0;

  while (x[i] != 0)

  { if (x[i] > 0) {

  sum += x[i]; c++; }

  i++;

  }

  sum = c;

  return sum;

  }

  main( )

  { int x[1000]; int i=0;

  printf( " Please enter some data (end with 0): " );

  do

  { scanf("%d", &x[i]); }

  while (x[i++] != 0);

  printf("%f ", fun ( x ));

  }

  解题思路:

  第一处:由于sum是存放实数值,因此不能定义为整型,所以应改为double sum=0.0;或float

  sum=0.0;。

  第二处:除的运算符是“/”。

  编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

  1 1 1

  S=1 + ── + ─── + ... + ──────

  1+2 1+2+3 1+2+3+...+n

  例如:若n的值为11时,函数的值为:1.833333

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

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

  给定源程序:

  #include

  float fun(int n)

  {

  }

  main()

  { int n; float s;

  printf(" Please enter N:"); scanf("%d", &n);

  s = fun(n);

  printf("the result is: %f ", s);

  NONO();

  }

  解题思路:

  本题是根据给定的公式计算结果。使用for循环语句依次求出每一项的值,分别进行累加并把结果存入变量s中,最后返回s。

  参考答案:

  float fun(int n)

  {

  int i,j,t;

  float s=0;

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

  t=0;

  for(j=1;j<=i;j++) t+=j;

  s=s+1./t;

  }

  return s;

  }

【2016下半年计算机等级二级C语言上机模拟试题及答案】相关文章:

1.华为C语言上机试题及答案

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

3.2016计算机等级考试二级C++上机模拟试题及答案

4.2016年计算机二级C语言考试上机冲刺试题及答案

5.计算机等级考试二级C语言上机答题技巧

6.2016最新计算机二级C++上机试题及答案

7.2016计算机二级上机模拟试题及答案

8.计算机等级二级C笔试上机题库