阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上被涂黑的圆圈数不得超过3个,也不得少于1个,否则视为无效选票。投票结束后,所有选票经计算机扫描处理,形成了描述选票状态的文本文件。例如,n=8时所形成的文件如下:010110001001010010011000111111110000000000111000其中,

题目

阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上被涂黑的圆圈数不得超过3个,也不得少于1个,否则视为无效选票。投票结束后,所有选票经计算机扫描处理,形成了描述选票状态的文本文件。例如,n=8时所形成的文件如下:

01011000

10010100

10011000

11111111

00000000

00111000

其中,每行表示一张选票的数据,每列代表一位候选者的得票情况。第i行第j列为1,表示第i张选票上投了第j名候选人1票。

函数statisdc()的功能是读入选票数据,并统计每位候选者的得票数,函数返回有效选票数。

【C函数】

int statistic(FILE*fp,int candidatet[],int n)

{ /*从文件中读入选票数据,n为候选人数量(n<80),从有效选票中统计每位候选者的得

票数并存入candidate[],函数返回有效选票数*/

char str[80]; /*str保存读入的一张选票数据*/

int i,tag=0; /* tag用于判断每张选票是否有效*/

int q=0; /*q用于计算有效选票数*/

for(i=0;i<n; i++)

candidate[i]=0;

while((1)){

fgets(str,80,fP); /*读入一张选票数据*/

for(tag=0,i=0;(2);i++)

if (str[i]=='1') tag++;

if((3)){/*若是有效选票,则进行统计*/

(4);

for(i=0; i<n; i++)

if.(str[i]=='1') (5);

}

}

return q;

}/*statistic*/


相似考题
参考答案和解析
正确答案:(1)!feof(fp) (2)in && str[i]!='\0'或其等价形式 (3)tag>=1 && tag=3或其等价形式 (4)q++或其等价形式 (5)candidate[i]++或其等价形式
(1)!feof(fp) (2)in && str[i]!='\0',或其等价形式 (3)tag>=1 && tag=3,或其等价形式 (4)q++,或其等价形式 (5)candidate[i]++,或其等价形式 解析:本题考查C语言中的文件操作和简单数据处理。
  C语言提供了大量的库函数,用于创建和使用数据文件。
  在C语言中,必须在处理数据文件(甚至创建数据文件)之前将其打开。打开一个文件的库函数为
  fopen(文件名,打开方式);
  其中,文件名包含路径,以字符串形式给出,函数返回一个指针。打开方式如下表所示:
 
关闭文件的函数为fclose(文件指针)。
  本题目中将文件指针作为参数传递给函数statistic(),表明文件已经打开,无须在该函数中打开和关闭文件。
  根据文件打开之后的用途,可将进行读/写操作的数据文件分成两类:文本文件和二进制文件。
  文本文件有一个结束标志(最后一个字符是码值为26的ASCII字符),读取函数在文件中发现该字符后向调用程序返回一个EOF。
  文件指针为fp,feof(fp)用来测试fp所指向的文件当前状态是否“文件结束”,若是,则函数返回值为1,否则返回值为0。如果/顷序读入文本文件fp中的数据,每次读取一个字符,则代码如下:
  while(!feof(fp))
  {
    ch=fgetc(fp);
    .
    .
    .
  }
  因此,函数中空(1)处应填入“!feof(fp)”。
  fgets()的作用是从指定文件中读入一个字符串,函数调用方式为“fgets(str,n,fp)”,从fp指向的文件输入n-1个字符,并把它们放到字符数组str中,如果在读入n-1个字符结束之前遇到换行符或EOF,则结束读入。
  根据数据文件的内容安排,函数中通过语句“fgets(str,80,fp);”每次读入一行数据(一张选票的信息),str[i]为第i个候选人在本张选票上的得票情况。
  题目中规定每张选票上被涂黑的圆圈数不得超过3个,也不得少于1个,否则视为无效选票。因此,对于读到的选票数据,首先应判断其是否有效。函数statistic()中的以下代码用于计算一张选票中“1”的个数,从而判断其有效性。
  for(tag=0,i=0; (2) ;i++)/* tag用于判断每张选票是否有效*/
   if (str[i]=='1') tag++
  当tag>3或tag1时,选票无效。
  题中已声明候选人数小于80并且通过参数传入了候选人的个数n,因此i的值应小于n,结合串结束标志“\0”将对数组str的元素的访问控制在有效下标范围内,因此空 (2)处填入“in&& str[i]!='\0',空(3)处应填入“tag>=1 && tag=3”。
  根据要求,还应计算有效选票的数量,因此空(4)处应填入“q++”。
  若str[i]等于1,说明候选人i在本张选票上得了一票,所以空(5)处应填入“candidate[i]++'’(在计算票数之前,函数中应将每个候选人的初始得票数设置为0。)
更多“阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上被涂黑的圆圈数不得超过3个,也不得少于1个,否则视为无效选票。投票结束后,所有选票经计算机扫描处理,形成了描述选票状态的文本文件。例如,n=8时所形成的文件如下:010110001001010010011000111111110000000000111000其中,”相关问题
  • 第1题:

    在实行直接选举的地方,代表候选人需要获得( )方为当选。

    A.全体选民的2/3选票

    B.全体选民过半数的选票

    C.参加投票的选民的2/3选票

    D.参加投票的选民的过半数的选票


    参考答案:D

  • 第2题:

    某选区有25000名选民,其中12300人参加了选举,候选人王某得了6300张选票,候选人张某得了6000张选票,候选人李某得了3000张选票,则( )。

    A.张某能当选

    B.李某能当选

    C.王某能当选

    D.谁都不能当选


    正确答案:D
    解析:考查要点是选举的民主程序。根据我国有关法律的规定,在直接选举的地方,选区全体选民过半数参加投票,选举有效。代表候选人获得参加投票的选民过半数的选票时,始得当选。在本选区的25000名选民中,只有12300人参加了选举,未过半数,选举无效。因此,D项是正确的;A项、B项、C项是错误的。

  • 第3题:

    根据《中华人民共和国选举法》的规定,在人大代表选举中,实行直接选举的地方,代表候选人需要获得()方能当选。

    A.全体选民过半数的选票
    B.全体选民的2/3选票
    C.参加投票的选民过半数的选票
    D.参加投票的选民的2/3选票

    答案:C
    解析:
    《全国人民代表大会和地方各级人民代表大会选举法》第43条第1款规定,在选民直接选举人民代表大会代表时,选区全体选民的过半数参加投票,选举有效。代表候选人获得参加投票的选民过半数的选票时,始得当选。故C项正确。

  • 第4题:

    下列关于直接投票选举的表述正确的是(  )。
    A.选区全体选民够半数参加投票选举有效
    B.选区全体选民过半数参加投票选举有效
    C.代表候选人获得参加投票的选民的三分之二选票即可当选
    D.代表候选人获得参加投票的选民的半数选票即可当选


    答案:B
    解析:
    【精解】根据《选举法》第41条的规定,在选民直接选举人大代表时,选区全体选民的过半数参加投票,选举有效。注意:这里是“过半数”,而不是“够半数”,故A项表述错误,B项表述正确。根据《选举法》第41条的规定,代表候选人获得参加投票的选民过半数的选票时,始得当选。注意:这里是“过半数”,而不是“半数”,故C、D表述都是错误的。

  • 第5题:

    在实行直接选举的地方,人民代表大会代表候选人需要获得()才能当选。

    • A、全体选民过半数的选票
    • B、全体选民的2/3选票
    • C、参加投票的选民的过半数的选票
    • D、参加投票的选民的2/3选票

    正确答案:C

  • 第6题:

    选票上不注明选举人的姓名,选票由本人填写,并由选举人本人将选票投入专用票箱的投票被称为()。

    • A、私人投票
    • B、秘密投票
    • C、盲投
    • D、无记名投票

    正确答案:D

  • 第7题:

    选举人在选票上同时填写所选候选人的名字和选举人自己的名字的投票方式是()

    • A、欢呼投票
    • B、唱名投票
    • C、举手投票
    • D、双记名投票

    正确答案:D

  • 第8题:

    在选举工作中,如果收到的选票()实发选票,则选举无效,需要重新发票进行选举。

    • A、多于
    • B、等于
    • C、少于

    正确答案:A

  • 第9题:

    选举车间工会委员会收回的选票,()选举无效,应重新选举。

    • A、等于投票人数
    • B、少于投票人数
    • C、多于投票人数

    正确答案:C

  • 第10题:

    单选题
    选票上不注明选举人的姓名,选票由本人填写,并由选举人本人将选票投入专用票箱的投票被称为()。
    A

    私人投票

    B

    秘密投票

    C

    盲投

    D

    无记名投票


    正确答案: B
    解析: 暂无解析

  • 第11题:

    单选题
    选举人在选票上同时填写所选候选人的名字和选举人自己的名字的投票方式是()
    A

    欢呼投票

    B

    唱名投票

    C

    举手投票

    D

    双记名投票


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    地方人大选举时,获得过半数选票的候选人人数超过应选名额时()。
    A

    以得票多的当选

    B

    进行另行选举

    C

    进行再次投票

    D

    进行重新投票


    正确答案: A
    解析: 暂无解析

  • 第13题:

    以下说法不符合《选举法》的是()

    A、每次选举所投的票数,多于投票人数的无效

    B、每次选举所投的票数,少于投票人数的无效

    C、每选票所选的人数,多于规定应选代表人数的作废

    D、每选票所选的人数,等于或少于规定应选人数的有效


    参考答案:B

  • 第14题:

    试题三(共 15 分)

    阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。


    正确答案:

  • 第15题:

    某选区共有选民14000人,王某是数位候选人之一.根据《宪法》和《选举法》的规定,王某可以当选的情形是(  )。
    A.加投票的人数为6995人,获得选票6990张
    B.参加投票的人数为8200人,获得选票4500张
    C.参加投票的人数为13600人,获得选票6500张
    D.参加投票的人数为14500人,获得选票 13000张


    答案:B
    解析:
    【精解】《选举法》第41条第1款的规定,在选民直接选举人大代表时,选区全体选民的过半数参加投票,选举有效,代表候选人获得参加投票的选民过半数的选票时,始得当选。本题中选民共14 000人,参加投票选民过半数即为7001人,A项中参加投票的选民没有过半数,故应排除。C项中参加投票的人数虽超过半数,但代表候选人获得的选票没有过半数(6 801人),故应排除。只有B项符合当选要求,故选B项。根据《选举法》第40条的规定,每次选举所投的票数,多于投票人数的选举无效,故排除D项。

  • 第16题:

    为什么要规定“每次选举收回的选票,等于或少于投票人数,选举有效;多于投票人数,选举无效”?


    正确答案:团内选举,每一选举人在一次选举中都享有平等的权利。选举人无论是什么性别、年龄、职业、身份、民族,都是在平等的基础上参加选举的。每一选举人在选举中只能行使本人的权利。任何人在选举活动中都没有特权。因此,在一次选举中,发出选票数应与参加选举的人数相等;收回选票数应等于发出选票票数。如果收回选票数少于发出选票数,则可能有的选举人在拿到选票后,出于某种原因没有投票(以不投票的方式表示弃权),这种情况是正常的。如果收回票数多于发出票数,则必然有人多投了票,这里有伪造投票或其他舞弊的可能。这种情况违反了选举权的平等原则,除查明予以处理外,这次选举应告无效。

  • 第17题:

    选举收回的选票,少于投票人数,选举();多于投票人数,选举,应()。


    正确答案:有效;无效;重新选举

  • 第18题:

    地方人大选举时,获得过半数选票的候选人人数超过应选名额时()。

    • A、以得票多的当选
    • B、进行另行选举
    • C、进行再次投票
    • D、进行重新投票

    正确答案:A

  • 第19题:

    在村民委员会选举中,另行选举的,第一次投票未当选的人员得票多的为候选人,候选人以得票多的当选,但是所得票数不得少于已投选票总数的()。


    正确答案:三分之一

  • 第20题:

    在实行直接选举的地方,代表候选人需要获得()方为当选。

    • A、全体选民过半数的选票
    • B、全体选民的2/3选票
    • C、参加投票的选民的过半数的选票
    • D、参加投票的选民的2/3选票

    正确答案:C

  • 第21题:

    选举收回的选票,等于或少于发出选票的,();多于发出选票的,(),应重新选举。


    正确答案:选举有效;选举无效

  • 第22题:

    问答题
    为什么要规定“每次选举收回的选票,等于或少于投票人数,选举有效;多于投票人数,选举无效”?

    正确答案: 团内选举,每一选举人在一次选举中都享有平等的权利。选举人无论是什么性别、年龄、职业、身份、民族,都是在平等的基础上参加选举的。每一选举人在选举中只能行使本人的权利。任何人在选举活动中都没有特权。因此,在一次选举中,发出选票数应与参加选举的人数相等;收回选票数应等于发出选票票数。如果收回选票数少于发出选票数,则可能有的选举人在拿到选票后,出于某种原因没有投票(以不投票的方式表示弃权),这种情况是正常的。如果收回票数多于发出票数,则必然有人多投了票,这里有伪造投票或其他舞弊的可能。这种情况违反了选举权的平等原则,除查明予以处理外,这次选举应告无效。
    解析: 暂无解析

  • 第23题:

    单选题
    在选举工作中,如果收到的选票()实发选票,则选举无效,需要重新发票进行选举。
    A

    多于

    B

    等于

    C

    少于


    正确答案: B
    解析: 暂无解析