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

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

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

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

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

    1、二级 C 语言-178 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是:找出 100999(含 100 和 999)所有整数中各位上数字之和为 x(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。 例如,当 x 值为 5 时,100999 各位上数字之和为 5 的整数有:104,113,122,131,140,203,212,221,230,302,311,320,401,410,500,共有 15 个。当 x 值为 27 时,各位数字之和为 27 的整数是:999,只有 1 个。 请

    2、在下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h int fun(int x) int n,s1,s2,s3,t; n=0; t=100; /*found*/ while(t= 1) /*found*/ s1=t%10;s2=( 2)%10; s3=t/100; /*found*/ if(s1+s2+s3= 3) (printf(“%d“,t); n+; t+; return n; main() (int x=-1; while(x0) printf(“Please input(x0

    3、:“); scanf(“%d“,x); printf(“/nThe result is:%d/n“,fun(x); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:从低位开始依次取出长整型变量 s 中偶数位上的数,构成一个新数放在 t 中。高位仍在高位,低位仍在低位。 例如,当 s 中的数为 7654321 时,t 中的数为 642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h /*found*/ void fun(l

    4、ong s,long t) (long s1=10; s/=10; *t=s%10; /*found*/ while(s0) s=s/100; *t=s%10*s1+*t; s1=s1 *10; main() long s,t; printf(“/nPlease enter s:“);scanf(“%ld“,s); fun(s,t); printf(“The result is:%ld/n“,t); (分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.学生的记录由学号和成绩组成,N 名学生的数据已放入主函数中的结构体数组 S 中。请编写函数 fun,其功能是:按分数降序排列

    5、学生的记录,高分在前,低分在后。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includestdio.h #define N 16 typedef struct char num10; int s; STREC; void fun(STREC a) void main() STREC sN=“GA005“,85,“GA003“,76,“GA002“,69, “GA004“,85,“GA001“,91,“GA007“,72, “GA008“,64,“GA006“,87,“GA015“,85, “

    6、GA013“,91,“GA012“,64,“GA014“,91, “GA011“,66,“GA017“,64,“GA018“,64, “GA016“,72; int i; fun(s); printf(“The data after sorted:/n“); for(i=0;iN;i+) if(i%4=0)/*每行输出 4 个学生记录*/ printf(“/n“); printf(“%s%4d“,si.num,si.s); printf(“/n“); (分数:40.00)_二级 C 语言-178 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)

    7、1.下列给定程序中,函数 fun 的功能是:找出 100999(含 100 和 999)所有整数中各位上数字之和为 x(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。 例如,当 x 值为 5 时,100999 各位上数字之和为 5 的整数有:104,113,122,131,140,203,212,221,230,302,311,320,401,410,500,共有 15 个。当 x 值为 27 时,各位数字之和为 27 的整数是:999,只有 1 个。 请在下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程

    8、序: #includestdio.h int fun(int x) int n,s1,s2,s3,t; n=0; t=100; /*found*/ while(t= 1) /*found*/ s1=t%10;s2=( 2)%10; s3=t/100; /*found*/ if(s1+s2+s3= 3) (printf(“%d“,t); n+; t+; return n; main() (int x=-1; while(x0) printf(“Please input(x0:“); scanf(“%d“,x); printf(“/nThe result is:%d/n“,fun(x); (分数:

    9、30.00)解析:999 t/10 x 考点 本题关键字有:while 循环语句;数 n 各位上数值的表示方法;if 语句。三位数 n 的个位、十位、百位分别用 n%10、n/10%10、n/100 表示。 解析 填空 1:根据题意要找出 100999 之间且包含 100 和 999 符合要求的数,所以循环条件是 t=999。 填空 2:三位数的十位存放在变量 s2 中,所以填入 s2=(t/10)%10;。 填空 3:题目要求找出各位上数字之和为 x 的整数,所以条件表达式是 s1+s2+s3=x。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:从低

    10、位开始依次取出长整型变量 s 中偶数位上的数,构成一个新数放在 t 中。高位仍在高位,低位仍在低位。 例如,当 s 中的数为 7654321 时,t 中的数为 642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h /*found*/ void fun(long s,long t) (long s1=10; s/=10; *t=s%10; /*found*/ while(s0) s=s/100; *t=s%10*s1+*t; s1=s1 *10; main() long s,t;

    11、printf(“/nPlease enter s:“);scanf(“%ld“,s); fun(s,t); printf(“The result is:%ld/n“,t); (分数:30.00)_正确答案:()解析:void fun(long s, long*t) while(s0) 考点 本题关键字有:函数定义;while 循环语句。 解析 (1)主函数中给函数 fun 传递的参数为指针类型,所以形参与实参类型相同也为指针类型。 (2)从 s 中的数上取数并组合成一个新数通过 while 循环完成,所以循环条件为 s0。三、程序设计题(总题数:1,分数:40.00)3.学生的记录由学号和成绩

    12、组成,N 名学生的数据已放入主函数中的结构体数组 S 中。请编写函数 fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includestdio.h #define N 16 typedef struct char num10; int s; STREC; void fun(STREC a) void main() STREC sN=“GA005“,85,“GA003“,76,“GA002“,69, “GA004“,85,“GA001“

    13、,91,“GA007“,72, “GA008“,64,“GA006“,87,“GA015“,85, “GA013“,91,“GA012“,64,“GA014“,91, “GA011“,66,“GA017“,64,“GA018“,64, “GA016“,72; int i; fun(s); printf(“The data after sorted:/n“); for(i=0;iN;i+) if(i%4=0)/*每行输出 4 个学生记录*/ printf(“/n“); printf(“%s%4d“,si.num,si.s); printf(“/n“); (分数:40.00)_正确答案:()解析:

    14、Void fun (STREC a) int i,j; STREC t; for(i=1;iN;i+) /*用冒泡法进行排序,进行 N-1 次比较*/ for(j=0;jN-1;j+) /*在每一次比较中要进行 N-1 次两两比较*/ if(aj.saj+1.s) t=aj;aj=aj+1; aj+1=t; /*按分数的高低排列学生的记录,高分在前*/ 考点 本题关键字有:排序算法;结构体类型。 解析 对 N 个数进行排序的算法很多,其中冒泡算法比较简单。冒泡法用双层 for 循环和 if 判断语句来实现,外层循环控制需比较的轮数,内层循环控制两两比较。 常见排序算法有冒泡法、选择法、插入法。

    15、冒泡排序算法:两两比较待排序相邻数据元素的大小,若两个数据元素处于反序则进行交换,直到没有反序的数据元素为止;选择排序算法:在要排序的一组数中,选出最大或最小的数与第一个位置的数进行交换,再在剩下的数中找出最大或最小的数与第二个位置的数进行交换,依次类推,直至最后两个数比较完成;插入排序算法:先对两个数进行排序,然后把第三个数插入前两个数中,这三个数有序,依次把后面的数插入完。对整型一维数组 aN进行升序排序各种算法实现如下: 冒泡法: for(int i=0;iN-1;i+) for(int j=0;jN-1-i;j+) if(ajaj+1) t=aj;aj=aj+1;aj+1=t; 选择法: for(int i=0;iN-1;i+) p=i; for(j=i+1;jN;j+) if(apaj) p=j; if(p!=i) t=ai;ai=ap;ap=t; 插入法: for(i=1;iN;i+) t=ai; for(j=i-1;ajtj=0;j-) aj+1=aj; aj+1=t;


    注意事项

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




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

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

    收起
    展开