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

  给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平 

  均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 


  例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为: 


  30.500000 


  移动后的输出为:30 6 17 15 26 46 32 40 45 48 


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


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


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


  给定源程序: 


  #include  


  #include  


  #define N 10 


  double fun(double *x) 


  { int i, j; double av, y[N]; 


  av=0; 


  for(i=0; i  for(i=j=0; i  if( x[i]  { 


  y[j]=x[i]; x[i]=-1; __2__;} 


  i=0; 


  while(i  { if( x[i]!= -1 ) y[j++]=x[i]; 


  __3__; 


  } 


  for(i=0; i  return av; 


  } 


  main() 


  { int i; double x[N]; 


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


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


  printf("\nThe result :\n",fun(x)); 


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


  } 


 解题思路: 


  第一处:求出N个数的平均值,所以应填:N。 


  第二处:利用for循环语句,把数组x中小于平均值的数,依次存放到数组y中,其中位置由变量j来控制,所以应填:j++。 


  第三处:i是while循环体的控制变量,每做一次循环均要加1。 


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


  给定程序MODI1.C中函数 fun 的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。 


  例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 


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


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


  给定源程序: 


  #include  


  fun ( char *s, int num[5] ) 


  { int k, i=5; 


  for ( k = 0; k  num[i]=0; 


  for (; *s; s++) 


  { i = -1; 


  switch ( s ) 


  { case ’a’: case ’A’: {i=0; break;} 


  case ’e’: case ’E’: {i=1; break;} 


  case ’i’: case ’I’: {i=2; break;} 


  case ’o’: case ’O’: {i=3; break;} 


  case ’u’: case ’U’: {i=4; break;} 


  } 


  if (i >= 0) 


  num[i]++; 


  } 


  } 


  main( ) 


  { char s1[81]; int num1[5], i; 


  printf( "\nPlease enter a string: " ); gets( s1 ); 


  fun ( s1, num1 ); 


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


  }


  解题思路: 


  第一处:num初始化错误,应为:num[k]=0;。 


  第二处:由于s是指针型变量,所以应改为:switch(*s)。 


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


  请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 


  例如:二维数组中的值为 


  1 3 5 7 9 


  2 9 9 9 4 


  6 9 9 9 8 


  1 3 5 7 0 


  则函数值为 61。 


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


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


  给定源程序: 


  #include  


  #define M 4 


  #define N 5 


  int fun ( int a[M][N] ) 


  { 


  } 


  main( ) 


  { int aa[M][N]={{1,3,5,7,9}, 


  {2,9,9,9,4}, 


  {6,9,9,9,8}, 


  {1,3,5,7,0}}; 


  int i, j, y; 


  clrscr(); 


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


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


  } 


  y = fun ( aa ); 


  printf( "\nThe sum: %d\n" , y ); 


  printf("\n"); 


  NONO( ); 


  } 


  解题思路: 


  本题是统计二维数组周边元素值之和,但要注意的是不要重复计算四个角上的元素值,结果作为函数值返回。 


  参考答案: 


  int fun ( int a[M][N] ) 


  { 


  int tot = 0, i, j ; 


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


  tot += a[0][i] ; 


  tot += a[M-1][i] ; 


  } 


  for(i = 1 ; i < M - 1 ; i++) { 


  tot += a[i][0] ; 


  tot += a[i][N-1] ; 


  } 


  return tot ; 


  } 


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

就业数据资源平台