首页
登录
从业资格
阅读以下说明和C代码,填补C代码中的空缺(1)~(5),将解答写在答题纸的对应栏
阅读以下说明和C代码,填补C代码中的空缺(1)~(5),将解答写在答题纸的对应栏
admin
2022-08-02
51
问题
阅读以下说明和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<stdio.h> #include<stdlib.h> #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 MAXP1,cdl; /*MAXP1、cd1存放得票最多者的票数和竞选者编号*/ int MAXP2,cd2; /*MAXP2、cd2存放得票次多者的票数和竞选者编号*/ int i,j, totalP; /*tatalp存放总票数*/ fin=fopen("data.txt","r"); if(!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;MAXP1=0;MAXP2=0;cd1=0;cd2=0; for(j=1;j<N+1;j++) { data[M][j]=(2); /* 设置竞选者得票总数初始值 */ for(i=0;i<M;i++) /* 设置j号竞选者的得票总数 */ 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("%.2lf\n",(double)data[M][j]/totalP); } printf("\n"); if((5)>0.5) /* 判断得票数最多者的得票率 */printf("Winner:Candidate-%c\n",cd1+'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],或totalP+=totalP+data[M][j],或其等价表示(5)(double)MAxP1/totalP,或(float)MAXP1/totalP,或其等价表示。其中,将(double)或(float)写在totalP之前亦可本题考查 C 程序设计基本能力。题目中涉及的知识点主要有数组、文件、循环和类型转换,分析程序时首先要明确各个变量(或数组元素)所起的作用,并以语句组分析各段代码的功能,从而完成空缺处的代码填充。根据题目描述,首先将文件中的数据读入数组 data 。显然,i 和 j 分别起行号、列号的作用。行号 i应在一行的数据都读入后增加1,而列号 j 则每读入一个数据就要增加1, 因此空(1)处应填写 "j++" 或其等价形式的语句。将数据读入数组 data 后,以题中的数据为例,data 数组的内容可表示如下:
由于 data[M]
存放 i 号竞选者的得票总数,data[][0]存放的是选区编号,因此 data[M][0]不用。以上表为例,需要将 data[0][l] 、data[l][l] 、...、data[M-l][l]加起来存入data[M] [1] ,因此,空(2) 处应填入 0,以设置data[M][l] 、data[M][2]、..d.ata[M][N]的初始值。空(3)所在的语句组用于找出得票数最多的竞选者,此时,因此之前的最多票数(MAXPl)将成为次多数(MAXP2),即空(3)处填入"MAXP2= MAXPl" 。空(4)处为计算总票数的语句,根据说明,应填入 "totalP += data[M] [j]"或其等价形式。空(5)处为计算票数最多者得票率的表达式,根据说明是将 MAXPl 除以 totalP ,需要注意的是: MAXPl 和 totalP都是整数且 MAXPl 小于totalP,因此应至少对其中的一个数值进行整数到实数的类型转换,否则其结果为0,因此,空(5)处应填入"(double)MAXPl/tota1P"或其等价形式。
转载请注明原文地址:https://tihaiku.com/congyezige/2427573.html
本试题收录于:
初级程序员题库软件水平考试初中高级分类
初级程序员
软件水平考试初中高级
相关试题推荐
根据《建筑工程设计信息模型分类和编码标准》,分类对象编码由表编码、大类代码、中类
根据《建筑工程设计信息模型分类和编码标准》,分类对象编码由表编码、大类代码、中类
解答服务对象的健康问题,帮助其澄清观念、做出决策的人际传播形式称为A.咨询B.个
IE浏览器能够正确解析()代码。A.ASP B.HTML C.JSP D
负责解释执行JavaScript代码的是()。A.Web服务器 B.Web浏览
在网页中创建一个如下图所示的表单控件的HTML代码是()。 A.<input
下列设置图像地图正确的HTML代码是()。A.<areashape="po
()是正确的网页代码结构。A.<html></html><head><
()不是蠕虫病毒。A.冰河 B.红色代码 C.熊猫烧香 D.爱虫病毒
阅读一下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】
随机试题
Cultureshockissonamedbecauseoftheeffectithasonpeoplewhentheyenter
TheBeautyAdvantageMostofushaveheardthes
分项工程验收记录由施工项目专业()填写,专业监理工程师组织施工单位项目专业(
一般说来,全球化企业在进行财务管理时,可根据企业规模大小,经营跨国化的程度以及公
以下对爆破作业操作过程描述正确的是( )。 (1)浅孔爆破发生盲炮时,可向炮
太阳高度角是太阳光的入射方向和地平面之间的夹角。在正午时,太阳高度角为90°
眼膏剂与滴眼剂相比其特点是A、在角膜前滞留时间相对较长 B、需反复频繁点眼
法的指引是一种规范性指引,不同于个别指引,原因在于法的指引具有A.连续性 B.
与班杜拉的社会学习关系最密切的概念是()。 (A)最近发展区(B)自我
六腑的主要生理功能是A.化生精气 B.储存精气 C.藏而不泻 D.传化物而
最新回复
(
0
)