1、计算机三级网络技术机试(上机操作)模拟试卷 51及答案与解析 一、程序设计题 1 文件 IN DAT中存放有 i00条对 10个候选人进行选举的记录,数存放的格式是每条记录的长度均为 10位,第一位表示第一个人的选中情况第二位表示第二个人的选中情况,依此类推。每一位内容均为字符 0或 1。 1表示此人被选中, 0表示此人未被选中。若一张选票选中人数小于等于 5个人时则被认为是无效的选票。函数 ReadData()负责将 late()来统计每个人的选票数并把得票数依次存入outBuf0outBuf9中,最后写函数 WriteData()把结果 outBufi 请勿改动主函数 main()、读函数
2、 ReadData()和写函数 WriteData()的内容。 试题程序: #include #include #define LlNE 100 #define COL 10 #define THR 5 char inBufLINECOL; int outBufCOL; int ReadData(void); void WriteData(void)I void calculate(void) void main() int i; for(i=0; iTHR) 如果该选票选的人数小于等于 5人,则视为无 效选票 usefulk=i; 将有效的选票的标号放到数组 useful中 k+; 将有效选票的计数器加 1 use_i=k; 记录有效选票的个数 for(j=0; jCOL; j+) for(k=0; kuse_i; k+)outBufj+=(inBut usdulEki-0);统计有效选票数 【试题解析】 本题主要考查如何将读入的字符型的数字转换成对应的整型数字。 由于数字 0 9的 ASCII码是连续增加的,故可用 0 g的 ASCII码值减去 0的ASCII码值而得到数字 0 9。本题的另一个难点是如何在除去无效选票之后再进行统计。在程序中选用的是用一个数组 useful来记录有效选票的号码,将谊数组中的值作为选票数组 inBuf的行下标,从而实现了时无效选票的排除。