读书人

3月份计算机二级C语言上机练习题及答案

发布时间: 2013-03-30 08:16:13 作者: luck

  第一题:填空题 请补充fun函数,该函数的功能是把从键盘输入的3 个整数 按从小到大输出。

  例如:输入场23 32 14, 结果输出14 23 32 。

  注意:部分源程序给出如下。

  仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。

  #include

  #include

  main()

  {

  int x, y, z, t;

  printf("Input x,y,z\n");

  scanf("%d%d%d", &x, &y, &z);

  if (___1___)

  {

  t = x;

  x = y;

  y = t;

  } /* 交换x,y的值 */

  if (___2___)

  {

  t = z;

  z = x;

  x = t;

  } /* 交换x,z的值 */

  if (___3___)

  {

  t = y;

  y = z;

  z = t;

  } /* 交换z,y的值 */

  printf("******the result*******\n");

  printf("from small to big: %d %d %d\n", x, y, z);

  }

  参考答案:

  填空题:第1处填空:x>y或y

  第2处填空:x>z或z

  第3处填空:y>z或z

  第二题:改错题 下列给定程序中,函数fun的功能是:将m(1<=m<=10)个字符串连接起来,组成一个新串,放在pt所指字符串中。例如:把3个串abc,CD,EF串连起来,结果是abcCDEF。

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

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

  #include

  #include

  #include

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

  void fun(char str[][], int m, char *pt)

  {

  int k, q, i;

  for (k=0; k

  {

  q = strlen(str[k]);

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

  for (i=0; i

  pt[i] = str[k,i];

  pt += q;

  pt[0] = 0;

  }

  }

  main()

  {

  int m, h;

  char s[10][10], p[120];

  printf("\nPlease enter m:");

  scanf("%d", &m);

  gets(s[0]);

  printf("\nPlease enter %d string:\n", m);

  for (h=0; h

  gets(s[h]);

  fun(s, m, p);

  printf("\nThe result is : %s\n", p);

  }

  参考答案:

  改错题:第1处:void fun(char str[][],int m,char *pt)应改为 void fun ( char str[][10], int m,char *pt)

  第2处:pt[i]=str[k,i];应改为 pt[i]=str[k][i];

  第三题:编程题 请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

  例如,若输入17,则应输出:9和4 6 8 9 10 12 14 15 16。

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

  #include

  #include

  void fun( int m, int *k, int xx[] )

  {

  }

  main()

  {

  int m, n, zz[100];

  FILE *out;

  printf( "\nPlease enter an integer number between 10 and 100: " );

  scanf( "%d", &n );

  fun( n, &m, zz );

  printf( "\n\nThere are %d non-prime numbers less than %d: ", m, n );

  for( n = 0; n < m; n++ )

  printf( "\n %4d", zz[n] );

  out=fopen("out.dat", "w"); www.Examda.CoM

  fun( 28, &m, zz );

  fprintf(out, "%d\n", m);

  for( n = 0; n < m; n++ )

  fprintf(out, "%d\n", zz[n] );

  fclose(out);

  }

  参考答案

  编程题:void fun(int m,int *k,int xx[])

  {

  int i,j;

  int t=0;

  for(i=2;i

  { j=2;

  while(j

  { if(i%j==0)

  { xx[t]=i;

  t++;

  break;

  }

  j++;

  }

  *k=t;

  }

  }



更多关注:

3月份计算机一级考试微机知识预测整理汇总

2013年计算机等级考试一级微机考题预测汇总

计算机二级C语言上机题考前预测汇总

更多精彩请关注读书人网计算机频道!


读书人网 >二级考试

热点推荐