首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
admin
2008-05-15
25
问题
阅读以下说明和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://jikaoti.com/ti/BZW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
操作员对某软件人机界面的以下评价意见中,______并不是表扬。
某关系表定义了“姓名”、“身份证号”、“性别”、“年龄”4个字段,其中(60)字段可以作为此关系表的主键。
在PowerPoint 2000中,如果要更改幻灯片上对象出现的顺序,应设置“自定义动画”中的(62)。
描述事物的数据有绝对数据和相对数据之分。大气中氧气的含量属于相对数据,常用______形式表示。
一般来说,收集到的数据经过清洗后,还需要进行分类、排序等工作。这样做的好处主要是(65)________________。
________________是按照科学的城市发展理念,利用新一代信息技术,通过人、物、城市功能系统之间的无缝连接与协同联动,实现自感知、自适应、自优化,形成安全、便捷、高效、绿色的城市形态。
某地区考试机构准备对信息处理技术员考试笔试成绩(BS)不低于45分,并且机考成绩(JK)为43~44分者进行重点复查。对考生成绩表进行筛选操作时,正确描述上述条件的表达式是(27)。
在Excel2007中,(43)________________不是计算从A1到A6单元格中数据之和的公式。
在Word2010“查找和替换”文本框中,输入()符号可以搜索0到9的数字。
信息产业部最近制定并发布的手机充电器统一标准,在全国范围内是(22)。
随机试题
低输出量性心力衰竭(lowoutputheartfailure)
关于垂体微腺瘤MRI扫描方法的描述,错误的是
贲门周围血管离断术,需要结扎、切断高位食管支至贲门上方
医疗机构药学专业技术人员不得少于本机构卫生专业技术人员的
工程开工前总监应与建设单位、承包单位对资料的( )达成一致的意见。
【2011年真题】某项产品的功能与成本关系如下图所示,功能水平F1,F2,F3,F4均能满足用户要求,从价值工程的角度,最适合的功能水平应是()。
预算收入划分为中央预算收入和地方预算收入。()
单位活期存款账户的主办账户是(),注册验资时开立的账户是()。
马斯洛的需要层次理论认为()。
“三个有利于”标准是()。
最新回复
(
0
)