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

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

1、国家二级 C语言机试(操作题)模拟试卷 249及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:在形参 s所指字符串中寻找与参数 c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若 S所指字符串为 “baaeda”, e中的字符为 a,执行后 s所指字符串为“baaaacdaa”。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 void fun(char*s, char c) 3 in

2、t i, j, n; 4 *found* 5 for(i=0; si!=【 1】 ; i+) 6 if(si=c) 7 8 * found* 9 n=【 2】 ; 10 while(si+1+n!= 0) 11 n+; 12 for(j=i+n+l; j i; j-) 13 sj+1=sj; 14 * found* 15 sj+1=【 3】 ; 16 i=i+1; 17 18 19 main() 20 char s80=baacda, c; 21 printf(“ nThe string: s n, s); 22 printf(“ nInput a character: ); 23 scanf

3、( c, c); 24 fun(s, c); printf( nThe result is: s 25 n, s); 26 二、程序修改题 2 下列给定程序中函数 fun的功能是:将 s所指字符串的正序和反序进行连接,形成的新串放在 t所指的数组中。 例如,当 s所指字符串为 “ABCD”时, t所指字符串中的内容应为“ABCDDCBA”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题 程序: 1 #include conio h 2 #include stdio h 3 #include string h 4 *fo

4、und* 5 void fun(char s, char t) 6 7 int i, d; 8 d=strlen(s); 9 for(i=0 ; id; i+) 10 ti=si; 11 for(i=0; id; i+) 12 td+i=sd-1-i; 13 *found* 14 t2*d-1= 0; 15 16 msin() 17 18 char s100, t100; 19 printf(“ nPlease enter string s: ); 20 scanf( s, s); 21 fun(s, t); 22 printf( nThe result is: s n, t); 23 三、程

5、序设计题 3 函数 fun的功能是:将 s所指字符 串中下标为偶数同时 ASCII值为奇数的字符删除, s所指串中剩余的字符形成的新串放在 t所指的数组中。 例如,若 s所指字符串中的内容为 ABCDEFG12345,其中字符 C的 ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符 1的 ASCII码值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后 t所指的数组中的内容应是 BDFl2345。 注意:部分源程序在文件 PROG1 C中。 请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: 1 #inclu

6、de stdio h 2 #include string h 3 void fun(char * s, char t) 4 6 7 main() 8 9 char s100, t100; void NONO(); 10 printf(“ nPlease enter string s: ); 11 scanf( s, s); 12 fun(s, t); 13 printf( nThe result is: s n, t); 14 NONO(); 15 16 void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * 17 char s100, t100; 18 F

7、ILE*rf, *wf; 19 int i; 20 rf=fopen(in dat, r); 21 wf=fopen(out dat, W); 22 for(i=0; i1 0; i+) 23 fscanf(rf, s, s); 24 fun(s, t); 25 fprintf(wf, s n, t); 26 27 fclose(rf); 28 fclose(wf); 29 国家二级 C语言机试(操作题)模拟试卷 249答案与解析 一、程序填空题 1 【正确答案】 (1) 0 (2)0 (3)c 【试题解析】 填空 1: for语句循环条件是判断是否到达 字符串结尾,即当前字符是否为 0。 填

8、空 2: while语句用以确定字符串的长度,所以 变量 n赋初值为 0。 填空 3:题目要求如果找到与参数 c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为 c。 二、程序修改题 2 【正确答案】 (1)void fun(char*s, char*t) (2)t2*d= 0;或 td+i= 0;或 t2*d=0;或 td+i=0; 【试题解析】 (1)从调用函数来看,函数传递的是数组,所以函数的形 参应为指针。 (2)循环结束后回文字符的个数为 2*d个,因为数组下标是从 0开始的,所以最后一个字符的下标为 2*d-1,在最后一个字符的后面加上结束符 0,因此为t2*d= 0;。 三、程序设计题 3 【正确答案】 1 void fun(char *s, char t) 2 3 int i, j =0; 4 for(i=0 ; i strlen(s); i+) 5 if(!(i 2)=0 8 【试题解析】 本题是从一个字符串按要求乍成另一个新的字符串。我们使用 for循环语句来解决这个问题。在赋值新的字符串之前,先对数组元素的下标和ASCII码的值进行判断,将满足要求的元素赋给新的字符串。

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

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

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