问题 问答题

现有一个10个人100行的选票数据文件in.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于等于8或者小于等于2个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[g]中。把结果yy输出到文件out.dat中。
注意:部分源程序给出如下。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
[试题源程序]
#include<stdio.h>
char xx[100][11];
int yy[10];
int ReadDat(void);
void WriteDat(void);
void CountRs(void)


void main()

int i;
for(i=0;i<i0;i++)yy[i]=0;
if(ReadDat())

printf("can not open the file IN.DAT!\n\007");
return;

CountRs();
WriteDat();

int ReadDat(void)

FILE*fp;
int i:
if((fp=fopen("IN.DAT","r"))==NuLL)return 1;
for(i=0;i<100;i++)
if(fgets(xx[i],12,fp)==NULL)return 1;
xx[i][10]=’\0’;

fclose(fp);
return 0;

void WriteDat(void)

FILE*fp;
int i:
fp=fopen("OUT.DAT,"w");
fol(i=0;i<10;i++)

fprintf(fp,"%d\n",yy[i]);
printf("第%d个人的选票数=%d\n",i+1,yy[i]);

fclose(fp);

答案

参考答案:void CourtRs(void)
{
int i,j,cnt;
for(i=0;i<100;i++) /*遍历数组xx的每一行*/
{
cnt=0; /*计数值清0*/
for(j=0;j<10;j++) /*第一遍扫描统计该行所选人数*/
if(x[i][j]==’1’) /*若该位被选中,则计数值增1*/
cnt++:
if(cnt<8&&cnt>2) /*若该张选票人数在2到8个人*/
for(j=0;j<10;j++) /*遍历所有选票,并增加相应的计数值*/
if(xx)[[i][j]==’1’)
yy[j]++;
}
}

解析: 本题主要考查的是选票问题。首先用for循环和变量i遍历每一张选票,也就是每一行,对于某行xx[i]使用for循环和变量j遍历该行的每个元素,使用变量cnt统计该行所选的人数,也就是元素值为1的个数。如果该行所选人数cnt小于8并且大于2,则该选票有效,再次遍历这一行,如果选中,则第j个人的选票数yy[j]就加1。遍历完所有行后得到的yy[j]就是第j个人的有效的选票数。

单项选择题
单项选择题

案例八


求助者一般资料:敏儿,23岁,女性,公司职员。
求助者主诉:半个月以前在办公室里晕倒过几次,担心会经常晕倒,所以就请假一直呆在家里。去过医院检查没有任何躯体疾病,父母担心女儿会有心理问题,就带来做心理咨询。
求助者家庭背景:求助者父母都是农民,家境不是很好。家中就敏儿一个孩子,父母都很宠爱她。父母都比较关心女儿的学习,希望女儿能够考上大学,摆脱农村的生活,出人头地。对于生活上的小事情,父母每一件都要过问,遇到困难父亲首当其冲,不让女儿受到一点委屈。平时怕女儿出去吃亏,很少让女儿和朋友们一起玩,出去的时候都要陪同着。敏儿的性格内向,遇到事情不果断,不自信,没有个性。虽然学习很努力,但是成绩一直很平常。
求助者现病史:半个月前公司要进行转正考试。因为对自己的职业生涯很重要,敏儿感到压力很大,考前的几天,每天都学习到很晚,睡眠严重不足。白天上班的时候觉得身体很虚,伴有头晕。考试前一天在办公室的时候,突然觉得头晕、恶心、眼花,竟然晕倒了。公司里的同事们都来帮忙,敏儿只是觉得浑身无力,其他无大碍。公司里的同事李林住在敏儿家附近,就送敏儿回家。父母得知敏儿在办公室晕倒以后,很担心女儿,就买了好多的补品给女儿进补,并让她请假在家休息,转正考试下一次再考。敏儿在家休养期间,李林来看望过她,李林来的时候,女儿和他谈得很高兴,完全没有生病的样子。母亲觉得女儿的病好了,于是就让女儿继续上班,但是女儿走进办公室又开始头晕、恶心。结果又回家休假了。某天晚上李林打电话问敏儿的病情,敏儿在接电话的时候又精神了。父母无奈就带着女儿来看心理医生。
求助者与咨询师会谈摘要:求助者由母亲伴陪进入诊室。求助者个子中等,长相一般。不喜欢主动说话,但对转正考试的看法很肯定,认为该考试很重要。对男同事的事情,求助者很是害羞,在咨询师的鼓励下,她说李林挺帅的,对公司的女同事都很关心,大家都挺喜欢他的。求助者也很喜欢李林,但认为自己长相一般,李林那么优秀,家境也不错,况且又有那么多的喜欢者,求助者认为李林不会喜欢自己。第一次晕倒是因为看到李林对别的女孩子很亲热,自己感觉受到打击了,于是晕倒了。

为帮助该求助者,心理咨询师还需要了解( )。

A.求助者的家庭背景

B.求助者性格

C.以前的病史

D.求助者的婚姻情况