下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 程序员2006年52006年上半年程序员下午试题

程序员2006年52006年上半年程序员下午试题.doc

程序员2006年52006年上半年程序员下午试题

lastwar
2018-09-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《程序员2006年52006年上半年程序员下午试题doc》,可适用于IT/计算机领域

年上半年程序员下午试题试题一(共分)  阅读以下说明和流程图回答问题至问题将解答填入答题纸的对应栏内。说明  信息处理过程中经常需要将图片或汉字点阵做旋转处理。一个矩阵以顺时针方向旋转°后可以形成另一个矩阵如下图所示:ABCDEFGHJKLMNOP───→MIEANJFBOKGCPLHD  流程图描述了对n*n矩阵的某种处理。流程图是将矩阵A顺时针旋转°形成矩阵B的具体算法。流程图                    流程图问题(分)  请写出以下*单位矩阵沿顺时针方向旋转°后所形成的矩阵。     问题(分)  如果以下*矩阵沿顺时针方向旋转°后所形成的矩阵就是原来的矩阵:      其中位于*处的元素需要考生填写  请完整地写出该矩阵。问题(分)  在上述流程图和的算法中  ()矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置  ()A(i,j)后来又被复制到矩阵C中的哪个位置  ()填补流程图中的空缺。试题二(共分)  阅读以下说明和C语言函数将应填入(n)处的字句写在答题纸的对应栏内。说明  函数chanse(intnum)的功能是对四位以内(含四位)的十进制正整数num进行如下的变换:将num的每一位数字重复一次并返回变换结果。例如若num=则函数的返回值为其变换过程可描述为:   (*)*(*)*(*)*(*)*=C语言函数  longchange(intnum)  {   intd,m=num   longresult,mul   if(num<=||())  *若num不大于或num的位数大于则返回*    return   mul=   ()   while(m>O){    d=m    m=()    result=result(())*mul    mul=()   }   returnresult  }试题三(共分)  阅读以下说明和C语言函数将应填入(n)处的字句写在答题纸的对应栏内。说明  函数boolDelelem(STACK*S,charparach)的功能是:删除栈*s中与parach之值相等且最接近栈顶的元素(字符)若栈中不存在该元素则函数返回FALSE否则返回TRUE。其中STACK是栈的类型名。  函数Dellem实现上述功能的方法是c利用栈的基本操作先将栈*s中所有比parlch之值更接近栈顶的元素暂时存放在临时工作栈sbak中使得与parach之值相等的元素成为栈顶元素此时执行出栈操作即从栈中删除与parach之值相等的元素最后再将sbak中的元素依次存回栈*s。  在函数Delelem中必须使用栈的基本操作进行栈上的运算实现栈的基本操作的  函数原型说明如下  voidInitStack(STACK*S):初始化栈。  voidPush(STACK*Schare):将一个字符压栈栈中元素数目增。  voidPop(STACK*S)栈顶元素出栈栈中元素数目减。  charTop(STACKS):返回非空栈的栈顶元素值栈中元素数目不变。  boolIsEmpty(STACKS)若S是空栈则返回TRUE:否则返回FALSE。  bool类型定义如下:  typedefenum{FALSE=TRUE=}boolC语言函数  boolDelelem(STACK*S,charparach)  {   STACKsbak  *定义临时工作栈sbak*   charCh   booltag=FALSE   ()    *初始化临时工作栈sbak*   *将栈*s中所有比parach更接近栈顶的元素暂时存放在临时工作栈sbsk中*   while(!IsEmpty(*s)){    ch=()*取栈顶元素:    Pop(S)    if(Ch=parach){      tag=TRUE:    break    }    ()   }   *将暂存于临时工作栈sbak中的元素存回栈*s*   while(()){    Ch=Top(sbak)    ()     Push(s,ch)   }   returntag  }   从下列的道试题(试题四至试题五)中任选道解答。  如果解答的试题数超过道则题号小的道解答有效。试题四(共分)  阅读以下说明和C语言函数将应填入(n)处的字句写在答题纸的对应栏内。说明  某工厂A负责为某大型企业B加工零件A每天必须为B提供一定数量的零件。由于某种客观原因A每天生产的零件的单价都不相同。若A某天生产的零件数多于B需要的数目则多余的零件可以放到第二天及以后再使用但需要收取每个零件的保管费(产品单价之外附加的费用)每个零件在不同日期收取的保管费也不相同。  例如在天的生产中B要求的零件需求量及A核算出的零件单价和保管费用如表所示:表 第一天第二天第三天第四天第五天需求量(个)零件的单价(元)单个零件的保管费用(元)  A可以制订多种生产计划但费用可能不同。例如表所示为生产计划及其费用。表 计划产量(个) 总费用(元)第一天第二天第三天第四天第五天计划计划计划计划  注:()计划的总费用:*****=(元)    ()计划的总费用:******=(元)    ()计划的总费用:*****=(元)    ()计划不可行虽然第一天和第二天生产的零件总数比需求量多个但加上第三天生产的个零件(共个)仍不能满足B第三天的需求量(个)。  函数finlaplan(FILE*in)的功能是:从文件中读入若干个生产计划从可行的计划中选出费用最小者记录该生产计划并返回该最小费用。  全局结构体数组data用于保存表所示的数据(data不用)说明如下:   dataiQtyreq:int型表示第i天的零件需求量。   dataiPrice:double型表示第i天生产的零件单价(元)。   dataiKeepingfee:double型表示第i天保管单个零件的费用(元)。C语言函数  intBsDAYS    *扫记录成本最小的生产计划ls不用DAYS定义为天数*  doublefindaplan(FILE*inf)  {intPnumDAYSaccreqDAYS:   intitag=accqty=   doublemincost=e,costProduce,costKeep   for(i=i<=DAYSi){   *到第i天时的累计零件需求量存入accreqi*    accjty=dataiQtyreq    accreqi=accqty   }   while(!feof(inf)){    for(i=i<=DAYSi**)  *读入一个生产计划第i天的产量存入Pnumi*    if(!feof(inf))     fscanf(inf,*"d",Pnumi)    tag=costProduce=costKeep=:    for(i=()i<=DAYSi){  *考察当前的生产计划*     accqty=Pnumi)      *accqty计录到第i天时的累计零件生产量*     if(accqty<accreqi){  *当前生产计划不能满足需求*      tag=break    }*if*    costProduce=()*计算当前生成计划的总零件价格*    *计算当前生成计划下的零件保管费*    costKeep = (()) * dataiKeepingfee   }*for*   if(())    *若当前生产计划不可行则继续读取下一计划*    continue   if(()){   *记录成本更小的生产计划*    mincost=costProducecostKeep    for(i=i<=DAYSi)     Bsi=Pnumi     }*if*   }*while*   returnmincost  }试题五(共分)  阅读以下应用说明以及用VisualBasic开发过程中所编写的程序代码将应填入(n)处的字句写在答题纸的对应栏内。应用说明  某应用程序在运行过程中的一个界面如下图所示:  在“供选课程”列表框(名为Listl)中选择某个课程后再单击“>*按钮(名称为cmdSelect)就能将该课程复制到“所选课程”列表框(名称为List)中(但要注意不要出现重复项)如果单击“>>”按钮(名称为cmdSelAll)就能将全部供选课程名复制到列表框List中(注意应先删除List中的已选项)如果在“所选课程”列表框中选中某个课程再单击“<”按钮(名称为cmdDelete)就会从List中删除该课程(未选课程时应不做处理):如果单击“<<”按钮(名称为cmdDelAll)就会从List中删除所有已选课程。VisualBasic程序代码  PrivateSubCmdSelectClick()   Fori=TOListListCount    IfListText=LsitList(i)ThenExitSub‘不要重复选择   Nexti   ListAddltem()    ‘在List中增添List中所选的项  EndSub  PrivateSubCmdSelAllClick()   ListClear          ‘先删除List中的已有项   Fori=To()     ‘对List中所有各项做循环处理    ListAddltem()   ‘将该项增添到List中   Nexti  EndSub  PrivateSubCmdDeleteClick()   IfListListIndex>=Then    ‘如果List中有选中的项    ListRemoveltem()   ‘则删除所选的项   EndIf  EndSub  PrivateSubCmdDelAllClick()   ()  EndSub  从下列的道试题(试题六至试题八)中任选道解答。  如果解答的试题数超过道则题号小的道解答有效。试题六(共分)  阅读以下说明和C代码将解答写在答题纸的对应栏内。说明  已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和类SuperClass中的getSum为纯虚拟函数‘程序中的第行有错误请修改该错误并给出修改后的完整结果然后完善程序中的空缺分析程序运行到第行且尚未执行第行的语句时成员变量j的值最后给出程序运行后的输出结果。C代码   行号  代码   O #include<iostream>    usingnamespacestd    classSuperClass{     private:     inti    public:     SuperClass(){i=}     virtualihtgetValueO{returni}     virtualintgetSum()=   lO }    classSubClass:publicSuperClass{    intj    public:     SubClass(intj):j(){      ()=j   用参数j的值更新数据成员     }     intgetValue(){returnj}     intgetSum(){      return()getValue()j     }    }    voidmain(void){     SuperClasss=newSubClass()     cout<<s>getValue()<<""     cout<<s>getSum()<<endl     deletes    }试题七(共分)  阅读以下应用说明以及用VisualBasic开发过程中进行的属性设置和所编写的程序代码将应填入(n)处的字句写在答题纸的对应栏内。 应用说明  启动某应用程序后其运行窗口左边会出现两只蝴蝶下边有“启动”和“停止’两个按钮。单击“启动”按钮后伴随“两只蝴蝶”音乐两只蝴蝶会分别沿两条互绞的曲线自左至右翩翩飞行(见下图)而且飞出窗口右边后又会再从窗口左边飞入。  单击“停止”按钮时两只蝴蝶停止飞行回到初始状态音乐也同时停止。再单击“启动”按钮时蝴蝶重新开始伴音飞行。  在开发该应用时两只蝴蝶用两个图像框来表示分别命名为Imagel和Image其Picture属性分别设置为各个蝴蝶的图像文件名其stretch属性都应设置为()使图像能自动改变大小以适应图像框。再在窗体中建立“启动”按钮(名为CmdStart)和“停止”按钮(名为CmdStop)。  蝴蝶所飞行的路线分别用正弦和余弦曲线描述。为此首先需要用Scal方法对窗体定义坐标系统。设左上角坐标为(,)右下角坐标为(,)。蝴蝶的飞行曲线设为yl=sinx蝴蝶的飞行曲线设为:y=cosx。蝴蝶飞行的位置坐标(x,y)确定了蝴蝶图像框的位置(Left属性值和Top属性值)。  设置一个定时器(名为timerl)其定时时间间隔为秒所以其Interval属性值应设置为。每隔 秒需要对两个图像框的位置进行一次调整。初始时该定时器的Enabled属性应设为False(关闭状态)。  为使该应用程序运行时能播放声音文件在开发时应利用菜单“工程部件”选择加载组件“MicrosoftMultimediaControl”并在窗体中设置多媒体控件(设命名为MC)。由于不需要用户控制其Visible属性可设置为False(不可见)。右击该控件可选择该控件中各按钮的属性应注意选择“播放”有效、“停止”有效。“两只蝴蝶”的音乐文件应提前准备好并通过某种音频处理程序将其转换成WAV格式存放在开发该应用的当前目录中。VisualBasic程序代码  Dim()           '声明全局变量  PrivateSubFormLoad()   Scale(,)(,)       '定义窗体的坐标系统  EndSub  PrivateSubCmdStartClick()   x=   MMCDeviceType="WaveAudio"  '设置多媒体设备类型   MMCFileName="两只蝴蝶way"  '确定声音文件名   MMCCommand="Open"      '打开多媒体设备   MNCCommand="Play"      '启动声音的播放   TimerlEnabled=True  EndSub              '打开定时器  PrivateSubTimerlTimer()   Ifx>Thenx=x   '蝴蝶飞到右边界后再回到左边界   ImagelLeft=x         '动态调整蝴蝶框的位置   ImagelTop=()   ImageLeft=x   ImageTop=()   x=x           '确定蝴蝶下一步飞行位置  EndSub  PrivateSubCmdStopClick()   ()   ImagelLeft=         '蝴蝶位置初始化   ImagelTop=   ImageLeft=   ImageTop=   MMCCommand="Stop"      '停止播放   MMCCommand="Close"      '关闭多媒体设备  EndSub试题八(共分)   阅读以下说明和Java代码将解答写在答题纸的对应栏内。说明  已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和类SuperClass中的getSum为抽象函数程序中的第行有错误请修改该错误并给出修改后的完整结果然后完善程序中的空缺当程序运行到第行且尚未执行第行语句时成员变量i的值最后给出程序运行后的输出结果。Java代码  行号 代码    publicclassUainJava{      publicstaticvoidmain(Stringargs){      SuperClasss=newSubClass()      Systemoutprintln(sgetValue())      Systemoutprintln(SgetSum())     }    }    abstractclassSuperClass{     privateinti     publicSuperClass(){i=}     publicintgetValue(){      returni     }      publicfinalabstractintgetSum()    }    classSubClassextendsSuperClass{     intj     publicSubClass(){      this()      }     publicSubClass(intj){      ()j=j     }     publicintgetValue(){returnj}     publicintgetSum(){      return()getValue()j     }    }回目录    老顽童整理校对年月

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/11

程序员2006年52006年上半年程序员下午试题

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利