考试总分:8分
考试类型:模拟试题
作答时间:60分钟
已答人数:967
试卷答案:有
试卷介绍: 2006年上半年程序员下午试题
A(1)___‘在List2中增添List1中所选的项EndSubPrivateSubCmdSelAll_Click()List2.Clear‘先删除List2中的已有项Fori=0To___
B(2)___‘对List1中所有各项做循环处理List2.Addltem___
C(3)___‘将该项增添到List2中NextiEndSubPrivateSubCmdDelete_Click()IfList2.ListIndex>=0Then‘如果List2中有选中的项List2.Removeltem___
D(4)___‘则删除所选的项EndIfEndSubPrivateSubCmdDelAll_Click().___
E(5)___EndSub[15分]
A(1)__,使图像能自动改变大小以适应图像框。再在窗体中建立“启动”按钮(名为CmdStart)和“停止”按钮(名为CmdStop)。蝴蝶所飞行的路线分别用正弦和余弦曲线描述。为此,首先需要用Scal方法对窗体定义坐标系统。设左上角坐标为(0,0),右下角坐标为(20,6)。蝴蝶1的飞行曲线设为;yl=2+sinx,蝴蝶2的飞行曲线设为:y2=2+cosx。蝴蝶飞行的位置坐标(x,y)确定了蝴蝶图像框的位置(Left属性值和Top属性值)。设置一个定时器(名为timerl),其定时时间间隔为0.1秒,所以其Interval属性值应设置为100。每隔0.1秒需要对两个图像框的位置进行一次调整。初始时,该定时器的Enabled属性应设为False(关闭状态)。为使该应用程序运行时能播放声音文件,在开发时应利用菜单“工程-部件”,选择加载组件“MicrosoftMultimediaControl6.0”,并在窗体中设置多媒体控件(设命名为MC)。由于不需要用户控制,其Visible属性可设置为False(不可见)。右击该控件,可选择该控件中各按钮的属性,应注意选择“播放”有效、“停止”有效。“两只蝴蝶”的音乐文件应提前准备好,并通过某种音频处理程序将其转换成WAV格式,存放在开发该应用的当前目录中。[VisualBasic程序代码]Dim__
B(2)__'声明全局变量PrivateSubForm_Load()Scale(0,0)-(20,6)'定义窗体的坐标系统EndSubPrivateSubCmdStart_Click()x=0MMC.DeviceType="WaveAudio"'设置多媒体设备类型MMC.FileName="两只蝴蝶.way"'确定声音文件名MMC.Command="Open"'打开多媒体设备MNC.Command="Play"'启动声音的播放Timerl.Enabled=TrueEndSub'打开定时器PrivateSubTimerl_Timer()Ifx>20Thenx=x-20'蝴蝶飞到右边界后再回到左边界Imagel.Left=x'动态调整蝴蝶框的位置Imagel.Top=__
C(3)__Image2.Left=xImage2.Top=__
D(4)__x=x+0.1'确定蝴蝶下一步飞行位置EndSubPrivateSubCmdStop_Click()__
E(5)__Imagel.Left=0'蝴蝶位置初始化Imagel.Top=2Image2.Left=0Image2.Top=3MMC.Command="Stop"'停止播放MMC.Command="Close"'关闭多媒体设备EndSub[15分]
A(1)___=j;//用参数j的值更新数据成员16};17intgetValue(){returnj;}18intgetSum(){19return___
B(2)___getValue()+j;20}21};22voidmain(void){23SuperClasss=newSubClass(-3);24coutgetValue()getSum()<<endl;26deletes;27}[15分]
A(1)___.j=j;23}24publicintgetValue(){returnj;}25publicintgetSum(){26return___
B(2)___.getValue()+j;27}28}[15分]
A(1)矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置?
B(2)A(i,j)后来又被复制到矩阵C中的哪个位置?
C(3)填补流程图1-2中的空缺。[15分]
A(1)__)/*若num不大于0或num的位数大于4,则返回-1*/return-1;mul=1;__
B(2)__;while(m>O){d=m%10;m=__
C(3)__;result=result+(__
D(4)__)*mul;mul=__
E(5)__;}returnresult;}[15分]
A(1)__;/*初始化临时工作栈s_bak*//*将栈*s中所有比para_ch更接近栈顶的元素暂时存放在临时工作栈s_bsk中*/while(!IsEmpty(*s)){ch=___
B(2)___;/*取栈顶元素:/Pop(S);if(Ch=para_ch){tag=TRUE:break;}___
C(3)___;}/*将暂存于1临时工作栈s_bak中的元素存回栈*s*/while(___
D(4)___){Ch=Top(s_bak);___
E(5)___;Push(s,ch);}returntag;}[15分]
A(1)计划1的总费用:25*20+15*30+30*32+35*25+30*35=3835(元)
B(2)计划2的总费用:40*20+15*4.5+30*32+50*25+15*5.5+15*35=3685(元)
C(3)计划3的总费用:70*20+45*4.5+30*8+65*25+30*5.5=3632.5(元)
D(4)计划4不可行,虽然第一天和第二天生产的零件总数比需求量多5个,但加上第三天生产的20个零件(共25个),仍不能满足B第三天的需求量(30个)。函数finla_plan(FILE*in)的功能是:从文件中读入若干个生产计划,从可行的计划中选出费用最小者,记录该生产计划并返回该最小费用。全局结构体数组data[]用于保存表1所示的数据(data[0]不用),说明如下:data[i].Qty_req:int型,表示第i天的零件需求量。data[i].Price:double型,表示第i天生产的零件单价(元)。data[i].Keeping_fee:double型,表示第i天保管单个零件的费用(元)。[C语言函数]intB_s[DAYS+1];/*扫记录成本最小的生产计划,ls[0]不用,DAYS定义为天数*/doublefind_a_plan(FILE*inf){intPnum[DAYS+1],acc_req[DAYS+1]:inti,tag=0,acc_qty=0;doublemincost=1.0e20,costProduce,cost_Keep;for(i=1;i<=DAYS;i++){/*到第i天时的累计零件需求量存入acc_req[i]*/accjty+=data[i].Qty_req;acc_req[i]=acc_qty;}while(!feof(inf)){for(i=1;i<=DAYS;i**)/*读入一个生产计划,第i天的产量存入P_num[i]*/if(!feof(inf))fscanf(inf,*"%d",&P_num[i]);tag=0;cost_Produce=0;cost_Keep=0:for(i=1,___(1)___;i<=DAYS;i++){/*考察当前的生产计划*/acc_qty+=P_num[i]);/*acc_qty计录到第i天时的累计零件生产量*/if(acc_qty<acc_req[i]){/*当前生产计划不能满足需求*/tag=1;break;}/*if*/cost_Produce+=___(2)___;/*计算当前生成计划的总零件价格*//*计算当前生成计划下的零件保管费*/cost_Keep+=(___(3)___)*data[i].Keeping_fee;}/*for*/if(___(4)___)/*若当前生产计划不可行,则继续读取下一计划*/continue;if(___
E(5)___){/*记录成本更小的生产计划*/mincost=cost_Produce+cost_Keep;for(i=1;i<=DAYS;i++)B_s[i]=P_num[i];}/*if*/}/*while*/returnmincost;}[15分]