【计算机类职业资格】字符串(二)及答案解析.doc
《【计算机类职业资格】字符串(二)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】字符串(二)及答案解析.doc(11页珍藏版)》请在麦多课文档分享上搜索。
1、字符串(二)及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空(总题数:4,分数:64.00)1.给定程序中,函数 fun()的功能是求 ss 所指字符数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参 n 所指变量中。ss 所指字符数组中共有 M 个字符串,且串长N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。#includestdio.h#includestring.h#define M 5#define N 20int fun(cha
2、r(*ss)N,int *n)int i,k=0,len=N;/*found*/for(i=0;i (1) ;i+)len=strlen(ssi);if(i=0)*n=len;/*found*/if(len (2) *n)*n=len;k=i;/*found*/return (3) ;main()char ssMN=“shanghai“,“guangzhou“,“beijing“,“tianjing“,“chongqing“;int n,k,i;printf(“/nThe original strings are:/n“);for(i=0;iM;i+)puts(ssi);k=fun(ss,pr
3、intf(“/nThe length of shortest string is:%d/n“,n);printf(“/nThe shortest string is:%s/n“,ssk);(分数:16.00)填空项 1:_2.给定程序中,函数 fun()的功能是将 s 所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参 s 所指的字符串为 def35adh3kjsdf7,执行结果为 defadhkjsdf3537。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。
4、不得增行或删行,也不得更改程序的结构。#includestdio.hvoid fun(char *s)int i,j=0,k=0;char t180,t280;for(i=0;si!=/0;i+)if(si=00 (1) ;else t1k+=si;t2j=0;t1k=0;/*found*/for(i=0;ik;i+) (2) ;/*found*/for(i=0;i (3) ;i+)sk+i=t2i;main()char s80=“ba3a54j7sd567sdffs“;printf(“/nThe original string is:%s/n“,s);fun(s);printf(“/nThe
5、 result is:%s/n“,s);(分数:16.00)填空项 1:_3.给定程序中,函数 fun()的功能是在形参 s 所指字符串中的每个数字字符之后插入一个*号。例如,形参 s 所指的字符串为 def35adh3kjsdf7,执行结果为 def3*5*adh3*kjsdf7*。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。#include stdio.hvoid fun(char *s)int i,j,n;for(i=0;si!=/0;i+)/*found*/if(si
6、=0 (1) si=9)n=0;/*found*/while(si+1+n!= (2) )n+;for(j=i+n+1;ji;j-)/*found*/sj+1= (3) ;sj+1=*;i=i+1;main()char s80=“ba3a54cd23a“;printf(“/nThe original string is: %s/n“,s);fun(s);printf(“/nThe result is:%s/n“,s);(分数:16.00)填空项 1:_4.给定程序中,函数 fun()的功能是统计形参 s 所指字符串中数字字符出现的次数,并存放在形参 t 所指的变量中,最后在主函数中输出。例如,
7、形参 s 所指的字符串为 abcdef35adgh3kjsdf7,输出结果为 4。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。#includestdio.hvoid fun(char *s,int *t)int i,n;n=0;/*found*/for(i=0; (1) !=0;i+)/*found*/if(si=0/*found*/(3) ;main()char s80=“abcdef35adgh3kjsdf7“;int t;printf(“/nThe original s
8、tring is:%s/n“,s);fun(s,printf(“/nThe result is:%d/n“,t);(分数:16.00)填空项 1:_二、程序修改(总题数:2,分数:36.00)5.给定程序 MODI1.C 中函数 fun()的功能是:求出 s 所指字符串中最后一次出现 t 所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为 NULL。例如,当字符串中的内容为”abcdabfabcdx”,t 中的内容为”ab”时,输出结果应是 abcdx。当字符串中的内容为”abcdabfabcdx”,t 中的内容为”abd”时,则程序输出未找到信息 n
9、ot be found!。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。#include stdio.h#include string.hchar *fun(char *s, char *t)char *p, *r, *a;/*found*/a=Null;while (*s)p=s;r=t;while (*r)/*found*/if (r=p)r+;p+;else break;if (*r=/0)a=s;s+;return a;main()char s100, t100, *p;printf(“/nPlease enter s
10、tring S:“); scanf(%s“,s);printf(“/nPlease enter substring t:“); scanf(“%s“,t);p=fun(s,t);if(p) printf(/nThe result is:%sha“,p);else printf(“/nNot found !/a“);(分数:18.00)_6.给定程序 MODI1.C 中函数 fun()的功能是:将 p 所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指由空格隔开的字符串)。例如,若输入”I am a student to take the examination.”,则应输出”I a
11、M A studenT tO takE thE examination.”。请修改程序中的错误之处,使它能得出正确的结果。注意:不要改动 main()函数,不得删行,也不得更改程序的结构。#includectype.h#includestdio.h#includestring.hvoid fun(char *p)int k=0;for(; *p;p+)if(k)/*found*/if(p=)k=0;/*found*/*(p)=toupper(*(p-1)elsek=1;main()char chrstr64;int d;printf(“/nPlease enter an English sen
12、tence within 63 letters:“);gets(chrstr);d=strlen(chrstr);chrstrd=;chrstrd+1=0;printf(“/n/nBefore changing:/n %s“,chrstr);fun(chrstr);printf(“/nAfter changing:/n%s“,chrstr);(分数:18.00)_字符串(二)答案解析(总分:100.00,做题时间:90 分钟)一、程序填空(总题数:4,分数:64.00)1.给定程序中,函数 fun()的功能是求 ss 所指字符数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形
13、参 n 所指变量中。ss 所指字符数组中共有 M 个字符串,且串长N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。#includestdio.h#includestring.h#define M 5#define N 20int fun(char(*ss)N,int *n)int i,k=0,len=N;/*found*/for(i=0;i (1) ;i+)len=strlen(ssi);if(i=0)*n=len;/*found*/if(len (2) *n)*n=len;
14、k=i;/*found*/return (3) ;main()char ssMN=“shanghai“,“guangzhou“,“beijing“,“tianjing“,“chongqing“;int n,k,i;printf(“/nThe original strings are:/n“);for(i=0;iM;i+)puts(ssi);k=fun(ss,printf(“/nThe length of shortest string is:%d/n“,n);printf(“/nThe shortest string is:%s/n“,ssk);(分数:16.00)填空项 1:_ (正确答案:
15、(1)M (2) (3)k)解析:解析 函数 fun()的功能是求 ss 所指字符数组中长度最短的字符串所在的行下标。求最短字符串所在的下标,一般假设第一个字符串的长度最短 min。如果用 k 记录最短字符串的下标,开始时min=strlen(ss0),k=0;然后逐个比较其他字符串长度,如果字符串 ssi长度比 min 小,则将 min 赋值为这个字符串长度,k=I;如此便可求得最短字符串和最短字符串所在的下标位置。第一空:循环的目的是在 M 个字符串中寻找长度最短的字符串,因此循环变量 i 从 0 变化到 M-1,故第一空处应为“M”。第二空:*n 记录最小字符串的长度,由审题分析可知,字
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 字符串 答案 解析 DOC
