首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
对10个候选人进行选举,现有一个100条记录的选票文件IN84.DAT,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符O或1,1表示此人被选中,0表示此人未被选
对10个候选人进行选举,现有一个100条记录的选票文件IN84.DAT,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符O或1,1表示此人被选中,0表示此人未被选
admin
2011-11-13
30
问题
对10个候选人进行选举,现有一个100条记录的选票文件IN84.DAT,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符O或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数大于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数 CoutRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WfiteDat()把结果”输出到文件OUT84.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WfiteDat()的内容。
试题程序:
#include<Stdio.h>
char xx[100][11];
int YY[10];
int ReadDat(void);
void WriteDat(void);
void C0utRs(void)
{
}
void main()
{
int i;
for(i=0;i<10;i++)
yy
=0;
if(ReadDat())
{
printf ("数据文件IN84.DAT不能打开! \n\007" );
return;
}
CoutRs();.
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i;
char tt[13];
if((fp=fopen("IN84.DAT","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= foDen("OUT84.DAT","w");
for(i=0;i<10;i++)
{
fprintf( fp, "%dkn", yy [ i ] );
printf(,"第%d个人的选票数=%d\n", i+1,yy
);
}
fclose(fp);
}
选项
答案
void CoutRs (void) { int i,count, j; char *pf; for (i=0; i<10;i++) yy[i] =0; for (i=0; i<100; i++) { pf=xx[i]; /*指针pf指向字符串的第一个字符* / count=0; while (*pr) if (*Df== ’1’) { count++; /*统计每条记录中1的个数*/ pf++; } else pf++; if (count<=5) /*如果每条记录中1的个数小于等于5则为有效票*/ { pf=xx [i]; /*指针pf指向字符串的第一个字符*/ j=0; while (*pf) /*统计每个人的选票数并把得票数依次存入yy [0]到yy [9] 中*/ if (*pf==’1’) { yy[j]+=1; j++; pf++; } else if(*pf==’0’) { j++; pf++; } } } }
解析
本题考查的知识点如下:
(1)二维数组的操作。
(2)指向数组的指针。
在本题中,要先判断选票是否有效。因为记录存放在一个二维数组中,为了简便我们为数组的一组元素定义一个指向该数组每一行数据的指针,例如,chaf*p=xx[2]。初始时该指针指向该行的第一个元素,指针地址每加1,则指向下一个元素。这样就可以轻松地统计每一个选票。设一变量标记每一个选票中1的个数,若其不大于5,则选票有效。若选票有效,则依次查看哪一个元素为1,在数组”相应的元素上加1。使用循环实现对所有记录的访问。
转载请注明原文地址:https://kaotiyun.com/show/zgvZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
在下面列出的条目中,哪个(些)是当前应用开发工具的发展趋势?()Ⅰ.采用三层或多层Client/Server结构Ⅱ.支持Web应用Ⅲ.支持开放的、构件式的分布式计算环境
数据结构包括3个方面的内容是数据的______、数据的逻辑结构、数据的运算。
下列问题基于下面的叙述;某二叉树节点的前序序列为E、A、C、B、D、G、F,对称序序列为A、B、C、D、E、F、G。
能构造出多少棵不同的二叉排序树?______。这些二叉排序树中有多少棵是最佳二叉排序树?______。
下列问题基于如下描述:现有关键码值分别为10、20、30、40的4个节点,按所有可能的插入顺序去构造二叉排序树。
以下关于顺序存储结构的叙述中,哪一条是不正确的?______。
数据库管理系统中,为了保证事务的正确执行,维护数据库的完整性,要求数据库系统维护以下事务特性:_____、一致性、隔离性和持久性。
在文件系统中,文件的逻辑结构可分为两类,它们是_____文件和记录式文件。
系统为了管理文件,设置了专门的数据结构文件控制块(FCB)。FCB是在执行_____文件系统调用时建立的。
下面哪一种方法不能用于提高文件目录检索效率?______。
随机试题
背景民用机场滑行道道面与道肩无明显区别时,要求画滑行道边线,而且在滑行道边线转弯处设置下图所示的横道线(横道线指向圆心)。某施工单位的技术人员在只有皮尺和计算器的条件下完成了转弯横道线的定位任务。画线人员是怎么保证两条双黄线始终保持等距离?
林某与甲房地产经纪公司签订房屋委托购买合同。合同约定,甲公司为林某购买某小区一套住房,房价款为24万元。购房定金1万元,林某一次性支付购房款,其首付款不低于房价款的30%,余款在该房房屋产权转移前3日内补齐。甲公司为林某办理房屋过户手续后,林某支付8万元,
(三)某套住宅的建筑面积为100m2,套内建筑面积为80m2,套内使用面积为70m2,其中餐厅、厨房及卫生问面积为40m2,由于该住宅的卫生间偏小,经买卖双方协商,卖方给予了一定的优惠,最终议定的单价为6000元/m2,房价款在成交时一次性付清,但单价的内
建设工程在施工过程中,建设单位或者施工单位发生变更的,应当重新申请领取施工许可证。()
以完成一定工作任务为期限的劳动合同或者劳动合同期限不满3个月的,试用期不得超过10天。()
中华人民共和国的一切权力属于()
根据澳门特别行政区基本法。下列表述正确的有()。
近代中国社会的阶级结构是“两头小中间大”,“中间”是指()
与表达式a+=b等价的另一书写形式是______。
WhatmakesAmericansspendnearlyhalftheirfooddollarsonmealsawayfromhome?TheanswerslieinthewayAmericanslivetod
最新回复
(
0
)