2006上半年程序员考试真题及答案-下午卷.doc

上传人:雁** 文档编号:14571554 上传时间:2022-05-05 格式:DOC 页数:12 大小:115.50KB
返回 下载 相关 举报
2006上半年程序员考试真题及答案-下午卷.doc_第1页
第1页 / 共12页
2006上半年程序员考试真题及答案-下午卷.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2006上半年程序员考试真题及答案-下午卷.doc》由会员分享,可在线阅读,更多相关《2006上半年程序员考试真题及答案-下午卷.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2006上半年程序员考试真题及答案-下午卷试题一(共15分)阅读以下说明和流程图,回答问题1至问题3,将解答填入答题纸的对应栏内。说明信息处理过程中经常需要将图片或汉字点阵做旋转处理。一个矩阵以顺时针方向旋转90后可以形成另一个矩阵,如下图所示: ABCDEFGH1JKLMNOPMIEANJFBOKGCPLHD流程图1-1描述了对n*n矩阵的某种处理。流程图1-2是将矩阵A顺时针旋转90形成矩阵B的具体算法。流程图1-1流程图1-2 问题1(3分)请写出以下3*3单位矩阵沿顺时针方向旋转90后所形成的矩阵。问题2(3分)如果以下3*3矩阵沿顺时针方向旋转90后所形成的矩阵就是原来的矩阵:其中,

2、位于*处的元素需要考生填写请完整地写出该矩阵。问题3(9分)在上述流程图1-1和1-2的算法中,(1)矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置?(2)A(i,j)后来又被复制到矩阵C中的哪个位置?(3)填补流程图1-2中的空缺。 试题二(共15分)阅读以下说明和C语言函数,将应填入_(n)_处的字句写在答题纸的对应栏内。说明函数chanse(int num)的功能是对四位以内(含四位)的十进制正整数num进行如下的变换:将num的每一位数字重复一次,并返回变换结果。例如,若num=5234,则函数的返回值为55223344,其变换过程可描述为:(4*10+4)*1 + (

3、3*10+3)*100 + (2*10+2)*10000 + (5*10+5)*1000000 = 55223344C语言函数long change (int num)int d, m =num;long result, mul; if (num O) d = m % 10;m = _(3)_;result = result + (_(4)_) * mul;mul = _(5)_;return result; 试题三(共15分) 阅读以下说明和C语言函数,将应填入_(n)_处的字句写在答题纸的对应栏内。说明函数bool Del_elem(STACK *S,char para_ch)的功能是:删

4、除栈*s中与para_ch之值相等且最接近栈顶的元素(字符),若栈中不存在该元素,则函数返回FALSE,否则返回TRUE。其中,STACK是栈的类型名。函数Del_lem实现上述功能的方法是c利用栈的基本操作,先将栈*s中所有比parlch之值更接近栈顶的元素暂时存放在临时工作栈s_bak中,使得与para_ch之值相等的元素成为栈顶元素,此时执行出栈操作,即从栈中删除与para_ch之值相等的元素,最后再将s_bak中的元素依次存回栈*s。在函数Del_elem中必须使用栈的基本操作进行栈上的运算,实现栈的基本操作的函数原型说明如下;void InitStack(STACK*S):初始化栈。

5、void Push(STACK*S,char e):将一个字符压栈,栈中元素数目增1。void Pop(STACK*S);栈顶元素出栈,栈中元素数目减1。char Top(STACK S):返回非空栈的栈顶元素值,栈中元素数目不变。bool IsEmpty(STACK S);若S是空栈,则返回TRUE:否则返回FALSE。 bool类型定义如下:typedef enum FALSE=0,TRUE=1 bool;C语言函数bool Del_elem(STACK *S,char para_ch)STACK s_bak; /*定义临时工作栈s_bak */char Ch;bool tag=FALSE

6、; _(1)_; /*初始化临时工作栈s_bak*/*将栈*s中所有比para_ch更接近栈顶的元素暂时存放在临时工作栈s_bsk中*/while(!IsEmpty(*s)ch_(2)_; /*取栈顶元素:/Pop(S);if(Chpara_ch)tag=TRUE:break;_(3)_;/*将暂存于1临时工作栈s_bak中的元素存回栈*s*/while (_(4)_)Ch=Top(s_bak);_(5)_;Push(s,ch);return tag; 从下列的2道试题(试题四至试题五)中任选1道解答。 如果解答的试题数超过1道,则题号小的1道解答有效。试题四(共15分)阅读以下说明和C语言函

7、数,将应填入_(n)_处的字句写在答题纸的对应栏内。说明某工厂A负责为某大型企业B加工零件,A每天必须为B提供一定数量的零件。由于某种客观原因,A每天生产的零件的单价都不相同。若A某天生产的零件数多于B需要的数目,则多余的零件可以放到第二天及以后再使用,但需要收取每个零件的保管费 (产品单价之外附加的费用),每个零件在不同日期收取的保管费也不相同。例如,在5天的生产中,B要求的零件需求量及A核算出的零件单价和保管费用如表1所示: 表1 第一天 第二天 第三天 第四天 第五天 需求量(个) 25 15 30 35 30 零件的单价(元) 20 30 32 25 35 单个零件的保管费用(元) 4

8、.5 8.0 6.8 5.5 6.1 A可以制订多种生产计划,但费用可能不同。例如,表2所示为生产计划及其费用。 表2 计划产量(个)总费用(元)第一天第二天第三天第四天第五天计划1 25 15 30 35 39 3835 计划2 40 0 30 50 15 3685 计划3 70 0 0 65 0 3632.5 计划4 35 10 20 40 35 / 注:(1)计划1的总费用:25*20+15*30+30*32+35*25+30*35=3835(元)(2)计划2的总费用:40*20+15*4.5+30*32+50*25+15*5.5+15*35=3685(元)(3)计划3的总费用:70*2

9、0+45*4.5+30*8+65*25+30*5.5=3632.5(元)(4)计划4不可行,虽然第一天和第二天生产的零件总数比需求量多5个,但加上第三天生产的20个零件(共25个),仍不能满足B第三天的需求量(30个)。函数finla_plan(FILE*in)的功能是:从文件中读入若干个生产计划,从可行的计划中选出费用最小者,记录该生产计划并返回该最小费用。全局结构体数组data用于保存表1所示的数据(data0不用),说明如下:datai.Qty_req:int型,表示第i天的零件需求量。datai.Price:double型,表示第i天生产的零件单价(元)。datai.Keeping_f

10、ee:double型,表示第i天保管单个零件的费用(元)。C语言函数int B_sDAYS+1;/*扫记录成本最小的生产计划,ls0不用,DAYS定义为天数*/double find_a_plan(FILE *inf) int P numDAYS+1,acc_reqDAYS+1:int i,tag=0,acc_qty=0;double mincost=1.0e20,costProduce,cost_Keep; for (i=1;i=DAYS;i+)/*到第i天时的累计零件需求量存入acc_reqi*/accjty += datai.Qty_req;acc_reqi = acc_qty; whi

11、le (!feof(inf)for(i=1;i=DAYS;i*)/*读入一个生产计划,第i天的产量存入P_numi*/if (!feof(inf)fscanf(inf,*%d,&P_numi);tag=0; cost_Produce=0; cost_Keep=0:for(i=1,_(1)_;i=DAYS;i+) /*考察当前的生产计划*/acc_qty += P_numi);/*acc_qty计录到第i天时的累计零件生产量*/if (acc_qty acc_reqi) /*当前生产计划不能满足需求*/tag=1; break; /*if*/cost_Produce += _(2)_;/*计算当

12、前生成计划的总零件价格*/*计算当前生成计划下的零件保管费*/cost_Keep+=(_(3)_)*datai.Keeping_fee; /*for*/if(_(4)_) /*若当前生产计划不可行,则继续读取下一计划*/continue;if(_(5)_) /*记录成本更小的生产计划*/mincost=cost_Produce+cost_Keep;for(i=1;i*按钮(名称为cmdSelect),就能将该课程复制到“所选课程”列表框(名称为List2)中(但要注意不要出现重复项);如果单击“”按钮(名称为cmdSelAll),就能将全部供选课程名复制到列表框List2中(注意应先删除Lis

13、t2中的已选项);如果在“所选课程”列表框中选中某个课程,再单击“”按钮(名称为cmdDelete),就会从List2中删除该课程(未选课程时应不做处理):如果单击“=0 Then如果List2中有选中的项List2.Removeltem _(4)_则删除所选的项End IfEnd Sub Private Sub CmdDelAll_Click() ._(5)_End Sub 从下列的3道试题(试题六至试题八)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。试题六(共15分)阅读以下说明和C+代码,将解答写在答题纸的对应栏内。说明已知类SubClass的getSum方法返回其

14、父类成员与类SubClass成员j的和,类SuperClass中的getSum为纯虚拟函数程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。C+代码行号代码O1#include 02using namespace std;03class SuperClass 04private:05int i;06public:07SuperClass() i = 5;08virtual iht getValueO return i; 09virtual int getSum()=0;

15、lO;11class SubClass:public SuperClass12int j;13public:14SubClass(int j) :j(0)15_(1)_ =j;/用参数j的值更新数据成员16;17int getValue()return j;18int getSum()19return _(2)_ getValue() + j;2021;22void main(void) 23SuperClass s = new SubClass(-3);24cout getValue() ;25cout getSum() 20 Then x = x - 20 蝴蝶飞到右边界后再回到左边界Im

16、agel.Left= x动态调整蝴蝶框的位置Imagel.Top= _(3)_Image2.Left= xImage2.Top= _(4)_x = x + 0.1确定蝴蝶下一步飞行位置End Sub Private Sub CmdStop_Click()_(5)_Imagel. Left= 0蝴蝶位置初始化Imagel. Top= 2Image2.Left= 0Image2.Top= 3MMC. Command= Stop 停止播放MMC. Command= Close关闭多媒体设备End Sub 试题八(共15分)阅读以下说明和Java代码,将解答写在答题纸的对应栏内。说明已知类SubCla

17、ss的getSum方法返回其父类成员i与类SubClass成员j的和;类SuperClass中的getSum为抽象函数,程序中的第14行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,当程序运行到第22行且尚未执行第22行语句时成员变量i的值,最后给出程序运行后的输出结果。Java代码行号代码01public class UainJava02public static void main(Stringargs)03SuperClass s=new SubClass();04System.out.println(s.getValue();05System.out.println

18、(S.getSum();060708abstract class SuperClass09private int i;10public SuperClass()i=5;11public int getValue()12return i;1314public final abstract int getSum();1516class SubClass extends SuperClass17int j;18public SubClass()19this(-3);2021public SubClass(int j)22_(1)_.j=j;2324public int getValue()retur

19、n j;25public int getSum()26return _(2)_.getValue()+j;2728 参考答案试题一问题10 0 10 1 01 0 0问题2a b ab c ba b a问题3(1) B(j,n-i+1)(2) C(n-i+1,n-j+1)(3) A(n-j+1,i)试题二(1) num/10000 0(2) result = 0(3) m/10(4) d * 10 + d(5) mul * 100试题三(1) InitStack(&s_bak)(2) Top(*s)(3) Push(&s_bak,ch)(4) !IsEmpty(s_bak)(5) Pop(&s

20、_bak)试题四(1) acc_qty = 0(2) P_numi * datai.Price(3) acc_qty - acc_reqi(4) tag(5) cost_Produce + cost_Keep j(2) SuperClass错误更正结果:SuperClass * s = new SubClass(-3)变量j的值:0运行结果: -3 2试题七(1) True(2) x As Single(3) 2 + Sin(x)(4) 2 + Cos(x)(5) Timer1.Enabled = False试题八(1) this(2) super错误更正结果:public abstract int getSum ()变量i的值:5运行结果: -32

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁