首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,填补C代码中的空缺(1)~(5),将解答写在答题纸的对应栏内。 【说明】 某市在进行市长选举,该市共分为M个选区(1<M<6,从1开始顺序编号),共有N个候选者参选(1<N<5,从A开始顺序编号)。经投票后,所得选票数
阅读以下说明和C代码,填补C代码中的空缺(1)~(5),将解答写在答题纸的对应栏内。 【说明】 某市在进行市长选举,该市共分为M个选区(1<M<6,从1开始顺序编号),共有N个候选者参选(1<N<5,从A开始顺序编号)。经投票后,所得选票数
admin
2013-07-03
47
问题
阅读以下说明和C代码,填补C代码中的空缺(1)~(5),将解答写在答题纸的对应栏内。
【说明】
某市在进行市长选举,该市共分为M个选区(1<M<6,从1开始顺序编号),共有N个候选者参选(1<N<5,从A开始顺序编号)。经投票后,所得选票数据如下表所示。
现已将选票数据存入文本文件data.txt,该文件内容格式如下:共有M行,每行N十1个整数,第一个整数为选区编号,随后为N个候选者在该选区所得票数。
下面的程序先从文件中读入选票数据存入二维数组data,然后完成下列功能:
a.计算并显示每个竞选者获得的选票数及占总选票数的百分比;
b.如果任一竞选者获得的选票数超过总票数的50%,则显示竞选者获胜;
c.如果没有竞选者获得总选票数的50%以上,则显示两位得票最高的竞选者需再进行决选。
在下面的程序代码中,竞选者A的编号为1,竞选者B的编号为2,以此类推。
【C代码】
#include
#include
#define M 5 /*选区数*/
#define N 4 /*竞选者人数*/
int main(int argc,char argv[])
{
FILE*fin;
int data[M+1][N+1]; /*data[][0]存放选区编号,data[M][J]存放J号竞选者得票总数*/
int maxpl,cd1: /*maxp1、cd2存放得票最多者的票数和竞选者编号*/
int maxp2,cd2; /*maxp2、cd2存放得票次数多者的票数和竞选者编号*/
int i,j,totalP; /*tatalp存放总票数*/
fin=fopen(”data.txt”,”r”);
Ii(!fin)return-1;
i=0; j=0;
While(!feof(fin)){ /*从文件读入数据*/
Fscanf(fin,”%d”,&data
[j]);
(1)
;
if(j>N) {j=0;i++;}
}
fclose(fin);
totalP=0;maxpl=0;maxp2=0;cdl=0;cd2=0;
for(j=1;j<N+1;j++)
{
data[M][j]=
(2)
; /*设置j号竞选者的票总数初始值*/
for(i=0;i<M;i++)
data[M][j]+=data
[j]:
if(data[M][j]>MAXP1)
{
(3)
;cd2=cd1;
MAXP1=data[M][j];cd1=j;
}
else
if(data[M][j]>MAXP2){MAXP2=data[M][j];cd2=j;}
(4)
; /*计算总票数*/
}
for(j=1;j<N+1;j++)
{
printf(”candidate—%c:%d ”,j+‘A’一1,data[M][j]);
printf(”%.21f\n”,(double)data[M][j]/totalP):
}
printf(”n”):
if(
(5)
>0.5) /*判断得票数最多者的得票率*/
printf(”winner:candidate-%c\n”,cdl+‘A’-1);
else
printf(”result:candidate-%c pk candidate-%c\n”,cd1.+‘A’-1,cd2+‘A’-1);
system(”pause”);
return 0:
}
选项
答案
(1)j++或++j或其等价表示 (2)0 (3)MAXP2=MAXP1 (4)totalP+=data[M][j]或其等价表示 (5)(double)MAXP1/totalP,(float)MAXP1/totalP或其等价表示
解析
本题考查考生综合运用C语言的知识解决实际问题的能力。
根据题目描述和程序段的注释说明,(1)处实现从文件读入数据到数组data中,i和j分别为行号和列号。行号i应在一行数据都读入后增加1,而列号j则每读取一个数据就要增加1。因此,(1)处应填入j++或其等价表示形式。
由于data[M]
存放i号竞争者的得票总数,data[M][0]存放的是选区编号,因此data[M][0]不用。(2)处用于设置j号竞选者的票总数初始值,而在没有统计前其初始值应为0。因此,(2)处应填入0。
(3)处用于找出得票数最多的竞选者。此时,之前的最多得票(MAXPl)将成为次多得票(MAXP2)。(3)处应填入MAXP2=MAXP1。
(4)处用于计算总票数。根据题目的说明,此处应填入totalP+=data[M][j]或其等价表示。
(5)处用于计算得票数最多者的得票率。根据题目的说明,应将MAxP1除以totalP。但需要注意的是,MAXP1和totalP都是整数且MAXP1小于totalP,因此应至少对其中的一个数值进行整数到实数的类型转换,否则其结果将为0。因此,(5)处应填入(dotable)MAXP1/totalP或其等价表示。
转载请注明原文地址:https://kaotiyun.com/show/enjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Word2010中,要对设定好纸张大小的文档进行每页行数和每行字数调整,可通过页面设置对话框中的()命令进行设置。
在Excel2007中,在单元格A1中输入函数“=POWER(2,3)/MAX(1,2,4)”,按回车键后,则A1单元格中的值为__________。
在Excel中,设单元格A1中的值为100,B1中的值为200,A2中的值为300,B2中的值为400,若在A3单元格中输入函数“=SUM(A1:B2)”,按回车键后,A3单元格中的值为()。
四位二进制数(从0000到1111)中,不含连续三位相同数字的数共有(4)个。
在Excel2010的A1单元格中输入函数“=IF(1<>2,1,2)”,按回车键后,A1单元格中的值为________________。
某商场记录(统计)销售情况的数据库中,对每一种商品采用了国家统一的商品编码。这种做法的好处不包括(11)________________。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
在Word的编辑状态下,先后新建了两个文档,但并没有对这两个文档做“保存”或“另存为”操作,则______。
计算机病毒是一段程序,一般隐藏在______中。
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明在一台计算机上安装完成Windows2000服务器及相应的服务组件。
随机试题
导致巴比妥类药物中毒致死的主要原因是
某男,65岁。患者平素急躁易怒,1月前突现半身不遂,口眼歪斜。现症见:半身不遂,患侧肢体僵硬拘挛,兼见头晕头痛,面赤耳鸣,舌红,苔薄黄,脉弦涩。中医诊断为中风。该患者适宜的方剂为()。
药品批发企业负责人中主管质量管理工作的人员应具有药品批发企业从事质量管理工作的人员应具有
下列各项中,不符合五行生克规律的是()。
某房地产开发商在其新建项目的开盘仪式上,承诺对前80名购房者给予209/6的价格优惠,这种价格折扣技巧属于()。
下列有关直接报告业务的表述中,错误的是( )。下列属于合理保证鉴证业务目标的是( )。
已知枚举类型定义语句为:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};则下列叙述中错误的是()。
PaulStraussmann,retiredvicepresidentofXerox,indicatesinhisbookInformationPay-offthat"almosthalfoftheU.S.info
A、Theycan’timmediatelygetbackthemoneypaidfortheirmedicalcost.B、Theyhavetogothroughverycomplicatedapplication
A、Hehastopickuphistoolkits.B、Hehastotakeabushome.C、Hehastoopenhisstoreinthemorning.D、Hehastopickuph
最新回复
(
0
)