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

 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 

  例如,当形参n的值为10时,函数返回:-0.204491。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 


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


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


  给定源程序: 


  #include  


  double fun(int n) 


  { int i, k; double s, t; 


  s=0; 


  k=__1__; 


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


  t=__2__; 


  s=s+k*(2*i-1)*(2*i+1)/(t*t); 


  k=k*__3__; 


  } 


  return s; 


  } 


  main() 


  { int n=-1; 


  while(n<0) 


  { printf("Please input(n>0): "); scanf("%d",&n); } 


  printf("\nThe result is: %f\n",fun(n)); 


  }


  解题思路: 


  第一处:k是用来管理正负号的,公式中第一个值是正数,所以应填:1。 


  第二处:根据公式,t是2i,所以应填:2*i。 


  第三处:根据公式,第2个是负数,所以应填:(-1)。 


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


  给定程序MODI1.C中函数 fun 的功能是:判断一个整数是否是素数,若是返回1,否则返回0。 


  在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。 


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


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


  给定源程序: 


  #include  


  int fun ( int m ) 


  { int k = 2; 


  while ( k <= m && (m%k)) 


  k++ 


  if (m = k ) 


  return 1; 


  else return 0; 


  } 


  main( ) 


  { int n; 


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


  if ( fun ( n ) ) printf( "YES\n" ); 


  else printf( "NO!\n" ); 


  }


 解题思路: 


  第一处:语句后缺少分号。 


  第二处:条件判断相等的符号是==。 


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


  请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所 在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中x是数组名, n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 


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


  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 


  你编写的若干语句。 


  给定源程序: 


  #include  


  #include  


  void fun(int a[], int n , int *max, int *d ) 


  { 


  } 


  main() 


  { int i, x[20], max , index, n = 10; 


  randomize() ; 


  for (i=0;i < n;i++) {x[i] = rand()P; printf("M", x[i]) ; } 


  printf("\n"); 


  fun( x, n , &max, &index); 


  printf("Max =] , Index =M\n",max, index ); 


  NONO(); 


  }


  解题思路: 


  本题是找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。具体看参考源程序中的说明。 


  参考答案: 


  void fun(int a[], int n , int *max, int *d ) 


  { 


  int i ; 


  *max=a[0];*d = 0 ; /* 把数组的第1个元素值赋值给最大值变量*max */ 


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


  if(*max < a[i]) { /* 判断*max是否小于当前值 */ 


  *max = a[i]; /* 重新把最大值赋值给*max */ 


  *d = i ; /* 记住下标 */ 


  } 


  } 


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

就业数据资源平台