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

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

1、国家二级 C语言机试(操作题)模拟试卷 222及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:将形参 S所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。 例如,若 s所指字符串为 “asdl23fgh543df”,处理后新字符串为“asdfghdfl23543”。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试 题程序: 1 #include stdio h 2 #include stdlib h 3 #include stri

2、ng h 4 char*fun(char*s) 5 int i, j, k, n; char*p, *t; 6 n=strlen(s)+1; 7 t=(char*)malloc(n*si-zeof(char); 8 p=(char*)malloc(n * si-zeof(char); 9 j=0 ; k=0 ; 10 for(i=0; i n; i+) 11 if(si =a) 14 else 15 pk=si; k+; 16 17 *found* 18 for(i=0; i 【 2】 ; i+) 19 tj+i=pi; 20 *found* 21 tj+k=【 3】 ; 22 return

3、t; 23 24 main() 25 char s80; 26 printf(Please input: ); 27 scanf( s, s); 28 printf ( nThe result is: s n, fun(s); 29 二、程序修改题 2 下列程序中,函数 fun的功能是:按顺序给 s所指数组中的元 素赋予从 2开始的偶数,然后再按顺序对每 5个元素求一个平均值,并将这些值依次存放在 w所指的数组中。若 s所指数组中元素的个数不是 5的倍数,则多余部分忽略不计。 例如, s所指数组有 14个元素,则只对前 10个元素进行处理,不对最后的 4个元素求平均值。 请改正程序中的错误,使

4、它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 #define SIZE 20 3 fun(double*s, double*w) 4 int k, i ; double sum; 5 for(k=2, i=0; iSIZE; i+) 6 si=k ; k+=2; 7 *found* 8 sun=0 0; 9 for(k=0, i: 0; iSIZE; i+) 10 sum+=si; 11 *found* 12 if(i+1 5=0) 13 wk=sum 5; sum=0; 14 k+; 15

5、16 return k; 17 18 main() 19 double aSIZE, bSIZE 5; 20 int i, k; 21 k=fun(a, b); 22 printf(“The original data: n); 23 for(i=0; iSIZE; i+) 24 if(i 5=0) printf( n); 25 printf( 4 Of, ai); 26 27 printf( n nThe result: n); 28 for(i=0 ; ik; i+) 29 printf( 6 2f, bi); 30 printf( n n); 31 三、程序设计题 3 请编写一个函数,用

6、来删除字符串中的所有空格。 例如,输入 asd af aa z67,则输出为 asdafaaz67。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: 1 #include stdio h 2 #include ctype h 3 #include conio h 4 #include stdlib h 5 void fun(char*s tr) 6 7 8 9 main() 10 11 char str81; 12 char Nsg=Input a string ; 13 int n; 1

7、4 FILE*out; 15 printf(Nsg); 16 gets(str); 17 puts(str); 18 fun(str); 19 printf(*str: s n, str); 20 * 21 out=fopen(out dat, w); 22 fun(Nsg); 23 fprintf(out, s, Nsg); 24 fclose(out); 25 * 26 国家二级 C语言机 试(操作题)模拟试卷 222答案与解析 一、程序填空题 1 【正确答案】 (1)si (2)k (3) 0或 0 【试题解析】 填空 1:将字符串 s中所有字母兀素赋给数组 t。 填空 2:字符串中所有

8、非字母元素放到字母元素后面,所以 i的取值范围是 0 k。 填空 3:最后给字符串加入结束标识 0。 二、程序修改题 2 【正确答案】 (1)sum=0 0; (2)if(i+1) 5=0) 【试题解析】 (1)变量 sum书写错误。 (2)循环条件 if(i+1 5=0)是一个运算逻辑错误,应先计算 i+1,再对 5求余。 三、程序设计题 3 【正确答案】 1 void fun(char*str) 2 3 int i=0; 4 char*p-str; 5 while(*p) 6 7 if(*p!=) *删除空格 * 8 9 stri+=*p; 10 11 p+; 12 13 stri= 0; *加上结束符 * 14 【试题解析】 本题要求删 除所有空格,即保留除了空格以外的其他所有字符。由于 C语言中没有直接删除字符的操作,所以对不需要删除的字符采用 “保留 ”的操作。用指针 p指向字符串中的每一个字符,每指向到一个字符都判断其是否为空格,若不是空格则保存到 stri。

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

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

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