首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
45
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
对两个或多个数据进行比较,常用对比分析法,通过分析其间的差异,揭示变化情况和规律。以下关于对比分析法的叙述中,不正确的是________。
小张承担了某信息处理项目,在完成之日向领导做了汇报,将计划进度与实际进度画出了如下两条曲线:从该图可以看出,与计划进度相比,实际进度(69)。
使用IE浏览器上网时,可以把喜欢的网页保存到_______中,以便于再次浏览。
在Windows7中,(27)可以让用户方便快捷地查看笔记本电脑的电池用量、调节笔记本电脑的屏幕亮度、打开或关闭无线网卡等。
下面不属于软件开发过程的是______。
在Excel中,若A1单元格中的函数为"=IF("教授">"助教",TRUE,FALSE)",按回车键后,A1单元格中的显示内容为______。
字符串编辑有3种基本操作:在指定位置插入一个字符、在指定位置删除一个字符、在指定位置用另一个字符替换原来的字符。将字符串ABCDE,编辑成ECDFE,至少需要执行(6)次基本操作。
________________不会是信息系统的功能。
随机试题
甲于2006年5月从A公司购买了B公司生产的某品牌电视机一台,2007年3月,该电视机在正常使用过程中突然发生爆炸,至使正在看电视的甲的眼睛和右上肢严重受伤,并使其客厅其他电器等财产受到不同程度的损害。试根据《消费者权益保护法》的有关规定,分析:本案中
试述我国新课程设置的特点。
患者,男性,21岁。1年前因剧烈运动导致上前牙碰伤,当时有咬硬物疼痛,并无其他不适,未经治疗。后发现牙冠变色,其可能的原因是()
A、0、5%或1%普鲁卡因B、2%普鲁卡因C、泼尼松D、5%鱼肝油酸钠E、50%葡萄糖液关节盘后区封闭用
患者,男,58岁。糖尿病病史15年。检查:双下肢浮肿,尿蛋白(+++),空腹血糖8.0mmol/L(144mg/dl),餐后2小时血糖11.13mmol/L(200mg/m),血压160/100mmHg(21.28/13.3kPa)。其诊断是
关于施工方项目管理目标和任务的说法,正确的是()。
审计质量控制的客体包括()。
李某在一次福利彩票抽奖中,花1000元抽中500000元现金,则李某应缴纳的个人所得税为()元。
下列选项中不属于结构化程序设计方法的是
Who’sthetallestboy?
最新回复
(
0
)