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

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

1、二级 C语言机试-176 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)给定程序的功能是将 n个人员的考试成绩进行分段统计,考试成绩放在 a数组中,各分段的人数存到 b数组中:成绩为 6069 分的人数存到 b0中,成绩为 7079 分的人数存到 b1,成绩为 8089 分的人数存到 b2,成绩为 9099 分的人数存到 b3,成绩为 100分的人数存到 b4,成绩为 60分以下的人数存到 b5中。例如,当 a数组中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,b 数组中存放的数据应是:1、2、1、3、0、2。注

2、意:部分源程序已给出。请勿改动主函数 main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#includestdio.hvoid fun(int a,int b,int n)int i;for(i=0;i6;i+)bi=0;for(i=0;i (1) ;i+)if(ai60)b5+:(2) b(ai-60)/10+;void main()int i,a100=93,85,77,68,59,43,94,75,98),b6;fun( (3) ,9);printf(“the result is:“);for(i=0;i6;i+)printf(“%d“,bi);print

3、f(“/n,“);(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、改错题(总题数:1,分数:30.00)1.下列给定程序中函数 fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在 t中。高位仍在高位,低位仍在低位。例如,当 s中的数为 87653142时,t 中的数为 7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdlib.h#includestdio.h#includeconio.hvoid fun(long s,long*t)int d;long s

4、1=1;/*found*/t=0;while(s0)d=s%10;/*found*/if(d%2=0)*t=d*s1+*t:s1*=10:s/=10;void main()long s,t;system(“CLS“);printf(“/nPlease enter s:“);scanf(“%id“,&s);fun(s,&t);printf(“The result is:%id/n“,t);(分数:30.00)填空项 1:_三、编程题(总题数:1,分数:40.00)2.编写函数 fun,其功能是:实现两个字符串的连接(不要使用库函数 strcat),即把 p2所指的字符串连接到 p1所指的字符串的

5、后面。例如分别输入下面两个字符串:“FirstString-”“SecondString”程序输出:“FirstString-SecondString”注意:部分源程序已给出。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。试题程序:#includestdlib.h#includestdio.h#includeconio.hvoid fun(char p1,char p2)int i,j;for(i=0;p1i!=/0;i+);/*求出 i为 p1字符串的总长度,包括结束标记符*/for(j=0;p2j!=/0;j+)p1i+=p2j;/*将 p

6、2字符串连在 p1字符串后面*/p1i=/0;/*在字符串最后加上结束标记符*/void main()char s180,s240;system(“CLS“):printf(“Enter s1 and s2:/n“);scanf(“%s%s“,s1,s2);printf(“s1=%s/n“,s1);printf(“s2=%s/n“,s2);printf(“Invoke fun(s1,s2):n“);fun(s1,s2);printf(“After invoking:n“);printf(“%s/n“,s1);(分数:40.00)_二级 C语言机试-176 答案解析(总分:100.00,做题时间

7、:90 分钟)一、填空题(总题数:1,分数:30.00)给定程序的功能是将 n个人员的考试成绩进行分段统计,考试成绩放在 a数组中,各分段的人数存到 b数组中:成绩为 6069 分的人数存到 b0中,成绩为 7079 分的人数存到 b1,成绩为 8089 分的人数存到 b2,成绩为 9099 分的人数存到 b3,成绩为 100分的人数存到 b4,成绩为 60分以下的人数存到 b5中。例如,当 a数组中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,b 数组中存放的数据应是:1、2、1、3、0、2。注意:部分源程序已给出。请勿改动主函数 main和其他函数中的任何内

8、容,仅在横线上填入所编写的若干表达式或语句。试题程序:#includestdio.hvoid fun(int a,int b,int n)int i;for(i=0;i6;i+)bi=0;for(i=0;i (1) ;i+)if(ai60)b5+:(2) b(ai-60)/10+;void main()int i,a100=93,85,77,68,59,43,94,75,98),b6;fun( (3) ,9);printf(“the result is:“);for(i=0;i6;i+)printf(“%d“,bi);printf(“/n,“);(分数:30.00)填空项 1:_ (正确答案:

9、n)解析:填空项 1:_ (正确答案:else)解析:填空项 1:_ (正确答案:a,b)解析:解析 分段统计题。fun 函数中第一个循环的功能是将数组 b清零;第二个循环的作用是分别记录各分数段的人数,具体步骤是遍历数组 a取出第 i个考生的成绩,将此成绩依次做判断,找到它的分数段,然后将记录该分数段的人数的变量加 1,遍历结束数组 b中存放的就是各分数段人数的记录。二、改错题(总题数:1,分数:30.00)1.下列给定程序中函数 fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在 t中。高位仍在高位,低位仍在低位。例如,当 s中的数为 87653142时,t 中的数为

10、7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdlib.h#includestdio.h#includeconio.hvoid fun(long s,long*t)int d;long s1=1;/*found*/t=0;while(s0)d=s%10;/*found*/if(d%2=0)*t=d*s1+*t:s1*=10:s/=10;void main()long s,t;system(“CLS“);printf(“/nPlease enter s:“);scanf(“%id“,&s);f

11、un(s,&t);printf(“The result is:%id/n“,t);(分数:30.00)填空项 1:_ (正确答案:(1)错误:t=0;正确:*t=0;(2)错误:if(d%2=0)正确:if(d%2!=0)或 if(d%2=1))解析:解析 变量 t定义为指针型变量,所以不能对 t赋初值,不应该是 t=0,而是*t=0;题目要求将长整型数中各位上为奇数的数依次取出,因此 if语句里应该是 d%2!=0。此题较简单,考查的是指针变量作为函数参数和奇偶的判断。三、编程题(总题数:1,分数:40.00)2.编写函数 fun,其功能是:实现两个字符串的连接(不要使用库函数 strcat

12、),即把 p2所指的字符串连接到 p1所指的字符串的后面。例如分别输入下面两个字符串:“FirstString-”“SecondString”程序输出:“FirstString-SecondString”注意:部分源程序已给出。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。试题程序:#includestdlib.h#includestdio.h#includeconio.hvoid fun(char p1,char p2)int i,j;for(i=0;p1i!=/0;i+);/*求出 i为 p1字符串的总长度,包括结束标记符*/for(j=0

13、;p2j!=/0;j+)p1i+=p2j;/*将 p2字符串连在 p1字符串后面*/p1i=/0;/*在字符串最后加上结束标记符*/void main()char s180,s240;system(“CLS“):printf(“Enter s1 and s2:/n“);scanf(“%s%s“,s1,s2);printf(“s1=%s/n“,s1);printf(“s2=%s/n“,s2);printf(“Invoke fun(s1,s2):n“);fun(s1,s2);printf(“After invoking:n“);printf(“%s/n“,s1);(分数:40.00)_正确答案:(

14、void fun(char p1,char p2)int i,j;for(i=0;p1i!=/0;i+);/*求出 i为 p1字符串的总长度,包括结束标记符*/for(j=0;p2j!=/0;j+)p1i+=p2j;/*将 p2字符串连在 p1字符串后面*/p1i=/0;/*在字符串最后加上结束标记符*/)解析:解析 本题考查字符串连接函数的实现。本题通过两个 for循环完成功能。第一个循环的作用是计算出字符串的长度,如果 p1是/0(即此字符是字串尾),退出循环,i 中保存的数值即是字串长度。第二个循环的作用是循环遍历字串 p2的字符,利用语句 p1i+=p2j;将 p2中的字符逐个插到宇串 p1后。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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