VB2017模拟题(7页).doc
-VB2017模拟题-第 7 页Visual Basic考试模拟题一、单项选择题(共20题,每题 2分,共 40分)1、将十进制数23转换为补码(设带符号位8位)是_ A. 10010111 B. 11101001 C. 11101010 D. 111010112. 将补码转换为十进制数,即(11111101)补=(_)10 A. 3 B. -3 C. -4 D. -53. 下列叙述中不正确的是_。 A. 队列是 “先进先出”的线性表 B. 入栈运算是指在栈顶位置插入下个新元素 C. 栈是“先进先出”的线性表 D. 栈是“后进先出”的线性表4、要想清除组合框中的所有数据项,则利用下列_方法进行。A. ListB.MoveC.ClearD. Cls5. 下列选项中,合法的变量名是_。AA#A B. 4A C.Private D. Print_16 表达式7 mod 3+35*2+2的值是_。 A. 2 B. 3 C. 4 D. 67. Private Sub Form_Load()Dim iAs Integer For i =1 To 3 List1.AddItem Str(i)Next End Sub Private Sub List1_Click() Dim ch As String ch = List1.List(List1.ListIndex) List1.RemoveItem List1.ListIndex List1.AddItem chEnd Sub单击列表框中的第二项,执行上述程序后,列表框中显示的顺序为_. A. 1 2 3 B. 1 3 2 C. 3 2 1 D.1 3 28. 下列程序段的输出结果为_。 x=1 : y=4 Do Until y>4 x=x*y : y=y+1 Loop Print xA. 1B. 4C. 8D. 209. 单击命令按钮,在窗体上输出_。 Private Sub Command1_Click() Dim a, i As Integer a = Array(1, 3, 5, 7, 9, 11, 13, 15, 17, 19) For i = 1 To 3 Print a(8 - i);NextEnd Sub A. 15 13 11 B. 17 15 13 C. 11 13 15 D. 13 15 1710. 窗体上有一个Command1的命令按钮和一个Timer1的计时器,并有下面的事件过程:Private Sub Form_Load()Timer1.Interval = 100 Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer() Command1.Top = Command1.Top + 10End Sub程序运行后,单击命令按钮,则结果是_。 A. 命令按钮每100毫秒向上移动一次 B. 命令按钮每100毫秒向下移动一次 C. 命令按钮每100毫秒向左移动一次 D. 命令按钮每100毫秒向右移动一次 思考:如果把Top换成Left,结果是什么呢?11. 运行程序,单击窗体,在窗体上显示的内容是_。 Private Sub value(ByVal m As Integer, n As Integer) m = m * 2 n = n 5 Print "m=" m, "n=" n End Sub Private Sub Form_Click() Dim x As Integer, y As Integer x = 10: y = 15 Call value(x, y) Print "x=" x, "y=" y End SubA. m=20 n=10B. m=20 n=10C. m=20 n=10 D. x=10 y=15 x=10 y=15 x=10 y=10 x=20 y=10 m=20 n=1012. 执行如下两条语句,窗体上显示的是_a = 9567.859Print Format(a, "#,000.00")A. 9,567.86 B. 09,567,86 C.”09,567.86 ” D. $09,567.8613. mnu1是窗体Form1的菜单名,如果单击鼠标右键弹出此菜单,应在窗体的MouseDown事件中编写如下代码_。A. Popupmenu Form1.mnu1 B. Popupmenu mnu1 Form1C. Form1.Popupmenu mnu1 D. Form1.mnu Popupmenu14. 下面程序段,显示的结果是_。Private Sub Command1_Click()Dim x As Integerx = Int(Rnd) +4Select Case x Case 5 Print "优秀" Case 4 Print "良好" Case is>3 Print "及格" Case Else Print "不及格"End SelectEnd SubA、优秀 B、良好 C、及格 D、不及格15 在窗体上创建一个名称为Command1的命令按钮和一个名称为Text1的文本框,在文本框中输入字符串“Microsoft Visual Basic Programming”。然后编写如下代码:Private Sub Command1_Click() Open "d:out.txt" For Output As #1 For i = 1 To Len(Text1.Text) c = Mid(Text1.Text, i, 1) If c >= "A" And c <= "Z" Then Print #1, LCase(c) End If Next i CloseEnd Sub程序运行后,单击命令按钮,文件out.txt中的内容是_。A MVBPB. mvbpC. MD. m V vB bP p问 :如果把LCase改为UCase则文件out.txt中的内容是什么呢?16、当一个单选按钮被选中时,它的Value属性值为_。 A. True B. False C. 1 D. 017 Dim a As String a = "Dim Private y As Integer" Print UCase(Left(a, 3) + LCase(Mid(a, 14, 2) + Space(1) & Right(a, 10) 执行上述语句, 则在窗体上显示:_ A. DIM y As Integer B. dim Y As Integer C. dim y as integer D. DIM Y AS INTEGER18. Dim c As Integer '声明窗体级变量 Private Sub Command1_Click() Static a% Dim b% a = a + 2: b = b +3: c = c + 4 Print a; b; c End Sub A. 4 3 8 B. 3 3 8 C. 2 3 4 D. 4 6 819、在窗体上创建一个名称为Command1的命令按钮和3个名称分别为Label1、Label2、Label3的标签,然后编写如下代码:Private x As Integer Private Sub Command1_Click() Static y As Integer Dim z As Integer n=10 z=n+z y=y+z x=x+z Label1.Caption=x Label2.Caption=y Label3.Caption=zEnd Sub运行程序,连续3次单击命令按钮后,则3个标签中显示的内容分别是_。A. 10 10 10B. 30 30 30C. 30 30 10D. 10 30 3020、设有如下自定义类型,给该类型变量赋值的代码是_Type studentsno As String*5name As String*5count As IntegerEnd TypeAstudents.name = "张小三" B. Dim s As Type : s.name = "张小三"CDim s As Type students : s.name = "张小三" D. Dim s As student : s.name = "张小三"二、填空题(共15空,每空 2分,共 30分)1. 二叉树遍历中,先访问左子树,然后遍历右子树,最后遍历根结点,该种遍历称为_【1】_。2. Text1.Text="ABC",Text1.SelStart=1,则Text1.SelLength、 Text1.SelText的值为_【2】_。3、Dim x$,y As Boolean,z! : Print len(x),y ,z的值是_【3】_4、Dim d As Date ,把日期型数据2017/03/11赋给d的正确表达式是_【4】_5、. 假设x=100,则Print IIF(x>0,1,IIF(x<0,-1,0)的结果是【5】。6. x 是非负数且y是奇数的表达式是_【6】_。7. 若希望每秒钟发生2个Timer事件,应设置定时器(Timer)控件的Interval属性为_【7】_ 8. 程序运行后,单击窗体,输出结果为_【8】_。 Private Sub Form_C1ick() Dim k%,n%,m% n=10 m=1 k=1 Do While k<=n m=m*2 k=k+1 Loop Print m End Sub9、在窗体上创建一个名称为Command1的命令按钮,程序的功能是,通过调用过程swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换,a(5)与a(6)的值互换。请填空。Option Base 1Private Sub Command1_Click() Dim a(10) As Integer For i = 1 To 10 a(i) = i Next Call swap(_【9】_) For i = 1 To 10 Print a(i); NextEnd SubSub swap(b() As Integer) n = _【10】_ For i = 1 To n / 2 t = b(i) b(i) = b(n) b(n) = t _【11】_ NextEnd Sub11、完善将二进制转化为十进制的函数。Private Function btod(f As String) As Integer Dim i As Integer, j As integer, k As Integer j=_【12】_ 测试形参的长度For i=j To 1 Step -1 k=Mid(f,i,1) btod=btod+_【13】_Next i12. 建立一个文件名为“c:stud1.txt”的顺序文件,内容来自文本框,每按一次Enter键写入一条记录,然后清除文本框的内容,直到文本框内输入“END”字符串为止。完善填空。Private Sub Form_Load()Open _【14】_Text1 = ""End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then If Text1=”END” Then Close #1 End Else _【15】_ Text1 = "" End IfEnd IfEnd Sub三、编程题(共3题,共 30分)、计算税率。收入不足3000时,税率是3%,3000至4999税率是5%,5000至7999税率是8%,8000至9999税率是10%,10000以上税率是15%,用输入函数输入一个收入值,在窗体上显示需要纳税的值是多少(6分)。、编写程序,其功能是产生20个100200之间的随机整数,然后求出这20个整数中的所有偶数之和。程序运行后,单击命令按钮,在窗体上显示所有偶数之和,并把这20个数从小到大排列显示到列表框List1中(6分) 。、计算1!+3!+5!+15!的值,要求编写一个Sub过程Fact(Byval N%, Byref Result as Long)来计算任意正整数N的阶乘。然后用事件过程Command1_Click()来调用(8分)。、磁盘上已存在文件”c:in.txt”,文件里有一段文本(文本中间无换行符,可以视为一行)。请从文件中读出这段内容,显示在文本框Text1中,并统计字母“h”出现的次数(不区分大小写),最后把次数写入文件“c:out.txt”中(10分)。