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

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

1、国家二级( C语言)机试模拟试卷 363及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:对形参 ss所指字符串数组中的 M个字符串按长度由短到长进行排序。 ss所指字符串数组中共有 M个字符串,且串长 #include #define M 5 #define N 20 void fun(char (*ss)N) int i, j, k, nM; char tN; for(i=0; inj) 【 2】 ; if(k!=i) strcpy(t,ssi); strcpy(ssi,ssk); /*found*/ strcpy(ssk,【 3】 ); nk=ni; mai

2、n() char ssMN=“shanghai“,“guangzhou“,“beijing“, “tianjing“,“cchongqing“; int i; printf(“nThe original strings are :n“); for(i=0; i #include void fun(char *s, char t) main() char s100, t100; printf(“nPlease enter string S:“); scanf(“%s“, s); fun(s, t); printf(“nThe result is: %sn“, t); NONO(); NONO (

3、) /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ char s100, t100 ; FILE *rf, *wf ; int i ; rf = fopen(“in.dat“,“r“); wf = fopen(“out.dat“,“w“); for(i = 0 ; i nj,则把 j赋给 k,即第二空处应为 “k=j”。 第三空: if(k!=i)说明找到了新的更短的字符串,那么把它和第 i个字符串交换,因此第三空处应为 “t”。 二、程序修改题( 30分) 2 【正 确答案】 s=s+(n+1.)/n; return t; 【试题解析】 ( 1)注意到 n是整型变量

4、, n+1也是整数,因此 (n+1)/n是两个整数相除,得到的结果也是整数即 1。而 “s=s+(n+1)/n;”是 s和 1转化成 double类型之后的和,相当于 s=s+1.0,因此计算结果不正确。第一标识下应改为“s=s+(n+1.)/n;”, n+1.计算结果是浮点数, (n+1.)/n得到的结果也是浮点数而不是整数。 ( 2)注意到在循环体内部 “t=s;”,即将 s的值赋给 t,然后 s再累加了下一个级数项。在最后 一次进入循环的时候, t记录 s的值, s再加一个级数项,下次循环进入之前判断的时候发现 s已经大于 q了,此时 while不再执行,而是执行后面的printf语句,

5、即 st, sq。题干要求返回级数的前 N项之和 SN,而 SN+1大于q,因此只能返回 t,而不是返回 s。第二标识下应改为 “return t;”。 三、程序设计题( 40分) 3 【正确答案】 int i, j=0; for(i=0; istrlen(s); i+) if(si%2) tj+=si; tj=0; 【试题解析】 ( 1)判断一个字符串中的某一字符 ASCII值是否为奇数,可用“stri%2!=0” 来判断。 ( 2)对串 s中各个字符逐个进行考查, ASCII值为奇数的字符就顺序放在新串 t中,否则就不存放。 ( 3)所有字符处理完后,记得在新串 s的末尾加上结束符 “0”。

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

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

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