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

上传人:twoload295 文档编号:1325263 上传时间:2019-10-17 格式:DOC 页数:6 大小:32KB
下载 相关 举报
【计算机类职业资格】二级C语言-348 (1)及答案解析.doc_第1页
第1页 / 共6页
【计算机类职业资格】二级C语言-348 (1)及答案解析.doc_第2页
第2页 / 共6页
【计算机类职业资格】二级C语言-348 (1)及答案解析.doc_第3页
第3页 / 共6页
【计算机类职业资格】二级C语言-348 (1)及答案解析.doc_第4页
第4页 / 共6页
【计算机类职业资格】二级C语言-348 (1)及答案解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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