ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:46.61KB ,
资源ID:24280186      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24280186.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序员历年真题及答案0405.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

程序员历年真题及答案0405.docx

1、程序员历年真题及答案0405程序员历年真题及答案(2004.11下)(2007-06-12 15:52:59) 试题一(15分,每空3分)流程图说明下面的流程图描述了对8位二进制整数求补的算法。该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果有的话),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数10101000求补的结果是01011000。设8位二进制整数的各位,从低位到高位,依次存放在整型数组BIT的BIT1BIT8中。例如,二进制整数10101000存放在数组BIT后,就在B

2、IT1=0,BIT2=0,BIT7=0,BIT8=1。若流程图中存在空操作,则用NOP表示。流程图中 (1) 处按“循环变量名:循环初值,增量,循环终值”格式描述。试题二(15分,每空3分)函数说明函数sort(int a,int n)的功能是对数组a中的a0an-1这n个元素进行排序。排序过程如下:第一趟对所有的偶数下标p,比较ap和ap+1,若apap+1,则将两者交换;第二趟对所有的奇数下标q,比较aq和aq+1,若aqaq+1,则将两者交换;第三趟对偶数下标,第四趟对奇数下标,依将类推,直至整个数组元素有序排列为止。函数void sort(int a,int n)int i,j,t,t

3、ag=1;for(j=0; jn; j+) for(i=_(1)_ ; iai+1) t=ai;ai=ai+1; ai+1=t; tag=0;tag+;if(_(3)_ ) break;对包含十个元素的数组a采用上述方法排序时,元素间的比较次数最少为_(4)_ 次,最多为 _(5)_ 次。试题三(15分,每空3分)函数说明函数movetoend(LinkedList La,int i)的功能是:将线性表A的第i个元素移到表尾。若移动成功,则返回0,否则返回-1。线性表A采用带头结点的单链表表示,La为表A的头指针,如下图所示。链表结点的类型定义为:typedef struct nodeint

4、key;struct node *next;*LinkedList;函数int movetoend(LinkedList La,int i)LinkedList p,q,prep;int k=1;p=La-next;prep=La;while(_(1)_ ) /*查找第i个元素并使指针p指向该结点*/prep=p; p=p-next;k+;if(!p|ki) return -1;if(_(2)_ ) /*第i个元素结点已经是表尾结点,则无需移动*/return 0;q=p;while(_(3)_ ) q=q-next; /*查找表尾并使q指向表尾结点*/_(4)_ =p-next;p-next

5、=NULL;_(5)_ ;return 0;试题四(15分,每空3分)说明某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1300进行编号。竞赛时间为9:0011:00。8道竞赛题目依次从AH编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。选手提交答案的情况及判定结果由专人即时录入,录入的数据如下表1所示,对竞赛情况进行统计和排名的结果如表2所示。表 1:输入数据提交时间选手编号题目编号是否正确09:3709:5009:5109:5210:1410:1610:2310:23

6、10:27148914595814AABAABABANYNNNNYYY表 2:输出结果名次选手编号完成的题目数量总用时(分钟)1238514211133103127统计和排名的规则如下:1若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间如下计算:解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时罚时=提交题目P错误解答的次数20例如:表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用的时间为87分钟,由于之前的两次提交错误解答,罚时为220=40分钟,所以14号选手解答题目A的用时=87+40=127(分钟)2已经提交正确答案的题目再次提交时不

7、再计算。3竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。4排名里,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为0的选手不参加排名。函数void Statistic()的功能是:读取输入数据,进行统计、排名并输出结果。#define MAXN 300typedef structint no;/*选手编号*/int num;/*完成的题目数量*/int time;/*完成题目的总用时*/int d8;/*di用于记录提交第i个题目错误答案的次数*/int a8;/*ai用于记录第i个题

8、目是否已经提交正确答案*/Info;函数void Statistic()char ch,pass;int i,j,k,h,m,t,time,MaxIndex;Info RMAXN+1;for(i=1;i=MAXN;i+) /*数组R的元素置初值0*/Ri.no=0; Ri.num=0; Ri.time=0;for(j=0; jMaxIndex) MaxIndex=k;/*while*/for(i=1; iMaxIndex;i+0 /*选择排序*/for(t=i,j=i+1;j=MaxIndex;j+)if(Rt.numRj.num|_(3)_ )t=j;if(_(4)_ ) R0=Rt;Rt=

9、Ri;Ri=R0;/*for*/k=1;R0=R1;for(i=1; i0) if(Ri.num!=R0.num|Ri.time!=R0.time)k+;R0=_(5)_ ;printf(“%d: %3d %4d %5d n”,k,Ri.no,Ri.num,Ri.time);/*if*/*Statistic*/试题五(15分,每空3分)应用说明某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1300进行编号。竞赛时间为9:0011:00。8道竞赛题目依次从AH编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选

10、择其他题目进行解答,直至竞赛结束。选手提交答案的情况及判定结果由专入即时录入,录入数据包括提交答案的时间、选手编号、题目编号(AH)、是否正确(Y/N)。对竞赛情况进行统计和排名的规则如下:1若徒手X在竞赛时提交的题目P解答正确,则解答该题目所用时间如下计算:解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时罚时=提交题目P错误解答的次数20例如:表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用的时间为87分钟,由于之前的两次提交错误解答,罚时为220=40分钟,所以14号选手解答题目A的用时=87+40=127(分钟)2已经提交正确答案的题目再次提交

11、时不再计算。3竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。4排名里,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为0的选手不参加排名。本应用程序的运行窗口如下图所示:窗口中的两个文本框为Txt_time和Txt_player,分别用于录入提交答案的时间和选手编号。组合列表框Combo1提供题目编号(AH),录入时从中选择。检查框Chk_yn用于输入解答是否正确信息。当单击“确定”按钮(Cmd_confirm)时,录入的提交信息加入列表框List1中,排名情况在列表框List2输出。

12、单击“关闭按钮时退出应用程序。在开始过程中,需要编写的部分程序代码如下:程序代码Private Type InfoNo As Integer 选手编号Num As Integer 完成的题目数量Time As Integer 完成题目的总用时D(8) As Integer di用于记录提交第i个题目错误答案的次数A(8) As Integer ai用于记录第i 个题目是否已经提交正确答案End TypeDim R(301) AS Info Rj用于统计编号为j的选手提交答案的情况Dim MaxIndex As Integer MaxIndex 记录提交答案的选手编号最大者Private Sub

13、 Form_Load()For i=1 to 8Combo1.AddItem Chr(_(1)_ )NextCombo1.Text=Combo1.List(0):Txt_time.Txt=”:Txt_player.Text=”For i=1 to 300R(i).num=0 : R(i).time=0: R(i).no=iFor j=1 to 8R(i).d(j)=0: R(i).a(j)=FalseNext j,IEnd SubPrivate Sub Cmd_confirm_Click()Dim h,m,k,time As Integer,ch,pass, s1 As StringK=InS

14、tr(Txt_time.Text,”:”): if k11 Or h=11 And m0 Or m=60 Then GoTo error1Time=_(2)_ 计算答题时间,以分钟为单位If Txt_player.Text300 Then GoTo error1Ch=_(3)_ 取题目编号Pass=Iif(Chk_yn._(4)_ =0,”N”,”Y”)S=Txt_time.Text+Space(4)+Txt_player.TextS1=s1+Space(10-Len(Txt_player.Text)+ch+Space(8)+passList1.AddItem s1K=Val(Txt_play

15、er.text) k为选手编号R(k).no=k 编号为k的选手提交信息记录在下标为k的数组元素中If kMaxIndex Then MaxIndex=kM=Asc(ch)-Asc(“A”)If pass”Y” Then 编号为k的选手提交第m个题目的解答不正确R(k).d(m)=R(k).d(m)+1ElseIf R(k).a(m)True Then 已经提交正确的题目的解答不再计算R(k).a(m)=True; R(k).num=R(k).num+1R(k).time=R(k).time+_(5)_Call Statistic 调用过程Statistic 进行实时排名和输出End IfEx

16、it SubError1: MsgBox”录入信息有误”,vbOKOnlyEnd Sub试题六(15分,每空3分)说明以下程序的功能是计算三角形、矩形和正方形的面积并输出程序由4个类组成:类Triangle、Rectangle和Square 分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。C+程序#include #include Class FigurePublic:Virtual double getArea()=0;/纯虚拟函数;Class Rectangle:_(1)_ Protected:Double hei

17、ght;Double width;Public:Rectangle();Retangle(double height,double width)this-height=height;this-width=width;Double getArea()Return_(2)_ ;Class Square:_(3)_ Public:Square(double width)_(4)_ ;Class Triangle:_(5)_ Double la;Double lb;Double lc;Public:Triangle(double la,double lb,doulble lc) this-la=la;

18、 this-lb=lb; this-lc=lc;Double getArea()Double s=(la+lb+lc)/2.0;Return sqrt(s*(s-la)*(s-lb)*(s-lc);Void main()Figure * figures3=New Triangle(2,3,3),new Rectangle(5,8),new Square(5);For(int i=0;i3;i+)Cout”figures“i”area=”getArea()endl;试题七(15分,每空3分)应用说明设一个简单的“通讯录”存储在一个ACCESS类型的数据库表中,包括姓名、电话和email三个字段。

19、下面的应用程序实现对“通讯录”数据库表中的记录进行增加、删除及修改处理,其运行界面如下:(1)数据控件(data1)与“通讯录”数据库表相连接,用户可通过“ ”和“ ”按钮指定表中的当前记录。(2)文本框Txt_name、Txt_phone和Txt_email分别与数据库表中的“姓名”、“电话”和“eamil“字段绑定,用于显示当前记录的内容。(3)应用程序启动时,“确定“按钮(Cmd_ok)和“取消”按钮(Cmd_cancel)不可操作,文本框中显示表中的第一条记录,这时文本框处于不可操作状态。(4)单击“增加”按钮(Cmd_add)或”修改”按钮(Cmd_modify)后,方可以编辑记录内

20、容,同时“增加”、“删除”、“修改”和“退出”按钮变为不可操作状态。“增加”和“修改”操作需通过“确定”和“取消”按钮确认。(5)单击“删除按钮(Cmd_del)后,弹出对话框,再单击“确定”按钮,当前记录被删除。程序代码Private Sub enableop(isEnabled As Boolean)Txt_name.Enabled=isEnabled: Txt_phone.Enabled=isEnabledTxt_eamil.Enabled=isEnabledCmd_ok.Enabled=isEnabled:Cmd_cancel.Enabled=isEnabledCmd_add.Enab

21、led=not isEnabled: Cmd_del.Enabled=Not isEnabledCmd_end.Enabled=Not isEnabled: Cmd_modify.Enabled=Not isEnabledEnd SubPrivate Sub Form_Load()Call enableop(False)Data1.RefreshIf Data1.Recordset.RecordCount=0 ThenCmd_del.Enabled=False: Cmd_modify.Enabled=_(1)_End IfEnd SubPrivate Sub Cmd_add_Click() 单

22、击“增加”按钮的代码Call enableop(_(2)_ )Data1.Recordset.AddNew 在数据库表中添加一个新记录Txt_name._(3)_End SubPrivate Sub Cmd_del_Clikc() 单击“删除”按钮的代码On Error GoTo error3Ans=MsgBox(“确定删除吗?”,vbYesNo+vbInformation,“操作提示!”)If(ans=vbYes) ThenData1.Recordset._(4)_Data1.Recordset.MoveNextIf data1.Recordset.EOF Then Data1.Refres

23、hEnd IfExit SubError3:MsgBox Err.Description,vbOKOnly,“错误提示!”End SubPrivate Sub Cmd_ok_Click() 单击“确定”按钮的代码On Error GoTo error1Data1.Recordset._(5)_Call enableop(False)Exit SubError1:MsgBox Err.Description, vbOKOnly , “错误提示!”Data1.UpdateControlsCall enableop(False)End Sub “修改”和“取消”按钮的程序代码(略)试题八(15分,每

24、空3分)说明以下程序的功能是计算三角形、矩形和正方形的面积并输出程序由5个类组成:AreaTest是主类,类Trianlge、Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure 提供了一个计算面积的抽象方法。程序public class AreaTestpublic static void main(String args)Figure figures= new Triangle(2,3,3),new Rectangle(5,8),new Square(5);for(int i=0;ifigures.length;i+)System.out.println(fig

25、uresi+area=+figuresi.getArea();public abstract class Figurepublic abstract double getArea();public class Rectangle extends_(1)_ double height;double width;public Rectangle(double height,double width)this.height=height;this.width=width;public String toString()return Rectangle:height=+height+,width=+w

26、idth+:;public double getArea()return_(2)_ ;class Square extends_(3)_ public Square(double width) _(4)_ ;public String toString()return Square: width=+width+:;class Triangle extends_(5)_ double la;double lb;double lc;public Triangle(double la,double lb, double lc)this.la=la; this.lb=lb; this.lc=lc;public String toString()return Triangle:sides=+la+,+lb+,+lc+:;public double getArea()double s=(la+lb+lc)/2.0;return Math.sqrt(s*(s-la)*(s-lb)*(s-lc);试题一(1)i:1,1,8(2)1sw(3) 0biti(4)nop,或空操作(5)1biti试题二(1)j%2,及其等价形式(

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

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