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

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

1、二级 C 语言机试-181 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:33.00)1.请补充 main 函数,该函数的功能是:从字符串 str 中取出所有数字字符,并分别计数,然后把结果保存在数组 b 中并输出,把其他字符保存在 N10中。例如:当 str1=“ab123456789cde090”时,结果为:0: 2 1: 1 2: 1 3: 1 4: 1 5: 1 6: 1 7: 1 8: 1 9:2 other charactor:5注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的

2、若干表达式或语句。试题程序:#include stdio.h#include conio.hmain()int i,b11;char *str=“abl23456789cde090“;char *p=str;clrscr();printf(“*the origial data */n“);puts(str);for(i=0;i11;i+)bi=0;while(*p)switch( 【1】 )case 0:b0+;break;case 1:b1+;break;case 2:b2+;break;case 3:b3+;break;case 4:b4+;break;case 5:b5+;break;c

3、ase 6:b6+;break;case 7:b7+;break;case 8:b8+;break;case 9:b9+;break;【2】 【3】 printf(“* the result */n“);for(i=0;i10;i+)printf(“/n%d:%d“,i,bi);printf(“/nother charactor:%d“,bi);(分数:33.00)填空项 1:_二、改错题(总题数:1,分数:33.00)2.下列给定程序中,函数 fun()的功能是计算并输出 high 以内的素数之和。high 由主函数传给 fun()函数。若 high 的值为 100,则函数的值为 1060。

4、请改正程序中的错误,使它能得到正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。试题程序:#include conio.h#include stdio.h#include math.hint fun(int high)int sum=0,n=0,j,yes;while(high=2)yes=1;for(j=2;j=high/2;j+)/*found*/ifhigh%j=0yes=0;break;/*found*/if(yes=0)sum+=high;n+;high-;return sum;main()clrscr();printf(“%d/n“,fun(100);

5、(分数:33.00)填空项 1:_三、编程题(总题数:1,分数:34.00)3.请编写函数 void fun (int x,int pp,int *n),它的功能是求出能整除 x 且不是奇数的各整数,并按从小到大的顺序放在 pp 所指的数组中,这些除数的个数通过形参 n 返回。例如,若 x 中的值为 24,则有 6 个数符合要求,它们是 2, 4, 6, 8, 12, 24。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.hvoid fun(int

6、x,int PP,int *n)main ()int x,aa1000,n,i;clrscr() ;printf(“/nPlease enter an integer number:/n “) ;scanf(“%d“,&X);fun(x,aa,&n);for(i=0;in;i+)printf(“%d“,aai);printf(“/n“);(分数:34.00)_二级 C 语言机试-181 答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:33.00)1.请补充 main 函数,该函数的功能是:从字符串 str 中取出所有数字字符,并分别计数,然后把结果保存在数组

7、b 中并输出,把其他字符保存在 N10中。例如:当 str1=“ab123456789cde090”时,结果为:0: 2 1: 1 2: 1 3: 1 4: 1 5: 1 6: 1 7: 1 8: 1 9:2 other charactor:5注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。试题程序:#include stdio.h#include conio.hmain()int i,b11;char *str=“abl23456789cde090“;char *p=str;clrscr();printf(

8、“*the origial data */n“);puts(str);for(i=0;i11;i+)bi=0;while(*p)switch( 【1】 )case 0:b0+;break;case 1:b1+;break;case 2:b2+;break;case 3:b3+;break;case 4:b4+;break;case 5:b5+;break;case 6:b6+;break;case 7:b7+;break;case 8:b8+;break;case 9:b9+;break;【2】 【3】 printf(“* the result */n“);for(i=0;i10;i+)pri

9、ntf(“/n%d:%d“,i,bi);printf(“/nother charactor:%d“,bi);(分数:33.00)填空项 1:_ (正确答案:【1】*p 【2】default:b10+; 【3】p+;)解析:解析 填空 1:根据 switch 语句中 case 后面的常量表达式,可以看出,switch 后面括号中的表达式应该是字符串 str 中的各字符,而指针 p 就是指向字符串 str。填空 2:和各个 case 后面的常量表达式不匹配的都属于其他字符,保存在 b10中。填空 3:指针 p 指向字符串 s 仕,通过 p 自加 1 来移动指针,访问字符串中的所有字符。二、改错题(

10、总题数:1,分数:33.00)2.下列给定程序中,函数 fun()的功能是计算并输出 high 以内的素数之和。high 由主函数传给 fun()函数。若 high 的值为 100,则函数的值为 1060。请改正程序中的错误,使它能得到正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。试题程序:#include conio.h#include stdio.h#include math.hint fun(int high)int sum=0,n=0,j,yes;while(high=2)yes=1;for(j=2;j=high/2;j+)/*found*/ifhig

11、h%j=0yes=0;break;/*found*/if(yes=0)sum+=high;n+;high-;return sum;main()clrscr();printf(“%d/n“,fun(100);(分数:33.00)填空项 1:_ (正确答案:(1)错误:ifhigh%j0 正确:if(high%j=0)(2) 错误:if(yes=0) 正确:if(yes))解析:解析错误 1:if 语句的两侧要加括号。错误 2:yes 为 1 时,说明被判断的数为素数,要加入总和。三、编程题(总题数:1,分数:34.00)3.请编写函数 void fun (int x,int pp,int *n)

12、,它的功能是求出能整除 x 且不是奇数的各整数,并按从小到大的顺序放在 pp 所指的数组中,这些除数的个数通过形参 n 返回。例如,若 x 中的值为 24,则有 6 个数符合要求,它们是 2, 4, 6, 8, 12, 24。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.hvoid fun(int x,int PP,int *n)main ()int x,aa1000,n,i;clrscr() ;printf(“/nPlease enter an

13、integer number:/n “) ;scanf(“%d“,&X);fun(x,aa,&n);for(i=0;in;i+)printf(“%d“,aai);printf(“/n“);(分数:34.00)_正确答案:(void fun (int x, int pp, int *n)int i, j=0for(i=2;i=x;i=i+2) /*i 的初始值为 2,步长为 2,确保 i 为偶数*/if(x%i=0) /*将能整除 x 的数存入数细 pp 中*/ppj+=i*n=j /*传回满足条件的数的个数*/)解析:解析 本题题干信息是;能整除 x 且不是奇数的所有整数。循环语句中 i 从 2 开始且每次增 2,所以 i 始终是偶数。

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

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

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