首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
阅读以下说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某单位准备进行一次选举,对指定的n名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上
admin
2008-05-15
36
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel2007中,单元格Al、A2、A3、B1、B2、B3、C1、C2、C3中的值分别为12、23、98、33、76、56、44、78、87,若在单元格D1中输入按条件计算最大值函数“=LARGE(A1:C3,3)”,按回车键后,则D1单元格中的
在Excel中,若要计算出B3:E6区域内的数据的最大值并保存在B7单元格中,应在B7单元格中输入______。
在Excel中,将A1单元格的格式设置为数值,小数位数为2,然后在此单元格输入数值65.2568,按回车后,单元格显示的内容是(59)。
企业移动应用开发目标与消费者需求之间的差距属于应用鸿沟。消费者一般并不关心特定企业移动应用(APP)___________。
以下叙述中,针对应用需求,(68)选用了不适当的信息处理方法。
对某地区家庭人数的抽样调查统计结果如下表:根据此表,该地区每个家庭的平均人数大致为(28)。
为向相关人员以可视化方式展示数据分析结果,首先需要明确目标受众(即需要给哪些人看),并了解他们考虑的一些问题。这些问题一般不包括(69)________________。
在Excel2007中,在单元格A1中输入函数“=POWER(2,3)/MAX(1,2,4)”,按回车键后,则A1单元格中的值为__________。
计算机操作系统的主要功能是______。
在Microsoft Word中点击“文件”→“另存为”,在保存类型下拉框中不能选择的有(45)。
随机试题
试述质量体系的建立与运行。
关于尿试带法检测亚硝酸盐的叙述,错误的是
在一般综合性医院药剂科,合理用药咨询应该属于哪个部门的职责
对已经发生甲类传染病病例的场所,所在地县级以上地方人民政府可对本行政区域内的甲类传染病疫区,省级人民政府可
患者,女,23岁。因低热,腹痛诊断为结核性腹膜炎。近日来呕吐,腹胀,未解大便。最可能的并发症是()
不宜用金属烤瓷冠修复的是
甲与乙于3月5日签订赠与合同,甲将其在郊区的一栋小楼赠与乙,双方于同年6月3日就该小楼办理了有关登记手续,并于同年8月10日将该小楼交付给乙。8月14日,乙因工外出,临行前甲向其借了小楼钥匙说要邀请朋友一起在院内烧烤、喝酒,几个人喝到兴起就说去KTV唱歌,
函数f(x)=ln(x2+1)在区间[一1,2]上的最小值与最大值分别为().
1789年,英国建立了保安官制度,即实行了资产阶级共和国的警察制度。()
设矩阵A的伴随矩阵A*=,则A=________。
最新回复
(
0
)