首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
文件IN.DAT中存放有100条对10个候选人进行选举的记录,数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数
文件IN.DAT中存放有100条对10个候选人进行选举的记录,数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数
admin
2011-06-14
104
问题
文件IN.DAT中存放有100条对10个候选人进行选举的记录,数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数大于5个人时被认为无效的选票。函数ReadData()负责将IN.DAT中的内容读人数组inBuf[]中。请编制函数calculate()来统计每个人的选票数并把得票数依次存人outBuf[0]~outBuf[9]中,最后调用函数WriteData()把结果outBuf[]输出到文件OUT.DAT中。
注意;部分源程序已给出。
请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。
试题程序;
#include
#include(memory.h>
#define LINE 100
#define COL 10
char inBuf[LINE][COL];
int outBuf[COL];
int ReadData(void);
void WriteData(void);
void calculate(void)
{
}
void main()
{
int i;
for(i=0;i<10;i++)outBuf
=0;
if(ReadData())
{
printf("IN.DAT can’t be opened\007\n");
return;
}
calculate();
writeData();
}
int ReadData(void)
{
FILE*fp;
int i;
char tt[COL+1];
if((fp=fopen("IN.DAT","r"))==NULL)
return 1;
for(i=0;i
{
if(fgets(tt,COL+1,fp)==NULL)
return 1;
memcpy(inBuf
,tt,COL);
}
fclose(fp);
return 0;
}
void WriteData(void)
{
FILE*fp;
int i;
fp=fopen("OUT.DAT","w");
for(i=0;i<10;i++)
{
fprintf(fp,"%d\n",outBuf
);
printf("the amounts of number%d’svotes=%d\n",i+1,outBuf
);
}
fclose(fp);
}
选项
答案
void calculate(void) { int i,j,k,sum,use_i; int useful[LINE]={-1}; k=0; for(i=0;i
解析
本题主要考查如何将读入的字符型的数字转换成对应的整型数字。由于数字O~9的ASCII码是连续增加的,故可用0~9的ASCII码值减去0的ASCII码值而得到数字0~9。本题的另一个难点是如何在除去无效选票之后再进行统计。在程序中选用的是一个数组useful[]来记录有效选票的号码,将该数组中的值作为选票数组inBuf[][]的行下标,从而实现了对无效选票的排除。
转载请注明原文地址:https://kaotiyun.com/show/puaZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
()解析要求名字服务器系统一次性完成全部名字一地址变换。
ATM局域网仿真系统中,连接在ATM网络中的主机与网桥可以从逻辑上划分为若干个独立的区域,每个区域称为一个【 】。
主页是个人或机构的基本信息页面,它一般包含的基本元素有:文本、【 】、表格和超链接。
在因特网电子邮件系统中,电子邮件应用程序()。
计算机网络的通信子网由通信链路和______组成。
关于Windows2000Server操作系统,下列说法错误的是()。
配置高速缓冲存储器(Cache)是为了解决______。
美国国家标准和技术局在1977年采用的数据加密标准算法属于()。
下列关于VLAN特点的描述中,错误的是()。
在扩展ASCII码中,“l”表示为0011000l,那么“9”表示为______。
随机试题
在时分多路复用通信系统中,每一路所占有的时间间隔称为()。
Heisalreadyinthebathsodonot______himtoanswerthephone.
某项目有4个方案,甲方案财务净现值FNPV=200万元,投资现值Ip=3000万元,乙方案FNPV=180万元,Ip=2000万元;丙方案FNPV=150万元,Ip=3000万元;丁方案FNPV=200万元,Ip=2000万元,据此条件,项目的最好方案是
在Windows98下要激活一个快捷菜单的方法是()。
健康保险中都规定有免赔款条款,其中,全年免配额扣除的对象是()。
在其他因素不变的条件下,如果一国政府在社会保障政策上降低保障标准,则其财政支出占国内生产总值的比重的变化情况是()。
A公司是一家上市公司,业务量增长迅速,预计每年销售收入增长80%~120%。A公司决定通过新建厂房来提高生产能力,为此需要筹措资金6亿元,其中5000万元可以通过公司自有资金解决,剩余的5.5亿元需要从外部筹资。A公司有关财务数据如下:(1)资产总额为3
()对于家具相当于花岗岩对于()
在某应用软件的安装说明书中指出,该应用软件的运行环境为Windows98 SE。这里的SE是指【 】。
ManyAmericans-perhapsmostofthem-aren’treadyforPresidentBush’s"ownershipsociety".Theideasoundsgood.Employeescould
最新回复
(
0
)