模拟试题

3773考试网计算机等级考试模拟试题正文

2014年3月全国计算机二级C语言上机模拟试题四十一之3

来源:2exam.com 2013-10-30 10:19:47

解题思路: 

  第一处:函数的返回是浮点型数,所以应改为:float fun(int n)。 

  第二处:for的终止条件应是i<=n。 

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

  程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m 。 

  例如:若m的值为2,a 数组中的值为 

  | 1 9 7 | | 2 18 14| 

  a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 2 6 16| 

  | 4 5 6 | | 4 5 12| 

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

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

  给定源程序: 

  #include  

  #include  

  #define N 5 

  int fun ( int a[][N], int m ) 

  { 

  } 

  main ( ) 

  { int a[N][N], m, i, j; 

  printf("***** The array *****\n"); 

  for ( i =0; i  { for ( j =0; j  { a[i][j] = rand() ; printf( "M", a[i][j] ); } 

  printf("\n"); 

  } 

  do m = rand() ; while ( m>=3 ); 

  printf("m = M\n",m); 

  fun ( a ,m ); 

  printf ("THE RESULT\n"); 

  for ( i =0; i  { for ( j =0; j  printf("\n"); 

  } 

  NONO ( ); 

  } 

  解题思路: 

  本题是利用两重循环给二维数组右上三角元素中的值乘以m。 

  参考答案: 

  int fun ( int a[][N], int m ) 

  { 

  int i, j; 

  for(i = 0 ; i < N ; i++) 

  for(j = i ; j < N ; j++) 

  a[i][j] *= m ; 

  } 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1