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

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

1、国家二级 C语言机试(操作题)模拟试卷 617及答案与解析 一、程序填空题 1 使用 VC+2010打开考生文件夹下 blank1中的解决方案。此解决方案的项目中包含一个源程序文件 blank1 c。在此程序中,函数 fun的功能是:将 s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。 例如, s所指的字符串为 “def35adh3kjsdf7”,执行后结果为 “defadhkjsdf3537”。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意 :部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序

2、: #include stdio h void fun(char*s) int i, j=0, k=0; char t180, t280; for(i=0; si!= 0; i+) if(si =0&si =9) t2j=si; 【 1】 ; else t1k+=si; t2j=0; t1k=0; for(i=0; i k; i+) 【 2】 ; for(i=0; i 【 3】 ; i+) sk+i=t2i; main() char s80=“ha3a54j7sd567sdffs“; printf(“ nThe original string is: s n“, s); fun(s); pri

3、ntf(“ nThe result is: s n“, s); 二、程序修改题 2 使用 VC+2010打开考生文件夹下 modi1中的解决方案。此解决方案的项目中包含一个源程序文件 modi1 c。在此程序中,函数 fun的功能是 :先将字符串 s中的字符按正序存放到字符串 t中,然后把 s中的字符按逆序连接到字符串 t的后面。 例如,当 s中的字符串为 “ABCDE”时,则 t中的字符串应为 “ABCDEEDCBA”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdlib h #inc

4、lude conio h #include stdio h #include string h void fun(char*s, char*t) int i, s1; s1=strlen(s); *found* for(i=0; i =s1; i+) ti=si; for(i=0; i s1; i+) ts1+i=ss1-i-1; *found* ts1= 0; void main() char s100, t100; system(“CLS“); printf(“ nPlease enter string s: “); scanf(“ s“, s); fun(s, t); printf(“T

5、he result is: s n“, t); 三、程序设计题 3 使用 VC+2010打开考生文件夹下 pmg1中的解决方案。此解决方案的项目中包含一个源程序文件 prog1 c。在此程序中,编写函数 fun,其功能是:删除 个字符串中指定下标的字符。其中, a指向原字符串,删除指定字符后的字符串存放在b所指的数组中, n中存放指定的下标。 例如,输入一个字符串 “World”,然后输入 3,则调用该函数后的结果为 “Word”。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include std

6、lib h #include stdio h #include conio h #define LEN20 void fun(char a, char b, int n) void main() char str1LEN, str2LEN; int n; system(“CLS“); printf(“Enter the string: n“); gets(str1); printf(“Enter the position of the string deleted: “); scanf(“ d“, &n); fun(str1, str2, n); printf(“Tne new string

7、is: s n“, str2); 国家二级 C语言机试(操作题)模拟试卷 617答案与解析 一、程序填空题 1 【正确答案】 (1)j+或 j+=1或 +j或 j=j+1 (2)si=t1i (3)j 【试题解析】 填空 1:根据函数 fun中的内容可知 ,数组 t1存储了 s中的非数字字符,数组 t2存储了 s中的数字字符,为了存储下一个数字字符,下标 j要进行加 1操作。 填空 2:将 s串中的数字与非数字字符分开后,要先将非数字字符放入字符串 s中,因此填入 si=t1i。 填空 3:再将数字字符加到 s串之后,并且 i要小于数字的个数 j。 二、程序修改题 2 【正确答案】 (1)fo

8、r(i=0; i s1; i+) (2)t2*s1= 0; 【试题解析】 (1)字符串长度为 s1,但数组下标从 0 s1-1,因此不包括 s1。 (2)正序和逆序字符串都加入 了 t串中,此时 t串中最后一个元素的下标为 2*s1-1,所以在 2*s1下标处加入字符串结束标识 0。 三、程序设计题 3 【正确答案】 void fun(char a, char b, int n) int i, k=0; for(i=0; ai!= 0; i+) if(i!=n) *将不是指定下标的字符存入数组 b中 * bk+=ai; bk= 0; *在字符串最后加上结束标识 * 【试题解析】 本题要求删除字符串中指定下标的字符,即把非指定下标的字符保留,所 以 if语句条件表达式的内容是 if(i!=n)。字符串最后不要忘记加上字符串结束标识 0。

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

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

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