【计算机类职业资格】二级C语言机试-256及答案解析.doc
《【计算机类职业资格】二级C语言机试-256及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言机试-256及答案解析.doc(7页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言机试-256 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)在给定程序中,函数 fun 的功能是:求出形参 SS 所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有 M 个字符串,且串长N。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。文件 BLANK1.C 内容如下:#includestdio.h#includestring.h#define M 5#defin
2、e N 20void fun(char( *ss)N)int i,j,k=0,n,m,len;for(i=0;iM;i+)len=strlen(ssi);if(i=0)n=len:if(lenn)/*found*/n=len;(1) =i;for(i=0;iM;i+)if(i!=k)m=n:len=strlen(ssi);/*found*/for(j= (2) ;j=0;j-)ssim-=ssij;for(j=0;jn-len;j+)/*found*/(3) =*:void main( )char ssMN=“shanghai“,“guangzhou“,“beijing“,“tianjing“
3、,“cchongqing“; int i;printf(“/nThe original strings are: /n“); for(i=0;iM;i+)printf(“%s/n“,ssi);printf(“/n“);fun(ss);printf(“/nThe resuh:/n“);for(i=0;iM;i+)printf(“%s/n“,ssi);(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、改错题(总题数:1,分数:30.00)1.给定程序 MODIl.C 中函数 fun 的功能是:将一个八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包
4、含 5 位八进制数字字符。请改正程序中的错误,使它能得出正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。文件 MODIl.C 内容如下:#includestdio.h#includestring.h#includestdlib.hint fun(char *p)int n;/*found*/n=*P-0:p+:while(*p!=0)/*fonnd*/n=n*7+*P-o:p+:return n;void main( )char s6;int i,n;printf(“Enter a string(Oeatal digits):“);gets(s);if(strl
5、en(s)5)printf(“Error:String too longer!/n/n“);exit(0);for(i=0;si;i+)if(si0| si7)printf(“Error:%c not is ocatal digits!/n/n“,si);exit(0);printf(“The original string:“);puts(s);n=fun(s);printf(“/n%s is eonvered to integer number:%d/n/n“,s,n);(分数:30.00)填空项 1:_三、编程题(总题数:1,分数:40.00)2.函数 fun 的功能是:将 a、b 中的
6、两个两位正整数合并形成一个新的整数放在 c 中。合并的方式是:将a 中的十位和个位数依次放在变量 c 的千位和十位上,b 中的十位和个位数依次放在变量 c 的个位和百位上。例如,当 a=45,b=12 时,调用该函数后,c=4251。注意:部分源程序在文件 PROG1.C 中,请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。文件 PROG1.C 内容如下:#includestdio.hvoid fun(int a,int b,long *c) void main( )int a,b;long c;printf(“Input a,b:“);sc
7、anf(“070 d%d“, int i;printf(“/nThe original strings are: /n“); for(i=0;iM;i+)printf(“%s/n“,ssi);printf(“/n“);fun(ss);printf(“/nThe resuh:/n“);for(i=0;iM;i+)printf(“%s/n“,ssi);(分数:30.00)填空项 1:_ (正确答案:k)解析:填空项 1:_ (正确答案:len)解析:填空项 1:_ (正确答案:ssij)解析:解析 main 函数中定义了一个二维的字符数组,其中存放了 5 个字符串,调用 fun 函数实现题目要求的
8、功能。fun 函数使用的算法是:首先通过第一个 for 循环找到最长字符串的行下标并存储在变量 k中。循环中通过 len=strlen(ssi)求出每个字符串的长度,并与变量 n 进行比较,若 len 比 n 大,则对n 重新赋值,同时将该字符串的行下标 i 记录在变量 k 中。循环结束后,变量 n 中存放了最长字符串的长度,变量 k 中存放了该字符串的行下标。因此,第 1 空处应填入变量 k。然后,在第二个循环中,要将其余字符串左边补上*号,使得与最长字符串的长度相等,必须先将每个字符串中的字符右移,循环“for(j=len;j=0;j-)ssim-=ssij;”实现字符右移的功能。所以,第
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 256 答案 解析 DOC
