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

上传人:appealoxygen216 文档编号:1325239 上传时间:2019-10-17 格式:DOC 页数:5 大小:37.50KB
下载 相关 举报
【计算机类职业资格】二级C语言-336及答案解析.doc_第1页
第1页 / 共5页
【计算机类职业资格】二级C语言-336及答案解析.doc_第2页
第2页 / 共5页
【计算机类职业资格】二级C语言-336及答案解析.doc_第3页
第3页 / 共5页
【计算机类职业资格】二级C语言-336及答案解析.doc_第4页
第4页 / 共5页
【计算机类职业资格】二级C语言-336及答案解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C 语言-336 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.程序通过定义学生结构体变量,存储学生的学号、姓名和三门课的成绩。函数 fun 的功能是:对形参 b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。 例如,若 b 所指变量 t 中的学号、姓名和三门课的成绩依次是:10002、“ZhangQi”、93、85、87,修改后输出 t 中的数据应为:10004、“LiJie”、93、85、87。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更

2、改程序的结构! 试题程序: #includestdio.h #includestring.h struct student long sno; char name10; float score3; ; void fun(struct student *b) /*found*/ b 1=10004; /*found*/ strcpy(b 2, “LiJie“); main() struct student t=(10002, “ZhangQi“, 93, 85, 87; int i; printf(“/n/nThe original data:/n“); printf(“/nNo:%ld Nam

3、e:%s/nScores:“, t.sno, t.name); for(i=0; i3; i+) printf(“%6.2f“, t.scorei); printf(“/n“); /*found*/ fun( 3); printf(“/nThe data after modified:/n:); printf(“/nNo:%ld Name:%s/nScores:“, t.sno, t.name); for(i=0; i3; i+) printf(“%6.2f“, t.scorei); printf(“/n“); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序

4、中函数 fun 的功能是:用递归算法求形参 a 的平方根。求平方根的迭代公式如下: (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.学生的记录由学号和成绩组成。N 名学生的数据已放入主函数中的结构体数组 s 中,请编写函数 fun,其功能是:把高于等于平均分的学生数据放在 b 所指的数组中,高于等于平均分的学生人数通过形参 n 传回,平均分通过函数值返回。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includestdio.h #define N 12 typedef s

5、truct char num10; double s; STREC; double fun(STREC *a, STREC *b, int *n) void main() STREC sN=“GA05“, 85, “GA03“, 76, “GA02“, 69, “GA04“, 85, “GA01“, 91, “GA07“, 72, “GA08“, 64, “GA06“, 87, “GA09“, 60, “GA11“, 79, “GA12“, 73, “GA10“, 90; STREC hN; int i, n; double ave; ave=fun(s, h, printf(“The %d

6、student data which is higher than %7.3f:/n“, n, ave); for(i=0; in; i+) printf(“%s%4.1f/n“, hi.num, hj.s); printf(“/n“); (分数:40.00)_二级 C 语言-336 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.程序通过定义学生结构体变量,存储学生的学号、姓名和三门课的成绩。函数 fun 的功能是:对形参 b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。 例如,若 b 所指变量 t 中的学号、姓名和三门课

7、的成绩依次是:10002、“ZhangQi”、93、85、87,修改后输出 t 中的数据应为:10004、“LiJie”、93、85、87。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h #includestring.h struct student long sno; char name10; float score3; ; void fun(struct student *b) /*found*/ b 1=10004; /*found*/ strcpy(b 2

8、, “LiJie“); main() struct student t=(10002, “ZhangQi“, 93, 85, 87; int i; printf(“/n/nThe original data:/n“); printf(“/nNo:%ld Name:%s/nScores:“, t.sno, t.name); for(i=0; i3; i+) printf(“%6.2f“, t.scorei); printf(“/n“); /*found*/ fun( 3); printf(“/nThe data after modified:/n:); printf(“/nNo:%ld Name

9、:%s/nScores:“, t.sno, t.name); for(i=0; i3; i+) printf(“%6.2f“, t.scorei); printf(“/n“); (分数:30.00)解析:(1)-sno (2)-name (3) double s; STREC; double fun(STREC *a, STREC *b, int *n) void main() STREC sN=“GA05“, 85, “GA03“, 76, “GA02“, 69, “GA04“, 85, “GA01“, 91, “GA07“, 72, “GA08“, 64, “GA06“, 87, “GA0

10、9“, 60, “GA11“, 79, “GA12“, 73, “GA10“, 90; STREC hN; int i, n; double ave; ave=fun(s, h, printf(“The %d student data which is higher than %7.3f:/n“, n, ave); for(i=0; in; i+) printf(“%s%4.1f/n“, hi.num, hj.s); printf(“/n“); (分数:40.00)_正确答案:()解析:double fun(STREC *a, STREC *b, int *n) int i; double a

11、v=0.0; *n=0; for(i=0; iN; i+) av=av+ai.s; av=av/N; /*求平均值*/ for(i=0; iN; i+) if(av=ai.s) b*n=ai; *n=*n+1; /*将高于等于平均分的学生存入 b 所指存储单元中,并统计人数*/ return av; /*返回平均分*/ 解析 本题中第 1 个循环的作用求出所有分数的总和,然后进行 avav/N 后得到平均值。第 2 个循环的作用是将大于等于平均分的学生存入 b 所指存储单元中。注意同一结构体变量之间可以互相赋值。 本程序中直接用*n 来表示 b 的下标,注意开始时要给*n 赋初值 0,且使用时不能少*号,因为单独的 n 是一个指针变量,而我们要用的是它所指向的存储单元中的值。

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

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

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