首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
对10个候选人进行选举,现有一个100条记录的选票文件ENG50.1N,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符0或1,1表示此人被选中,0表示此人未被选
对10个候选人进行选举,现有一个100条记录的选票文件ENG50.1N,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符0或1,1表示此人被选中,0表示此人未被选
admin
2009-02-24
33
问题
对10个候选人进行选举,现有一个100条记录的选票文件ENG50.1N,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符0或1,1表示此人被选中,0表示此人未被选中,全选或全不选(空选票)均为无效的选票。给定函数ReadDat()的功能是把选票记录读入到字符串数组xx中。请编制函数CoutRs()来统计每个人的选票数并把得票数依次存入yy[0],jyy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT50.DAT中。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include<stdio.h>
char xx[100] [11];
int yy[10];
int ReadDat (void);
void WriteDat(void);
void CoutRs(void)
{
}
void main()
{
int i;
for(i=0;i<10;i++)
yy
=0;
if (ReadDat ())
{
printf ("数据文件ENG50. IN不能打开! \n\007"
return;
}
CoutRs ( );
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i;
char tt[13];
if ( (fp=fopen ("ENG50. IN", "r") ) ==NULL)
return 1;
for (i=0; i<100; i++)
{
if (fgets (tt, 13, fp) ==NULL)
return 1;
memcpy (xx
, tt, 10);
xx
[10]=0;
}
fclose (fp);
return 0;
}
void WriteDat()
{
FILE *fp;
int i;
fp= fopen ("OUTS0.DAT", "w");
for (i=0; i<10; i++)
{
fprintf (fp, "%d\n", yy
);
printf ("第%d个人的选票数=%d\n", i+l, yy
);
}
fclose (fp);
}
选项
答案
void CoutRs(void) { int i,j=0,k=0; char *str; for(i=0;i<100;i++) { str=xx [i]; /*指针str指向该行首地址*/ j=0; while (*str !=0) if (*str==’1’) /*统计’1’的个数*/ { j++; str++; /*取下一个字符*/ } else str++; /*如果该字符不是’1’,则什么都不做,取下一个字符*/ if(j!=0&&j!=10) /*如果既不是全选也不是空票,则为有效票*/ { str=xx [i]; /*指针str指向该行首地址*/ k=0; while (*str) if <*str++==’ 1’) /*将每个人的得票数依次存入yy [0]到yy[9]中*/ yy [k++] +=1; else {k++;str++; } } } }
解析
本题考查的知识点如下:
(1)二维数组的操作。
(2)指向数组的指针。
在本题中,要先判断选票是否有效。因为记录存放在一个二位数组中,为了简便我们为数组的一组元素定义一个指向数组的指针,例如,char*p=xx[2]。初始时该指针指向该组的第一个元素,指针地址每加1,则指向下一个元素。这样就可以轻松地统计每一个选票。设一变量标记每一个选票中1的个数,若其不为0和10,则选票有效。若选票有效,则依次查看哪一个元素为1,在数组yy相应的元素上加1。使用循环实现对所有记录的访问。
转载请注明原文地址:https://kaotiyun.com/show/KRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
下面有关模式分解的叙述中,不正确的是
存储管理的目的是实现
用户关系模式R中所有的属性都是主属性,则R的规范化程度至少达到【】。
下列______不是TCP/IP参考模型中的应用层协议。
下列对分页和分段系统特点的区别不正确的是()。
有程序编制如下。数组中的每个元素为一个字。假设页面大小为每页128个字,数组中的每一行元素存放在一页中。系统为该程序提供一块内存,开始时内存为空。VARA:ARRAY[1••256,1••128]OFinteger;FORj:=1TO128
设有关系模块R(B,C,M,T,A,G),根据语义有如下函数依赖集:F=(B→C,(M,T)→B,(M,C)→T,(M,A)→T,(A,B)→G}。则关系模式R的候选码是______。
设有关系SC(SNO,CNO,GRADE),主码是(SNO,CNO)。遵照实体完整性规则
消息的序号和时间性的认证主要是阻止消息的()。
在SQLServer2008中,建立索引视图的目的是为了提高数据查询的效率。下列关于索引视图的说法,错误的是()
随机试题
EveryyearjustafterChristmastheJanuarySalesstart.Alltheshopsreducetheirpricesandfortwoweeks,theyarefullofp
A、胆石症B、急性胰腺炎C、十二指肠溃疡D、输尿管结石E、脾破裂最常致出血性休克的是()
对自身免疫性溶血性贫血患者输血,应首选
对作业人员的安全生产教育培训包括( )。
个人经营贷款的合作机构主要是()
在满族婚俗中。男家近亲女眷前往女家,送给未来新娘一些珠宝钗环等首饰,并为其带上,这些在满族的婚俗中叫()。
【2015河北石家庄】针对如何对待自己做过的数学题,王老师引发并组织学生进行讨论,最后同学们决定每个人都建立一个数学题记录本,做题不顺畅、掌握不牢固的题用黑笔写到笔记本上,完全不会或者做错的题用红笔记到笔记本上。分析教师这样引导学生的目的,阐述用
在班级管理中,学生不仅是被管理的对象,也是管理的主体。()
某海滨派出所8、9月间经常接到外地游客报警,海边露天浴场多次发生扒窃案件,有小偷趁游客下海游泳时偷窃其随身携带的贵重物品。派出所决定加强海滨浴场的治安防范,其不恰当的做法是:
自1901年起,诺贝尔文学奖每年一次为在文学领域做出杰出贡献的人们颁发奖项,温斯顿·丘吉尔在1953年获取得此殊荣,其后一年则由海明威获得。
最新回复
(
0
)