就业数据资源平台
当前位置:首页 > C语言程序设计
2014年全国计算机二级C语言上机模拟试题及答案2

函数fun的功能是:计算请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 

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

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

  给定源程序: 

  #include  

  #include  

  double fun(double x) 

  { double f, t; int n; 

  f = 1.0+___1___; 

  t = x; 

  n = 1; 

  do { 

  n++; 

  t *= x/___2___; 

  f += ___3___; 

  } while (fabs(t) >= 1e-6); 

  return f; 

  } 

  main() 

  { double x, y; 

  x=2.5; 

  y = fun(x); 

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

  printf("x=%-12.6f y=%-12.6f \n", x, y); 


 解题思路: 

  第一处:根据公式可知,此处应填:x。 

  第二处:根据公式可知,此处应该除以n,所以应填:n。 

  第三处:计算的结果进行累加并赋值给变量f,所以应填:t。 

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

  给定程序MODI1.C中函数fun的功能是: 计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。 

  例如,7的5次方是16807, 其低3位数的和值是15。 

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

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

  给定源程序: 

  #include  

  #include  

  int fun( int n ,int *value ) 

  { int d,s,i; 

  d=0; s=0; 

  for(i=1; i<=5; i++) d=d*n; 

  *value=d; 

  for(i=1; i<=3; i++) 

  { s=s+d;

  d=d\10; 

  } 

  return s; 

  } 

  main() 

  { int n, sum, v; 

  do 

  { printf("\nEnter n( 2  while(n<=2||n>=8); 

  sum=fun( n,&v ); 

  printf("\n\nThe result:\n value=%d sum=%d\n\n",v,sum); 


解题思路: 

  第一处:变量d的初始值应为1。 

  第二处:整除的符号是/。 

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

  请编写函数fun, 其功能是: 计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 

  例如, 给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、 18.0、3.0、11.0, 输出应为: s=35.951014。 

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

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

  给定源程序: 

  #include  

  #include  

  double fun(double x[9]) 

  { 

  } 

  main() 

  { double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0}; 

  int i; 

  printf("\nThe original data is :\n"); 

  for(i=0;i<9;i++)printf("%6.1f",a[i]); printf("\n\n"); 

  s=fun(a); 

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

  NONO(); 

  }


解题思路: 

  本题是计算并输出给定数组中每相邻两个元素之平均值的平方根之和。 

  参考答案: 

  double fun(double x[9]) 

  { 

  int i ; 

  double avg=0.0,sum=0.0; 

  for (i=0;i<8;i++) { 

  avg=(x[i]+x[i+1])/2; 

  sum+=sqrt(avg); 

  } 

  return sum; 

  } 

  ※※※※※※※※※※※※※※※※※※※※※※※※※

就业数据资源平台