计算机基础知识和应用能力等级考试上机试卷(2008年秋)
二级 C语言 (试卷代号C02) (本试卷完成时间 70分钟)
一、改错题(20分) 【程序功能】
判断一个英文句子是否是回文。回文原指一个正读和反读都完全一样的单词,例如level是一个回文。若忽略标点符号、空格及字母大小写的差异,回文的概念可以扩展到一个英文句子,例如,Madam, I'm Adam就是一个回文句子。
下列程序中,函数palin的功能是判断一个英文句子是否是回文,如果是返回1,否则返回0。
【测试数据与运行结果】
测试数据:\"Madam I'm Adam.\运行结果:Madam I'm Adam.: Yes.
Not a palindrome.: No.
【含有错误的源程序】
#include { char s[80]={\"Madam I'm Adam.\ int i,ok; for(i=0;i<2;i++) { ok=palin(s[i]); printf(ok? \"%s: Yes.\\n\":\"%s: No.\\n\ } } void palin(char *s) { int i,j,k,ok; char *sp,ch; k=strlen(s); sp=(char *)malloc(k+1); if(sp==NULL) { printf(\"error!\\n\"); exit(0); } k=0; while(*s) { ch=*s; if(!('A'<=ch && ch<='Z')) sp[k++]=ch-'A'+'a'; else if ('a'<=ch && ch<='z') sp[k++]=ch; s++; } sp[k]='\\0'; ok=1; C语言 2008年秋C02 第1页 for (i=0,j=k-1;i>j;i++,j--) if (sp[i]!=sp[j]) { ok=0; break; } free(sp); return ok; } 【要求】 1. 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序 中的错误进行修改。 2. 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译 预处理命令,但不能增加其它语句,也不能删去整条语句。 3. 改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。 二、编程题(20分) 【程序功能】 取出一个正整数中的所有偶数数字,用这些数字构成一个最大数。 【编程要求】 1. 编写函数long fun(long s),取出整数s中的所有偶数数字,用这些数字构成一个最 大数,函数返回该数。 2. 编写main函数,接收键盘输入的一个长整型数,调用fun函数求出用该整数的所有偶 数数字构成的一个最大数,将所得结果输出到屏幕及结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。 【测试数据与运行结果】 测试数据:s=25846513 运行结果:8642 【要求】 1.源程序文件名为myf2.c,输出结果文件名为myf2.out。 2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。 3.源程序文件和运行结果文件均需保存在T:盘根目录中供阅卷使用。 4.不要复制扩展名为obj和exe的文件到T:盘中。 C语言 2008年秋C02 第2页 因篇幅问题不能全部显示,请点此查看更多更全内容