2022年VB模拟题 .pdf
20152016年(1)上海理工大学程序设计与实践VB.NET 模拟试卷(本试卷考试时间 120 分钟)一、单选题 ( 本大题 10 道小题,共 15 分) ,从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。1. 在面向对象的程序设计语言中,_不属于对象的三个要素。A.方法B.封装C.事件D.属性2. 要使 Timer 事件每秒触发两次,则需要设置Timer 控件的 Interval属性为 _。A.50 B.500 C.5 D.0.5 3. 若有说明: Dim x%, y%, z%, 则下列语句中错误的是_。A.x+y=y+x B.z=xy C.x=x+2 D.x=x+y 4. 执行如下代码后,标签上显示的是_。Private Sub Button1_Click( ) Handles Button1.Click Dim x As Integer x = 2 Select Case x Case 1, 3 label1.text = 分支 1 Case Is 4 label1.text = 分支 2 End Select End SubA.分支 1 B.分支 2 C.其它D.程序报错5. 下列循环语句中循环体的执行情况为_。Dim i% i = 10 Do i = i + 1 Loop While i = 0 A.执行 6 次B.执行 1 次C.执行 5 次D.溢出6. 已定义 Dim b() As Integer,则在其后使用下列_语句是错误的。A.ReDim b(2) B.ReDim Preserve b(10) C.ReDim b(2,2) D.ReDim b(n%) 7. 要想从子过程调用后返回两个结果,下面子过程语句说明合法的是()。A. Sub f1(ByRef n%, ByRef m%) B. Sub f1(ByRef n%, ByVal m%) C. Sub f2(ByVal n%, ByVal m%) D. Sub f1(ByVal n%, ByRef m%) 8. 下面 If 语句统计满足性别(sex)男、职称( duty )为副教授以上、年龄(age)小于 40精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 7 页 - - - - - - - - - - 岁条件的人数,正确的语句是_。A.If sex= “男” And age0 Then n=n+1 B.If sex= “男” And age40 And duty=“教授” or duty= “副教授” Then n=n+1 C.If sex= “男” And age40 And Right(duty,2)= “教授 Then n=n+1 D.If sex= “男” And agea1 ,则交换;然后比较第2 个数与第 3 个数;依次类推,直至第 n-1 个数和第 n 个数比较为止,结果最大的数被安置在最后一个元素位置上;(2)对前 n-1 个数进行第二趟排序,结果使次大的数被安置在第n-1 个元素位置;(3)重复上述过程,共经过n-1 趟排序后,排序结束这是 _算法:A.选择排序B.冒泡排序C.简单交换排序D.归并排序二、程序填空题 ( 本大题 2 道小题,每空 2.5 分,共 20 分) 。1. 某次大奖赛, 有 10 个评委打分, 以下程序是针对一名参赛者,输入 10 个评委的打分分数并进行从小到大排序,去掉一个最高分、一个最低分,求出平均分,为该参赛者的得分。 Sub Button1_Click(.) Handles Button1.Click Dim mark(10), aver, min, t, j As Single aver = 0 For i = 1 To 10 mark(i) = InputBox(输入第 & i & 位评委的打分 ) aver += mark(i) Next i For i = 1 To _(1)_ min =_(2)_ For j = i + 1 To 10 If _(3)_Then min = j End If 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 7 页 - - - - - - - - - - Next t = mark(min) : mark(min) = mark(i) : mark(i) = t Next aver = (aver - mark(10) - _(4)_) / 8 MsgBox(得分为: & aver) End Sub 2. 用下列多项式可求得的近似值: pi=4*(1-1/3+1/5-1/7 +1/n-1/(n+2), 计算当输入某个n (不超过 300) 时的近似值。Function mypi(ByVal n As Integer) _(1)_ Dim pi#, t#, s%, i% pi = 1 : i = 1 : s = 1 Do i = i + 2 t = 1 / i s = _(2)_ pi = pi + s * t Loop While i = n _(3)_ End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n As Integer n = Val(TextBox1.Text) If Not IsNumeric(n) _ (4)_ Then MsgBox(数据不符合要求,重新输入) TextBox1.Text = TextBox1.Focus() Else Label2.Text = PI= & mypi(n).ToString End If End Sub 三、程序调试题(本大题 3 道小题,第1 题有 3 处错,第2题有 3 处错,第3 题有 4 处错,每改正1 处错得3 分,共 30 分) 启动解决方案文件改错题 .sln ,请调试改正,并按原文件名和位置保存。正确结果见样例 样张 改错题样例 .EXE。改错要求: 不能修改或重新定义变量,不允许增加或删除语句,但可以修改语句,所修改的语句必须在句尾加上注释标记: *。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 7 页 - - - - - - - - - - 调试改错题 1 下列程序的功能是:文本框中已有一个18位身份证号码,选择调试改错题 1按钮,判断性别,在下面的标签中显示男或 女。 性别判别的方法是: 身份证号码第17位若是奇数,则是男性,否则是女性。程序中有3个错误,请调试改正。Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim id As String, sex As Integer TextBox1.Text = id sex = Val(Mid(id, 1, 1) If sex Mod 2 = 0 Then Label1.Text = 男 Else Label1.Text = 女 End If End Sub 调试改错题 2 下列程序的功能是:利用定时器控件实现倒计时效果。具体要求是,选择 调试改错题2按钮,文字的颜色立即变为黄色,并显示倒计时。程序中有3个错误,请调试改正。Private Sub Button2_Click() Handles Button2.Click Timer1.Enabled = False End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim i As Integer =61 Label2.Color = Color.Yellow 设置前景颜色 i=i-1If i = 0 Then Timer1.Enabled = False Label2.text =i End Sub 调试改错题 3 选择 调试改错题 3按钮,程序功能是:随机产生10个大写字母保存在数组中,并在标签上显示。用选择排序法将数组中的字母按升序排列,并显示在标签上。 Private Sub Button1_Click() Handles Button1.Click Dim a(9) As String, s As String 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 7 页 - - - - - - - - - - Dim i As Integer, j As Integer Label1.Text = 原来的字符序列为: & vbCrLf For i = 0 To 9 a(i) = Chr(65 + Int(Rnd() * 25) Label1.Text = Label1.Text & a(i) & , Next For i = 0 To 8 k = i For j = 0 To 9 If a(j) a(i) Then k = j Next s = a(k) : a(k) = a(i): a(i) = s Next Label1.Text = Label1.Text & vbCrLf & 按升序排序输出为: & vbCrLf For i = 0 To 9 Label1.Text = a(i) & , Next End Sub 四、编程题(35分)根据下列要求编写程序,程序界面如图所示,结果样例见 编程题样例 .EXE。1界面设计要求(1) 在Form1窗体上放置文本框、组合框和标签,并建立菜单,在应用 主菜单项下有计算 、 窗体 2和 退出 三个菜单项,界面如图1所示。(2) 在Form2窗体上放置图片框(宽350、高 250 )以及 绘图 和 返回 两个命令按钮,界面如图 2所示。2保存要求在C:KS目录下创建名为VBNETA 的解决方案。3Form1窗体编程要求(1)组合框 1对应存款期限(年),属性值分别为:1、2、3和5;组合框 2对应 存款年利率,属性值与存款期限分别对应为:3.25%、3.75%、4.25%和4.75%;要求选择 组合框 1的期限项,组合框 2利率联动显示。(2)在文本框中输入存款金额(元),在组合框1中选择存款期限,选择 计算 菜单项,计算到期利息显示在标签中,界面如图1所示。到期利息 =存款金额存款期限存款年利率(3)选择 窗体 2菜单项,打开Form2窗体;选择 退出 菜单项,结束程序的运行。4Form2窗体编程要求(1) 在Form2窗体中设置两个按钮:绘图 、 返回 。 单击 返回 按钮,关闭 Form2窗体。(2) 在 Form2窗体上单击 绘图 命令按钮,在窗体 2的Label1上显示如图所示的图形。单击 返回 命令按钮则关闭窗体2,返回窗体 1。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 7 页 - - - - - - - - - - 图1计算图2 绘图精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 7 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 7 页 - - - - - - - - - -