欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言机试-192及答案解析.doc

    • 资源ID:1325693       资源大小:34.50KB        全文页数:6页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言机试-192及答案解析.doc

    1、二级 C 语言机试-192 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)在给定程序中,函数 fun 的功能是:将 a 和 b 所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含 9 个以下的数字字符。例如:主函数中输入字符串:32486 和 12345,在主函数中输出的函数值为:44831。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。文件 BLANK1.C 内容如下:#includestdio.

    2、h#includestring.h#includectype.h#define N 9long ctod(char *s)long d=0;while(*s)if(isdigit(*s)/*found*/d=d*10+*s- (1) ;/*found*/(2) ;return d;long fun(char *a,char *b)/*found*/return (3) ;void main( )char s1N,s2N;doprintf(“Input string s1: “);gets(s1);while(strlen(s1)N);doprintf(“Input string s2: “);

    3、gets(s2);while(strlen(s2)N);printf(“The result is: %1d/n“,fun(s1,s2);(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、改错题(总题数:1,分数:30.00)1.给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字符串的正序和反序进行连接,形成一个新串放在 t所指的数组中。例如,当 s 所指字符串为“ABCD“时,则 t 所指字符串中的内容应为:ABCDDCBA。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。文件 MODI1.C 内

    4、容如下:#includestdio.h#includestring.h/*found*/void fun(char s,char t)int i,d;d=strlen(s);for(i=0;id;i+)ti=si;for(i=0;id;i+)td+i=sd-1-i;/*found*/t2*d-1=/0;void main( )char s100,t100;printf(“/nPlease enter string S: “);scanf(“%s“,s);fun(s,t);printf(“/nThe result is: %s/n“,t);(分数:30.00)填空项 1:_三、编程题(总题数:1

    5、,分数:40.00)2.请编写一个函数 fun,它的功能是:将 ss 所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)。例如:若输入“abe4Efg”,则应输出“aBc4EFg”。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。文件 PROG1.C 内容如下:#includestdio.h#includestring.hvoid fun ( char *ss )void main ( ) char tt81 ;printf(“/nPlease enter an str

    6、ing within 80 characters: /n“ ) ;gets( tt ) ;printf( “ /n/nAfter changing, the string/n /“ % s/ , tt ) ;fun( tt ) ;printf( “ /nbecomes/n /“% s/“/n“ , tt) ;(分数:40.00)_二级 C 语言机试-192 答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)在给定程序中,函数 fun 的功能是:将 a 和 b 所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含 9 个以下

    7、的数字字符。例如:主函数中输入字符串:32486 和 12345,在主函数中输出的函数值为:44831。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。文件 BLANK1.C 内容如下:#includestdio.h#includestring.h#includectype.h#define N 9long ctod(char *s)long d=0;while(*s)if(isdigit(*s)/*found*/d=d*10+*s- (1) ;/*found*/(2) ;ret

    8、urn d;long fun(char *a,char *b)/*found*/return (3) ;void main( )char s1N,s2N;doprintf(“Input string s1: “);gets(s1);while(strlen(s1)N);doprintf(“Input string s2: “);gets(s2);while(strlen(s2)N);printf(“The result is: %1d/n“,fun(s1,s2);(分数:30.00)填空项 1:_ (正确答案:0)解析:填空项 1:_ (正确答案:s+)解析:填空项 1:_ (正确答案:cto

    9、d(a)+ctod(b))解析:解析 函数 ctod 的功能是将数字字符串转换成面值相等的整数,规定字符串中只包含数字字符,并且个数是 9 个以下。函数 fun 的功能是将 a 和 b 所指的两个字符串转换成面值相同的整数后进行相加,并作为函数值返回。所以在 fun 函数中需要调用 ctod 函数,实现字符串 a 和 b 转换成整数的操作。函数 ctod 使用的算法是:定义了一个长整型变量 d,用来存储转换后的整数,并对其赋初值 0。在 while循环语句中,*s 作为循环条件,意思是取出 s 指向的字符进行判断,若*s 的值不是/0,则进入循环;若*s 的值为/0,则结束循环。循环中每次判断

    10、当前字符是否是一个数字字符,若是,则将该数字字符转换成面值相同的整数,通过*s-0来实现,并将该数字累加到变量 d 中,通过 d=d*10+*s-0来实现。例如:字符串“12345”,先取出字符1,d=d=d*10+1-0,d 的值变为了 1,再取出字符2,d=d*10+2-0,d 的值变为了 12,以此类推,最后将字符串转换成了整数 12345。对于第 1 空,将一个数字字符转换成对应的数字,只需将该数字字符的 ASCII 码减去字符0的 ASCII 码,所以第 1 空处应填入0。对于第 2 空,要取出下一个字符,指针 s 必须往后移动指向下一个字符,所以第 2 空处应填入 s+。对于第 3

    11、 空,函数 fun 的功能是将 a 和 b 所指的两个字符串转换成面值相同的整数后进行相加,并作为函数值返回。因此需要调用 ctod 函数实现字符串 a 和 b 的转换并进行相加,所以应填入 ctod(a)+ctod(b)。二、改错题(总题数:1,分数:30.00)1.给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字符串的正序和反序进行连接,形成一个新串放在 t所指的数组中。例如,当 s 所指字符串为“ABCD“时,则 t 所指字符串中的内容应为:ABCDDCBA。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。

    12、文件 MODI1.C 内容如下:#includestdio.h#includestring.h/*found*/void fun(char s,char t)int i,d;d=strlen(s);for(i=0;id;i+)ti=si;for(i=0;id;i+)td+i=sd-1-i;/*found*/t2*d-1=/0;void main( )char s100,t100;printf(“/nPlease enter string S: “);scanf(“%s“,s);fun(s,t);printf(“/nThe result is: %s/n“,t);(分数:30.00)填空项 1:

    13、_ (正确答案:第 1 处:将“void fun(char s,char t)”改为“void fun(chat *s,char *t)”。第 2 处:将“t2*d-1=/0;”改为“t2*d=/0;”。)解析:解析 第 1 处错误是函数定义出错。考生可以在 3 个方面分析错误的位置:第一,函数类型,可以看到程序中函数 fun 没有返回值,所以函数类型定义成 void 没有错误;第二,函数名,从主函数中对函数的调用语句可以看到,函数名称为 fun,所以函数名没有错误;第三,形参,从实参的类型和个数看,形参的个数正确,但是类型有误,两个实参均是字符数组,所以对应的形参应该是字符数组或字符型的指针

    14、,因此第 1 处错误最简单的修改方法就是在形参 s 和 t 的前面加“*”号,将其定义为字符型指针。第2 处错误是数组下标出错,当字符串正序反序连接后,字符串的长度为 2*d,而数组下标是从 0 开始的,所以/0应该赋值给 t2*d而不是 t2*d-1。三、编程题(总题数:1,分数:40.00)2.请编写一个函数 fun,它的功能是:将 ss 所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)。例如:若输入“abe4Efg”,则应输出“aBc4EFg”。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun

    15、的花括号中填入你编写的若干语句。文件 PROG1.C 内容如下:#includestdio.h#includestring.hvoid fun ( char *ss )void main ( ) char tt81 ;printf(“/nPlease enter an string within 80 characters: /n“ ) ;gets( tt ) ;printf( “ /n/nAfter changing, the string/n /“ % s/ , tt ) ;fun( tt ) ;printf( “ /nbecomes/n /“% s/“/n“ , tt) ;(分数:40.

    16、00)_正确答案:(void fun (char *ss)int i:int n:n=strlen(ss);for(i=l;in;i=i+2)if(ssi=a&ssi=z)ssi=A+ssi-a;)解析:解析 参考答案中函数 fun 使用的算法是:首先利用函数 strlen 求出字符串的长度,for 循环中i 从 1 开始,即从第一个奇数下标开始,每次循环 i 都加 2,确保取出下标为奇数的字符进行转换处理。若 in 为真,则对 ssi进行是否为小写字母的判断,若是小写字母就需要将其转换成大写,转换方法是:ssi=A+ssi-a(利用 ssi-a求出字符 ssi的 ASCII 码与字符 a 的 ASCII 码的差值,再加上字符A的 ASCII 码就求出了小写字母对应的大写字母);或者直接使用 ssi=ssi-32 也可。为了确保每次都取出奇数下标的字符进行处理,所以变量 i 每次要加上 2。在 main 函数中输入原字符串,调用fun 函数并输出转换后的结果。归纳总结 本套试题的程序填空和程序设计题考查的是字符的转换。字符转换处理的关键是:要准确找到转换的规则。常见的字符转换包括大写字母和小写字母的相互转换、数字字符与面值相同的整数之间的相互转换。


    注意事项

    本文(【计算机类职业资格】二级C语言机试-192及答案解析.doc)为本站会员(bonesoil321)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开