题目

●试题七

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某学校举办了一场奥运知识竞赛,参加竞赛的选手为200名,1~200为选手编号。竞赛时间为9:00~11:00。8道竞赛题目依次从"A"~"H"编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。

选手提交答案的情况及判定结果由专人即时录入,录入数据包括提交答案的时间、选手编号、题目编号(A~H)、是否正确(Y/N)等。

对竞赛情况进行统计和排名的规则如下:

1.若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间计算如下:

解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时罚时=提交题目P错误解答的次数×20例如:表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用时间P为87分钟,由于他在09:37和09:52两次提交了题目A的错误解答,因此罚时为(2×20)分钟=40分钟,所以14号选手解答题目A的用时=(87+40)分钟=127分钟。

2.已经提交正确答案的题目再次提交时不再计算。

3.竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。

4.排名时,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为0的选手不参加排名。

本应用程序的运行窗口如图3所示。

图3

窗口中的两个文本框为Txt_time和Txt_player,分别用于录入提交答案的时间和选手编号。组合列表框Combol提供题目编号(A~H),录入时从中选择。检查框Chk_yn用于输入解答是否正确信息。当单击"确定"按钮(Cmd_comfirm)时,录入的提交信息加入列表框Listl中,排名情况在列表框List2输出。单击"关闭"按钮时退出应用程序。

在开发过程中,需要编写的部分程序代码如下:

【程序】

Private Type Info

No As Integer′选手编号

Num As Integer′完成题目数量

Time As Integer′完成题目的总用时

d (8) As Integer′d用于记录提交第i个题目错误答案的次数

a (8) As Boolean′a用于记录第i个题目是否已经提交正确答案

End Type

Dim R(201)As info′R[j]用于统计编号为j的选手提交答案的情况

Dim MaxIndex As Integer′MaxIndex记录提交答案的选手中编号最大者

Private Sub Form_Load()

For i=1 to 8

Combo1.AddItem chr((1) )

Next

Combo1.Text=Combo1.List(0):txt_time.Text="":txt_player.Text=""

For i=1 To 200

R(i).num=0:R(i).time=0:R(i).no=i

Forj=1 To 8

R(i).d(j)=0:R(i).a(j)=False

Next j,i

End Sub

Private Sub cmd_confirm_Click()

Dim h,m,k,time As Integer,ch,pass,s1 As String

K=Instr(txt_time.text,"∶"):If k<2 Then Goto error1

H=Val(Left(txt_time.Text,k-1)):m=Val(Mid(txt_time.Text,k+1))

If h>11 Or h=11 And m>0 Or m>=60 Then goto errorl

Time= (2) ′计算答题时间,以分钟为单位

If txt_plater.text<1 or txt_player.text>200 Then Goto error1

ch= (3)

pass=IIf(chk_yn. (4) =0,"N","Y")

s1=txt_time.Text+Space (4) +txt_player.Text

s1=s1+Space(10-Len(txt_player.Text))+ch+Space (8) +pass

List1.Additem s1

K=Val(txt_player.Text)′k为选手编号

R(k).no=k′编号为k的选手的提交信息记录在下标为k的数组元素中

If k>maxindex Then maxindex=k

M=Asc(ch)-Asc("a")

If pass<>"Y"Then′编号为k的选手提交第m个题目的解答不正确

R(k).d(m)=R(k).d(m)+1

Else If R(k).a(m)<>True Then′已经提交正确的题目的解答不再计算

R(k).a(m)=true:R(k).num=R(k).num+1

R(k).time=R(k).time+ (5)

Call statistic′调用过程statistic进行实时排名和输出

End If

Exit Sub

error1:MsgBox"录入信息有错误!",vbOKOnly

End Sub

答案
查看答案
相关试题

●试题五

阅读以下预备知识、函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【预备知识】

①对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d}及其权值2、7、4、5,可构造如图3所示的最优二叉树和相应的结构数组Ht(数组元素Ht[0]不用)(见表5)。

图3最优二叉树

表5 结构数组Ht

结构数组Ht的类型定义如下:

define MAXLEAFNUM 20

struct node{

char ch;/*当前结点表示的字符,对于非叶子结点,此域不用*/

int weight;/*当前结点的权值*/

int parent;/*当前结点的父结点的下标,为0时表示无父结点*/

int lchild,rchild;

/*当前结点的左、右孩子结点的下标,为0时表示无对应的孩子结点*/

}Ht[2*MAXLEAFNUM];

②用′0′或′1′标识最优二叉树中分支的规则是:从一个结点进入其左(右)孩子结点,就用′0′(′1′)标识该分支(示例如图3所示)。

③若用上述规则标识最优二叉树的每条分支后,从根结点开始到叶子结点为止,按经过分支的次序,将相应标识依次排列,可得到由′0′、′1′组成的一个序列,称此序列为该叶子结点的前缀编码。例如图3所示的叶子结点a、b、c、d的前缀编码分别是110、0、111、10。

【函数5.1说明】

函数void LeafCode(int root,int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子结点,为所有的叶子结点构造前缀编码。其中形参root为最优二叉树的根结点下标;形参n为叶子结点个数。

在构造过程中 ,将Ht[p].weight域用作被遍历结点的遍历状态标志。

【函数5.1】

char**Hc;

void LeafCode(int root,int n)

{/*为最优二叉树中的n个叶子结点构造前缀编码,root是树的根结点下标*/

int i,p=root,cdlen=0;char code[20];

Hc=(char*)malloc((n+1)*sizeof(char*));/*申请字符指针数组/

for(i=1;i<=p;++i)

Ht[i].weight=0;/*遍历最优二叉树时用作被遍历结点的状态标志*/

while(p){/*以非递归方法遍历最优二叉树,求树中每个叶子结点的编码*/

if(Ht[p].weight==0){/*向左*/

Ht[p].weight=1;

if (Ht[p].lchild !=0) { p=Ht[p].lchild; code[cdlen++]=′0′;}

else if (Ht[p].rchild==0) {/*若是叶子结 点,则保存其前缀编码*/

Hc[p]=(char*)malloc((cdlen+1)*sizeof(char));

(1) ;strcpy(He[p],code);

}

}

else if (Ht[p].weight==1){/*向右*/

Ht[p].weight=2;

if(Ht[p].rchild !=0){p=Ht[p].rchild;code[cdlen++]=′1′;}

}

else{/*Ht[p].weight==2,回退*/

Ht[p].weight=0;

p= (2) ; (3) ;/*退回父结点*/

}

}/*while结束*/

}

【函数5.2说明】

函数void Decode(char*buff,int root)的功能是:将前缀编码序列翻译成叶子结点的字符序列并输出。其中形参root为最优二叉树的根结点下标;形参buff指向前缀编码序列。

【函数5.2】

void Decode(char*buff,int root)

{ int pre=root,p;

while(*buff!=′\0′){

p=root;

while(p!=0){/*存在下标为p的结点*/

pre=p;

if((4) )p=Ht[p].lchild;/*进入左子树*/

else p=Ht[p].rchild;/*进入右子树*/

buff++;/*指向前缀编码序列的下一个字符*/

(5) ;

printf(″%c″,Ht[pre].ch);

}

}

【问题4】(2分)

某Windows客户端开机后无法上网,其他计算机均能正常上网。经过检查,该机网络协议相关配置均正确。使用ping命令测试127.0.0.1及FTP服务器连接,结果如图3-2和图3-3所示,则可能的故障原因是(7)。

(7)备选答案:

A.Web服务器未启动B.DNS服务器未启动

C.客户端机器网络线路故障D.客户端机器网卡故障

【问题2】(4分)

设S为信号量,P、V操作的形式化定义如图5-2和图5-3所示,请完成该形式化定义,将应填入(n)处的内容写在答题纸的对应栏中(直接填写编号即可)。

图5-2P操作的形式化定义

图5-3V操作的形式化定义

【问题3】(3分)

为保证Web服务器能正常对外提供服务,还需要在图4-5所示的“服务和端口”选项卡中勾选(7)选项。如果要让来自Internet的ping消息通过S1,在图4-6中至少要勾选(8)选项。

【问题5】(3分)

在网络B中,除PC5计算机以外,其它的计算机都能访问网络A的WWW服务器,而PC5计算机与网络B内部的其它PC机器都是连通的。分别在PC5和PC6上执行命令ipconfig,结果信息如图2-8和图2-9所示:

请问PC5的故障原因是什么?如何解决?

最新解答的试题
付款人在进行付款时无()

A.形式审查义务

B.实质审查义务

C.附带审查义务

D.票据外有关事项的审查义务
根据《公司法》的规定,有限责任公司下列人员中,可以提议召开股东会临时会议的是()。
A.总经理B.人数过半数的股东C.监事会主席D.人数为半数的董事
关于股份有限公司中的监事会,下列说法错误的是()

A.监事会负责提议聘请或更换外部审计机构B.监事会主席和副主席由全体监事过半数选举产生C.监事会中的职工代表的比例不得低于三分之一D.监事会应至少每6个月召开一次会议
三北精神的科学内涵
阿里巴巴提供了“企业名称认证”“企业身份认证”不同种类的认证,可以根据自身的