下半年程序员试题及答案下午2.docx

上传人:b****7 文档编号:10416044 上传时间:2023-02-11 格式:DOCX 页数:12 大小:18.39KB
下载 相关 举报
下半年程序员试题及答案下午2.docx_第1页
第1页 / 共12页
下半年程序员试题及答案下午2.docx_第2页
第2页 / 共12页
下半年程序员试题及答案下午2.docx_第3页
第3页 / 共12页
下半年程序员试题及答案下午2.docx_第4页
第4页 / 共12页
下半年程序员试题及答案下午2.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

下半年程序员试题及答案下午2.docx

《下半年程序员试题及答案下午2.docx》由会员分享,可在线阅读,更多相关《下半年程序员试题及答案下午2.docx(12页珍藏版)》请在冰豆网上搜索。

下半年程序员试题及答案下午2.docx

下半年程序员试题及答案下午2

2004年下半年程序员试题及答案(下午)2

窗口中的两个文本框为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,”:

”):

ifk2thengotoerror1

H=val(left(txt_time.text,k-1)):

m=val(mid(txt_time.text,k+1))

Ifh11orh=11andm0orm=60thengotoerror1

Time=__

(2)__’计算答题时间,以分钟为单位

Iftxt_plater.text1ortxt_player.text300thengotoerror1

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.additems1

K=val(txt_player.text)'k为选手编号

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

Ifkmaxindexthenmaxindex=k

M=asc(ch)-asc(“a”)

Ifpass”Y”then'编号为k的选手提交第m个题目的解答不正确

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

ElseifR(k).a(m)truethen'已经提交正确的题目的解答不再计算

R(k).a(m)=true:

R(k).num=R(k).num+1

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

Callstatistic'调用过程statistic进行实时排名和输出

Endif

Exitsub

Error1:

msgbox”录入信息有错误!

”,vbOKOnly

Endsub

从下列的3道试题(试题六至试题八)中任选1道解答。

如果解答的试题数超过1道,则题号小的1道解答有效。

试题六(15分,每空3分)

阅读以下说明和C++程序,将应填入__(n)__处的字句写在答题纸的对应栏内

【说明】

以下程序的功能是计算三角形、矩形和正方形的面积并输出。

程序由4个类组成:

类Triangle,Rectangle和Square分别表示三角形、矩形和正方形;抽象类Finure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。

【C++程序】

#includeiostream.h

#includemath.h

classFigure{

public:

virtualdoublegetArea()=0;file:

//纯虚拟函数

};

classRectangle:

__

(1)__{

protected:

doubleheight;

doublewidth;

public:

Rectangle(){};

Rectangle(doubleheight,doublewidth){

This-height=height;

This-width=width;

}

doublegetarea(){

return__

(2)__;

}

};

classSquare:

__(3)__{

public:

square(doublewidth){

__(4)__;

}

};

classtriangle:

__(5)__{

doublela;

doublelb;

doublelc;

public:

triangle(doublela,doublelb,doublelc){

this-la=la;this-this-

}

doublegetArea(){

doubles=(la+lb+lc)/2.0;

returnsqrt(s*(s-la)**(s-lb)*(s-lc));

}

};

viodmain(){

figure*figures[3]={

newtriangle(2,3,3),newRectangle(5,8),newSquare(5)};

for(inti=0;ii++){

cout”figures[“i”]area=“(figures)-getarea()endl;

}

}

};

第七题(15分,每空3分)

阅读以下应用说明及VB部分的程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内

【应用说明]

设一个简单的“通讯录”存储在一个Access类型的数据库表中,包括姓名、电话和email三个字段。

下面的应用程序实现对“通讯录”数据库表中的记录进行增加、删除及修改处理,其运行界面如下:

(1)数据控件(data1)与"通讯录"数据库表相连接,用户可通过"》"和"《"按钮指定表中的当前记录。

(2)文本框txt_name,txt_phone和txt_email分别与数据库中的姓名、电话和email字段绑定,用于显示当前记录的内容。

(3)应用程序启动时,"确定"按钮(cmd_ok)和"取消"按钮(cmd_cancel)不可操作,文本框中显示表中的第一条记录,这时文本框处于不可操作状态。

(4)单击"增加"按钮(cmd_add)或"修改"按钮(cmd_modify)后,方可以编辑记录内容,同时增加、删除、修改和退出按钮变为不可操作状态。

增加和修改操作需通过确定和取消按钮确认。

(5)单击删除按钮(cmd_del)后,弹出对话框,再单击确定按钮,当前记录被删除。

【程序代码】

privatesubenableop(isenabledasBoolean)

txt_name.enabled=isenabled:

txt_phone.enabled=isenabled

txt_email.enabled=isenabled

cmd_ok.enabled=isenabled:

cmd_cancel.enabled=isenabled

cmd_add.enabled=notisenabled:

cmd_del.enabled=notisenabled

cmd_end.enabled=notisenabled:

cmd_modify.enabled=notisenabled

endsubprivatesubform_load()

callenableop(false)

detal.refresh

ifdata1.recordset.recordcount=0then

cmd_del.enabled=false:

cmd_modify.enabled=__

(1)__

endif

endsub

privatesubcmd_add_click()'单击“增加”按钮的代码

callenableop(__

(2)__)

data1.recordset.addnew'在数据库表中添加一个新记录

txt_name.__(3)__

endsub

privatesubcmd_del_click()'单击“删除”按钮的代码

onerrorgotoerror3

ans=msgbox(“确定删除吗?

”,vbYesNo+vbInformation,”操作提示!

”)

if(ans=vbyes)then

data1.recordset.__(4)__

data1.recordset.movenext

ifdata1.recordset.Eofthendata1.refresh

endif

exitsub

error3:

msgboxerr.description,vbokonly,”错误提示!

endsub

privatesubcmd_ok_click()'单击确定按钮的代码

onerrorgotoerror1

data1.recordset.__(5)__

callenableop(false)

exitsub

error1:

msgboxerr.description,vbokonly,”错误提示!

data1,updatecontrols

callenableop(false)

endsub

'修改和取消按钮的程序代码略

试题八(15分,每空3分)

阅读以下说明和Java程序,将应填入__(n)__处的字句写在答题纸的对应栏内

【说明】

以下程序的功能时三角形、矩形和正方形的面积输出。

程序由5个类组成:

areatest是主类,类Triangle,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。

【程序】

publicclassareatest{

publicstaticviodmain(stringargs[]){

Figure[]Figures={

NewTriangle(2,3,3),newrectangle(5,8),newsquare(5)

};

for(inti=0;iFigures.length;i++){

system.out.println(Figures+”area=”+Figures.getarea());

}

}

}

publicabstractclassfigure{

publicabstractdoublegetarea();

}

publicclassrectangleextends__

(1)__{

doubleheight;

doublewidth;

publicrectangle(doubleheight,doublewidth){

this.height=height;

this.width=width;

}

publicstringtostring(){

return”rectangle:

height=”+height+”,width=”+width+”:

”;

}

publicdoublegetarea(){

return__

(2)__

}

}

publicclasssquareexends__(3)__

{

publicsquare(doublewidth){

__(4)__;

}

publicstringtostring(){

return”square:

width=”+width”:

”;

}

}

publicclassrectangleentend__(5)__

{

doublela;

doublelb;

doublelc;

publictriangle(doublela,doublelb,doublelc){

this.la=la;this.lb=lb;this.lc=lc;

}

publicstringtostring(){

return”triangle:

sides=”+la+”,”+lb+”,”+lc+”:

”;

}

publicdoublegetarea(){

doubles=(la+lb+lc)/2.0;

returnmath.sqrt(s*(s-la)*(s-lb)*(s-lc));

}

}

答案

试题一

(1)i:

1,1,8

(2)1→sw

(3)0→BIT[i]

(4)NOP,或空操作

(5)1→BIT[i]

试题二

(1)j%2,及其等价形式

(2)i+=2,及其等价形式

(3)tag2,或tag==3或tag=3,及其等价形式

(4)9

(5)45

试题三

(1)pki,及其等价形式

(2)!

p-next,及其等价形式

(3)q-next

(4)prep-next

(5)q-next=p

试题四

(1)(h-9)*60+m,及其等价形式

(2)time+R[k].d[ch-'a']*20其中ch-'a'可以表示为ch-97,R[k]可以表示为R[R[k].no]

(3)R[t].num==R[j].numR[t].timeR[j].time,及其等价形式

(4)t!

=i,及其等价形式,表达式的值为真也正确

(5)R[i],及其等价形式

试题五

(1)Asc("A")+i-1,或64+i,及其等价形式

(2)(h-9)*60+m,及其等价形式

(3)Combol.Text

(4)Value

(5)Time+R(k).d(m)*20其中m可表示为Asc(ch)-Asc("A")或Asc(ch)-65,k可表示为R(R(k).no)

试题六(C++)

(1)publicFigure

(2)height*width

(3)publicRectangle

(4)this-height=this-width=width

(5)publicFigure若填publicRectangle只给1分

试题七

(1)False

(2)True

(3)SetFocus

(4)Delete

(5)Update

试题八(Java)

(1)Figure

(2)height*width

(3)Rectangle

(4)super(width,width)

(5)Figure

 

2004年下半年程序员试题及答案(下午)2相关内容:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1