首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
admin
2008-05-15
42
问题
阅读以下说明和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
=0;
while((1)){
fgets(str,80,fP); /*读入一张选票数据*/
for(tag=0,i=0;(2);i++)
if (str
==’1’) tag++;
if((3)){/*若是有效选票,则进行统计*/
(4);
for(i=0; i<n; i++)
if.(str
==’1’) (5);
}
}
return q;
}/*statistic*/
选项
答案
(1)!feof(fp) (2)i<n && 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个候选人在本张选票上的得票情况。
题目中规定每张选票上被涂黑的圆圈数不得超过3个,也不得少于1个,否则视为无效选票。因此,对于读到的选票数据,首先应判断其是否有效。函数statistic()中的以下代码用于计算一张选票中“1”的个数,从而判断其有效性。
for(tag=0,i=0; (2) ;i++)/* tag用于判断每张选票是否有效*/
if (str
==’1’) tag++
当tag>3或tag<1时,选票无效。
题中已声明候选人数小于80并且通过参数传入了候选人的个数n,因此i的值应小于n,结合串结束标志“\0”将对数组str的元素的访问控制在有效下标范围内,因此空 (2)处填入“i<n&& str
!=’\0’,空(3)处应填入“tag>=1 && tag<=3”。
根据要求,还应计算有效选票的数量,因此空(4)处应填入“q++”。
若str
等于1,说明候选人i在本张选票上得了一票,所以空(5)处应填入“candidate
++’’(在计算票数之前,函数中应将每个候选人的初始得票数设置为0。)
转载请注明原文地址:https://kaotiyun.com/show/PsjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
Windows系统的文件夹组织结构足一种(31)。
以下除(7)外,常选定为数据收集的途径。
下列软件中,属于系统软件的是()。
PowerPoint内置的动画效果中,不包括(60)。
字符串编辑有3种基本操作:在指定位置插入一个字符、在指定位置删除一个字符、在指定位置用另一个字符替换原来的字符。将字符串ABCDE,编辑成ECDFE,至少需要执行(6)次基本操作。
在信息收集过程中,需要根据项目的目标把握数据(7)________________要求,既不要纳入过多无关的数据,也不要短缺主要的数据;既不要过于简化,也不要过于烦琐。
计算机网络中,防火墙的功能不包括________________。
企业数字化转型是指企业在数字经济环境下,利用数字化技术和能力实现业务的转型、创新和增长。企业数字化转型的措施不包括()。
下列快捷功能按钮中,可以在画好的图形内填充颜色的是(49)。
张、王、李三个平等的评委独立对三部电影甲、乙、丙进行了评分(三人的满分标准不同),结果如下表:按合理的平均得分计算,第一、二、三名电影应分别授予(69)。
随机试题
男,60岁,患风湿性关节炎。常用治疗方案是
A.运动刺激试验B.高血糖抑制试验C.TRH兴奋试验D.高血糖素激发试验E.ACTH兴奋试验诊断嗜铬细胞瘤可选取
下列不属于第二类医疗器械的是
下列有关法律解释的说法中哪一项是不正确的?()
首次公募股票时,募集说明书所引用的最近一期财务会计资料在财务报告截止日后()内有效。
下面是一段心理咨询师与求助者之间的会谈内容:心理咨询师:上次我初步了解了您的资料,这次我们继续来谈谈您的困扰好吗?求助者:好的,我丈夫最近几个月对我不太好,感觉他不再爱我了,你能帮助我让我丈夫再爱我吗?心理咨询师:是
需求定律是指在其他因素(非价格因素)不变的条件下,商品的价格和需求量之间存在反向变动的关系,即价格越低,需求量越大;价格越高,需求量越小。根据上述定义,下列涉及需求定律的是:
某公司招录一名高级销售人员,有4个条件:口才好,有两年以上相关工作经历,本科以上学历,具有本地户口。但是前来应聘的甲、乙、丙、丁四人没有一人全部符合。于是公司最终录取了符合条件最多的一人。现已知:(1)任何两个条件配成一对,都恰好有且只有一人符合
Thereasonwhyhewaslateforschoolis______(今天早上他睡过头了).
A、Thebenefitsofstrongbusinesscompetition.B、Aproposaltoreducethecostofproduction.C、Theexpenseofmodernizingthef
最新回复
(
0
)