试题二
阅读以下说明和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)i<n && str[i]!=’\0’,或其等价形式
(3)tag>=1 && tag<=3,或其等价形式
(4)q++,或其等价形式
(5)candidate[i]++,或其等价形式
解析:
[分析]: 试题二
本题考查C语言中的文件操作和简单数据处理。
C语言提供了大量的库函数,用于创建和使用数据文件。
在C语言中,必须在处理数据文件(甚至创建数据文件)之前将其打开。打开一个文件的库函数为
fopen(文件名,打开方式);
其中,文件名包含路径,以字符串形式给出,函数返回一个指针。打开方式如下表所示:
打开 方式
单项选择题 案例分析题
|