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

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

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

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

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

    1、二级 C 语言-238 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充 main()函数。该函数的功能是:求 1200 中(不包括 200)所有素数的平均值。 程序运行后的结果为 91.89。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h void main() int i,j,n=0,flag; float aver=0; system(“CLS“): for

    2、(j=2;j%200;j+) flag=1; for(i=2;ij;i+) if( 1) flag=0; break; if( 2) n+; aver+=j; printf(“/n/n average=%4.2f/n“, 3); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 proc()的功能是:对 M 名学生的学习成绩,按从高到低的顺序找出前 m(m10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得

    3、更改程序的结构。 试题程序: #includestdlib.h #includeconio.h #includestring.h #includestdio.h #includemalloc.h #define M 10 typedef struct ss char num10; int s; STU; STU*proc(STU a,int m) STU bM,*t; int i,j,k; /*found* *t=calloc(m,sizeof(STU); for(i=0;iM;i+)bi=ai; for(k=0;km;k+) for(i=j=0;iM;i+) if(bi.sbj.s)j=i;

    4、 /*found* tknum=bj.num; tk.s=bj.s; bj.s=0; return t; void outresult(STU a,FILE*pf) int i; for(i=0;iM;i+) fprintf(pf,“No=%sMark=%d/n“, ai.num,aj.s); fprintf(pf,“/n/n“); void main() STU stuM=“A01“,81,“A02“,89, “A03“,66,“A04“,87,“A05“,77, “A06“,90,“A07“,79,“A08“,61, “A09“,80,“A10“,71; STU*pOrder; int i

    5、,m; system(“CLS“); printf(“*THE RESULT*/n“); outresult(stu,stdout); printf(“/nGive the number of the students who have better score:“); scanf(“%d“, while(m10) printf(“/nGive the number of the students who have better score:“); scanf(“%d“, pOrder=proc(stu,m); ptintf(“*THE RESULT*/n“); printf(“The top

    6、:/n“); for(i=0;im;i+) printf(“%s%d/n“,pOrderi.num, pOrderi.s); free(pOrder); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.请编写函数 proc(),它的功能是计算: s=(1-ln(1)-ln(2)-ln(3)-ln(m)2 s 作为函数值返回。 在 C 语言中可调用 log(n)函数求 ln(n)。log 函数的引用说明是 double log(double x)。 例如,若 m 的值为 10,则 proc()函数值为 198.934454。 注意:部分源程序给出如下。 请勿改动 main(

    7、)函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestdlib.h #includeconio.h #includestdio.h #includemath.h double proc(int m) void main() system(“CLS“); printf(“%f/n“,proc(10); (分数:40.00)_二级 C 语言-238 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充 main()函数。该函数的功能是:求 1200 中(不包括 200)所有素数的

    8、平均值。 程序运行后的结果为 91.89。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h void main() int i,j,n=0,flag; float aver=0; system(“CLS“): for(j=2;j%200;j+) flag=1; for(i=2;ij;i+) if( 1) flag=0; break; if( 2) n+; aver+=j; printf(“/n/n average=%4.2f/

    9、n“, 3); (分数:30.00)解析:j%i=0 flag=1 aver/n解析 从 if 后的语句可知,这是判断是否是素数的条件,因此,第以处填“j%i=0”;变量 flag 为指示是否为素数的标志,flag=1 为素数,flag=0 不是素数,因此,第二处填“flag=1”;变量 aver 存放的是所有素数的和,程序要求输出所有素数的平均数,因此,第三处填“aver/n”。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 proc()的功能是:对 M 名学生的学习成绩,按从高到低的顺序找出前 m(m10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,

    10、此存储区的首地址作为函数值返回。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdlib.h #includeconio.h #includestring.h #includestdio.h #includemalloc.h #define M 10 typedef struct ss char num10; int s; STU; STU*proc(STU a,int m) STU bM,*t; int i,j,k; /*found* *t=calloc(m,sizeof(STU); fo

    11、r(i=0;iM;i+)bi=ai; for(k=0;km;k+) for(i=j=0;iM;i+) if(bi.sbj.s)j=i; /*found* tknum=bj.num; tk.s=bj.s; bj.s=0; return t; void outresult(STU a,FILE*pf) int i; for(i=0;iM;i+) fprintf(pf,“No=%sMark=%d/n“, ai.num,aj.s); fprintf(pf,“/n/n“); void main() STU stuM=“A01“,81,“A02“,89, “A03“,66,“A04“,87,“A05“,7

    12、7, “A06“,90,“A07“,79,“A08“,61, “A09“,80,“A10“,71; STU*pOrder; int i,m; system(“CLS“); printf(“*THE RESULT*/n“); outresult(stu,stdout); printf(“/nGive the number of the students who have better score:“); scanf(“%d“, while(m10) printf(“/nGive the number of the students who have better score:“); scanf(

    13、“%d“, pOrder=proc(stu,m); ptintf(“*THE RESULT*/n“); printf(“The top:/n“); for(i=0;im;i+) printf(“%s%d/n“,pOrderi.num, pOrderi.s); free(pOrder); (分数:30.00)解析:错误:*t=calloc(m,sizeof(STU); 正确:t=(struct ss*)ealloc(m,sizeof(STU); 错误:tk.num=bj.num; 正确:tk=bj; 解析 因为 t 是指向一个动态存储空间,因此其是指针,而不是其中的内容,故把“*t=calloc

    14、(m,sizeof(STU)”改为“t=(struct ss*)calloc(m,sizeof(STU);”,而题目要求把学生的全部内容互换,因此即整个结构体,故把“tk.num=bj.num;”改为“tk=bj;”。三、程序设计题(总题数:1,分数:40.00)3.请编写函数 proc(),它的功能是计算: s=(1-ln(1)-ln(2)-ln(3)-ln(m)2 s 作为函数值返回。 在 C 语言中可调用 log(n)函数求 ln(n)。log 函数的引用说明是 double log(double x)。 例如,若 m 的值为 10,则 proc()函数值为 198.934454。 注意

    15、:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestdlib.h #includeconio.h #includestdio.h #includemath.h double proc(int m) void main() system(“CLS“); printf(“%f/n“,proc(10); (分数:40.00)_正确答案:()解析:double proc(int m) int i; double s=1.0;/s 的初值赋为 1 for(j=1;i=m;i+)/从 1 到 m s=s-log(i); /将其求得的差放到 s 中 return(s*s); /最后把其平方值返回到主函数中 解析 首先我们应定义一个变量来表示其和,另一个来表示其项数,然后通过循环,求得其差值,最后把和的平方返回到主函数中。


    注意事项

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




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

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

    收起
    展开