习 题 (一) 判断题: 1、 VB的Byte类型数据的数值范围,在-255到255之间。(F) 2、 VB的Double类型数据,可以精确表示其数值范围内的所有实数。(F) 3、 Variant是一种特殊的数据类型,该类型变量可以存储除了定长字符串数据及自定义类型外的所有系统定义类型的数据。Variant类型变量还具有Empty、Error和Null等特殊值。(T) 4、 函数MsgBox的前三个参数,分别为图标样式、按钮样式以及默认按钮。(F) 5、 在自定义函数过程中,函数名必须被赋值。(F) 6、 在Open语句中用Append方式所打开的文件若不存在,则创建该文件。(T) 7、 在Open语句中用Input方式所打开的文件必须已经存在,否则会运行错误。(T) 8、 “A=B=C”是一个合法的Visual Basic 语句。(T) 9、 在窗体或模块文件中声明为Private的过程,只能被本窗体或模块中的过程所调用。(T) 10、静态变量是局部变量,当过程再次被执行时,静态变量的初值是上一次过程调用后的值。(T) 11、在VB中,用Dim定义数组时数组元素也自动赋初值0。(F) (二) 选择题 1、下列数据类型中,占用内存最小的是 。(B) A)Boolean B)Byte C)Integer D)Single 2、Visual Basic允许使用的数组的最大维数是 。(B) A)50 B)60 C)80 D)90 3、以下哪项变量名是合法的? 。(C) A)A.B B)Global C)City_name D)15A 4、判断整型变量m能否被n整除的VB表达式为 。(D) A)n mod m=0 B)m/n*n=m C)m mod n D)(m\n)*n=m 5、变量A%的类型是 。 (A) A)Integer B)Single C)String D)Boolean 6、表达式 可以计算整型变量x的位数。(A) A)Len(Trim(Str(Abs(x)))) B)Len(Abs(x))-1 C)Len(Abs(x)) D)Len(Trim(Int(x))) 7、逻辑表达式的 Not "a">"b" and 9<3 or 9>3 值为 。(A) A )True B)False C)表达式有错 D)条件不足 8、15.5 \ 2的结果是 。(D) A )1 B) 1.5 C )7 D) 8 9、VB算术运算符乘或除、整除、求余的优先级,从高到低依次为 。(B) A)乘或除、求余、整除 B)乘或除、整除、求余 C)整除、求余、乘或除 D)整除、乘或除、求余 10、函数InStr(“windowse”,Mid(“winnt”,2,2))的返回值是 。(C) A)0 B)1 C)2 D)3 11、VB表达式 包含当前系统日期与时间信息。(B) A)Time B)Now C)Date D)Day(Date) 12、x 是 Integer 类型变量 ,无论取何值,字符串表达式 的长度为10。(D) A)Space (l0-Len(Str(x)))+x B)Space(l0-Len(Trim(Str(x))))+x C)Space (l0-Len(x))&x D)Space(10-Len(Trim(Str(x))))&x 13、将变量x、y中的最大数赋值给变量a,正确的表示为 。(A) A)a=x: If y>x Then a=y B)If y>x Then a=y: a=x C)a= If y>x Then y Else x D)If y>x Then a=y Else a=x End If 14、在 Form2 中引用 Forml 中的全局变量x, 写作 。(B) A)x B).Forml.x C)Form2.x D)Forml_Public.x 15、若某过程声明为Sub aa(n as integer),则调用 实参与形参是按地址传递。(C) A)Call aa(5) B)Call aa(n+1) C)Call aa(n) D)Call aa(i-1) 16、编制一个对Single类型一维数组排序的Sub过程,该过程只能被本模块中其他过程所调用,其句首为 。 (C) A) Sub f(a()As Single, n As Integer) B)Public Sub f(a(n)As Single) C)Private Sub f(a() As Single, n As Integer) D)Public Sub f(a()As Single, n As Integer) 17、条件“m、n不同时为0”写VB的表达式为 。(Cwrite的返回值) A)m=0 And n<>0 B)m+n=0 C)Not(m=0 And n=0) D)m*n=0 18、编制一个计算Single类型一维数组所有元素和的函数过程,该过程可被其他模块调用,其句首为 。(B) A)Private Function Sum(a(n) as Single, n as Integer) as Single B)Public Function Sum(a() as Single, n as Integer) as Single C)Private Function Sum(a() as Single, n as Integer) as Single D)Public Function Sum(a(n) as Single, n as Integer) as Long (三)程序填空题 1、Form2的过程Command1_Click如下,输入10个数,根据 Form1中全局变量flag的不同取值做不同运算:若flag为true则求10个数的和,若flag为false则求10个数的积。 【程序】 Private Sub Command1_Click() Dim a(10) As Single, s As Single, i As Integer s = 0 If (1) Then s = 1 For i = 1 To 10 a(i) = InputBox("a(" & i & ")=") If (2) Then s = s + a(i) Else s = s * a(i) Next i Print s End Sub (1)A、Not Form1.flag B、Form1.flag C、flag D、flag=ture (2)A、s=1 B、s<>1 C、Form1.flag D、flag 答案:A、C。 2、单击命令按钮Command1后,输入平面上凸10边形各顶点的坐标,然后计算各点之间连线的总长。 【程序】 Option Base 1 Private Function f1(x1 As Single, y1 As Single, x2 As Single, y2 As Single) As Single f1 = Sqr((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)) End Function Private Sub Command1_Click() Dim i As Integer, j As Integer, s As Single (1) For i = 0 To 9 x(i) = InputBox("x(" & i & ")=") y(i) = InputBox("y(" & i & ")=") Next i For i = 0 To 8 For j = (2) s = s + (3) Next j Next i Label1.Caption = s End Sub (1) A、x(9) as single ,y(9) as single B、x(0 to 9) as single ,y(0 to 9) as single C、x(9),y(9) as single D、x(10) as single ,y(10) as single (2) A、i+1 to 9 B、i to 9 C、i+1 to 10 D、i to 10 (3) A、f1(x(i),x(j),y(i),y(j)) B、f1(x1,y1,x2 ,y2) C、f1(x(i),y(i), x(j),y(j)) D、f1(xi,yi,xj,yj) 答案:B、A、C。 (四)程序阅读 1. Private sub form_click() A=1 B=A Do Until A>=5 X=A*B Print str$(A) & " * " & str$(B) & " = ";str$(x) A=A+B B=B+A Loop End Sub 结果为 ; 2. Private Sub form_click() Dim f(2) For i = 0 To 2 f(i) = SQ(i * i + 1) Next i Do Until i = 0 i = i - 1 Print " F("; i; ")= "; f(i) Loop End Sub Public Function SQ(x) x = x + 2 SQ = x * 4 - 5 End Function 结果为 ; 3. Dim y as integer Private sub Form_click() Dim x as integer X=1 Y=1 Call aa(y+1) z=BB(x) Print x,y,z End sub Public sub AA(byval z as integer) y=z+x z=x+y End sub Public function BB(byref y as integer) y=y+1 Bb=x+y End function 结果为 。 4、 Private Sub form_click() Static a As Integer Dim b As Integer b = a + b + 1 a = a + b Form1.Print " a= "; a, " b= "; b End Sub 程序运行时连续单击四次窗体后,FORM1上的输出结果: 5、Private Sub Form_Click() Dim strC As String * 1 strC = InputBox("请输入数据") Select Case strC Case "a" To "z", "A" To "Z" Form1.Print strC + "Is Alpha Character" Case "0" To "9" Form1.Print strC + "Is Numeral Character" Case Else Form1.Print strC + "Is Other Character" End Select End Sub 设输入的数据分别为“W”,“8”和“?”时,单击窗体后,窗体上显示的内容分别是什么? 6、 Public Sub Swap1(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t = x x = y y = t End Sub Public Sub Swap2(x As Integer, y As Integer) Dim t As Integer t = x x = y y = t End Sub Private Sub Form_Click() Dim a As Integer, b As Integer a = 10 b = 20 Swap1 a, b Form1.Print "A1="; a, "B1="; b a = 10 b = 20 Swap2 a, b Form1.Print "A2="; a, "B2="; b nd Sub 写出程序运行后,单击窗体,Form1上的输出结果。 7、 Private Sub Form_Click() Dim i As Integer, j As Integer Dim star As String star = "*" For i = 1 To 6 Form1.Print Tab(14 - i * 2); For j = 1 To i * 2 - 1 Form1.Print star; Next j Form1.Print Next i For i = 1 To 6 Form1.Print Tab(2 + i * 2); For j = 1 To (6 - i) * 2 - 1 Form1.Print star; Next j Form1.Print Next i End Sub 写出程序运行后,单击窗体,Form1上显示的内容。 8、运行时,单击窗体后依次输入10、37、50、55、56、64、20、28、19、-19、0, 写出运行结果。 Private Sub Form1_Click() Dim y as Integer Do y=Inputbox(“y=”) If (y Mod 10) + Int (y / 10) = 10 Then Print y Loop Until y=0 End Sub 9、顺序写出运行时执行下列事件过程的显示结果。 Private Sub Command1_Click() For i = 2 To 20 If i Mod 2 = 1 And i Mod 3 = 2 Then Print i Next i Print i End Sub 10、写出程序运行是单击窗体后,form1上的输出结果。 Private Sub Form_Click() Dim x As String Dim i As Integer, n As Integer Form1.Cls x = "ABCDEFGHKL" n = Len(x) For i = n To 1 Step -2 Form1.Print Tab(20 - i); Mid(x, i, 1) Next i End Sub 11、写出下列程序运行时,单击窗体后窗体上的显示结果 Private Sub Form_Click() Dim a(4, 4) As Integer, i As Integer, j As Integer For i = 1 To 4 For j = 1 To 4 a(i, j) = Trim(Str(i)) + Trim(Str(j)) Next j Next i For i = 1 To 4 For j = 1 To 4 Print Tab((j - 1) * 4 + 1); a(i, j); Next j Print Next i End Sub (五)程序设计 1、设置一方法由e的值,已知e-x= 2、在C:\txt目录下的有两个顺序文件a.txt和b.txt,其中都按升序排列了5个数据记录, 要求编程将两文件合并成一个文件c.txt,并使c.txt文件中的记录按降序排列。 3、编写一程序,当我们单击窗体时,用输入框输入一自然数,判断是否“正数”、“负数”或“零”,并根据输入的数用消息框显示“正数”、“负数”或“零”。 4、在c:\文件中,顺序存放着若干学生的姓名(字符型)和成绩(数值型),例如 令狐冲,22,94 郭靖,22,85 …… 杨康,88,90 现要求将文件中的姓名和成绩在窗体上显示,同时计算并显示所有学生的平均成绩。 5、编程序求解一元二次方程 AX2 +BX+C=0 ,并在窗体上输出。 要求: (1) 求根用使用过程Sub Rootx2(a!,b!,c!)完成,并考虑实根、虚根等情况。 (2) 在窗体的单击事件通过InputBox()函数输入方程的系数,并调用Rootx2()过程实现题目的要求。 |
发表评论