当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机题库及答案(2)
发布时间:2011/8/16 8:49:35 来源:城市学习网 编辑:ziteng
  一、填空题:给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到 文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。

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

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

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

  给定源程序:

  #include

  #include

  #include

  void WriteText(FILE *);

  void ReadText(FILE *);

  main()

  {FILE *fp;

  if((fp=fopen("myfile4.txt","w"))==NULL)

  {printf(" open fail!!\n"); exit(0);}

  WriteText(fp);

  fclose(fp);

  if((fp=fopen("myfile4.txt","r"))==NULL)

  {printf(" open fail!!\n"); exit(0);}

  ReadText(fp);

  fclose(fp);

  }

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

  void WriteText(FILE ___1___)

  {char str[81];

  printf("\nEnter string with -1 to end :\n");

  gets(str);

  while(strcmp(str,"-1")!=0) {

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

  fputs(___2___,fw); fputs("\n",fw);

  gets(str);

  }

  }

  void ReadText(FILE *fr)

  {char str[81];

  printf("\nRead file and output to screen :\n");

  fgets(str,81,fr);

  while(!feof(fr)) {

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

  printf("%s",___3___);

  fgets(str,81,fr);

  }

  }

  解题答案:

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

  void WriteText(FILE *fw)

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

  fputs(str,fw); fputs("\n",fw);

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

  printf("%s",str);

  ****************************************** [NextPage]  二、改错题:给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位 上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。

  例如,当s中的数为:7654321时,t中的数为:7531。

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

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

  给定源程序:

  #include

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

  void fun (long s, long t)

  {long sl=10;

  *t = s % 10;

  while (s > 0)

  {s = s/100;

  *t = s * sl + *t;

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

  sl = sl*100;

  }

  }

  main()

  {long s, t;

  printf("\nPlease enter s:"); scanf("%ld", &s);

  fun(s, &t);

  printf("The result is: %ld\n", t);

  }

  解题答案:

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

  void fun (long s, long *t)

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

  sl=sl*10;

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

  [NextPage]   三、程序题:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上, b数的十位 和个位数依次放在c数的千位和十位上。

  例如,当a=45,b=12时,调用该函数后,c=1524。

  注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。

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

  给定源程序:

  #include

  void fun(int a, int b, long *c)

  {

  }

  main()

  {int a,b; long c;

  void NONO ();

  printf("Input a, b:");

  scanf("%d,%d", &a, &b);

  fun(a, b, &c);

  printf("The result is: %ld\n", c);

  NONO();

  }

  void NONO ()

  {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

  FILE *rf, *wf ;

  int i, a,b ; long c ;

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

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

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

  fscanf(rf, "%d,%d", &a, &b);

  fun(a, b, &c);

  fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c);

  }

  fclose(rf);

  fclose(wf);

  }

  解题答案:

  {

  *c=(b/10)*1000+(a)*100+(b)*10+(a/10);

  }

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