首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
44
问题
阅读以下说明和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://jikaoti.com/ti/3eW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel中,若A1、A2、A3、A4、A5、A6单元格的值分别为2、4、6、8、10、12,在B1单元格中输入函数“=ABS[MIN(A1:A6)-MAX(A1:A6)]”则B1单元格的值为______。
小张和小王负责向数据库中录入一批图书数据(如:书名、作者和出版社等),要求在保证质量的前提下,尽可能高效率地完成任务,采用以下______方式比较恰当。
在Word的编辑状态下,文档窗口显示水平标尺,则当前的视图方式______。
在Excel的A1单元格中输入函数“=LEFT(“信息处理技术员”,2)”,按回车键后,A1单元格中的值为()。
对用户来说,信息系统的(14)反映了系统的功能。
新建一个Word文档,编辑结束后,执行“文件”菜单中的“保存”命令,则______。
结构化程序中的基本结构不包括(28)。
某机构准备发布中国互联网发展年度报告。报告分四个方面:全网概况、访问特征、渠道分析和行业视角。用户24小时上网时间分布应属于()方面的内容。
某企业的大数据工程项目包括如下四个阶段的工作:①数据获取,②数据清洗与整理,③数据分析,④数据展现。一般来说,工作量较大、花费时间较长的阶段是______(1),技术含量最高的阶段是______(2),准备向有关部门递交成果的阶段是______(3)。
随机试题
大气压力参与全口义齿固位的条件是
甲向乙借款500万元,丙提供了保证担保,丁提供了抵押担保。请根据民法原理、《合同法》《担保法》回答下列问题:设该笔借款的资金是由乙从银行中套取而来并高利转贷给甲,且甲对此知情。甲到期无力还款,丁应否承担民事责任?为什么?
()是指对违反法律规范将导致的法律后果的规定。
某城市综合体工程项目竣工后,建设单位依法向城乡规划行政主管部门提出竣工规划验收申请。针对该项目的性质,城乡规划行政主管部门对该工程进行规划验收的依据有()。
某污水处理工程主要包括泵站、沉淀池等单位工程。其中钢筋混凝土沉淀池长48m,宽22m。基础底板和墙体混凝土设计强度等级C30,抗渗等级P8,池壁边墙高6m,厚500mm。结构设计沿池壁长度方向在中间设一道伸缩缝。结构底板与侧墙分两次浇筑,采用泵送商品混凝土
根据《招标投标法》的规定,招标人通过媒体发布招标公告,或向符合条件的投标人发出招标文件,为()。
小孙是某县高中的一名高二教师,因通过硕士研究生考试欲辞职,但学校不同意。小孙应向哪个部门申诉()
下列说法正确的是()。
To:AllstaffFrom:DanielHoffman,Provost’sOfficeSubject:PromotionAnnouncementTheProvost’sOfficeispleasedtoannounce
AllthefollowingsentenceshaveanappositiveEXCEPT______
最新回复
(
0
)