当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机题库及答案(70)
发布时间:2011/9/30 11:25:55 来源:城市学习网 编辑:ziteng
  一、填空题:给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1; 不是,函数返回值为0。"幻方"的判定

  条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。

  例如,以下3×3的矩阵就是一个"幻方":

  4 9 2

  3 5 7

  8 1 6

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

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

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

  给定源程序:

  #include

  #define N 3

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

  {int i,j,m1,m2,row,colum;

  m1=m2=0;

  for(i=0; i

  {j=N-i-1; m1+=a[i][i]; m2+=a[i][j];}

  if(m1!=m2) return 0;

  for(i=0; i

  /**********found**********/

  row=colum= __1__;

  for(j=0; j

  {row+=a[i][j]; colum+=a[j][i];}

  /**********found**********/

  if((row!=colum) __2__ (row!=m1)) return 0;

  }

  /**********found**********/

  return __3__;

  }

  main()

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

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

  for(i=0; i

  for(j=0; j

  printf("Array:\n");

  for(i=0; i

  {for(j=0; j

  printf("\n");

  }

  if(fun(x)) printf("The Array is a magic square.\n");

  else printf("The Array isn't a magic square.\n");

  }

  解题答案:

  /**********第一空**********/

  row=colum= 0;

  /**********第二空*********/

  if((row!=colum) || (row!=m1)) return 0;

  /**********第三空**********/

  return 1;

  ******************************************[NextPage]  二、改错题:给定程序MODI1.C中fun函数的功能是: 根据整型形参m,计算如下公式的值。

               1        1                     1

  t = 1 - ----- - ----- - …… - -----

               2        3                    m

  例如,若主函数中输入5,则应输出 -0.283333。

  请改正函数fun中的错误或在横线处填上适当的内容并把横线删除, 使它能

  计算出正确的结果。

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

  给定源程序:

  #include

  double fun(int m)

  {

  double t = 1.0;

  int i;

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

  /**********found**********/

  t = 1.0-1 /i;

  /**********found**********/

  _______;

  }

  main()

  {

  int m ;

  printf("\nPlease enter 1 integer numbers:\n");

  scanf("%d", &m);

  printf("\n\nThe result is %lf\n", fun(m));

  }

  解题答案:

  /**********found**********/

  t=t-1.0/i;

  /**********found**********/

  return t;

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

 [NextPage]   三.程序题:请编写一个函数,函数的功能是删除字符串中的所有空格。

  例如, 主函数中输入"asd af aa z67", 则输出为 "asdafaaz67"。

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

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

  给定源程序:

  #include

  #include

  void fun(char *str)

  {

  }

  main()

  {

  char str[81];void NONO ();

  printf("Input a string:");

  gets(str);

  puts(str);

  fun(str);

  printf("*** str: %s\n",str);

  NONO();

  }

  void NONO ()

  {

  /* 请在此函数内打开文件,输入调试数据,调用 fun 函数,输出数据,关闭文件。 */

  char str[81];

  int n = 0;

  FILE *rf, *wf ;

  rf = fopen("in.dat","r");

  wf = fopen("out.dat","w");

  while(n < 10) {

  fgets(str, 80, rf);

  fun(str);

  fprintf(wf, "%s", str);

  n++ ;

  }

  fclose(rf);

  fclose(wf);

  }

  参考答案:

  int fun(char *str)

  {

  char *p = str ;

  int i = 0 ;

  while(*p) {

  if(*p != ' ') str[i++] = *p ;

  p++ ;

  }

  str[i] = 0 ;

  }

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved