绝密绎考试结束前 浙江省 2019 年 4 月高等教育自学考试 Visual Basic 程序设计试题 课程代码 :07759 请考生按规定用笔将所有试题的答案涂 写在答题纸上 注意事项 : 选择题部分 1. 答题前, 考生务必将自己的考试课程名称 姓名 准考证号用黑色字迹的签字笔或钢笔 填写在答题纸规定的位置上 2. 每小题选出答案后, 用 2B 铅笔把答题纸上对应题目的答案标号涂黑 如需改动, 用橡 皮擦干净后, 再选涂其他答案标号 不能答在试题卷上 一 单项选择题 ( 本大题共 10 小题, 每小题 2 分, 共 20 分 ) 在每小题列出的四个备选项中只有一个是符合题目要求的, 请将其选出并将 答题纸冶的相应代码涂黑 错涂 多涂或未涂均无分 1. 设在名称为 Myform 的窗体上只有一个名称为 M1 的命令按钮, 下面叙述正确的是 A. 窗体的单击事件过程的过程名是 Form_Click B. 命令按钮的单击事件过程名是 M1_Click C. 命令按钮的 Click 事件过程的过程名是 Command1_Click D. 以上都是错误的 2. 函数 Len(Str(Val("123. 4" ))) 的值为 A. 5 B. 6 C. 8 D. 11 3. 将逻辑型数据转换成整型数据时, 转换规则是 A. 将 True 转换为 1, 将 False 转换为 0 B. 将 True 转换为 1, 将 False 转换为 -1 C. 将 True 转换为 0, 将 False 转换为 -1 D. 将 True 转换为 -1, 将 False 转换为 0 07759# Visual Basic 程序设计试题第 1 页 ( 共 12 页 )
4. 下面有一程序, 如果从键盘上输入 1234 冶, 则在文本框中显示的内容是 Private Sub Text1_KeyPress( KeyAscii As Integer) If KeyAscii> = 48 And KeyAscii< = 57 Then KeyAscii = 48 End If A. 0000 B. 1234 C. 1111 D. 0 5. 在窗体上放置一个列表框和标签框, 列表框中显示若干城市的名称 当单击列表框中的某 个城市名时, 该城市名从框中消失, 并在标签中显示出来 下列能正确实现上述操作的程 序是 A. Private Sub List1_Click() Label1. Caption = List1. LiatIndex List1. RemoveItem List1. Text B. Private Sub List1_Click() Label1. Name = List1. ListIndex List1. RemoveItem List1. Text C. Private Sub List1_Click() Label1. Caption = List1. Text List1. RemoveItem List1. ListIndex D. Private Sub List1_Click() Label1. Caption = List1. ListCount List1. RemoveItem List1. ListIndex 07759# Visual Basic 程序设计试题第 2 页 ( 共 12 页 )
6. 要清除 PictureBox 控件中的图片, 必须用哪条命令 A. 选择图片框, 然后按 Del 键 B. 执行语句 Picture1. Picture = LoadPicture() C. 执行语句 Picture1. Cls D. 执行语句 Picture1. Picture = Load 7. 下面 控件不具有 Caption 属性 A. 标签框 B. 命令按钮 C. 文本框 D. 单选钮 8. 由 For i = 10 to 0 step 2 颐 next i 循环语句控制的循环次数是 A. 5 B. 10 C. 6 D. 0 9. 下列程序段的执行结果为 X = Int(Rnd+4) Select Case x Case 5 Print" 优秀 " Case 4 Print" 良好 " Case 3 Print" 通过 " Case Else Print" 不通过 " End Select A. 优秀 B. 良好 C. 通过 D. 不通过 10. 要使某菜单能够通过按住键盘上的 Alt 键及 K 键打开, 应 A. 在 名称冶栏中 K 冶字符前加上 & 冶 B. 在 标题冶栏中 K 冶字符后加上 & 冶 C. 在 标题冶栏中 K 冶字符前加上 & 冶 D. 在 名称冶栏中 K 冶字符后加上 & 冶 07759# Visual Basic 程序设计试题第 3 页 ( 共 12 页 )
二 判断题 ( 本大题共 10 小题, 每小题 1 分, 共 10 分 ) 判断下列各题, 在答题纸相应位置正确的涂 A 冶, 错误的涂 B 冶 11. Dim a1,a2 as integer 语句显式声明变量 a1 和 a2 都为整型变量 12. Cls 方法只能清除在运行阶段窗体或图形框中创建的文本或图形, 不能清除窗体在设计时建立的文本或图形 13. Dim a(3,4) as Integer 定义了一个 3 伊 4 的数组 14. 在 VB 的工具箱中包括了所有的 VB 控件, 我们不能再加载其他的控件 15. 若将计时器 (Timer) 控件的 Interval 属性值设为 10, 则表示每 10 秒产生一次 Timer 事件 16. ScaleWidth 属性和 ScaleHeight 属性是容器的坐标属性, 因此有可能取到负值 17. 在 Function 函数过程中如果没有给函数名赋值的语句, 则调用该函数后也能通过函数名得到正确的返回值 18. 事件过程由某个用户事件或系统事件触发执行, 它不能被其他过程调用 19. 若要新建一个磁盘上的顺序文件, 可用 OUTPUT APPEND 方式打开文件 20. 静态数组中的数组元素个数一旦定义好后, 在程序运行过程中不再会发生变化 ; 而动态数组的元素个数则是可变的 三 程序填空题 ( 本大题共 11 小题, 每小题 2 分, 共 22 分 ) 阅读下列各程序, 根据程序说明在每小题提供的若干可选答案中挑选一个正确答案, 并将 答题纸冶的相应代码涂黑 ( 一 ) 揖程序说明铱利用 1 个定时器 1 个标签和 2 个命令按钮制作一个动态秒表 设计一个倒计时程序, 程序设计的界面如下图所示, 要求单击 设置时间冶按钮 ( Command1) 时, 用 InputBox 对话框输入倒计时的时间, 单击 计时开始冶按钮 (Command2) 后, 程序根据输入的倒计时时间开始倒计时, 并将时间显示在标签框 Label1 中, 直到 00 颐 00 颐 00 冶时, 停止计时, 并使 Label1 的背景色变为红色 07759# Visual Basic 程序设计试题第 4 页 ( 共 12 页 )
Dim ss As Integer 爷存放秒数 Dim mm As Integer 爷存放分钟数 Dim hh As Integer 爷存放小时数 Dim x As Long 爷存放总秒数 Private Sub Form_Load() Timer1. Enabled = False Timer1. Interval = 1000 Private Sub Command1_Click() 爷设置时间按钮 Label1. Caption = InputBox(" 请用 00 颐 00 颐 00 格式输入开始计时的时间 " ) ss = Val( Right( Label1. Caption,2)) 21 hh = Val( Left( Label1. Caption,2)) x = hh*3600+mm*60+ss Private Sub Command2_Click() 爷计时开始按钮 Timer1. Enabled = True Private Sub Timer1_Timer() 22 hh = x \3600 mm = (x hh*3600) \60 ss = x mod 60 Label1. Caption = Format $ ( hh," 00 " ) & " :" &Format $ ( mm," 00 " ) & " :" &Format $_(ss,"00" ) If x = 0 Then Timer1. Enabled = False 23 07759# Visual Basic 程序设计试题第 5 页 ( 共 12 页 )
End If 21. A. mm = Val( Left( Label1. Caption,4)) B. mm = Val( Right( Label1. Caption,4)) C. mm = Val( Mid( Label1. Caption,4,2)) D. mm = Val( Mid( Label1. Caption,3,2)) 22. A. x = x+1 B. x = x-1 C. mm = 0:hh = 0 D. ss = ss-1 23. A. Label1. BackColor = vbred B. Label1. ForeColor = vbred C. Label1. FillColor = vbred D. Label1. ForeColor = RGB(255,0,0) ( 二 ) 揖程序说明铱窗体如右图所 示 要求程序运行时, 在文 本框 text1 中输入一个姓氏, 单击 添加冶按钮 ( 名称为 command1 ), 则将列表框 list1 中所有该姓氏的项目 都添加到 list2 Private Sub command1_click() Dim n As Integer,k As Integer N = 24 For i = 0 To 25 If 26 = Text1. text then List2. additem list1. list(i) End if Next i 24. A. Len(text1. text) B. Length(text1. text) C. Len(text1. text) -1 D. Len(s) 07759# Visual Basic 程序设计试题第 6 页 ( 共 12 页 )
25. A. list1. listcount B. list1. listcount-1 C. n D. n-1 26. A. list1. list(i) B. left(list1. list(i),1) C. left( list1. list( i),n) D. right( list1. list( i),n) ( 三 ) 揖程序说明铱从指定的任意一个驱动器中的任一文件夹下查找文本文件, 并将选定的文件的完整路径显示在文本框 Text1 中, 文件的内容显示在文本框 Text2 中 Dim s As String Private Sub Form_Load() File1. 27 = " *. txt" Text1. Text = " " : Text2. Text = " " Private Sub Dir1_Change() 28 Private Sub Drive1_Change() 29 Private Sub File1_Click() If Right(File1. Path,1) <>" \" Then Text1. Text = File1. Path+" \" +File1. FileName Else Text1. Text = File1. Path+File1. FileName End If 30 Do While Not EOF(1) 31 Text2. Text = Text2. Text+s+Chr(13) +Chr(10) Loop Close #1 07759# Visual Basic 程序设计试题第 7 页 ( 共 12 页 )
27. A. Filter B. Pattern C. Filename D. path 28. A. File1. Path = Dir1. Path B. Dir1. Path = Drive1. Path C. File1. pattern = Dir1. Path D. Dir1. Path = Drive1. Drive 29. A. File1. Path = Dir1. Path B. Dir1. Path = Drive1. Path C. File1. pattern = Dir1. Path D. Dir1. Path = Drive1. Drive 30. A. Open Text1. text For output As #1 B. Open Text1. text For Input As #1 C. open File1. filename for input as #1 D. open File1. filename for output as #1 31. A. s = input(1,#1) B. write #1,s C. Input #1,s D. s = input( Lof(1),1) 四 程序阅读题 ( 本大题共 11 小题, 每小题 2 分, 共 22 分 ) 阅读下列各程序并回答问题, 在每小题提供的若干可选答案中挑选一个正确答案, 并将 答题纸冶的相应代码涂黑 ( 一 ) 揖程序铱 Dim f As Integer Private Sub Command1_Click() Dim a As Integer,i As Integer a = InputBox(" a = " ) i = 2 While i< = a / 2 If a Mod i = 0 Then f = f+i i = i+1 Wend Print f 揖问题与供选择的答案铱 32. 运行程序后, 第 1 次单击 Command1, 输入数 8, 窗体上的输出值为 A. 2 B. 6 C. 7 D. 8 07759# Visual Basic 程序设计试题第 8 页 ( 共 12 页 )
33. 当第 2 次单击命令按钮 Command1, 输入数 10, 窗体上的输出值为 A. 7 B. 10 C. 11 D. 13 ( 二 ) 揖程序铱 Private Sub f1(a()as Single,n As Integer) Dim i As Integer For i = 1To n a(i)= a(i) +1 Next i Private Function f2(a() As Single,n As Integer)As Single Dim i As Integer Call f1(a(),n) For i = 1 To n f2 = f2+a(i) Next i f2 = f2 / n End Function Private Sub Command1_Click() Dim n As Integer,i As Integer n = InputBox(" n = " ) ReDim x(n) As Single For i = 1 To n x(i)= InputBox(" x(" & i &" )= " ) Next i Print f2(x(),n) 揖问题与供选择的答案铱 34. 单击命令按钮 command1 后输入 3 1 2 3 这 4 个数, 显示结果为 A. 2. 5 B. 4 C. 2 D. 3 07759# Visual Basic 程序设计试题第 9 页 ( 共 12 页 )
35. 若删除函数 f2 中的语句 call f1(a(),n) 冶, 单击 command1 后输入 3 1 2 3 这 4 个数, 显示 结果为 A. 2. 5 B. 4 C. 2 D. 3 ( 三 ) 揖程序铱 Private Sub Form_Load() Timer1. Interval = 1000 Private Sub Timer1_Timer() Static k As Byte K = k+1 Form1. CurrentX = 0 颐 Form1. CurrentY = 0 Form1. Cls If k mod 2 = 0 Then Form1. ForeColor = RGB(0,255,0) Else Form1. ForeColor = RGB(0,0,255) end if Print Time 揖问题与供选择的答案铱 36. 激活 Timer1 后, 每间隔 1 秒显示一次系统时间, 方式是 A. 蓝 绿色交替显示 B. 蓝色显示 C. 绿色显示 D. 红色显示 37. 系统时间的显示位置, 是在 A. 窗体右上角 B. 窗体左上角 C. 窗体右下角 D. 窗体左下角 38. 如果将 Timer 过程中的语句 Static k As Byte 冶改为 Dim k As Byte 冶, 激活 Timer1 后, 窗体系统时间显示上的颜色为 A. 蓝 绿色交替 B. 蓝色 C. 绿色 D. 红色 ( 四 ) 程序 Dim a As Long,b As Long,c As Long 07759# Visual Basic 程序设计试题第 10 页 ( 共 12 页 )
Private Function prime( x As Long) As Boolean Dim f As Boolean, k As Integer prime = True For k = 2 To x-1 If x Mod k = 0 Then prime = False Exit For End If Next k End Function Private Sub command1_click() a = 5 b = 6 c = 9 If prime(a)= true Then Print prime(a) If prime(b)= false Then Print b If prime(c)= true Then Print c Else Print " Welcome!" End If 揖问题与供选择的答案铱 39. 程序运行后, 单击 Command1, 第一行输出是 A. 5 B. True C. False D. Welcome 40. 程序运行后, 单击 Command1, 第二行输出是 A. 6 B. True C. False D. Welcome 41. 程序运行后, 单击 Command1, 第三行输出是 A. 9 B. True C. False D. Welcome 07759# Visual Basic 程序设计试题第 11 页 ( 共 12 页 )
( 五 ) 程序 Private Sub Form_Click() Dim I As Single,x As Single,y As Single Cls For I = 0 To 3. 1415927 Step 0. 0001 x = 2400+1000*Sin( I) y = 1600+1000*Cos( I) Line(2400,1600) -( x,y),rgb(255,0,0) Next I 揖问题与供选择的答案铱 42. 程序运行时单击窗体后, 在窗体上出现的结果 A. 转动一条长度为 2400 单位的红色直线, 其轨迹形成一个扇形 B. 转动一条长度为 1600 单位的红色直线, 其轨迹形成一个圆饼 C. 转动一条长度为 1000 单位的红色直线, 其轨迹形成一个圆 D. 转动一条长度为 1000 单位的红色直线, 其轨迹形成一个半圆 非选择题部分 注意事项 : 用黑色字迹的签字笔或钢笔将答案写在答题纸上, 不能答在试题卷上 五 程序设计题 ( 本大题共 2 小题, 每小题 13 分, 共 26 分 ) 43. 编写窗体 Form1 的 Click 事件, 求 Sn = a+aa+aaa+aaaa+ +aa aaa(n 个 a) 之和, 在窗体上输出 n a 和计算结果的值, 其中 a 是一个由随机函数产生的 [1,9] 中的一个正整数,n 是一个由随机数产生的 [5,10] 中的一个数 44. 编写 Command1 的 Click 事件, 计算如下分段函数值, 并在窗体上输出结果 ìï x 2 +2x-6 ï f(x)= íx*sin (x) +2x ï î x+5 +log 10 (x+4) x<0 且 x<>-3 0 = <x<10 且 x<>2 及 x<>3 其他 07759# Visual Basic 程序设计试题第 12 页 ( 共 12 页 )