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

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

1、国家二级 C语言机试(操作题)模拟试卷 699及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:求 ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参 n所指变量中。 ss所指字符串数组中共有 M个字符串,且串长 N。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include string h 3 #define M 5 4 #define N 20 5 int fun(c

2、har(*ss)N, int *n) 6 int i, k=0, len=N; 7 *found* 8 for(i=0; i _1_ ; i+) 9 len=strlen(ssi); 10 if(i=0) *n=len; 11 *found* 12 if(len _2_*n) 13 *n=len; 14 k=i; 15 16 17 *found* 18 return( _3_ ); 19 20 main() 21 char ssMN=shanghai, guangzhou, beijing, tianjing,chongqing); 22 int n, k, i; 23 printf( nTh

3、e original strings are: n); 24 for(i=0; i M; i+)puts(ssi); 25 k=fun(ss, n); 26 printf( nThe length of shortest string is: d n, n); 27 printf( nThe shortest string is: s n, ssk); 28 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:将 tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变。 例如,若输入 ”Ab, cD”,则输出 ”AB, CD”。 请改正程序中的错误,使它能得出正确的结果。

4、 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include string h 3 char* fun(char tt) 4 5 int i; 6 for(i=0; tti; i+) 7 *found* 8 if(a =tti) (tti =z) 9 *found* 10 tti+=32; 11 return(tt); 12 13 main() 14 15 char tt81; 16 printf( nPlease enter a string: ); 17 gets(tt); 18 printf( nThe result

5、 string is: n s, fun(tt); 19 三、程序设计题 3 请编写函数 fun,其功能是:将所有大于 1小于整数 m的非素数存入 xx所指数组中,非 素数的个数通过 k传回。 例如,若输入: 17,则应输出: 4 6 8 9 10 12 14 15 16。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 void fun(int m, int *k, int xx) 3 4 5 6 main() 7 8 int m, n, zz100; 9

6、void NONO(); 10 printf( nPlease enter aninteger number between 10 and100: ); 11 scanf( d, 25 fscanf(rf, d, n); 26 fun(n, m, zz); 27 fprintf(wf, d n d n, m, n); 28 for(n=0; n m; n+) 29 fprintf(wf, d n, zzn); 30 fclose(rf); 31 fclose(wf); 32 国家二级 C语言机试(操作题)模拟试卷 699答案与解析 一、程序填空题 1 【正确答案】 (1)M (2) (3)k

7、【试题解析】 函数 fun的功能是求 ss所指字符串数组中长度最短的字符串所在的行下标。求最短字符串所在的下标,一般假设第一个字符串的长度最短 min,用 k记录最长字符串的下标的话,开始时 min=strlen(ss0), k=0,然后逐个比较其他字符串长度,如果字符串 ssi长度比 min小,则将 min赋值为这个字符串长度, “k=i”,如此便可求得最短字符串和最短字符串所在的下标位置。 第一空:循环的目的是在 M个字符串中寻找长度最短的字符串,因此,循环变量 i从 0变化到 “M-1”,故第一空处应为 “M”。 第二空: “*n”记录最小字符串的长度,由审题分析可知,字符串 ssi长度

8、比min小,则交换最小长度值和下标位置,故第二空处应为 “ ”。 第三空:变量 k记录了最小字符串的下标位置,函数的返回值是最短的字 符串所在的行下标,故第三空处应为 “k”。 二、程序修改题 2 【正确答案】 (1)if(a =tti) (tti =z) (2)tti-=32; 【试题解析】 本题中函数的功能是将字符串中的小写字母改为对应的大写字母。首先判断字母是否为小写字母,如果是小写字母则进行转换。 (1)第一个错误标识下的 if判断语句中的逻辑有误,应该是与 (&)的关系,不是或 ( ) 的关系,所以 if判断语句改为 “if(a =tti)&(tti =z)”。 (2)第二个标识下小

9、写字母转换为大写字母的转换算法有误,小写转换为大写应该是减去 32,而不是加上 32,所以 “tti+=32; ”改为 “tti-=32; ”。 三、程序设计题 3 【正确答案】 1 int i, j; 2 int t=0; 初始化数组个数 3 for(i=2, i m; i+) 循环判断小于 n的数是否为素数 4 j=2; 5 while(j i) 6 if(i j=0) 如果 i不是素数 7 xxt=i; 8 t+; 9 break; 10 11 j+; 12 *k=t; 【试题解析】 该程序功能是将所有大于 1小于整数 m的非素数存入 xx所指数组中。求素数的常用方法是:从 2到 m-1去除 m,如果中间的任何数被整除,则不是素数。 (1)根据求素数的方法判断数 i是否为素数。 (2)把不是素数的数留下来,其方法是:如果该数是素数则不处理;如果不是素数则放到数组 xx中,并且把数组的下标加 1,为下一个不是素数的数放在数组中做准备。 (3)返回个数,把 xx数组中已经写入的数的个数返回 即可,即把数组 xx的最大下标加 1返回即可。

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

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

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