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

上传人:amazingpat195 文档编号:498457 上传时间:2018-11-29 格式:DOC 页数:5 大小:29.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷4及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷4及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷4及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷4及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷4及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

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

2、tring h #include ctype h int fun(char *s) char *ip, *rp; *found* lp=_1_; rp=s+strlen(s)-1; while(touppe r(*lp)=toupper (*rp)&(lp rp) *found* lp+; rp_2_; ) *found* if(lp rp)_3_; else return 1; main() char s81; printf(“Enter a string: “); scanf(“ s“, s); if(fun(s)printf(“in “ s “is a Palindrome n n“,

3、s); else printf(“ n “ s “i snt a Palindrome n n“, s); 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。 例如,若字符串为 abcd,则应输出: dcba。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include stdio h *found* fun (char a) if(*a) fun(a+1); *found* printf(“ c“ *a); main() char s10=“abc

4、d”; printf(“处理前字符串 = s n处理后字符串 =“, S); fun(s); printf(“ n“); 三、程序设计题 3 学生的记录由学号和成绩组成, N名学生的数据已在主函数中放入结构体数组 s中,请编写函数 fun,它的功能是:把分数最低的学生数据放在 b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 注意:部分 源程序在文件 PROG1 C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include stdio h #define N 16 typedef Struct c

5、har num10; int s; STREC; int fun(STREC *a, STREC *b) main() STREC SN=“GA05“, 85, “GA03“, 76, “GA02“, 69, “GA04“,85, “GA01“, 91, “GA07“, 72, “GA08“, 64, “GA06“, 87, “GA015“, 85, “GA013“,91, “GA012“, 64, “GA014“, 91, “GA011“, 91, “GA017“, 64, “GA018“, 64, “GA01 6“, 72); STREC hN; int i, n; FILE *out;

6、n=fun(s, h); printf(“The d lowest score: n“, n); for(i=0; i n; i+) printf(“ S 4d n“, hi num, hi s); printf(“ n“); out=fopen(“out dat“, “w“); fprintf(out, “ d n“, n); for(i=0; i n; i+) fprintf(out, “ 4 d n“, hi s); fclose(out); 国家二级 C语言机试(操作题)模拟试卷 4答案与解析 一、程序填空题 1 【正确答案】 (1)s (2) (3)return 0 【试题解析】 第

7、一空: “rp=s+strlen(s)-1; ”可知 rp指向最后一个元素,因此 lp是指向第一个元素,因此第。一空应为 “s”。 第二空: “lp+; rp_2_; ”lp往后移动, rp应该往前移动,故第二空处应为“-”o 第三空: “if(lp rp)”成立说明 lp和 rp比较没有比较到字符串的最中间的字符,也就是说 s字符串不是回文, 因此第三空处的应为 “return 0”。 二、程序修改题 2 【正确答案】 (1)void fun(char *a) (2)p ri nt f(“ c“, *a); 【试题解析】 (1)主函数中 “fun(s); ”语句中的 s是数组名,所以在 fu

8、n函数中参数的定义应该是指针型, “fun(chara)”改为 “void fun(char *a)”。 (2)printf函数的调用形式是: printf(格式字符串,输出项表 ),在格式字符串和输出项表之间有 “, ”,因此第二个标识处应该是 “printf(“ c“, *a); ”。 三、程序设计题 3 【正确答案】 int i, j=0, min=a0 s; for(i=0; i N; i+) if(min ai s) j=0; bj+: ai; min=ai s; else if(min=ai s) bj+=ai; return j; 【试题解析】 (1)要把最低分数的学生数据放在数组中,首先求出最低分数,再使用一个 for循环把所有的成绩进行比较, 找出最低的分数来。 (2)找出所有与最低分数相等的学生,并将最低分数的人数累加。

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

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

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