【计算机类职业资格】计算机三级数据库技术-140及答案解析.doc

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

1、计算机三级数据库技术-140 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.对 10个候选人进行选举,现有一个存有 100条记录的选票文件 IN.DAT,其数据存放格式是每条记录的长度均为 10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符 0或 1,1 表示此人被选中,0 表示此人未被选中,若一张选票选中人数大于5个人时被视为无效。给定函数 ReadDat()的功能是把选票数据读入到字符串数组 xx中。请编写函数CoutRs(),来统计每个人的选票数并把得票数依次存入 yy0yy

2、9中,最后调用函数 WriteDat(),把结果 yy输出到文件 OUT.DAT中。 注意:请勿改动主函数 main()、读函数 ReadDat()和写函数 WriteDat()的内容。 【试题程序】 #include memory.h #include stdio.h char xx100 11 ; int yy10 ; int ReadDat (void) ; void WriteDat (void) ; void CoutRs (void) void main () int i ; for (i =0;i 10;i + ) yyi =0; if (ReadDat () printf (“

3、数据文件 IN. DAT 无法打开! n007“) ; return; CoutRs () ; WriteDat () ; int ReadDat (void) FILE * fp; int i; char tt13 ; if ( (fp = fopen (“IN .DAT“, “r“) ) =NULL) return 1; for (i =0;i 100;i + ) if (fgets (tt, 13, fp) = NULL) return 1 ; memcpy (xx i, tt,10 ) ; xxi10 =0; fclose (fp) ; return 0 ; void WriteDat

4、 () FILE * fp; int i ; fp = fopen ( “OUT. DAT“, “w“ ) ; for (i =0;i 10;i +) fprintf (fp, “%dn“, yyi ) ; printf (“第%d,个人的选票数 HT =%dn“,i +1,yyi); fclose(fp); (分数:100.00)_计算机三级数据库技术-140 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.对 10个候选人进行选举,现有一个存有 100条记录的选票文件 IN.DAT,其数据存放格式是每条记录的长度均为 10位,第一位表示第

5、一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符 0或 1,1 表示此人被选中,0 表示此人未被选中,若一张选票选中人数大于5个人时被视为无效。给定函数 ReadDat()的功能是把选票数据读入到字符串数组 xx中。请编写函数CoutRs(),来统计每个人的选票数并把得票数依次存入 yy0yy9中,最后调用函数 WriteDat(),把结果 yy输出到文件 OUT.DAT中。 注意:请勿改动主函数 main()、读函数 ReadDat()和写函数 WriteDat()的内容。 【试题程序】 #include memory.h #include stdio

6、.h char xx100 11 ; int yy10 ; int ReadDat (void) ; void WriteDat (void) ; void CoutRs (void) void main () int i ; for (i =0;i 10;i + ) yyi =0; if (ReadDat () printf (“数据文件 IN. DAT 无法打开! n007“) ; return; CoutRs () ; WriteDat () ; int ReadDat (void) FILE * fp; int i; char tt13 ; if ( (fp = fopen (“IN

7、.DAT“, “r“) ) =NULL) return 1; for (i =0;i 100;i + ) if (fgets (tt, 13, fp) = NULL) return 1 ; memcpy (xx i, tt,10 ) ; xxi10 =0; fclose (fp) ; return 0 ; void WriteDat () FILE * fp; int i ; fp = fopen ( “OUT. DAT“, “w“ ) ; for (i =0;i 10;i +) fprintf (fp, “%dn“, yyi ) ; printf (“第%d,个人的选票数 HT =%dn“,

8、i +1,yyi); fclose(fp); (分数:100.00)_正确答案:()解析:void CountRs(void) int i,j; /*定义计数器变量*/ int count; /*存储每张选票的选中人数,以判断选票是否有效*/ for(i=0;i10;i+) /*初始化数组 yy*/ yyi=0; for(i=0;i100;i+) /*依次取每张选票进行统计*/ count=0; for(j=0;j10;j+) /*统计每张选票的选中人数 count*/ if(xxij=“1“) count+; if(count=5) /*当 count值不大于,即小于等于 5时为有效选票*/

9、 for(j=0;j10;j+) /*统计有效选票*/ if(xxij=“1“) yyj+; 考点 本题考查选票的统计。考查的知识点主要包括:C 语言循环结构,if 条件判断结构和逻辑表达式,字符比较操作。 解析 首先通读题目,得知此题属于选票的统计题型;其次分析题干要求,本题要求实现 CountRs(void)函数的功能,该函数需要统计出 100条选票数据,并将统计结果保存入数组 yy中;接着归纳出本题有 2个关键点:关键点 1如何统计每张选票的选择情况;关键点 2根据题目给出的条件“选中人数大于 5个人时被认为无效“判断选票是否有效。 首先,对数组 yy元素初始化为 0;接着通过一个循环嵌套结构依次判断每张选票数据的十个选举标志,同时每张选票的投票数量,对于不满足条件的选票数据直接跳过,并统计有效选票的投票情况到数组 yy中。 数组 yy未初始化,判断选票是否有效的逻辑表达式错误。

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

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

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