【计算机类职业资格】二级C语言-394 (1)及答案解析.doc
《【计算机类职业资格】二级C语言-394 (1)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-394 (1)及答案解析.doc(8页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-394 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:在形参 ss 所指字符串数组中,删除所有串长超过 k 的字符串,函数返回所剩字符串的个数。ss 所指字符串数组中共有 N 个字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构! #include stdio. h #include string. h #define N 5 #define M
2、10 int fun (char (*ss) M, int k) int i, j=0, len; /*found*/ for(i=0; i _ 1_ ; i+) len=strlen (ssi); /*found*/ if (1en= _ 2_ ) /*found*/ strcpy(ssj+, _ 3_ ); return j; main( ) char xN M=“Beijing“, “Shanghai“, “Tianjing“, “Nanjing“, “Wuhan“); int i, f; printf(“/nThe original string/n/n“); for(i=0; iN;
3、 i+)puts(xi); printf(“/n“); f=fun(x, 7); printf(“The string witch length is less than or equal to 7 :/n“); for(i=0; if; i+) puts(xi); printf(“/n“); (分数:30.00)二、程序修改题(总题数:1,分数:30.00)2.给定程序 MODI1. C 中函数 fun 的功能是:逐个比较 p、q 所指两个字符串对应位置中的字符,把 ASCII值大或相等的字符依次存放到 c 所指数组中,形成一个新的字符串。 例如,若主函数中 a 字符串为:aBCDeFgH,
4、主函数中 b 字符串为:ABcd,则 c 中的字符串应为:aBcdeFgH。 请改正程序中的错误,使它能得出正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 #include stdio. h #include string. h void fun(char *p, char *q, char *c) /*found*/ int k=1; /*found*/ while(*p!= *q) if(*p*q) ck=*q; else ck=*p; if(*p) p+; if(*q) q+; k+; main( ) char a10=“aBCDeFgH“, b10=“
5、ABcd“, c80=“/0“); fun(a, b, c); printf(“The string a: “); puts(a); printf(“The string b: “); puts(b); printf(“The result: “); puts(c); (分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用 C 语言提供的字符串函数。函数 fun 中给出的语句仅供参考。 例如,字符串中的内容为:*A*BC*DEF*G*,删
6、除后字符串中的内容应当是:*ABCDEFG。 注意:部分源程序在文件 PROG1. C 文件中。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include stdio. h void fun(char *a) /*以下代码仅供参考*/ int i=0, k; while(ai=“*“) i+; k=i; while(ai!=“/0“)/*以下程序段实现非*字符前移*/ ak=“/0“; main( ) char s81; void NONO( ); printf(*Enter a string: /n“); gets(s); fun
7、(s); printf(“The string after deleted: /n“); puts(s); NONO( ); void NONO( ). /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *in, *out; int i;char s81; in=fopen (“C: /WEXAM/24990001/in. dat“, “r“); out=fopen (“C:/WEXAM/24990001/out. dat“, “w“); for(i=0; i10; i+) fscanf(in, “%s“, s); fun(s); fprintf(out, “%s
8、/n“, s); fclose(in); fclose(out); (分数:40.00)_二级 C 语言-394 (1)答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:在形参 ss 所指字符串数组中,删除所有串长超过 k 的字符串,函数返回所剩字符串的个数。ss 所指字符串数组中共有 N 个字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构! #include stdio.
9、 h #include string. h #define N 5 #define M 10 int fun (char (*ss) M, int k) int i, j=0, len; /*found*/ for(i=0; i _ 1_ ; i+) len=strlen (ssi); /*found*/ if (1en= _ 2_ ) /*found*/ strcpy(ssj+, _ 3_ ); return j; main( ) char xN M=“Beijing“, “Shanghai“, “Tianjing“, “Nanjing“, “Wuhan“); int i, f; print
10、f(“/nThe original string/n/n“); for(i=0; iN; i+)puts(xi); printf(“/n“); f=fun(x, 7); printf(“The string witch length is less than or equal to 7 :/n“); for(i=0; if; i+) puts(xi); printf(“/n“); (分数:30.00)解析:N k ssi 答案考生文件夹 解析 本题中函数 fun 的功能是在形参 ss 所指字符串数组中,删除所有串长超过 k 的字符串,然后函数返回所剩字符串的个数。根据题意,在 fun 函数中,
11、利用 for 循环比较字符串长度是否小于 k,然后利用 strcpy 函数组成新的可用字符串数组,将可用的字符串数组的长度值进行返回,即为字符串的个数。 第一空:“for(i=0; i -|_|-; i+)”,这一空部分出现在 fun 函数中的 for 循环条件中,在定义了 i 之后 i 的条件。根据 for 后面的语句我们可以看出,这里是要进行比较,比较对象是ss 所指字符串数组的所有字符串,所以这里循环要进行整改字符串数组的长度,相应的,这里 for 循环的循环条件就要是 i 小于字符串长度,而字符串长度开始就有定义,为 N,所以这里应该是 iN,这一空应该填 N。 第二空:“if(len
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 3941 答案 解析 DOC
