首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
admin
2008-05-15
45
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
如果某张幻灯片中叠合多个数据图表,比较好的处理方法是________。
某企业准备将3项工作A、B、C分配给甲、乙、丙三人,每人分别做一项。估计各人完成各项工作所需的天数如下表所示:为使完成这三项工作所需的总天数最少,应选最优的分配方案。在最优分配方案中,(69)。
企业建立数据处理系统需要考虑的原则不包括________。
“Windows是一个多任务操作系统”指的是_______。
下列选项中,既是输入设备又是输出设备的是(6)。
信息系统设计方案中的操作界面部分,特别是输入界面设计方案需要征求信息处理技术员的意见。在如下设计理念中,(66)是不正确的。
数据处理过程中,影响数据精度的因素不包括(10)________________。
根据某机构的统计与推测,我国人口中男性和女性各个年龄段的百分比如下图。根据该图,以下叙述中正确的是________________。
为向相关人员以可视化方式展示数据分析结果,首先需要明确目标受众(即需要给哪些人看),并了解他们考虑的一些问题。这些问题一般不包括(69)________________。
以下(1)属于ASP.NET创建的网页程序文件。(1)A.index.aspB.index.htmC.index.aspx从以下备选答案内为程序中(3)~(7)处空缺选择正确答案。(3)A.requestB.res
随机试题
在实际工作中,践行诚信职业道德规范,必须()。
PHA受体表达在C3b受体表达在
A.氯氮平B.苯巴比妥C.阿米替林D.苯妥英钠E.卡马西平属于二苯并庚二烯类的是()。
证券发行市场的组成部分是()。
现年45岁的李先生决定自今年起每年过生日时将100130元存入银行直到60岁退休;假定存款的利率是3%并保持不变,则退休时李先生将拥有多少银行存款可用于退休养老之用?()
社会工作者在进行社区教育宣传时,应注意符合宣传对象的()。
陶澍,字云汀,湖南安化人。嘉庆七年进士,选庶吉士,授编修,迁御史、给事中。澍疏劾河工冒滥,及外省吏治积弊。巡南漕,革陋规,请浚京口运河。二十四年,出为川东道。总督蒋攸铦荐其治行为四川第一。道光三年,陶澍就擢巡抚。安徽库款,五次清查,未得要领。澍自
童年期的主要活动是()。
Whydoescreamgobadfasterthanbutter?Someresearchersthinktheyhavetheanswer,anditcomesdowntothestructureofthe
简述不安抗辩权的构成要件。(2014年一专一第53题)
最新回复
(
0
)