ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:32KB ,
资源ID:1325263      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1325263.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

【计算机类职业资格】二级C语言-348 (1)及答案解析.doc

1、二级 C 语言-348 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.函数 fun()的功能是:逆置数组元素中的值,形参 m 给出数组中数据的个数。 例如,若 x 所指数组中的数据依次为:9、8、7、6、5,则逆置后依次为:5、6、7、8、9。 注意:部分源程序给出如下。 请勿改动函数 main()与其他函数中的任何内容,仅在 fun()函数的横线上填写所需的若干表达式或语句。 试题程序: #includestdio.h void fun(int a,int m) int i,temp; for(i=0;i 1;i+) temp=

2、ai; ai=am-1- 2; 3=temp; void main() int x9=(9,8,7,6,5,i; printf(“/nThe original data:/n“); for(i=0;i5;i+) printf(“%4d“,xi); printf(“/n“); fun(x,5); printf(“/nThe data after invert:/n“); for(i=0;i5;i+) printf(“%4d“,xi); printf(“/n“); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:根据输入的三条边长(整

3、形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回 3;若能构成等腰三角形函数,返回 2;若构成三角形函数,返回 1;若不能构成三角形函数返回 0。 请修改函数 fun()中的错误,得出正确的结果。 注意:不要改动 main()函数,不能增行或减行,也不能更改程序的结构。 试题程序: #includestdio.h int fun(int x,int y,int z) if(x+yz else if(x=y|y=z|x=z) return 2; else /*found* return 3; else return 0; void main() int x

4、,y,z,shape; printf(“/nInput x,y,z:“); scanf(“%d%d%d“, printf(“/nx=%d,y=%d,z=%d/n“,x,y,z); shape=fun(x,y,z); printf(“/n/nThe shape:%d/n“,shape); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.假定输入的字符串只包含字母和“#”号,请编写函数 fun(),它的功能是:删除字符串中所有的“#”号。在编写函数时,不得使用 C 语言提供的字符串函数。 例如,若字符串中的内容为“#w#el#come#”,删除后,字符串中的内容则应当是“we

5、lcome”。 请勿改动 main()函数与其他函数中的任何内容,仅在函数 fun()的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #includeconio.h #define strcpy void fun(char*s) void main() char str81; FILE*out; printf(“Enter a string:/n“); gets(str); fun(str); printf(“The string after deleted:/n“); puts(str); out=fopen(“outfile.dat“,“w“); strcpy

6、(str,“#T#ES#T#“); fun(str); fprintf(out,“%s“,str); fclose(out); (分数:40.00)_二级 C 语言-348 (1)答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.函数 fun()的功能是:逆置数组元素中的值,形参 m 给出数组中数据的个数。 例如,若 x 所指数组中的数据依次为:9、8、7、6、5,则逆置后依次为:5、6、7、8、9。 注意:部分源程序给出如下。 请勿改动函数 main()与其他函数中的任何内容,仅在 fun()函数的横线上填写所需的若干表达式或语句。 试题程

7、序: #includestdio.h void fun(int a,int m) int i,temp; for(i=0;i 1;i+) temp=ai; ai=am-1- 2; 3=temp; void main() int x9=(9,8,7,6,5,i; printf(“/nThe original data:/n“); for(i=0;i5;i+) printf(“%4d“,xi); printf(“/n“); fun(x,5); printf(“/nThe data after invert:/n“); for(i=0;i5;i+) printf(“%4d“,xi); printf(

8、“/n“); (分数:30.00)解析:m/2 i am-1-i 解析 该题中函数功能是逆置数组元素的值。此类题的解题思路,是在简单的两个数值交换的基础上,增加对数值定位的功能,也就是确定要交换的数值在数组中的位置。 第一空:对数组中的元素进行逆置,根据上面的分析,整个数组中元素交换的循环次数,应该是只需要交换整个数组长度的一半的次数,所以,第一空应填:“m/2”。 第二空:元素逆置,就是第一个和最后一个交换,依次类推。个数为 m 的数组中,与第 i 个元素相对应需要交换的元素是第 m-1-i 个元素,所以第二空填:“i”。 第三空:根据两个元素交换的算法,第 i 个和第 m-i-1 个元素交

9、换的过程,应填:“am-1-i”。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:根据输入的三条边长(整形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回 3;若能构成等腰三角形函数,返回 2;若构成三角形函数,返回 1;若不能构成三角形函数返回 0。 请修改函数 fun()中的错误,得出正确的结果。 注意:不要改动 main()函数,不能增行或减行,也不能更改程序的结构。 试题程序: #includestdio.h int fun(int x,int y,int z) if(x+yz else if(x=y|y

10、=z|x=z) return 2; else /*found* return 3; else return 0; void main() int x,y,z,shape; printf(“/nInput x,y,z:“); scanf(“%d%d%d“, printf(“/nx=%d,y=%d,z=%d/n“,x,y,z); shape=fun(x,y,z); printf(“/n/nThe shape:%d/n“,shape); (分数:30.00)解析:错误:return 1; 正确:return 3; 错误:return 3; 正确:return 1; 解析 本题利用 if 语句判断三条

11、边的关系,根据判断的结果,返回题干中要求的值。 (1)第一个标识下的语句“if(x=y FILE*out; printf(“Enter a string:/n“); gets(str); fun(str); printf(“The string after deleted:/n“); puts(str); out=fopen(“outfile.dat“,“w“); strcpy(str,“#T#ES#T#“); fun(str); fprintf(out,“%s“,str); fclose(out); (分数:40.00)_正确答案:()解析:int i=0;char*p=s; /工作指针 p

12、 指向字符串 s while(*p) /当 p 不指向字符串尾符 if(*p!=“#“)/指针 p 指向的字符不是“#“ si=*p;/将 p 指向的字符复制到字符串 s i+;/s 下标加 1 p+;/指针加 1,指向下一个字符 si=“/0“;/新串加尾符 解析 在 while 循环中,利用 if 判断表达式中每一个字符是否为“#”,如果不是,将其复制到字符串,否则跳过,这就实现了函数的功能。 (1)首先利用工作指针指向字符串,当指针不指向串尾时,就对字符串进行循环判断。 (2)在循环中利用 if 判断表达式字符是否为“#”,如果不是,将其复制到字符串,否则跳过。 (3)所有字符处理完后,记得在新串 s 的末尾加上结束符“/0“”。

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