计算机等级考试上机模拟试题(3).doc_第1页
计算机等级考试上机模拟试题(3).doc_第2页
计算机等级考试上机模拟试题(3).doc_第3页
计算机等级考试上机模拟试题(3).doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上机考试模拟试题(3)一、填空题 在给定程序中, 函数fun的功能是: 在形参s所指字符串中的每个非数字字符之后插入一个“*”号。 例如, 形参s所指的字符串为: albc45sdtg56f, 则执行结果为a*1b*c*45s*d*t*g*56*。 请勿改动主函数main与其他函数中的任何内容, 仅在fun函数的横线上填写所需的若干表达式或语句。 注意: 部分源程序给出如下。# include void fun(char *str)int i,j,n;for(i=0;stri!= 0;j+) if(stri a_1_strii;j-) strj+1=_3_;strj+1= *;i=i+1 main() char str100=a1bc45sdtg56f; printf(nThe original string is: %sn,str); fun(str); printf(nThe resultis : %sn,str); 二、改错题 下列给定程序中, 函数fun的功能是: 将大写字母转换为对应小写字母之后的第五个字母, 若小写字母为vz, 使小写字母的值减21, 转换后的小写字母作为函数值返回。例如, 若形参是字母A, 则转换为小写字母f; 若形参是字母W, 则转换为小写字母b。 请修改函数fun中的错误, 得出正确的结果。 注意: 不要改动main函数, 不能增行或删行, 也不能更改程序的结构。# include # include char fun(char ch) /*error*/ if(ch=A & ch=a & ch=v & ch=z)ch=ch-21; return ch; main() char ch1,ch2; printf(nEnter a letter(A-Z): ); ch1=getchar();if(isupper(ch1) ch2=fun(ch1);printf(nnThe letter %c change to %cn,ch1,ch2); else printf(nEnter (A-Z)!n); 三、编程题 编写一个函数fun, 它的功能是: 实现两个字符串的连接(不使用库函数strcat), 即把str2所指的字符串连接到str1所指的字符串后。 例如, 分别输入下面两个字符串: just- test 则程序输出: just-test 请勿改动主函数main与其他函数中的任何内容, 仅在函数fun的花括号中填入所编写的若干语句。 注意: 部分源程序给出如下。# include # include void fun(char strl ,char str2)main() char s1100,s250; FILE *out; printf(Enter s1 and s2:n); scanf(%s%s,s1,s2); printf(s1=%sn,s1); printf(s2=%sn,s2); fun(s1,s2); printf(After invoking:n); printf(%sn,s1);out=fopen(outfile.dat,w); strcpy(s1, Hello);fun(s1,World!); fprintf(out,%sn,s1); strcpy(s1, This); fun(s1, is); fun(s1,test); fun(s1,string.);fprintf(out,%sn,s1);fclose(out);上机考试模拟试题(3)参考答案及解析一、填空题 答案 (1)&(2)0 (3) strj 解析 本题中函数功能是在指定字符串中每个非数字字符之后插入一个*号。其解题思路是首先判断是否为非数字字符, 然后根据判断结果进行插入操作。从已给部分源程序的maln主函数开始入手, “fun(str);”语句调用fun函数, 实现本题要求。 第一空: 首先函数对字符串进行遍历, 判断字符是否为非数字字符, 判断条件应是该字符在字符a与z之间, 所以第一空填“与”运算符“&”。 第二空: 当一个字符是非数字字符时, 要在其后插入一个“*”号, while语句是求非数字字符的个数, 以便在下面for循环操作中插入“*”号, while执行的条件是字符串不指向字符尾, 所以第二窄填“0”。 第三空: 这个循环中是将符合非数字字符后面的所有字符, 从后向前的依次向后移动一位, 以便在查到的i位置后插入“*”号, 所以第三空填“strj”。二、改错题 答案 (1) ch=ch+32; (2) ch=ch+5; 解析 本题中函数的功能是将大写字母转换为对应小写字母之后的第5个字母。对于将字母转换的题型, 首先是查找符合条件的字符, 然后根据规则对字符进行转换。本题需要考生了解大小写字母是怎样通过 ASCII码相互转换的。 (1)第一个标识下是将大写字母转换为小写字母, C语句中大写字母转换为对应的小写字母是对原有ASCII码加32, 小写转换为大写才是减32, 所以应将“ch=ch-32;”改为“ch=ch+32;” (2)第二个标识下是将小写字母转换为其后的第5个字母, 字母在au之间只加上5就可以了, 原题中减5则是将字母转换到该字母之前的第5个字母, 所以第二个标识下“ch=ch-5”改为“ch=ch+5;”。三、编程题 答案 int i=0, n=0;/初始化串1个数n, 下标i char *p=str1, *q=str2;/定义指针p, q指向串1、串2 while(*p)/循环求第一个串中字符个数 p+;/指向下一个字符 n+;/字符个数加1 i=n;/i赋值为串1的最后位置 while(*q)/循环中将串2放在串1后面 str1i =*q; /将q指向的字符依次放在串str1后面 q+;/指向下一个字符 i+;/下标加1 str1 i=0; /在新串后加尾符 解析 该程序功能是实现两个字符串的连接。本题要把串2连接到串1之后, 则需要把串2的第一个字符放到串1的尾

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论