历年计算机软考程序员部分真题文档格式.docx
- 文档编号:14752964
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:11
- 大小:18.87KB
历年计算机软考程序员部分真题文档格式.docx
《历年计算机软考程序员部分真题文档格式.docx》由会员分享,可在线阅读,更多相关《历年计算机软考程序员部分真题文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
第三趟对偶数下标,第四趟对奇数下标,…,依次类推,直至整个数组元素有序排列为止。
【函数]
voidsort(inta[],intn)
{
intI,j,t,tag=1;
for(j=0;
j<n;
j++={
for(I=__
(1)__;
i<n-1;
__
(2)__={
if(a>a[I+1]){t=a;
a=a[I+1];
a[I+1]=t;
tag=0;
}
}
tag++
if(__(3)__)break;
}
}
对包含十个元素的数组a采用上述方法排序时,元素间的比较次数最少为__(4)__次,最多为__(5)__次。
试题三(15分,每空3分)
【函数说明]
函数movetoend(LinkedListLainti)的功能时:
将线性表示A的第I个元素移到表尾。
若移动成功,则返回0,否则返回-1。
线性表A采用带头结点的单链表表示,La为表A的头指针,如下图所示。
链表结点的类型定义为:
typedefstructnode{
intkey;
structnode*next;
}*LinkedList
intmovetoend(LinkedListLa,inti)
LinkedListp,q,prep;
Intk=1;
P=La->
next;
prep=La;
While(__
(1)__){ /*查找第I个元素并使指针p指向该结点*/
Prep=p;
p=->
k++
if(!
p||k>
i)return-1;
if(__
(2)__) /*第I个元素结点已经是表尾结点,则无需移动*/
return0;
q=p;
while(__(3)__)q=q-﹥next;
/*查找表尾并使q指向表尾结点*/
__(4)__=p->
p->
next=NULL;
__(5)__;
从下列的2道试题(试题四至试题五)中任选1道解答。
如果解答的试题数超过1道,则题号小的1道解答有效。
试题四(15分,每空3分)
【说明]
某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1~300实行编号。
竞赛时间为9:
00~11:
00。
8道竞赛题目依次从‘A’~‘H’编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。
若答题准确(Y),则选择其他题目实行解答,否则,可继续做该题目或选择其他题目实行解答,直至竞赛结束。
选手提交答案的情况及判定结果由专人即时录入,录入的数据如下表1所示,对竞赛情况实行统计和排名的结果如表2所示。
表1:
输入数据
提交时间选手编号题目编号是否准确
09:
3714AN
508AY
519BN
5214AN
10:
145AN
169BN
235AY
238BY
2714AY
表2:
输出结果
名次选手编号完成题目数量总用时(分钟)
182133
251103
3141127
统计和排名的规则如下:
1.若选手X在竞赛时提交的题目P解答准确,2.则解答该题目所用时间如下计算:
解答题目P的用时=提交题目P准确的时间-竞赛的开始时间+罚时
罚时=提交题目P错误解答的次数×
20
表1中14号选手在10:
27提交了题目A的准确解答,所以该选手准确解答该题目所用时间为87分钟,因为之前的两次提交错误解答,罚时为2×
20=40分钟,所以14号选手解答题目A的用时=87+40=127(分钟)。
2.已经提交准确答案的题目再次提交时不再计算。
3.竞赛结束时,选手的总用时为所有解答准确的题目用时累加所得,解答不准确的题目不计时。
4.排名时,完成题目数量多者排名靠前;
若完成的题目数相同,则用时少者排名靠前;
若完成的题目数和所用时间均相等,则名次相同;
完成题目数为0的选手不参加排名。
函数voidStatistic()的功能是:
读取输入数据,实行统计、排名并输出结果。
#defineMAXN300
typedefstruct{
intno;
/*选手编号*/
intnum;
/*完成的题目数量*/
inttime;
/*完成题目的总用时*/
intd[8];
/*d用于记录提交第I个题目错误答案的次数*/
inta[8];
/*a用于记录第I个题目是否已经提交准确答案*/
}Info;
【函数】
voidStatistic(){
charch,pass;
intI,j,k,h,m,t,time,MaxIndex;
InfoR[MAXN+1];
For(I=1;
IMaxIndex)MaxIndex=k;
} /*while*/
for(I=1;
I0){
if(Rnum!
=R[0]num||Rtime!
=R[0]time)k++;
R[0]=__(5)__;
Printf(“%d:
%3d%4d%5d”,k,Rno,RnumRtime);
} /*if*/
} /*Statistic*
试题五(15分,每空3分)
阅读下列说明及VisualBasic程序代码,将应填入__(n)__的字句写在答题纸的对应栏内。
【应用说明]
00~ 11:
选手提交答案的情况及判定结果由专人即时录入,录入数据包括提交答案的时间、选手编号、题目编号(A~H)、是否准确(Y/N)。
对竞赛情况实行统计和排名的规则如下:
1.若选手X在竞赛时提交的题目P解答准确,则解答该题目所用时间如下计算:
27提交了题目A的准确解答,所以该选手准确解答该题目所用时间为87分钟,因为他在09:
37和09:
52两次提交了题目A的错误解答,所以罚时为2×
2.已经提交准确答案的题目再次提交时不再计算。
3.竞赛结束时,选手的总用时为所有解答准确的题目用时累加所得,解答不准确的题目不计时。
4.排名时,完成题目数量多者排名靠前;
本应用程序的运行窗口如下图所示:
窗口中的两个文本框为Txt_time和Txt_player,分别用于录入提交答案的时间和选手编号。
组合列表框Combol提供题目编号(A~H),录入时从中选择。
检查框Chk_yn用于输入解答是否准确信息。
当单击“确定”按钮(Cmd_comfirm)时,录入的提交信息加入列表框List1中,排名情况在列表框List2输出。
单击“关闭”按钮时退出应用程序。
在开发过程中,需要编写的部分程序代码如下:
【程序代码]
PrivateTypeInfo
Noasinteger’选手编号
NumasInteger’完成题目数量
Timeasinteger’完成题目的总用时
D(8)asinteger’d用于记录提交第i个题目错误答案的次数
A(8)asBoolean’a用于记录第i个题目是否已经提交准确答案
Endtype
DimR(301)asinfo’R[j]用于统计编号为j的选手提交答案的情况
DimMaxIndexasInteger’MaxIndex记录提交答案的选手中编号者
PrivateSubFrom_Load()
Fori=1to8
Combo1.additemchr(__
(1)__)
Next
Combol.text=combol.list(0):
txt_time.text=””:
txt_player.text=””
Fori=1to300
R(i).num=0:
R(i).time=0:
R(i).no=i
Forj=1to8
R(i).d(j)=0:
R(i).a(j)=false
Nextj,i
EndSub
Privatesubcmd_confirm_click()
Dimh,m,k,timeasinteger,ch,pass,s1asstring
K=Instr(txt_time.text,”:
”):
ifk11orh=11andm>
0orm>
=60thengotoerror1
Time=__
(2)__ ’计算答题时间,以分钟为单位
Iftxt_plater.text300thengotoerror1
Ch=__(3)__
Pass=IIf(chk_yn.__(4)__=0,”N”,”Y”)
S1=txt_time.text+space(4)+t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 计算机 程序员 部分