《浙江省计算机VB二级机试详解.doc》由会员分享,可在线阅读,更多相关《浙江省计算机VB二级机试详解.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流浙江省计算机VB二级机试详解.精品文档.实验一 省二级VB考试模拟机试(一)程序调试【1】在考生文件夹的paper子文件夹下有modify2.bas文件。功能:1模块中的Bubblesort过程是冒泡排列法。2GenerateData过程产生10个1,20之间互不相同的随机整数。3Swap过程交换两个变量的数值。要求:新建工程,将模块加入到该工程中进行调试。注意:只要修改标出出错位置的下面那一条语句即可,其余代码不要改动。新建工程文件名为:modify2.vbp。Private Const n = 10Private a(1 To n) As
2、 IntegerBubbleSort过程是冒泡排序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
3、End SubPublic 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 iEnd Sub* 4 *Public Sub Swap(ByVal a As I
4、nteger, ByVal b As Integer) Dim temp As Integer temp = a a = b b = tempEnd Sub解题思路:1过程调用的两种格式:(1)利用Call语句调用;(2)省略Call及括号的省略格式。2 BubbleSort过程是冒泡排序,其基本思想是:共有n个位置,依次从该位置以后的数中挑选最大的数放置在该位置。具体步骤为:数组的第一位数和其后所有的数(从第二个到最后一个数)依次比较,如果遇到比第一个数大的数,则交换位置;比较结束时,最大的数就被交换到第一个位置。随后是第二个数依次和其后的所有的数比较,遇到大数就交换,比较结束第二大的数就位
5、于第二个位置。当n个位置的数都挑选好时,排序完成。注意:外层循环是Do循环,循环次数应是n次,其循环条件应该是什么?3 GenerateData过程是产生10个1,20之间互不相同的随机整数。基本的外层循环是循环n次,目的是生成n个随机整数。但是由于题目要求生成的整数互不相同,所以需要嵌套一个Do循环,如果生成的第i个数不符号要求,就继续生成该数。为了检测某数是否与之前的数相同,需要在Do循环中再嵌套一个For循环,在该循环中拿刚生成的数依次和之前的数比较,如果有相等的就跳出检测循环,继续生成该数。注意:在第三层嵌套的For循环中,是拿a(i)依次和位于其前的每一个数比较,而不能和其自身比较。
6、因为a(i)和a(i)比较的结果肯定相等,导致程序进入死循环。4理解参数传递的两种方式:按值传递和按地址传递。相关界面:程序设计【1】加法器程序的设计:(1)窗体上有三个文本框,上面两个用于输入加数,单击“=”按钮,将前两个文本框中的数字和显示在下面的一个文本框中。(2)三个文本框均为右对齐,设置相关属性,使得第三个文本框不能修改编辑。(3)编辑程序或设置相关属性使得前两个文本框不能接受非数字健。(4)单击“清空”按钮,三个文本框清空,第一个文本框获得焦点。解题思路1设置对齐属性对应:Alignment。2Locked属性设置为True,文本框锁定,可以正常显示,但是用户不能够编辑。3文本框不
7、能接受非数字键需要在KeyPress中对参数KeyAscii进行判断。4 获得焦点利用SetFocus方法。相关界面程序调试【2】在考生文件夹的paper子文件下已有Modify.bas文件(1)模块中的sortdata 过程是产生10个30,50的随机整数,并按照从小到大的顺序打印出来;(2)模块中的Swap过程是用于交换两个变量的值要求:新建工程,将模块加入到该工程中进行调试。注意:只需要将横线位置的内容删除后填入合适的内容即可,其他代码不要改动。新建工程文件名为:Modify1.vbp。Public Sub SortData() 该过程是产生10个30,50的随机整数,并按从小到大的顺序
8、打印出来。 Dim a(10) As Integer Dim i As Integer, j As Integer For i = 1 To 10 a(i) = Int(Rnd * 21 + 30) Next i For i = 1 To 9 - 1 - If a(i) a(j) Then - 2 - End If Next j Form1.Print a(i) Next i Form1. - 3 -End SubPublic Sub Swap(a As Integer, b As Integer) 该过程是用于交换两个变量的值。 Dim temp As Integer temp = a a
9、= b b = tempEnd Sub解题思路:此题排序方法为冒泡排序,基本思想详见程序调试1。相关界面:程序设计【2】题目“判断质数”具体要求如下:在“请输入”文本框中输入一个数字后,单击“判断”,可在“结果为”显示判断结果。若输入的不是数字,则弹出消息框,提示信息是“输入的不是数字,无法计算”。解题思路:质数的判定方法:1既不是质数也不是合数,2、3都是质数。对于大于3的数x:利用for循环拿x依次除以从2至sqr(x),其间如果遇到能够整除的数,则跳出循环。当循环结束时,分两种情况:如果循环控制变量大于sqr(x),说明循环是正常结束没有提前跳出,也就说明x是质数;否则,说明循环非正常结
10、束,也就说明x不是质数。相关界面:实验报告要求:1 采用全校统一的实验报告纸张中国计量学院实验报告。每次实验独立填写一份实验报告。2 完整填写“实验课程”、“实验名称”、“班级”、“学号”、“姓名”、“实验日期”等信息。3 四道题目调试正确后,将答案填写在实验报告纸上。程序调试题只写补充或修正的语句,程序设计题需填写完整的程序。4 在实验报告底面填写在程序调试中遇到的问题、错误,以及解决这些问题的过程。5 最后填写本次实验的收获。实验二 省二级VB考试模拟机试(二)程序调试【1】在考生文件夹的Paper子文件夹下已有Modify.bas文件功能:(1)模块的fand过程是用于找到被3、5、7除
11、,余数为1的最小的5个整数,并将结果输出来。要求:新建工程,将模块加入到该工程进行调试。注意:(1)只需要将横线位置的内容删除后填入合适的内容即可,其他的代码不要改动。(2)新建工程文件名为:Modify.vbpPublic Sub find() 该过程是用于找出被3、5、7除,余数为1的最小的5个整数,并将结果输出来。 Dim countN%, n% countN = 0 n = 0 Do n=-1- if -2- then Form1.Print n countN = countN + 1 End If Loop while countN=-3-End Sub解题思路:生成5个整数,外层D
12、o循环应执行5次循环。注意循环执行的条件,计数器countN应在什么范围内才能确保循环只执行5次?相关界面:程序设计【1】“健康称”,要求:(1)窗体有两个文本框,分别用于输入身高和体重。(2)设置相关属性使得两个文本框文字对齐方式均为右对齐,最多接受3个字符,不接受非数字键。单击“健康状况”按钮,根据计算公式分别将提示信息显示在Label3中,计算公式为:标准体重身高-105;体重高于标准体重*1.1为偏胖,提示“偏胖,注意节食”;体重低于标准体重*0.9为偏瘦,提示“偏瘦,增加营养”;其他为正常,提示“正常,继续保持”。解题思路:限定文本框只接受3个字符,可定义一个模块级变量,用来记录文本
13、框已接受字符的个数,在keypress事件里,每当判断当前按下的字符是合法字符时,该计数器加1。判断字符非法的条件:不是数字键,或计数器超过3。对于健康状况的判断,适合用Select语句。相关界面:程序调试【2】模块中的eat过程是用于计算猴子共摘了多少个桃子。小猴在一天摘了若干个桃子,当天吃掉了一半多一个;第二天吃了剩下的一半多一个;以后每天都吃尚存的一半零一个,到第七天早上要吃时只剩下一个了。输出结果。Option ExplicitPublic Sub eat()该过程是用于计算猴子共摘了多少个桃子小猴在一天摘了若干个桃子,当天吃掉了一半多一个第二天吃了剩下的一半多一个以后每天都吃尚存的一
14、半多一个,到第7天早上要吃时只剩下一个了将结果输出Dim n%, i%, x%x = 1For i = 6 To 1 Step 2For i = 6 To 1 Step -1 3 x = (1 + x) * 2Next iForm1.Print 共有; x; 个桃子End Sub解题思路:假设总共有x只桃子,则这些桃子的一半是x/2,吃掉一半多一个,即(x/2+1);剩余的肯定是一半少一个,即(x/2-1)。如果剩余S只桃子,则S= x/2-1,从而推出x=(S+1)*2,通过该公式可以由剩余的桃子数量推测出吃之前的桃子总数。由于“到第七天早上要吃时只剩下一个了”,通过公式可以推测出第六天早上
15、要吃时桃子的个数为(S+1)*2,其中S=1;第六天早上要吃时桃子的个数也就是第五天剩余的个数,由此可以推出第五天早上要吃时桃子的个数;再根据这个答案套用公式可以求出第四天早上要吃时桃子的个数.这是一个倒推的过程,需要用到递减的FOR循环语句。循环体应该是公式:吃之前的个数=(剩余的个数+1)*2,由于今天吃之前的个数也是前一天剩余的个数,它们在公式中可以用同一个变量。相关界面:程序设计【2】窗体上的相同类型的控件按照从上到下,从左到右的顺序放置,并按照默认方式命名。窗体上有两个checkbox,当这两个选项未被选中时,他们的框架的其他控件不能使用。品牌列表框有“联想”、“戴尔”、“方正”三个
16、选项。如果单击“确定”按钮,则在按钮下面的标签中显示用户所选择的信息。解题思路:1当Frame的Caption属性为空时,Frame形成一个封闭的框架。2Label的BorderStyle属性为2时,边框是立体的。3Label中显示的内容应包括:组合框、文本框以及单选按钮中的文字内容,并且只显示用户选中的单选按钮的内容。4组合框用户选中的内容在组合框的text属性中。5不仅在FormLoad中设置属性,从而满足当checkbox未选中,其它控件不可用的条件;每当两个复选框被单击时,都要分别检测一下两个复选框是否被选中,若未选中,也要设置其它控件不可用。相关界面:实验报告要求:1 采用全校统一的
17、实验报告纸张中国计量学院实验报告。每次实验独立填写一份实验报告。2 完整填写“实验课程”、“实验名称”、“班级”、“学号”、“姓名”、“实验日期”等信息。3 四道题目调试正确后,将答案填写在实验报告纸上。程序调试题只写补充或修正的语句,程序设计题需填写完整的程序。4 在实验报告底面填写在程序调试中遇到的问题、错误,以及解决这些问题的过程。5 最后填写本次实验的收获。程序调试题(改错)题目1在考生文件夹的Paper 子文件夹下已有Modify1.bas 文件功能:模块中的wrap过程用于判断一个字符串是否”回文”。“回文”是指字符串顺读和倒读都是一样的,如”潮起潮落,落潮起潮”。要求:新建工程,
18、将模块加入到该工程进行调试。新建工程命名为Modify1.vbp注意:只要修改标出出错位置的下面那一条语句即可,其他代码不要改动。Public Sub wrap() 该过程用于判断一个字符串是否回文所谓回文字符串顺读和倒读都是一样的,如潮起潮落,落潮起潮。 Dim lenth As Integer Dim strl As String Dim strleft As String Dim strright As String str1 = InputBox(请输入任意的字符串) 输入任意字符串 *错误1* length =val (str1) k = 1 Do *错误2* strleft =le
19、ft (str1,k) 从左边起逐个取出一个字符 *错误3* strright =right (str1,k) 从右边起逐个取出一个字符 * 错误4* if strleft =strright then Exit Do End If k = k + 1 Loop While k length / 2 Then Form1.Print str1; 是回文 Else Form1.Print str1; 不是回文 End IfEnd Sub标准答案:1:length = Len(str1)2:strleft = Mid(str1, k, 1)3:strright = Mid(str1, length
20、 - k + 1, 1)4:If strleft strright Then相关界面:题目2在考生文件夹的Paper 子文件夹下已有Modify2.bas文件。功能:模块中的Printarray 过程是用于打印一个5行5列的数字方阵,并使两对角线上元素均为1,其余均为2。要求打印的数字方阵两列数字之间空3格,两行之间空一行。要求:新建工程,将模块假如到该工程中进行调试。新建工程文件名为:Modify2.vbp。注意:只要修改出出错位置的下面那一条语句即可,其他代码不要改动。Public Sub printarray()下面程序用于显示5行5列的数字方阵使两对角线上元素均为1,其余为2要求显示的
21、数字方阵两列数字之间空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: Form1.Cls Next iEnd Sub标准答案:1:If i j And i 6
22、- j Then 2:Form1.Print a(i, j) & Space(3);3:Form1.Print: Form1.Print相关界面:程序调试题(填空)详解题目11在考试目录下的Paper目录中,已有模块文件modify.bas。2程序功能:modify.bas模块中的pyzamid过程用于打印数字金字塔。122233333444444455555555566666667777788893要求:新建工程Modify.Vbp,将Modify.bas模块加入到工程中进行调试。4注意:只需将横线位置的内容删除后填入合适的内容即可,其余代码不要改动。Public sub pyzamid()
23、Dim I as integerDim j as integerDim start as integerDim num as integerFor I=1 to 9If I= 1 thenStart=20-INum=2*I-1Else Start=10+INum=19-2*IEnd ifFor j=1 to 2 Form1.print tab(start+j): 3 Next jForm1.print Next IEnd sub标准答案:1:52:num3:Form1.Print Trim(Str(i); 相关界面:打印结果工程资源管理器题目2在考生文件夹的Paper 子文件夹下已有Modif
24、y1.bas文件。功能:模块中的find过程是用于从1到10000中找出这样的数,该数各位的数字的阶乘相加之和等于该数,并将结果输出。fact函数计算阶乘。要求:新建工程,将模块加入到该工程中进行调试。注意:只需要将横线位置的内容删除后填入合适的内容即可,其他代码不要改动。新建工程文件名为:Modify1.vbpOption ExplicitPublic Sub Find() Dim k As Integer, i As Integer Dim a As String, n As Long, p As Integer For k = 1 To 10000 a = Trim(Str(k) n =
25、 0 For i = _1_ p = Val(Mid(a, i, 1) n = _2_ Next i If n = k Then Form1.Print k Next kEnd SubPublic Function Fact(x As Integer) As Long该函数用于计算阶乘 Dim y As Long Dim i% y = 1 For i% = 1 To x y = y * i% Next i% _3_End Function标准答案:1:1 To Len(a) 2:n + Fact(p)3:Fact = y相关界面:运行结果程序设计题详解题目1具体要求如下:(1)窗体上的相同类型
26、的控件按照从上到下,从左到右的顺序放置,并按照默认方式命名例如有4个commandbutton 类型的控件,命名按照如下方式:command1 command2command3 command4(2) 窗体上引入一个红色的圆形形状控件,圆的直径为3400Twips。(3)水平滚动条的最大值与圆的直径相同,初始值为最大值,Smallchange和largechange 均为100Twips。(4)改变滚动条的值可以控制圆形的直径,同时在标签Label2中动态显示圆形的直径。(5)要求圆形直径在变化时要保持圆心位置不变标准答案:Dim x0 As Single, y0 As SinglePriva
27、te Sub Form_load() x0 = Form1.ScaleLeft + Form1.ScaleWidth / 2 y0 = Form1.ScaleTop + Form1.ScaleHeight / 2 Shape1.Shape = 3 Shape1.Width = 3400 Shape1.Height = 3400 Shape1.Left = x0 - Shape1.Width / 2 Shape1.Top = y0 - Shape1.Height / 2 Shape1.FillStyle = 0 Shape1.FillColor = vbRed Shape1.BorderStyl
28、e = 1 Shape1.BorderColor = vbRed HScroll1.Max = 3400 HScroll1.SmallChange = 100 HScroll1.LargeChange = 100 HScroll1.Value = 3400End SubPrivate Sub HScroll1_Change() Shape1.Width = HScroll1.ValueShape1.Left = x0 - Shape1.Width / 2 Shape1.Top = y0 - Shape1.Height / 2 Label1.Caption = HScroll1.ValueEnd
29、 Sub具体步骤:1新建工程:打开模块首先找到考生文件夹,在考生文件夹的Paper 子文件夹下新建工程2保存工程:工程保存为VBDesign1.vbp.窗体保存为新建工程VBDesign1.frm3窗体上创建Label, Hscroll,以及Shape1,且把下面代码写到窗体的代码窗口。相关界面:题目2请务必仔细阅读下列信息,单击“回答”按钮,进行VB语言设计【1】考试(A)在考生文件夹的Paper子文件夹下已有Design1.exe文件。(B)请在考生文件夹的Paper 子文件夹下新建工程VBDesign1.vbp。其中窗体文件命名为VBDesign1.frm,完成与Design1.exe相
30、同的界面布局和功能要求。设计编写并运行程序,完成下列功能:具体要求如下:(1)窗体上的相同类型的控件按照从上到下,从左到右的顺序放置,并按照默认方式命名例如有4个commandbutton 类型的控件,命名按照如下方式:command1 command2command3 command4(2)单击“开始”按钮,标签“祝您考试成功”文字在定时器控制下自动交替以红兰两种颜色显示。同时“开始”按钮变为“停止”按钮。(3)单击“停止”按钮,标签“祝您考试成功”文字停止闪烁,同时“停止”按钮变为“开始”按钮。(4)要求程序开始运行时,标签文字的字体为“宋体”,字型为“粗体”,大小为“二号”,文字颜色为“
31、红色”,并且水平居中。标准答案:Private Sub Command1_Click() If command1.Caption = 开始 Then Timer1.Enabled = True command1.Caption = 停止 Else Timer1.Enabled = False command1.Caption = 开始 End IfEnd SubPrivate Sub Form_Load() Label1.ForeColor = vbRed Label1.FontName = 宋体 Label1.FontBold = True Label1.FontSize = 16 Label1.Alignment = 2 Timer1.Interval = 300 Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer() If Label1.ForeColor = vbRed Then Label1.ForeColor = vbBlue Else Label1.ForeColor = vbRed End IfEnd Sub相关界面: