[计算机类试卷]国家二级C语言机试(操作题)模拟试卷27及答案与解析.doc

上传人:孙刚 文档编号:498212 上传时间:2018-11-28 格式:DOC 页数:6 大小:30KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷27及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷27及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷27及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷27及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷27及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 27及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:判断形参 s所指字符串是否是 “回文 ”(Palindrome),若是,函数返回值为 1;不是,函数返回值为 0。 “回文 ”是正读和反读都一样的字符串 (不区分大小写字母 )。 例如, LEVEL和 Level是 “回文 ”,而 LEVLEV不是 “回文 ”。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。不得增行或删行,也不 得更改程序的结构 ! #include #include #include

2、int fun(char *s) char * lp, *rp, /*found*/ lp=_1_; rp=s+strlen(s)一 1; while(toupper(*lp)=toupper (*rp) (ip #include #define N 80 int fun(char *s, char *t) int n; char *P,*r; n=0; while(*S) P=S ; /*found*/ r=P; while(*r) if(*r=*P) r+; p+; ) else break; /*found*/ if(*r=0) n+; s+; return n; main() char

3、 aN, bN; int m; printf(“ nPlease enter string a: ”); gets(a); printf(“ nplease enter substring b: ”); gets(b); m=fun(a, b); printf(“ nThe result is: m= d n”, m); 三、程序设计题 3 假定输入的字符串中只包含字母和 *号。请编写函数 fun,它的功能是:删除字符串中所有的 *号。在编写函数时,不得使用 C语言提供的字符串函数。 例如,字符串中的内容为: *A*BC*DEF*G*,删除后,字符串中的内容应当是: ABCDEFG。 注意:部

4、分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include void fun(char *a) main() char S81; void NONO(); printf(“Enter a string: n”); getS(s); fun(s); printf(“The string after deleted: n”); putS(s); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE *in, *out ; int i; char

5、 s81 ; in=fopen(“in dat”, “r”); out=fopen(“out dat”, “w”); for(i=0; i10 ; i+) fscanf(in, “ s”, S); fun(S); fprintf(out, “ s n”, s); fclose(in); fclose(out); 国家二级 C语言机试(操作题)模拟试卷 27答案与解析 一、程序填空题 1 【正确答案】 (1)s (2)- (3)return 0 【试题解析】 函数 fun的功能是:判断形参 s所指字符串是否是 ”回文 ”,即比较第一个字符和最后一个字符是否相同,第二个字符和倒数第二个字符是否相同

6、,依此类推,可以用循环来实现 。 解题思路 第一空: “rp=s+strlen(s)-1; ”可知 rp指向最后一个元素,因此 lp是指向第一个元素,因此第一空应为 “s”。 第二空: “lp+; rp _2_; ”lp往后移动, rp应该往前移动,故第二空处应为“-”。 第三空: “if(lprp)”成立说明 lp和 rp比较没有比较到字符串的最中间的字符,也就是说 s字符串不是回文,因此第三空处的应为 “return 0”。 二、程序修改题 2 【正确答案】 (1)r=t; (2)if(*r=0) 【试题解析】 函数的功能是计算字符串中含有某子串的数目。 (1)根据 “while(*r)i

7、f(*r=*p)r+; p+; ”可知该循环是比较 r和 p指向的字符串是否相等,本题的要求是计算字符串中含有某子串的数目, p指向的源字符串s,所以 r应指向的是字符串 t,故第一标识下应改成 “r=t; ”。 (2)根据题意第二标识下 “if(*r=0)”应该是判断 r是否指向字符串尾,在 C语言中,等于是用 “=”标识,因此第二标识下应改成 “if(*r=0)”。 三、程序设计题 3 【正确答案】 int j=0; char *p=a; while(*p) i f(*p !=*)aj+=*p; p+; aj= 0; 【试题解析】 该程序功能是删除字符串中所有的 *号。解题思路是在 while循环过程中,利用 if判断表达式判断每一个字符是否为 “*”号,如果不是将其拷贝到字符串,甭则跳过,这样就实现了函数功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1