【计算机类职业资格】三级网络技术机试-246及答案解析.doc

上传人:medalangle361 文档编号:1321948 上传时间:2019-10-17 格式:DOC 页数:4 大小:28.50KB
下载 相关 举报
【计算机类职业资格】三级网络技术机试-246及答案解析.doc_第1页
第1页 / 共4页
【计算机类职业资格】三级网络技术机试-246及答案解析.doc_第2页
第2页 / 共4页
【计算机类职业资格】三级网络技术机试-246及答案解析.doc_第3页
第3页 / 共4页
【计算机类职业资格】三级网络技术机试-246及答案解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、三级网络技术机试-246 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.现有一个 10个人 100行的选票数据文件 in.dat,其数据存放的格式是每条记录的长度均为 10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;内容均为字符 0和 1,1 表示此人被选中,0 表示此人未被选中,若一张选票人数大于等于 8或者小于等于 2个人时被认为无效的选票。给定函数 ReadDat()的功能是把选票数据读入字符串数组 xx中。请编制函数 CountRs()来统计每个人的选票数并把得票数依次存入 yy0到 yy9中。把结果

2、 yy输出到文件 out.dat中。注意:部分源程序给出如下。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。试题源程序#includestdio.hchar xx10011;int yy10;int ReadDat(void);void WriteDat(void);void CountRs(void)void main()int i;for(i=0;ii0;i+)yyi=0;if(ReadDat()printf(“can not open the file IN.DAT!/n/007“);return;CountRs();WriteD

3、at();int ReadDat(void)FILE*fp;int i;if(fp=fopen(“IN DAR“,“r“)=NULL)return 1;for(i=0;i100;i+)(if(fgets(xxi,12,fp)=NULL)return 1;xxi10=/0;fclose(fp);return 0;void WriteDat(void)FILE*fp;int i;fp=fopen(“OUT.DAT“,“w“);for(i=0;i10;i+)fprintf(fp,“%d/n“,yyi);printf(“第%d 个人的选票数=%d/n“,i+1,yyi);fclose(fp);(分数:

4、100.00)_三级网络技术机试-246 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.现有一个 10个人 100行的选票数据文件 in.dat,其数据存放的格式是每条记录的长度均为 10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;内容均为字符 0和 1,1 表示此人被选中,0 表示此人未被选中,若一张选票人数大于等于 8或者小于等于 2个人时被认为无效的选票。给定函数 ReadDat()的功能是把选票数据读入字符串数组 xx中。请编制函数 CountRs()来统计每个人的选票数并把得票数依次存入 yy0到 y

5、y9中。把结果 yy输出到文件 out.dat中。注意:部分源程序给出如下。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。试题源程序#includestdio.hchar xx10011;int yy10;int ReadDat(void);void WriteDat(void);void CountRs(void)void main()int i;for(i=0;ii0;i+)yyi=0;if(ReadDat()printf(“can not open the file IN.DAT!/n/007“);return;CountRs()

6、WriteDat();int ReadDat(void)FILE*fp;int i;if(fp=fopen(“IN DAR“,“r“)=NULL)return 1;for(i=0;i100;i+)(if(fgets(xxi,12,fp)=NULL)return 1;xxi10=/0;fclose(fp);return 0;void WriteDat(void)FILE*fp;int i;fp=fopen(“OUT.DAT“,“w“);for(i=0;i10;i+)fprintf(fp,“%d/n“,yyi);printf(“第%d 个人的选票数=%d/n“,i+1,yyi);fclose(f

7、p);(分数:100.00)_正确答案:(void CountRs(void)int i,j,cnt;for(i=0;i100;i+)/*遍历数组 xx的每一行*/cnt=0; /*计数值清 0*/for(j=0;j10;j+)/*第一遍扫描统计该行所选人数*/if(xxij=1)/*若该位被选中,则计数值增 1*/cnt+; if(cnt8&cnt2)/*若该张选票人数在 2到 8个人*/for(j=0;j10;j+)/*遍历所有选票,并增加相应的计数值*/if(xxij=1)yyj+;)解析:解析 本题主要考查的是选票问题。首先用 for循环和变量 i遍历每一张选票,也就是每一行,对于某行 xxi使用 for循环和变量 j遍历该行的每个元素,使用变量 cnt统计该行所选的人数,也就是元素值为 1的个数。如果该行所选人数 cnt小于 8并且大于 2,则该选票有效,再次遍历这一行,如果选中,则第 j个人的选票数 yypj就加 1。遍历完所有行后得到的 yyj就是第 j个人的有效的选票数。

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

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

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