首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
62
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
在WindowsXP中,“磁盘碎片整理程序”的主要作用是(39)。
某企业对多项已完成的数据处理任务进行了评估,按其满意度和重要性度量值为坐标,标在下图中,用小圆表示)。这些坐标点分别落入I、Ⅱ、Ⅲ、Ⅳ四个区中。领导认为,位于________区中的任务是需要优先改进的。
计算机数据报表在信息处理过程中具有重要的作用,但这种作用不包括()。
某单位需要使用浓度为15%的盐水750克,但只有浓度20%和5%的两种盐水。经过计算,将浓度20%和5%的盐水分别取()克混合后就能达到要求。
在Word的编辑状态下,文档窗口显示水平标尺,则当前的视图方式______。
下面不属于软件开发过程的是______。
对用户来说,信息系统的(14)反映了系统的功能。
某企业的大数据工程项目包括如下四个阶段的工作:①数据获取,②数据清洗与整理,③数据分析,④数据展现。一般来说,工作量较大、花费时间较长的阶段是______(1),技术含量最高的阶段是______(2),准备向有关部门递交成果的阶段是______(3)。
随机试题
一般国家都规定,不允许外国货币在本国流通,只有将外币兑换成本国货币,才能够购买本国商品和劳务,因此产生了()。
A.慢性咳嗽,咳痰,双肺呼吸音正常B.慢性咳嗽,咳痰,右下肺局限性固定性湿罗音C.慢性咳嗽,咳痰3年,每年发作3个月以上D.咳嗽,咳大量脓痰,高热E.咳粉红色泡沫痰
A、卡莫司汀B、噻替哌C、罗格列酮D、米非司酮E、阿司咪唑H1受体拮抗剂
适用于遇水不稳定的药物的软膏基质是
A.第一对鳃弓B.第一、二、三对鳃弓C.第二、三、四对鳃弓D.第三、四、五对鳃弓E.第四、五、六对鳃弓舌前2/3黏膜来自于哪对鳃弓
患儿,7岁,排尿时突然尿流中断,哭喊疼痛,搓拉阴茎后症状消失。考虑可能的疾病是
人月费单价法中人月费率也称月酬金,由咨询人员的基本工资、()、公司管理费、利润、海外津贴与艰苦地区津贴组成。
驶入我国港口或行驶于我国港口之间的下列哪些船舶应征收船舶吨税?()
2011年2月15日,苹果公司首度承认其在华供应商苏州建联科技有137名员工因暴露于正己烷环境,健康遭受不利影响。人长期接触正己烷,将会出现乏力、肢麻等周围神经炎症状,严重的会导致神经元损伤。下列有关正己烷的说法正确的是()。
ReadingSkillsandStrategies1.SpeedreadingAim:toincreasereadingspeedwithout【T1】understanding【T1】______StrategiesIden
最新回复
(
0
)