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

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

1、二级 C 语言-318 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数 fun 的功能是从形参 filename 所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到 filename 所指的文件中,覆盖原来的文件内容。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h #define

2、 N 5 typedef struct student long sno; char name10; float score3; STU; void fun(char*filename) FILE*fp; int i,j; STU sN,t; /*found*/ fp=fopen(filename, 1); fread(s,sizeof(STU),N,fp); fclose(fp); for(i=0;iN-1;i+) for(j=i+1;jN;j+) /*found*/ if(si.sno 2sj.sno) t=si;si=sj;sj=t; fp=fopen(filename,“wb“); /

3、found*/ 3(s,sizeof(STU),N,fp);/*二进制输出*/ fclose(fp); main() STU tN=10005,“ZhangSan“,95,80,88, 10003,“LiSi“,85,70,78, 10002,“CaoKai“,75,60,88, 10004,“FangFang“,90,82,87, 10001,“MaChao“,91,92,77,ssN; int i,j; FILE*fp; fp=fopen(“student.dat“,“wb“); fwrite(t,sizeof(STU),5,fp); fclose(fp); printf(“/n/nTh

4、e original data:/n/n“); for(j=0;jN;j+) printf(“/nNo:%ld Name:%-8s Scores:“,tj.sno,tjname); for(i=0;i3;i+) printf(“%6.2f“,tj.scorei); printf(“/n“); fun(“student.dat“); printf(“/n/nThe data after sorting:/n/n“); fp=fopen(“student.dat“,“rb“); fread(ss,sizeof(STU),5,fp); fclose(fp); for(i=0;jN;j+) print

5、f(“/nNo:%ld Name:%-8s Scores:“,ssj.sno,ssj.name); for(i=0;i3;i+) printf(“%6.2f“,ssj.scorei); printf(“/n“); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.给定程序中函数 fun 的功能是:在字符串的最前端加入 n 个*号,形成新串,并且覆盖原串。 注意:字符串的长度最长允许为 79。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h #i

6、ncludestring.h void fun(char s,int n) char a80,*p; int i; /*found*/ s=p; for(i=0;in;i+)ai=“*“; do ai=*p; i+; /*found*/ while(*p+) ai=0; strcpy(s,a); main() int n; char s80; printf(“/nEnter a string:“);gets(s); printf(“/nThe string“%s“/n“,s); printf(“/nEnter n(number of*):“); scanf(“%d“, fun(s,n); pr

7、intf(“/nThe string after insert:“%s“/n“,s); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,函数的功能是:统计各年龄段的人数。N 个年龄通过调用随机函数获得,并放存主函数的 age 数组中;要求函数把 0 至 9 岁年龄段的人数放在 d0中,把 10 至 19 岁年龄段的人数放在 d1中,把 20 至 29 岁年龄段的人数放在 d2中,其余依此类推,把 100 岁(含 100)以上年龄的人数都放在d10中。结果在主函数中输出。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入

8、你编写的若干语句。 给定源程序: #includestdio.h #define N 50 #define M 11 void fun(int *a,int *b) double rnd() static t=29,c=217,m=1024,r=0; r=(r*t+c)%m;return(double)r/m); main() int ageN,i,dM; for(i=0;iN;i+)agei=(int)(115*rnd(); printf(“The original data:/n“); for(i=0;iN;i+)printf(i+1)%10=0?“%4d/n“:“%4d“,agei);

9、printf(“/n/n“); fun(age,d); for(i=0;i10;i+)printf(“%4d-%4d:%4d/n“,i*10,i*10+9,di); printf(“Over 100:%4d/n“,d10); (分数:40.00)_二级 C 语言-318 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数 fun 的功能是从形参 filename 所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序

10、后的学生数据输出到 filename 所指的文件中,覆盖原来的文件内容。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h #define N 5 typedef struct student long sno; char name10; float score3; STU; void fun(char*filename) FILE*fp; int i,j; STU sN,t; /*found*/ fp=fopen(filename, 1); fread(s,sizeof(STU),N,

11、fp); fclose(fp); for(i=0;iN-1;i+) for(j=i+1;jN;j+) /*found*/ if(si.sno 2sj.sno) t=si;si=sj;sj=t; fp=fopen(filename,“wb“); /*found*/ 3(s,sizeof(STU),N,fp);/*二进制输出*/ fclose(fp); main() STU tN=10005,“ZhangSan“,95,80,88, 10003,“LiSi“,85,70,78, 10002,“CaoKai“,75,60,88, 10004,“FangFang“,90,82,87, 10001,“M

12、aChao“,91,92,77,ssN; int i,j; FILE*fp; fp=fopen(“student.dat“,“wb“); fwrite(t,sizeof(STU),5,fp); fclose(fp); printf(“/n/nThe original data:/n/n“); for(j=0;jN;j+) printf(“/nNo:%ld Name:%-8s Scores:“,tj.sno,tjname); for(i=0;i3;i+) printf(“%6.2f“,tj.scorei); printf(“/n“); fun(“student.dat“); printf(“/n

13、/nThe data after sorting:/n/n“); fp=fopen(“student.dat“,“rb“); fread(ss,sizeof(STU),5,fp); fclose(fp); for(i=0;jN;j+) printf(“/nNo:%ld Name:%-8s Scores:“,ssj.sno,ssj.name); for(i=0;i3;i+) printf(“%6.2f“,ssj.scorei); printf(“/n“); (分数:30.00)解析:(1)“rb“ (2) (3)fwrite 解析 填空 1:题目中要求从形参 filename 所指的文件中读入学

14、生的数据,以此可以看出本空应该填写“rb“。 填空 2:此处的 if 语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写。 填空 3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写 fwrite。二、程序改错题(总题数:1,分数:30.00)2.给定程序中函数 fun 的功能是:在字符串的最前端加入 n 个*号,形成新串,并且覆盖原串。 注意:字符串的长度最长允许为 79。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h #includ

15、estring.h void fun(char s,int n) char a80,*p; int i; /*found*/ s=p; for(i=0;in;i+)ai=“*“; do ai=*p; i+; /*found*/ while(*p+) ai=0; strcpy(s,a); main() int n; char s80; printf(“/nEnter a string:“);gets(s); printf(“/nThe string“%s“/n“,s); printf(“/nEnter n(number of*):“); scanf(“%d“, fun(s,n); printf(

16、/nThe string after insert:“%s“/n“,s); (分数:30.00)解析:(1)p=s; (2)while(*p+); 解析 (1)指针 p 应指向 s,所以应改为 p=s;。 (2)循环等待,当 while 循环执行一次,临时变量 p 应该指向字符串的下一位置,所以应改为 while(*p+);。三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,函数的功能是:统计各年龄段的人数。N 个年龄通过调用随机函数获得,并放存主函数的 age 数组中;要求函数把 0 至 9 岁年龄段的人数放在 d0中,把 10 至 19 岁年龄段的人数放在 d1中,把

17、 20 至 29 岁年龄段的人数放在 d2中,其余依此类推,把 100 岁(含 100)以上年龄的人数都放在d10中。结果在主函数中输出。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #includestdio.h #define N 50 #define M 11 void fun(int *a,int *b) double rnd() static t=29,c=217,m=1024,r=0; r=(r*t+c)%m;return(double)r/m); main() int ageN,i,dM; for(i=0;i

18、N;i+)agei=(int)(115*rnd(); printf(“The original data:/n“); for(i=0;iN;i+)printf(i+1)%10=0?“%4d/n“:“%4d“,agei); printf(“/n/n“); fun(age,d); for(i=0;i10;i+)printf(“%4d-%4d:%4d/n“,i*10,i*10+9,di); printf(“Over 100:%4d/n“,d10); (分数:40.00)_正确答案:()解析:int i; for(i=0;iM;i+) bi=0; /*数组 b 初始化为 0*/ for(i=0;iN;

19、i+) if(ai=100) b10+; else bai/10+; 解析 本题是一个分段函数的问题,用两个循环来完成。第 1 个循环的作用是使 b 中的所有元素值都为 0。这个循环不能省略,因为若未对 b 中的元素赋初值,则它们的值是不可预测的。第 2 个循环的作用是分别统计 a 中各年龄段的人数。当 ai100 时,按题意要将其统计到 b10中。else 的作用是如果年龄小于 100,则将其分别统计到 bai/10中。由运算优先级可知先进行 ai/10 的运算,所得结果作为b 的下标。若 ai为 09 时,ai/10 的值为 0,且 09 岁的人数正好要存入 b0中。若 ai为1019 时,ai/10 的值为 1,且 1019 岁的人数正好要存入 b1中,依此类推。

展开阅读全文
相关资源
猜你喜欢
  • BS PD CEN TS 16826-2-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for snap frozen tissue Isolated proteins《分子体外诊断检查 快速冷冻组织的预检测过程的规格 .pdf BS PD CEN TS 16826-2-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for snap frozen tissue Isolated proteins《分子体外诊断检查 快速冷冻组织的预检测过程的规格 .pdf
  • BS PD CEN TS 16827-1-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for FFPE tissue Isolated RNA《分子体外诊断检查 石蜡包埋组织的预检测过程的规格 分离核糖核酸》.pdf BS PD CEN TS 16827-1-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for FFPE tissue Isolated RNA《分子体外诊断检查 石蜡包埋组织的预检测过程的规格 分离核糖核酸》.pdf
  • BS PD CEN TS 16827-2-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for FFPE tissue Isolated proteins《分子体外诊断检查 石蜡包埋组织的预检测过程的规格 分离蛋白》.pdf BS PD CEN TS 16827-2-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for FFPE tissue Isolated proteins《分子体外诊断检查 石蜡包埋组织的预检测过程的规格 分离蛋白》.pdf
  • BS PD CEN TS 16827-3-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for FFPE tissue Isolated DNA《分子体外诊断检查 石蜡包埋组织的预检测过程的规格 分离的脱氧核糖核酸》.pdf BS PD CEN TS 16827-3-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for FFPE tissue Isolated DNA《分子体外诊断检查 石蜡包埋组织的预检测过程的规格 分离的脱氧核糖核酸》.pdf
  • BS PD CEN TS 16835-1-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for venous whole blood Isolated cellular RNA《分子体外诊断检查 静脉全血的预检测过程的规.pdf BS PD CEN TS 16835-1-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for venous whole blood Isolated cellular RNA《分子体外诊断检查 静脉全血的预检测过程的规.pdf
  • BS PD CEN TS 16835-2-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for venous whole blood Isolated genomic DNA《分子体外诊断检查 静脉全血的检查前流程规范 .pdf BS PD CEN TS 16835-2-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for venous whole blood Isolated genomic DNA《分子体外诊断检查 静脉全血的检查前流程规范 .pdf
  • BS PD CEN TS 16835-3-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for venous whole blood Isolated circulating cell free DNA from pla.pdf BS PD CEN TS 16835-3-2015 Molecular in vitro diagnostic examinations Specifications for pre-examination processes for venous whole blood Isolated circulating cell free DNA from pla.pdf
  • BS PD CEN TS 16861-2015 Plastics Recycled plastics Determination of selected marker compounds in food grade recycled polyethylene terephthalate (PET)《塑料 再生塑料 食品级再生聚对苯二甲酸乙二醇酯 (PET) .pdf BS PD CEN TS 16861-2015 Plastics Recycled plastics Determination of selected marker compounds in food grade recycled polyethylene terephthalate (PET)《塑料 再生塑料 食品级再生聚对苯二甲酸乙二醇酯 (PET) .pdf
  • BS PD CEN TS 16868-2015 Ambient air Sampling and analysis of airborne pollen grains and fungal spores for allergy networks Volumetric Hirst method《环境空气 过敏网络用空气中花粉粒和真菌孢子的采集和分析 Hirst.pdf BS PD CEN TS 16868-2015 Ambient air Sampling and analysis of airborne pollen grains and fungal spores for allergy networks Volumetric Hirst method《环境空气 过敏网络用空气中花粉粒和真菌孢子的采集和分析 Hirst.pdf
  • 相关搜索

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

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