模拟试题

3773考试网计算机等级考试模拟试题正文

2010年计算机等级考试二级C语言上机习题四

来源:青年人 2010-9-13 15:11:08

 

 

一、改错题

  含有错误的源程序如下:

  void match(char *pat,char str) ①

  {char *p=pat,*q=str;

  int i=0; ②

  while((*p!=NULL)&&(*q!=NULL))

  if(*p= =*q||*p= ='?')p++,q++;

  else if(*p= ='*')

  {p++;

  while(*q!=*p&&*q!=NULL)q++;

  }

  else i=0;break;       ③

  if(*p!=NULL||*q!=NULL)i=0;

  return i;

  }

  }

  【知识点】字符串处理、程序的调试

  【解析】程序中的错误一般可以分为两类,一类是语法错误,即程序中有拼写错误,书写不符合C语言的规定等,此类错误可通过调试(按F9键),根据提示进行改正。另一类是逻辑错误,程序调试已通过(报Success),但运行结果不正确,此类错误的修改必须要理解程序后方能改正。

  程序中用到系统预设的符号常量NULL,又未加“文件包含”处理,按F9后即编译时系统会报错,故应在最前面加上include 或将以下全部NULL改为0。函数match分明有返回值,故系统也会报错,应将void改为int;变量i的作用是:当匹配时取值1,否则取值0,根据③处,易于发现i初值应取1,故②处应改为i=1,当发现不匹配时,立即置为0,并跳出循环,此两句应是一个整体,应构成复合语句。②③均为逻辑错误。

  【答案】(1)在最前面加上include 或将以下全部NULL改为0

  (2)加下划线的部分改为:

  ①int match(char *pat, char *str)

  ②i=1

  ③{ i=0;break;}

  二、编程题

  【知识点】穷举法、数据文件的使用

  【解析】将30~50之间的每一个数都进行判断,就不会有遗漏。注意,按要求必须调用函数,且使用数据文件完成输出。使用数据文件有5大步骤:①#include ,②用FILE *定义指针,③用fopen("A:\\myf2.out","w")打开文件并赋值给指针,④用fprintf输出结果,⑤用fclose关闭文件。

  【注意】fopen("A:\\myf2.out","w")中盘符A:后要加双斜杠表示根目录,因为C语言用转义字符'\\'才能表达字符\;另外,文件的命名一定要严格按照规定处理,千万不要随便命名。

  【参考答案】

  #include

  int inv(int x)

  {int y;

  y=x/10+x%10*10; /*此句可将某两位正整数的十位与个位数字换位*/

  return y;

  }

  main()

  {FILE *out;

  int i,j;

  if((out=fopen("A:\\myf2.out","w"))= =NULL)

  {printf("Open file myf2.out failed!\n");exit(1);}

  for(i=30;i<50;i++)

  for(j=30;j<50;j++)

  if((i/10!=i%10)&&(i*j= =inv(i)*inv(j))) /* i/10!=i%10确保十位与个位数字不同*/

  fprintf(out,"%d*%d=%d*%d\n",i,j,inv(i),inv(j));

  fclose(out); }

 

模拟试题]2010年计算机等级考试二级C语言上机习题二 09-13
[模拟试题]2010年计算机等级考试二级C语言上机习题一 09-13
[模拟试题]2010年计算机二级VFP上机第三套冲刺模拟及答案解析
[模拟试题]2010年计算机二级VFP上机第二套冲刺模拟及答案解析
模拟试题]2010年计算机等考二级VFP上机第一套冲刺模拟及答案

 

 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1