首页 二级上机测试中VB程序设计及程序调试样题

二级上机测试中VB程序设计及程序调试样题

举报
开通vip

二级上机测试中VB程序设计及程序调试样题声明:本资料由 大家论坛计算机考试专区 http://bbs 声明:本资料由 大家论坛计算机考试专区 http://bbs.topsage.com/index_49.html 收集整理,转载请注明出自 http://bbs.topasge.com 更多计算机考试信息,考试真题,模拟题:http://bbs.topsage.com/index_49.html 大家论坛,学习的天堂! 二级上机测试中VB程序设计及程序调试样题 浙江省计算机等级考试(二级VB)上机测试的程序设计题,从2002年秋季开始,其题型及考试要求都...

二级上机测试中VB程序设计及程序调试样题
声明:本资料由 大家论坛计算机考试专区 http://bbs 声明:本资料由 大家论坛计算机考试专区 http://bbs.topsage.com/index_49.html 收集整理,转载请注明出自 http://bbs.topasge.com 更多计算机考试信息,考试真 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,模拟题:http://bbs.topsage.com/index_49.html 大家论坛,学习的天堂! 二级上机测试中VB程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 及程序调试样题 浙江省计算机等级考试(二级VB)上机测试的程序设计题,从2002年秋季开始,其题型及考试要求都有较大变化。要求考生在老考生目录中,按照题目要求,自己新建一 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 文件Design.Vbp,按题目要求完成界面设计和编写相应事件代码。 程序设计题的操作步骤如下: 1.考生在单击“回答”按钮后,便可启动Visual Basic6.0系统,同时运行考生目录中的Design.exe文件,以便考生设计时随时同程序设计要求最终效果比较。 2.程序界面设计,要求考生设置窗体指定的一些属性,在窗体添加控件,并设置控件的某些属性。 3.编写程序代码,根据题目的要求,在代码窗口中编写相应事件的程序代码,调试运行程序使其程序的运行效果与运行Design.exe的效果相同。 4.将工程以文件名“Design.Vbp”,窗体以文件名“Design.Frm”保存在考生文件夹中。 注意:界面设计中,以默认方式命名控件,从左至右,从上向下的顺序拖放控件。在调试过程中,考生可通过运行考生目录下的Design.exe文件来查看程序的最终效果。把自己完成的程序运行效果同它比较,若有不同,再次检查你的界面设计和程序代码是否正确,使程序运行效果与Design.exe运行结果相同。 下面是计算机等级考试(二级Visual Basic程序设计)上机测试的程序设计样题。如果学生要上机做这些试题,由于你的计算机中没有Design.EXE文件,你可自己启动Visual Basic6.0系统,新建一 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 EXE工程,按题目的要求设计界面、添加所需控件并设置相关属性,编写相应事件代码,使其程序运行结果能实现题目的要求。 (一)程序设计题 1.请参考Design.exe程序的运行结果,新建一个工程,完成“添加与删除”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“添加与删除”,固定边框。 (2)在窗体中引入一个文本框Text1,再在文本框的下面引入一个列表框List1,列表框 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 中有四项,分别为“Word、Excel、PowerPoint、Outlook”。 (3)单击“添加”按钮(Command1),将文本框中的内容加到列表框中的第一题,如果文本框中没有内容,则给出提示“没有内容,不予添加”。 (4)单击“删除”按钮(Command2),将选中表项删除,如果没有选择要删除的表项,则给出提示“请选择删除的项目”。 (5)其他界面设计参考Design.exe程序运行效果,如图2-1所示。 图2-1 “添加与删除”程序运行结果 2.请参考Design.exe程序的运行结果,新建一个工程,完成“加法器”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“加法器”,固定边框。 (2)在窗体上从到下依次引入Text1、Text2、Text3三个文本框,三个文本框的对齐方式均为右对齐。 (3)上面两个文本框用于输入加数,要求不接受非数字键 (4)下面一个文本框用于显示和,它不能进行编辑操作。 (5)单击“=”按钮(Command1),将两个加数的和显示在下面一个文本框中。 (6)单击“清空”按钮(Command2),三个文本框内容都被清空,同时第一个文本框获得焦点。 (7)其他界面设计参考Design.exe程序运行效果,如图2-2所示。 图2-2 “加法器”程序运行效果 3.请参考Design.exe程序的运行结果,新建一个工程,完成“字幕滚动”程序设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“字幕滚动”,固定边框。 (2)在属性窗口中将标签(Label1)的标题设为“祝您考试成功”,字体设置为“宋体”、字形为“粗体”、大小为“二号”、文字颜色为“红色”。 (3)单击“开始”按钮,标签文字在定时器控制下自动地从左向右移动,移动速度为每个时间间隔右移100缇,当标签移动到窗体外时,再从窗体的左边进入,同时“开始”按钮变为“停止”按钮。 (4)单击“停止”按钮,标签“祝您考试成功”文字停止滚动。同时,“停止”按钮变为“开始”按钮。 (5)定时器(Timer1)的时间间隔为0.1秒。 (6)其他界面设计参考Design.exe程序运行效果,如图2-3所示。 图2-3 “字幕滚动”程序运行效果 4.请参考Design.exe程序的运行结果,新建一个工程,完成“改变字号”程序设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“改变字号”,固定边框。 (2)窗体的下部有一个水平滚动条Hscroll1,它的取值范围为[12,72]。 (3)窗体的上部有一个标签Label1,标题为“心想事成”,格式设置为在窗体中水平居中对齐。 (4)水平滚动条的上有一个标签Label2,标题为“字号”,标签的旁边有一个文本框Text1,文字内容为“12”,Text1最多接受两个字符。 (5)改变滚动条可以控制标签文字的大小,并同时在文本框Text1中显示标签文字的大小改变后的字号。 (6)在文本框Text1中输入一个属于[12,72]的两位整数后,也可以改变标签文字的大小,并同时调整水平滚动条的滚动框位置;如果输入的数据不在上述范围内,则不起作用(要求用Text1的Change事件实现)。 (7)要求以上两种改变字号的操作要保持标签Label1在窗体中水平居中。 (8)其他界面设计参考Design.exe程序运行效果,如图2-4所示。 图2-4 “改变字号”程序运行效果 5.请参考Design.exe程序的运行结果,新建一个工程,完成“字幕闪烁”程序设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“字幕闪烁”,固定边框。 (2)在属性窗口中将标签(Label1)的标题设为“祝您考试成功”,字体设置为“宋体”、字形为“粗体”、大小为“二号”、文字颜色为“红色”。格式设置为在窗体中水平居中对齐。 (3)单击“开始”按钮,标签文字在定时器控制下自动交替以红兰两种颜色显示。同时“开始”按钮变为“停止”按钮。 (4)单击“停止”按钮,标签文字停止闪烁。同时,“停止”按钮变为“开始”按钮。 (5)定时器(Timer1)的时间间隔为0.3秒。 (6)其他界面设计参考Design.exe程序运行效果,如图2-5所示。 图2-5 “字幕闪烁”程序运行效果 6.请参考Design.exe程序的运行结果,新建一个工程,完成“图片欣赏”程序设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“图片欣赏”,固定边框。 (2)窗体上有驱动器列表框(Drive1)、目录列表框(Dir1)和文件列表框(File1)三个控件,要求三个控件能够联动。 (3)窗体的右半部有一个图像框Image1,将它的Stretch属性设置为True。 (4)设置文件列表框只显示*.bmp和*.jpg类型的图片文件。 (5)单击文件列表框上的图片文件名时,图片显示在图像框中。 (6)其他界面设计参考Design.exe程序运行效果,如图2-6所示。 图2-6 “图片欣赏”程序运行效果 7.请参考Design.exe程序的运行结果,新建一个工程,完成“拨号盘”程序设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“拨号盘”,固定边框。 (2)窗体的上边有一个文本框Text1,设置为最多接受10个字符;Font;宋体、粗体、三号;文字颜色为兰色。 (3)用命令按钮数组Command1(0)~Command1(9)构成数字键,数字键标题正好和命令按钮数组的下标一致。单击数字键按钮,将拨号的内容显示在文本框中。 (4)单击“重拨”按钮(Command2),再现原来的拨号过程;(提示:再现过程由定时器实现)。 (5)定时器(Timer1)的时间间隔为0.5秒。 (6)其他界面设计参考Design.exe程序运行效果,如图2-7所示。 图2-7 “拨号盘”程序运行效果 8.请参考Design.exe程序的运行结果,新建一个工程,完成“作图”程序设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“作图”,固定边框。 (2)窗体的右边是一个图片框Picture1,用于显示图形。 (3)单击“坐标系”按钮(Command1),将图片框的坐标系统设置为原点在中央,X轴[-10,10],Y轴[-10,10],并在图片框中画出该坐标系统示意图。 (4)单击“扇形”按钮(Command2),在图片框中画一个圆心在原点,半径为5,圆周为红色,线宽为2,内部为绿色,起始角为л/6,终止角为5л/6的扇形。 (5)单击“结束”按钮(Command3),程序结束运行, (6)其他界面设计参考Design.exe程序运行效果,如图2-8所示。 图2-8 “作图”程序运行效果 9.请参考Design.exe程序的运行结果,新建一个工程,完成“反弹球”程序的设计。将工程文件以Design.vbp、窗体文件以Design.frn保存到考生目录下,具体要求如下: (1)窗体的标题为“反弹球”,固定边框。 (2)设计两个菜单项,nnustart的标题为“启动”,nnustop的标题为“停止”。 (3)在窗体中引入一个形状控件Shapel,形状为圆,贺半径为500Twios,填充色为红色。 (4)第一次单击菜单“启动”,圆球先向右上角方向运动,碰壁后改变方向。每年时间间隔水平方向改变量bx和垂直方向改变量by都是100Twips。 (5)单击菜单“停止”,圆球停止运动。再单击菜单“启动”,圆球继续运动。 (6)定时器(timerl)的时间间隔为0.1秒。 (7)其他界面设计参考Design.exe程序运行效果,如图2-9所示。 图2-9 “反弹球”程序运行效果 10.请参考Design.exe程序的运行结果,新建一个工程,完成“健康称”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“健康称”,固定边框。 (2)窗体的左边有两个标签,Label1的标题为“身高”、Label2的标题为“体重”;它们的旁边分别有两个文本框,Text1用于输入身高、Text2用于输入体重;在文本框的右边有两个标签,Label3的标题为“cm”,Label4的标题为“kg”。 (3)将两个文本框文字对齐方式均设置为右对齐,最多接受3个字符。 (4)两个文本框均不接受非数字键。 (5)单击“健康状况”按钮(Command1),根据计算公式将相应的提示信息显示在标签Label5中。 计算公式为:标准体重=身高-105;体重高于标准体重*1.1为偏胖,提示“偏胖,注意节食”;体重低于标准体重*0.9为偏瘦,提示“偏瘦,增加营养”;其他为正常,提示“正常,继续保持”。 (6)其他界面设计参考Design.exe程序运行效果,如图2-10所示。 图2-10 “健康称”程序运行效果 11.请参考Design.exe程序的运行结果,新建一个工程,完成“电子钟”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“电子钟”,固定边框。 (2)设计两个定时器,Timer1用于显示系统时间,时间间隔为一秒;Timer2用于判断闹钟时间,时间间隔为0.5秒,Timer2设置为不可用。 (3)窗体的上半部是标签Label1,用于显示时间,设置Label1的Font为:宋体、粗体、二号,背景白色,文字居中对齐,固定边框。 (4)窗体的下半部有一个标签Label2,标题为“闹钟时间:”;Label2的右边是文本框Text1。 (5)在文本框中输入闹钟时间并按回车后,启动判断闹钟时间的定时器Timer2,如果Label1显示的时间超过那种时间,则标签Label1的背景色按红白两色交替变换。 (6)其他界面设计参考Design.exe程序运行效果,如图2-11所示。 图2-11 “电子钟”程序运行效果 12.请参考Design.exe程序的运行结果,新建一个工程,完成“改变大小”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“改变大小”,固定边框。 (2)窗体上引入一个红色的圆形形状控件(Shape1),圆的直径为3400Twips。 (3)窗体的下面有一个水平滚动条Hscroll1,将它的最大值设置为与圆的直径相同,初始值为最大值,SmallChange和LargeChange均为100Twips。 (4)水平滚动条的下面有两个标签控件,Label1的标题为“圆直径为:”,Label2的标题为“3400”,两个标签均为固定边框。 (5)改变滚动条的值可以控制圆形的直径,同时在标签Label2中动态显示圆形的直径。 (6)要求圆形直径在变化时要保持圆心位置不变。 (7)其他界面设计参考Design.exe程序运行效果,如图2-12所示。 图2-12 “改变大小”程序运行效果 13.请参考Design.exe程序的运行结果,新建一个工程,完成“点餐”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“点餐”,固定边框。 (2)窗体上有一个框架Frame1,标题为“菜单”。框架内有复选框数组提供选择三种套餐,Check1(0)的标题为“儿童套餐13元”,Check1(1)的标题为“标准套餐18元”,Check1(2)的标题为“商务套餐25元”。框架的右边有一个标签Label1,标题为“份数”,标签的下面是文本框控件数组,从上到下依次为Text1(0)、Text1(1)和Text1(2),文本框中都没有内容,并且都不能使用。 (3)在复选框中进行了选择操作后,相应的文本框才能输入并自动获得焦点;如果取消选择,那么相应的文本框内容立即清空并且不能使用了。 (4)要求文本框在输入时只接受数字键。 (5)单击“确定”按钮(Command1),统计点餐的金额,并用消息框显示出来。 (6)其他界面设计参考Design.exe程序运行效果,如图2-13所示。 图2-13 “点餐”程序运行效果 14.请参考Design.exe程序的运行结果,新建一个工程,完成“编辑”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“编辑”,固定边框。 (2)窗体是上半部是一个文本框Text1,可以多行显示文字。 (3)文本框的下面从左到右依次排列4个命令按钮(Command1、Command2、Command3和Command4),标题分别为“复制”、“剪切”、“粘贴”和“删除”。 (4)编写各命令按钮的单击事件,分别实现“复制”、“剪切”、“粘贴”和“删除”功能。 (5)其他界面设计参考Design.exe程序运行效果,如图2-14所示。 图2-14 “编辑”程序运行效果 15.请参考Design.exe程序的运行结果,新建一个工程,完成“字体设置”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“字体设置”,固定边框。 (2)窗体的上边有一个文本框Text1,文字内容为“心想事成”。 (3)文本框下面的左边有一个标签Label1,标题为“字体:”,标签下面是一个简单组合框Combo1,有三项内容,分别是“宋体、黑体、楷体-GB2313”,单击时文本框的字体进行设置。 (4)文本框下面的右边有一个标签Label2,标题为“大小:”,标签下面是一个简单组合框combo2,有八项内容,分别是“10、12、16、20、24、36、48、72”,单击时对文本框的文字大小进行设置。 (5)其他界面设计参考Design.exe程序运行效果,如图2-15所示。 图2-15 “字体设置”程序运行效果 16.请参考Design.exe程序的运行结果,新建一个工程,完成“倒计时”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“倒计时”,固定边框。 (2)窗体的左边有一个框架Frame1,标题为“选择时间”;框架内有一组单选钮控件数组,从上到下为Option1(0)、Option1(1)和Option1(2),标题分别为“1分钟”、“5分钟”和“10分钟,默认选择为1分钟。 (3)窗体的右边有一个标签Label1,用于显示倒计时的剩余的时间,标签Label1设置为:宋体、粗体、三号,文字居中对齐,固定边框。 (4)单击“开始计时”按钮(Command1)后,程序根据选择的时间开始倒计时,同时命令按钮变为不可使用,框架也不可使用。 (5)但当剩余时间到0分0秒时,改为显示“时间到!”。 (6)定时器Timer1的时间间隔为1秒。 (7)其他界面设计参考Design.exe程序运行效果,如图2-16所示。 图2-16 “倒计时”程序运行效果 17.请参考Design.exe程序的运行结果,新建一个工程,完成“替换”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“替换”,固定边框。 (2)窗体的上半部是一个文本框Text1,可以多行显示文字。 (3)文本框Text1的下面有一个标签Label1,标题为“查找:”,标签Label1的右边是一个文本框Text2,可以在Text2中输入查找内容。 (4)标签Label1的下面有一个标签Label2,标题为“替换为:”,标签Label2的右边是一个文本框Text3,可以在Text3中输入替换为的内容。 (5)单击“替换”按钮(Command1),对文本框Text1中与查找内容匹配的文字进行替换操作。 (6)其他界面设计参考Design.exe程序运行效果,如图2-17所示。 图2-17 “替换”程序运行效果 18.请参考Design.exe程序的运行结果,新建一个工程,完成“偶数迁移”程序的设计。将工程文件以Design.Vbp、窗体文件以Design.frm保存到考试目录下,具体要求如下: (1)窗体的标题为“偶数迁移”,固定边框。 (2)窗体的左边有一个标签Label1,标题为“两位正整数:”,标签的下面是一个列表框List1。 (3)窗体的右边有一个标签Label2,标题为“偶数:”,标签的下面是一个列表框List2。 (4)单击“产生”按钮(Command1),计算机产生10个两位正整数放入列表框List1中。同时清空列表框List2中的内容。 (5)单击“-->”按钮(Command2),将列表框List1中所有偶数迁移到列表框List2中。 (6)其他界面设计参考Design.exe程序运行效果,如图2-18所示。 图2-18 “偶数迁移”程序运行效果 (二) 程序调试 程序调试题的操作步骤是: (1)建立一标准EXE工程,将这一模块程序添加到工程中。如果你是通过双击标准模块程序Model1.BAS进入Visual Basic系统的,则首先需要添加一个窗体模块。 (2)将该标准模块程序Model1.BAS中代码的指定的错误修改正确或在指定的空位填上适当的语句,并在窗体模块中编写代码(常常写在窗体的Click()事件中)调用标准模块中的Sub过程或用户自定义函数(如果在标准模块程序Model1.BAS有多个过程或函数,要注意调用的先后顺序,否则得不到正确结果),调试运行程序,使其能输出正确结果。 (3)按试题要求保存工程。 如果你的计算机中没有模块程序Model1.BAS,你必需先自己新建一工程,再添加一个默认标准模块,将题目所附的参考程序输入(可复制粘贴),将其中用---n---(n为1,2,3,4,5)部分删除后改为合适的内容或将用**** 错误n **** 标示的下一语句中的错误改正,然后调试运行程序使其达到该题目的要求。 1.已有一模块文件Modify.Bas。该模块中的Summary过程是用于计算1!+2!+...+20!,并打印出计算结果,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的nFactor函数过程用于计算n!。 程序如下: Public Function nFactor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double ----1---- For i = 1 To n temp = temp * i Next i nFactor = ----2---- End Function Public Sub summary() Dim sum As Double Dim i As Integer Dim n As Integer n = 20 For i = 1 To n sum = sum + ----3---- Next i Form1.Print "sum=" & ----4---- End Sub 2.已有一模块文件Modify.Bas。该模块中的Calculate过程是产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 程序如下: Public Sub calculate() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数 '每行10个打印出来 For i = 1 To 100 '******** 错误1 *********** a(i) = Rnd * 100 If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数 '并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 '******** 错误2 ********** p = Int(a(i) / 10) '求个位上的数字 If p = 0 Then p = 10 '******** 错误3 ********** x(p) = x(p) - 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 '******** 错误4 ********* Form1.Print "个位数为" + Str(p) + "共" + Str(x(p)) + "个" Next i End Sub 3.已有一模块文件Modify.Bas。该模块中的Findat过程是用于在一个字符串变量中查找"at",并用消息框给出查找结果的报告:没有找到或找到的个数,但不完整,请在横线上填入必要的内容,使其完整。 程序如下: Public Sub Findat() '在字符串str1中查找"at" Dim str1 As String Dim length As Integer '字符串长度 Dim sum As Integer '查到的个数 Dim i As Integer str1 = InputBox("请输入一个字符串") length = ----1---- i = 1 sum = 0 Do While i <= ----2---- If ----3---- = "at" Then sum = sum + 1 End If i = i + 1 Loop If ----4---- Then MsgBox "没有找到!" Else MsgBox "找到了" & Str(sum) & "个" End If End Sub 4.已有一模块文件Modify.Bas。该模块中的 Guess 过程是猜数游戏,由计算机产生一个[1,100]的任意整数,输入猜数后计算机给出提示,如果5次后还没有猜中就结束游戏并公布正确答案。 程序如下: Public Sub Guess() Dim R As Integer Dim X As Integer Dim times As Integer Randomize '****** 错误1 ****** R = Rnd * 100 '产生一个1--100 的任意整数 times = 1 Do X = Val(InputBox("输入猜数X")) Select Case X Case R Form1.Print "猜中了" Exit Do '***** 错误2 ****** Case X > R Form1.Print "太大了,继续猜!" Case Else Form1.Print "太小了,继续猜!" End Select times = times + 1 '****** 错误3 ****** Loop While times > 5 If times > 5 Then Form1.Print "猜数失败,游戏结束!" '****** 错误4 ****** Form1.Print "正确答案为" & Str(X) End If End Sub 5.已有一模块文件Modify.Bas。该模块中的ArmstrongNumber过程是用于求出1--999之间所有的Armstrong数,并打印出来,但不完整,请在横线上填入必要的内容,使其完整。所谓Armstrong数是指一个数等于它每位上数字的立方和。例如:371=3^3+7^3+1^3,那么371就是一个Armstrong数。 程序如下: Public Sub ArmstrongNumber() Dim armstrong As Integer Dim i As Integer Dim hundred As Integer '百位上的数字 Dim ten As Integer '十位上的数字 Dim one As Integer '个位上的数字 For i = 1 To 999 hundred = ----1---- ten = ----2---- one = ----3---- If ----4---- Then Form1.Print i; "is armstrong number" End If Next i End Sub 6.已有一模块文件Modify.Bas。该模块中的 CountTo60 过程是用于从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分,要求输出取法的数量及每一种取法的一分、二分、五分的个数。 程序如下: Public Sub CountTo60() '从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分 '输出取法的数量及每一种取法的一分、二分、五分的个数 Dim one As Integer '一分硬币个数 Dim two As Integer '二分硬币个数 Dim five As Integer '五分硬币个数 Const n = 20 '总数20枚 Dim k As Integer '取法数量 k = 0 For one = 1 To n '******* 错误1 ******** For two = one + 1 To n five = n - one - two '******* 错误2 ********* If one + two + five = 60 Then k = k + 1 Form1.Print "one="; one; "two="; two; "five="; five End If '******* 错误3 ******** Next one '****** 错误4 ****** Next two Form1.Print "k="; k End Sub 7.已有一模块文件Modify.Bas。该模块中的TJ过程是将一批数据中小于零的数及它们的积打印出来,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的SCSJ过程是产生数据,数据的取值范围为-10 ~ 10 之间的随机数。 程序如下: Private Const n = 10 Private a(1 To n) As Integer 'TJ过程是将一批数据中小于零的数及它们的积打印出来 '数据由SCSJ过程产生,数据的取值范围为-10 ~ 10 之间的随机整数 Public Sub TJ() Dim i As Integer Dim t As Single -------- 1 -------- For i = 1 To 10 If -------- 2 -------- Then t = t * a(i) End If Next i Form1.Print "T="; t End Sub Public Sub SCSJ() Randomize Form1.Print "原始数据" Dim i As Integer Dim j As Integer For i = 1 To n '随机产生0或1,为0时取负,为1时取正 j = Int(Rnd * 2) If ------ 3 ----- Then J = -1 a(i) = j * Int(Rnd * (n + 1)) Form1.Print a(i); Next i Form1.Print End Sub 8.已有一模块文件Modify.Bas。该模块中的Money过程是用于统计一个有7个工作人员的餐厅发工资所需的100元、50元、10元、5元和1元的票面数,但不完整,请在横线上填入必要的内容,使其完整。 Modify.Bas模块中的SalaryData过程是给出7个员工的工资。(工资单位是元) 程序如下: Dim salary(7) As Integer Public Sub Money() Dim hundred As Integer, totalhundred As Integer '100元票面数量、总数量 Dim fifty As Integer, totalfifty As Integer '50元票面数量、总数量 Dim ten As Integer, totalten As Integer '10元票面数量、总数量 Dim five As Integer, totalfive As Integer '5元票面数量、总数量 Dim one As Integer, totalone As Integer '1元票面数量、总数量 Dim totalsalary As Integer '工资总计 Dim i As Integer, temp As Integer totalhundred = 0 totalfifty = 0 totalten = 0 totalfive = 0 totalone = 0 totalsalary = 0 For i = 1 To 7 temp = ----1---- hundred = Int(temp / 100) temp = ----2---- fifty = Int(temp / 50) temp = temp - fifty * 50 ten = Int(temp / 10) temp = temp - ten * 10 five = Int(temp / 5) temp = temp - five * 5 one = ----3---- totalhundred = totalhundred + hundred totalfifty = totalfifty + fifty totalten = totalten + ten totalfive = totalfive + five totalone = totalone + one totalsalary = ----4---- Next i Form1.Print "共需100元" & Str(totalhundred) & "张" Form1.Print "共需50元" & Str(totalfifty) & "张" Form1.Print "共需10元" & Str(totalten) & "张" Form1.Print "共需5元" & Str(totalfive) & "张" Form1.Print "共需1元" & Str(totalone) & "张" Form1.Print "合计" & Str(totalsalary) & "元" End Sub Public Sub SalaryData() salary(1) = 1398 salary(2) = 1765 salary(3) = 689 salary(4) = 1500 salary(5) = 832 salary(6) = 590 salary(7) = 1200 End Sub 9.已有一模块文件Modify.Bas。该模块中的 MaxLine 过程用于查找一个5行4列的二维数组中行平均值最大的行,并将该行所有数据调整到第一行的位置。 Modify.Bas模块中的DataProduce 过程用于产生原始数据;Average 过程用于计算各行的平均值;PrintArray过程用于打印二维数组和行平均值。 程序如下: Dim a(1 To 5, 1 To 4) As Integer Dim ave(1 To 5) As Integer Public Sub MaxLine() Dim i As Integer Dim j As Integer Dim temp As Integer Dim Line_no As Integer '最大平均值的行号 '找出最大平均值所在行 Line_no = 1 For i = 2 To 5 '****** 错误1 ******* If ave(Line_no) >= ave(i) Then '****** 错误2 ******* Line_no = ave(i) End If Next i '交换第一行与最大平均值所在行 For j = 1 To 4 temp = a(1, j) '****** 错误3 ****** a (Line_no, j) = a(1, j) a (Line_no, j) = temp Next j '交换对应行的平均值 temp = ave(1) ave(1) = ave(Line_no) ave(Line_no) = temp '打印交换后的数据 Form1.Print "交换后的数据和平均值" PrintArray End Sub Public Sub DataProduce() Dim i As Integer Dim j As Integer '产生5*4数组 For i = 1 To 5 For j = 1 To 4 a(i, j) = Int(100 * Rnd) Next j Next i End Sub Public Sub Average() Dim i As Integer Dim j As Integer Dim sum As Integer '计算各行平均值 For i = 1 To 5 sum = 0 For j = 1 To 4 '****** 错误4 ****** sum = a(i, j) Next j ave(i) = sum / 4 Next i '将数组和平均值打印出来 Form1.Print "原始数据和平均值" PrintArray End Sub Public Sub PrintArray() Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 4 Form1.Print a(i, j); Spc(3); Next j Form1.Print "平均值="; ave(i) Next i End Sub 10.已有一模块文件Modify.Bas。该模块中的 Wrap 过程用于判断一个字符串是否“回文”。所谓“回文”是指字符串顺读与倒读都是一样的,如“潮起潮落,落潮起潮”。 程序如下: Public Sub Wrap() Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer str1 = InputBox("请输入任意的字符串") '输入任意字符串 '****错误1***** length = Val(str1) k = 1 Do '****错误2***** strleft = Left(str1, k) '从左边起逐个取出一个字符 '****错误3***** strright = Right(str1, k) '从右边起逐个取出一个字符 '****错误4**** If strleft = strright Then Exit Do End If k = k + 1 Loop While k <= length / 2 If k > length / 2 Then Form1.Print str1 & "是回文" Else Form1.Print str1 & "不是回文" End If End Sub 11.已有一模块文件Modify.Bas。该模块中的BubbleSort过程是冒泡排序法;GenerateData过程产生10个[1,20]之间互不相同的随机整数;Swap过程交换两个变量的数值。 程序如下: Private Const n = 10 Private a(1 To n) As Integer 'BubbleSort过程是冒泡排序 'Swap过程交换两个变量数值 'GenerateData过程产生10个[1,20]之间互不相同的随机整数 Public Sub BubbleSort() Dim i As Integer, j As Integer i = 1 Do For j = i + 1 To n If a(j) > a(i) Then '******* 1 ********* Swap (a(j), a(i)) End If Next j i = i + 1 '******* 2 ******* Loop While i = n Form1.Print "排序结果" For i = 1 To n Form1.Print a(i); Next i End Sub Public Sub GenerateData() Dim i As Integer Dim j As Integer Dim b As Boolean For i = 1 To n b = False Do While Not b a(i) = Int(20 * Rnd + 1) b = True '****** 3 ****** For j = 1 To i If a(i) = a(j) Then b = False Exit For End If Next j Loop Form1.Print a(i) Next i End Sub '******** 4 ******** Public Sub Swap(ByVal a As Integer, ByVal b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub 12.已有一模块文件Modify.Bas。该模块中的 Transfer 过程用于将一个十六进制整数转换为十进制整数;number 函数过程用于将一个十六进制符号转换为数值。 程序如下: Public Sub Transfer() Dim Hex As String '十六进制数 Dim Dec As Double '十进制数 Dim temp As String Dim i As Integer Dim n As Integer Hex = InputBox("输入一个十六进制整数") '****** 错误1 ******* n = Val(Hex) i = 0 Do '****** 错误2 ******* temp = Mid(Hex, i, 1) '****** 错误3 ******* Dec = Dec + number * 16 ^ i i = i + 1 Loop While i < n '****** 错误4 ****** Form1.Print str(Hex) & "转换为十进制数为" & str(Dec) End Sub Public Function number(str As String) As Integer Select Case str Case "a", "A" number = 10 Case "b", "B" number = 11 Case "c", "C" number = 12 Case "d", "D" number = 13 Case "e", "E" number = 14 Case "f", "F" number = 15 Case Else number = Val(str) End Select End Function 13.已有一模块文件Modify.Bas。该模块中的SortData 过程是把10个[30,50)的随机整数并按照从小到大的顺序打印出来,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的Swap过程用于交换两个变量的值。 程序如下: Public Sub SortData() '产生10个[30,50]的随机整数,并按从小到大的顺序打印出来 Dim a(10) As Integer Dim i As Integer, j As Integer For i = 1 To 10 a(i)= -------- 1 --------- Next i For i = 1 To 9 -------- 2 --------- If a(i) > a(j) Then --------- 3 ---------- End If Next j Form1.Print a(i) Next i Form1.print --------- 4 -------- End Sub Public Sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub 14.已有一模块文件Modify.Bas。该模块中的PrintArray过程是用于打印一个5行5列的数字方阵,并使两对角线上元素均为1,其余均为2。要求打印的数字方阵两列数字之间空3格,两行之间空一行。 程序如下: Public Sub PrintArray() '下面程序用于打印5行5列的数字方阵 '使两对角线上元素均为1,其余均为2 '要求打印的数字方阵两列数字之间空3格,两行之间空一行 '只要修改标出出错位置的下面那一条语句 Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 '******** 错误1 ********* If i <> j Or i <> 6 - j Then a(i, j) = 2 Else a(i, j) = 1 End If '******** 错误2 ********* Form1.Print a(i, j) + Space(3); Next j '******* 错误3 ******* Form1.Print Next i End Sub 15.已有一模块文件Modify.Bas。该模块中的Combination过程是用于计算在m个数据中取出n个数据的排列组合值,计算公式为Cmn=m!/(n!*(m-n)!)。 Modify.Bas模块中的nFactor函数过程用于计算n!。 程序如下: Public Sub Combination() Dim m As Integer Dim n As Integer Dim Cmn As Long Do m = Val(InputBox("请输入一个整数m")) n = Val(InputBox("请输入一个整数n(n<=m)")) '****** 错误1 ****** Loop While m >= n '必须保证输入的两个数m>=n '****** 错误2 ****** Cmn = nFactor(m) / nFactor(n) * nFactor(m - n) Form1.Print "排列组合数为"; Cmn End Sub Public Function nFactor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double temp = 1 For i = 1 To n temp = temp * i Next i '******错误 3 ****** nFactor(n) = temp '****** 错误4 ****** End Sub 16.已有一模块文件Modify.Bas。该模块中的FindMax过程是用于查找一批数据中的最大数,并打印出最大数的值及最大数在数组中的下标值,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的GenerateData过程用于产生30个[1-500]之间的随机整数并5个一行打印出来。 程序如下: Dim a(30) As Integer Public Sub FindMax() Dim Position As Integer '最大数在数组中的下标 Dim max As Integer '最大数 Dim i As Integer GenerateData max = ----1---- Position = ----2---- For i = 2 To 30 If a(i) > max Then max = ----3---- Position = ----4---- End If Next i Form1.Print "最大值=" & Str(max) Form1.Print "最大值的下标=" & Str(Position) End Sub Public Sub GenerateData() Dim i As Integer For i = 1 To 30 a(i)
本文档为【二级上机测试中VB程序设计及程序调试样题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_942878
暂无简介~
格式:doc
大小:344KB
软件:Word
页数:0
分类:计算机考试
上传时间:2011-09-28
浏览量:32