频道栏目
首页 > 资讯 > C语言 > 正文

2014年计算机二级C语言上机模拟试题57

13-11-09        来源:[db:作者]  
收藏   我要投稿
 给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 

  例如,有下列矩阵: 

  1 2 13 4 

  7 8 10 6 

  3 5 9 7 

  程序执行结果为:find: a[2][2]=9 

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

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

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

  给定源程序: 

  #include  

  #define M 3 

  #define N 4 

  void fun(int (*a)[N]) 

  { int i=0,j,find=0,rmax,c,k; 

  while( (i  { rmax=a[i][0]; c=0; 

  for(j=1; j  if(rmax   rmax=a[i][j]; c= __1__ ; } 

  find=1; k=0; 

  while(k  if (k!=i && a[k][c]<=rmax) find= __2__ ; 

  k++; 

  } 

  if(find) printf("find: a[%d][%d]=%dn",i,c,a[i][c]); 

  __3__ ; 

  } 

  if(!find) printf("not found!n"); 

  } 

  main() 

  { int x[M][N],i,j; 

  printf("Enter number for array:n"); 

  for(i=0; i  for(j=0; j  printf("The array:n"); 

  for(i=0; i  { for(j=0; j

  解题思路: 

  本题是在矩阵中找出在行上最大、在列上最小的那个元素。 

  第一处:找出行上最大的数,并该位置j(列)保存在c中,所以应填:j。 

  第二处:使用while循环语句和控制变量find,如果该数不是列是最小数,那么把find置0,所以应填:0。 

  第三处:i是while的控制变量,所以每做一次循环,该数均要加1,所以应填:i++。 

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

  给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。

  1 1 1 

  t = 1 

  2*2 3*3 m*m 

  例如,若 m 中的值为: 5,则应输出: 0.536389。 

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

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

  给定源程序: 

  #include  

  double fun ( int m ) 

  { double y = 1.0 ; 

  int i ; 

  for(i = 2 ; i < m ; i++) 

  y -= 1 /(i * i) ; 

  return( y ) ; 

  } 

  main( ) 

  { int n = 5 ; 

  printf( "nThe result is %lfn", fun ( n ) ) ; 

  }

 解题思路: 

  第一处:使用for循环计算公式,必须计算到m,所以应改为for(i=2; i<=m; i++)。 

  第二处:在除法运算中,如果除数和被除数都是整数,所么所除结果也是整数,因此应改

  为y-=1./(i*i)。 

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

  m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。 

  例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4, below中的数据应为: 10、20、30、40。 

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

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

  给定源程序: 

  #include  

  #include  

  int fun(int score[], int m, int below[]) 

  { 

  } 

  main( ) 

  { int i, n, below[9] ; 

  int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ; 

  n = fun(score, 9, below) ; 

  printf( "nBelow the average score are: " ) ; 

  for (i = 0 ; i < n ; i++) printf("%d ", below[i]) ; 

  NONO() ; 

  }

  解题思路: 

  本题是计算平均成绩,再把低于平均成绩的分数存入依次数组below中。 

  参考答案: 

  int fun(int score[], int m, int below[]) 

  { 

  float av=0.0 ; 

  int i, j=0 ; 

  for(i=0; i  av /= m; 

  for(i=0; i  if(av>score[i]) below[j++]=score[i]; 

  return j; 

  } 

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

相关TAG标签
上一篇:2014年计算机二级C语言上机模拟试题56
下一篇:2014年计算机二级C语言上机模拟试题58
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站