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

  给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵

  1 2 3 


  4 5 6 


  7 8 9 


  程序执行结果为 


  0 0 1 


  0 0 4 


  0 0 7 


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


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


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


  给定源程序: 


  #include  


  #define N 4 


  void fun(int (*t)[N], int m) 


  { int i, j; 


  for(i=0; i  { for(j=N-1-m; j>=0; j--) 


  t[i][j+___2___ ]=t[i][j]; 


  for(j=0; j<___3___; j++) 


  t[i][j]=0; 


  } 


  } 


  main() 


  { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j, m; 


  printf("\nThe original array:\n"); 


  for(i=0; i  { for(j=0; j  printf("- ",t[i][j]); 


  printf("\n"); 


  } 


  printf("Input m (m<=%d): ",N);scanf("%d",&m); 


  fun(t,m); 


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


  for(i=0; i  { for(j=0; j  printf("- ",t[i][j]); 


  printf("\n"); 


  } 


  }


 解题思路: 


  第一处:for循环变量的增量,所以应填:i++。 


  第二处:由于右移m个位置,所以应填:m。 


  第三处:左边m列均置于0,所以for循环的终止值应为m。 


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


  给定程序MODI1.C中函数 fun 的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。若high的值为: 100, 则函数的值为: 732。 


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


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


  给定源程序: 


  #include  


  #include  


  int fun( int high ) 


  { int sum = 0, n=0, j, yes; 


  while ((high >= 2) && (n < 10) 


  { yes = 1; 


  for (j=2; j<=high/2; j++ ) 


  if (high % j ==0 ){ 


  yes=0; break 


  } 


  if (yes) { sum +=high; n++; } 


  high--; 


  } 


  return sum ; 


  } 


  main ( ) 


  { 


  printf("%d\n", fun (100)); 


  }


  解题思路: 


  第一处:括号没有匹配。Error: While statement missing ) in function fun 


  在函数fun中While语句缺少)。 


  第二处:缺少分号。Error: Break statement missing ; in function fun 


  在函数fun中break语句缺少; 


  这种题型只要通过编译即可发现程序的错误所在。 


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


  编写函数fun,它的功能是:利用以下所示的简单迭代方法求 


  方程:cos(x)-x=0 的一个实根。 迭代步骤如下: 


  (1)取 x1 初值为0.0; 


  (2)x0 = x1,把x1的值赋给 x0; 


  (3)x1 = cos(x0),求出一个新的x1; 


  (4)若x0 - x1的绝对值小于 0.000001,执行步骤(5),否则执行步骤(2); 


  (5)所求x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回。 程序将输出结果Root=0.739085。 


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


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


  给定源程序: 


  #include  


  #include  


  float fun() 


  { 


  } 


  main() 


  { 


  printf("Root =%f\n", fun()); 


  NONO(); 


  } 


  解题思路: 


  本题是根据给定的公式及条件来计算方程的一个实根。 


  参考答案: 


  float fun() 


  { 


  float x0, x1=0.0; 


  do { 


  x0=x1; 


  x1=cos(x0); 


  } while(fabs(x0-x1)>0.000001); 


  return x1; 


  } 

就业数据资源平台