当前位置:首页计算机类软件水平考试初级程序员->阅读以下说明和C代码,填补C代码中的空缺(1)~(5),将解

阅读以下说明和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[i][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[i][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] 存放 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"或其等价形式。

更新时间:2021-11-30 17:49

你可能感兴趣的试题

单选题

( )is that it provides guidance and direction on how quality will be managed and verified throughout the project.

  • A.Plan Quality Management
  • B.Manage Quality
  • C.Control Quality
  • D.Project Charter
查看答案
单选题

( )the process of determining,documenting,and managing stakeholder needs and requirements to meet Project objectives.

  • A.Plan Scope Management
  • B.Collection Requirements
  • C.Validate Scope
  • D.Control Scope
查看答案
单选题

The information security management system preserves the confidentiality,integrity and availability of information by applying a( ).

  • A.technology management process
  • B.resource management process
  • C.quality management process
  • D.risk management process
查看答案
单选题

( )is a decentralized database,ensure that the data will not be tampered with and forged.

  • A.Artificial intelligence
  • B.Blockchain
  • C.Sensing technology
  • D.Big datA
查看答案
单选题

( )puts computer resources on the web,and must meet the requirements of super capacity,super concurrency,super speed and super security.

  • A.Cloud computing
  • B.Big datA
  • C.Blockchain
  • D.Internet of things
查看答案
单选题

分配甲、乙、丙、丁四个人去完成五项任务。每人完成各项任务时间如表所示。由于任务多于人数,故规定其中有一个人可兼完成两项任务,其余三人每人完成一项。为了花费时间最少,( )应该完成两项任务。

高级信息系统项目管理师,历年真题,2021年下半年《信息系统项目管理师》真题

  • A.甲
  • B.乙
  • C.丙
  • D.丁
查看答案
单选题

已知某公司生产AB两种产品,其中生产1件A产品需要1个单位的甲资源,3个单位的丙资源;生产1件B产品需要2个单位的乙资源和2个单位的丙资源。已知现有甲乙丙三种资源4个单位、12个单位和18个单位。通过市场预测,可知A产品的单位市场利润为2元,B产品的单位市场利润为5元。该公司获得最大的市场利润应生产A产品(68)件,此时(69)资源仍有剩余。

  • A.甲
  • B.乙
  • C.丙
  • D.甲及丙
查看答案
单选题

已知某公司生产AB两种产品,其中生产1件A产品需要1个单位的甲资源,3个单位的丙资源;生产1件B产品需要2个单位的乙资源和2个单位的丙资源。已知现有甲乙丙三种资源4个单位、12个单位和18个单位。通过市场预测,可知A产品的单位市场利润为2元,B产品的单位市场利润为5元。该公司获得最大的市场利润应生产A产品(68)件,此时(69)资源仍有剩余。

  • A.0
  • B.2
  • C.4
  • D.6
查看答案
单选题

某项目2016年投资额12万元,2018年开始取得项目的净收益(产品一原料辅料及公用工程)6万元/年,2018-2021年每年还会产生其他成本(包括人员工资、管理成本、制造成本等)1.1万元/年;増值税0.35万元/年、营业税金及附加0.05万元/年。则该项目的静态投资回收期为(66)年,截止到2021年底该项目的投资收益率是(67)。

  • A.0.25
  • B.0.33
  • C.0.35
  • D.0.6
查看答案
单选题

安全审计的手段主要包括( )。

  • A.①②③
  • B.②③④
  • C.①②④
  • D.①③④
查看答案