首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 说明 某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1~300进行编号。竞赛时间为9:00~11:00。8道竞赛题目依次从“A”~“H”编号,选手可按任意次序答 题,每完
阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 说明 某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1~300进行编号。竞赛时间为9:00~11:00。8道竞赛题目依次从“A”~“H”编号,选手可按任意次序答 题,每完
admin
2007-03-15
52
问题
阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
说明
某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1~300进行编号。竞赛时间为9:00~11:00。8道竞赛题目依次从“A”~“H”编号,选手可按任意次序答
题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。
选手提交答案的情况及判定结果由专人即时录入,录入的数据如表1所示,对竞赛情况进行统计和排名的结果如表2所示。
统计和排名的规则如下:
1.若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间如下计算;
解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时
罚时=提交题目P错误解答的次数×20
例如=表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用时间为87分钟,由于之前的两次提交错误解答,罚时为2×20=40分钟,所以14号选手解答题目A的用时=87+40=127(分钟)。
2.已经提交正确答案的题目再次提交时不再计算。
3.竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。
4.排名时,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为。的选手不参加排名。
函数void Statistic()的功能是:读取输入数据,进行统计、排名并输出结果。
#define MAXN 300
typedef stmct{
int no; /*选手编号*/
int num; /*完成的题目数量*/
int time; /*完成题目的总用时*/
int d[8]; /*d
用于记录提交第i个题目错误答案的次数*/
int a[8]; /*a
用于记录第i个题目是否已经提交正确答案*/
}Info;
void Statistic() {
char ch,pass;
int i,j,k,h,m,t,time,Maxlndex;
Info R[MAXN+1 ];
for(i=1; i<=MAXN; i++){ /*数组R的元素置初值0*/
R
.no = 0;R
.num = 0; R
.time = 0;
for(j=0; j<8; j++) {R
.d[j] = 0; R
.a[j] = 0;}
}/*for*/
MaxIndex = 0;
while (1){
/*录入一名选手提交答案的信息(小时:分钟,选取手编号,题目号,是否正确)*/
scanf("%d:%d,%d,%c,%c",&h,&m,&k,&ch,&pass);
if(h==0) break;
R[k].no = k; /*k为选手编号码*/
time=(1); /*计算答题时间,以分钟为单位*/
if(isupper(ch)) ch = ’a’ + ch- ’A’;
if(pass != ’Y’ && pass != ’y’) {R[k].d[ch-’a’]++; continue;}
if (R[k].a[ch-’a’]==1) continue;
R[k].a[ch-’a’] = 1;
R[k] .num++;
R[k].time +=(2);
if (k > MaxIndex) Maxlndex = k;
}/*while*/
for(i=l; i<MaxIndex; i++) { /*选取择排序*/
for(t=i,j=i+1; j<=Maxlndex; j++)
if(R[t].num<R[j].num|| (3))t=j;
if((4)) {R[0]=R[t];R[t]=R
;R
=R[0];}
}/*for*/
k=1; R[0] = R[l];
for(i=1; i<=Maxlndex; i++) /*输出排名情况*/
if (R,
.num > 0) {
if(R
.num!=R[0].num||R
.time!=R[0].time) k++;
R[0]=(5);
printf("%d:%3d %4d %5d\n",k,R
.no,R
.num,R
.time);
)/*if*l
}/*Statistic*/
选项
答案
(1)(h-9)*60+m,及其等价形式 (2)time+R[k].d[ch-’a’]*20 其中ch-’a’可以表示为ch-97,R[k]可以表示为R[R[k].no] (3)Rrq.num=R[j].num && R[t].time>R[j].time,及其等价形式 (4)t!=i及其等价形式 (4)R[i],及其等价形式
解析
本题考查的是通过阅读程序说明,在限定条件下进行程序设计的能力。
在函数Statistic()中,h:m表示竞赛选手提交解答的时间。根据注释,空(1)处用于计算以分钟为单位的答题时间。用提交时间减去竞赛开始时间,就是解答一个题目所用的时间,即空(1)处填入:(h-9)*60+m。
统计过程中采用小写英文字母表示题目的编号,因此语句
if(isupper(ch))ch=’a’+ch-’A’;
用于将题目编号ch统一为小写字母。
函数中,while循环用于统计每个选手提交答案的情况,采用了直接存取的方法,即k号选手的数据记录在下标为k的数组元素中,即k号选手提交编号为ch的题目情况用R[k].d[ch-’a’]和R[k].a[ch-’a’]记录,其中,d[ch-’a’]用于记录提交编号为ch的题目的错误答案次数,a[ch-’a’]则用于记录编号为ch的题目是否已经提交正确答案,以防止一个正确答案被同一名选手反复提交造成重复统计,相应的语句为
if(R[k].a[ch-’a’]==1)continue;
因此,“R[k].a[ch-’a’]=1;”表示选手k首次正确提交了题目ch的解答,同时记录他解答正确的题目数加1,即“R[k).num++;”。已正确解答的题目总用时,由解答用时和罚时两部分组成,因此空(2)处应填入“time+R[k].d[ch-’a’]*20”。
完成统计后,排名所需的数据都记录在结构体数组R[]的成员NO、nurn和time中,数组成员d[]和a[]就不再有用了。
根据输入数据完成统计之后,需要进行排序。函数Statistic()中采用的是简单选择排序,n个元素进行简单选择排序的基本思想是:通过n-1(1≤i≤n)次元素值之间的比较,从 n-i+1个元素中选出值最小的元素(用t记录该最小元素在数组中的下标),,并和第i个元素进行交换,当i等于n时所有记录有序排列。根据排序规则,完成题目数量相同时,总用时少者排名靠前,因此空(3)处应填入“R[t].num==R[j].num && R[t].time>R[j].time”,显然,若第i个元素本来就是最小元素,则无需交换,即空(4)处填入“t!=i”或其等价形式。
输出排名情况时,应注意并列名次问题。下面的代码段用于输出排名情况。
k=-1; R[0]=R[1];
for(i=1;i<=Maxlndex;i++) /*严输出排名情况*/
if(R
.num>0){
if(R
.num!=R[0].num||R
.time!=R[0].time) k++;
R[0]= (5) ;
printf("%d:%3d %4d %5d\n",k,R
.no,R
.num,R
.time);
}/*if*/
显然,k表示选手的名次。R[0]记录的是R[i-1]的值,因此,排序后相邻的两个记录若完成题目数和总用时相同,则输出相同的名次号(即k不变)。因此,空(5)处填入“R
。
转载请注明原文地址:https://kaotiyun.com/show/lzjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel中,若A1、A2、A3、A4、A5、A6单元格的值分别为2、4、6、8、10、12,在B1单元格中输入函数“=ABS[MIN(A1:A6)-MAX(A1:A6)]”则B1单元格的值为______。
把数据从本地计算机传送到远程主机称为______。
假设有5个网站A、B、C、D、E,这些网站之间具有的链接关系如下表:其中符号“√”表示存在从一个网站到另一个网站的链接。假设网站的权威度定义为有多少个网站链接到该网站,则上述5个网站中权威度最高的是()。
1,2,…,5五个数中,任取两个数都可以算出平均值,其中有些平均值是相等的。那么,不同的平均值共有(26)个。
设有关系R、S、T如下所示,则________。
在Excel当前工作表中有学生的数据表(包含学号、姓名、专业、课程、成绩等字段),为查询指定专业下每门课程的平均成绩,下列选项中最合适的方法是______。
企业中的信息处理过程包括多个阶段,对每个阶段都应有目标要求,有规范的制度,有需要特别注意的事项。以下叙述中正确的是(25)。
下面不属于软件开发过程的是______。
在Excel中,若A1单元格中的函数为"=IF("教授">"助教",TRUE,FALSE)",按回车键后,A1单元格中的显示内容为______。
随机试题
Susan:Wow,Iloverelaxingafteralongdayofwork.Bob:Metoo!【D8】________Susan:Iliketopracticeyoga.Bob:Youdoyoga
A.磷脂酶AB.弹性蛋白酶C.脂肪酶D.激肽释放酶与急性胰腺炎皂化斑的发生有关的是
恶性程度最高的甲状腺癌是
有机质土中,位于塑性图A线以上,且在B线或B线以右的土称为()。
关于加气混凝土墙的说法,正确的是()。
Youcangetoffthebusoneortwostops______andwalktherestofthewaytoworkeverydaysoastotakesomeexercise.
在我国的司法实践中,地方各级人民法院往往以最高人民法院在《公报》中列举的典型案件作为审判的参考,在事实上已经作为一种“样本”来使用,因此有人认为在现代中国判例的作用已与英美法系国家无本质上的区分。试运用法理学的有关知识分析上述观点。
ApproachestoUnderstandingIntelligencesItpaystobesmart,butwearenotallsmartinthesameway.Youmaybeatalent
"Cultureshock"occursasaresultoftotalimmersioninnewculture.It【C1】______to"peoplewhohavebeensuddenlytransplanted
TheU.S.dollarwassupposedtobeattheendofitsrope.Kickingthebucket.Well,maybenot.Thedollarcontinuesto【C1】_____
最新回复
(
0
)