C语言 百分网手机站

计算机二级C语言上机强化训练题及答案

时间:2020-10-28 15:01:53 C语言 我要投稿

计算机二级C语言上机强化训练题及答案

  以下是应届毕业生考试网小编提供的计算机二级C语言上机强化训练题及答案,希望大家顺利通过计算机二级考试。

  填空题

  给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放 在变量tfname中。

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

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

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

  给定源程序:

  #include

  #include

  int fun(char *source, char *target)

  { FILE *fs,*ft; char ch;

  if((fs=fopen(source, ___1___))==NULL)

  return 0;

  if((ft=fopen(target, "w"))==NULL)

  return 0;

  printf("\nThe data in file :\n");

  ch=fgetc(fs);

  while(!feof(___2___))

  { putchar( ch );

  fputc(ch,___3___);

  ch=fgetc(fs);

  }

  fclose(fs); fclose(ft);

  printf("\n\n");

  return 1;

  }

  main()

  { char sfname[20] ="myfile1",tfname[20]="myfile2";

  FILE *myf; int i; char c;

  myf=fopen(sfname,"w");

  printf("\nThe original data :\n");

  for(i=1; i<30; i++){ c='A'+rand()%25;fprintf(myf,"%c",c); printf("%c",c); }

  fclose(myf);printf("\n\n");

  if (fun(sfname, tfname)) printf("Succeed!");

  else printf("Fail!");

  }

  解题思路:

  本题要求是把一个文件中的内容复制到另一个文件中。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。

  第一处:要求打开一个读方式的源文件,因此可以填上"r"或"r+"。打开读文件操作的流是fs。

  第二处:用while循环来判断源文件是否已读到文件结束符,int feof(FILE *stream),因此,此处只能填写fs。

  第三处:把已经读取的字符写入目标文件中,打开写文件操作的流是ft,因此,此处只能填写ft。

  改错题

  给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为偶数的数依 次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:87653142时,t中的数为:8642。

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

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

  给定源程序:

  #include

  void fun (long s, long *t)

  { int d;

  long sl=1;

  *t = 0;

  while ( s > 0)

  { d = s%10;

  if (d%2=0)

  { *t=d* sl+ *t;

  sl *= 10;

  }

  s \= 10;

  }

  }

  main()

  { long s, t;

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

  fun(s, &t);

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

  }

  解题思路:

  第一处:判断相等的条件是==。

  第二处:整除的符号是/。

  编程题

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

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

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

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

  给定源程序:

  #include

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

  {

  }

  main()

  { int a,b; long c;

  printf("Input a, b:");

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

  fun(a, b, &c);

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

  NONO();

  }

  解题思路:

  本题是给出两个两位数的正整数分别取出各位上的数字,再按条件组成一个新数。

  取a十位数字的方法:a/10

  取a个位数字的方法:a%10

  参考答案:

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

  {

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

  }

【计算机二级C语言上机强化训练题及答案】相关文章:

1.计算机二级C语言上机编程题讲解

2.计算机考试C语言强化训练题及答案

3.最新C语言考试强化训练题及答案

4.二级C++上机冲刺题及答案解析

5.计算机二级C语言上机精选模拟题及答案

6.计算机二级《C++》上机试题及答案

7.计算机二级考试C语言强化题及答案

8.计算机二级《C语言》选择题训练题及答案

9.9月计算机二级考试C语言强化训练题附答案