第81套上机考试试题
现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此入被选中,0表示此人未被选中。全选或全不选均为无效的选票。给定函数RData()的功能是把选票数据读入字符串数细original中。请编写函数CountRs()来统计每个人的选票数并把得票数依次存入result[0]到result[9]巾,把结果result输出到OUT.dat文件中。
注意:部分程序已给出。请勿改动丰函数main()、读数据函数RData()和输出数据函数WData()内容。
第81套试题答案及详解
【审题分析】分析题同可知,本题只要实现CountRs()函数的功能即可。CountRs()要实现的功能是:统计每个人的选票数并把得票数依次存入result[0]到result[9]中。因此解答本题的关键在于如何实现票的统计。
【解题思路】在for循环语句中自变量i从0递增到100,对数组original[i]中字符1的个数进行统计并赋给变量j,如果变量j的值全为0或全为1,说明这是一张无效选票,否则在for(k=0;k<10;k++)result[k]+=original[i][k]-'0';语句中把original[i][k]的值相加赋给result[k],就得到了每个人的选票数。
【参考答案】
【易错分析】计算变量J的值是为了判断一张选票是否为无效选票。统计每个人的选票数是通过for(k=0:k<10;k++)result[k】+=original[il[k]='0';语句来实现的。
【考点链接】二维数组。
责任编辑:小草