VB期末考试题库及答案最新最全面(完整版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷方案: 201105 Visual Basic 期末考试方案
一、单项选择 _ 共 50 题 (选: 20 题 *1 ’=20 分) 第 1 题
以下有关对象属性的说法中,错误的是
.
A. 工具箱中的控件并不是 VB 中所有的控件
B.
若将 Frame 的 Enabled 属性设置为 C. 对象的 Name 属性在运行时不能改变
False ,则不能使用放置在 Frame 里面的控件 D. 对象的所有属性都可以在属性窗口中设置 第 2 题
3
x | x e 数学表达式 的 VB 算术表达式为 .
sin 27
y |
A. Sin(27)+Sqr(x+Exp3)/(x+y)
B. Sin(27*3.14159/180)+Sqr(x+Exp(3))/Abs(x+y)
C. Sin(27*3.14159/180)+Sqr(x+e^3)/Abs(x+y)
D. Sin(27*pi/180)+Sqr(x+Exp(3)/Abs(x+y) 第 3 题
下列有关对象的叙述中 , 正确的是
A. 对象由属性,事件和方法构成
B. 对象的所有属性既可以在属性窗口设置,又可以在程序运行时用赋值语句设置
C. 对象的事件一定就是由 VB 预先设置好的人工干预的动
作
D. 对象的方法是对象响应某个事件后执行的一段程序代码 第 4 题
表达式 A. 1 第 5 题
的运算结果是 CInt(4.5)+Cint(-4.51)+Int(4.9)+Int(-4.1)+Fix(-1.9)+0 Mod 2
.
C. – 2
D. – 3
B. -1
下列关于菜单的说法中 , 错误的是 .
A. 每一个菜单项就是一个对象,并且可设置自己的属性和事件
B. 菜单项不可以响应 DblClick
事件
C. VB6.0 允许创建超过四级的子菜单
D. 程序执行时,如果要求菜单项是灰色,不能被用户选择,则应设置菜单项的 第 6 题
属性为 Enabled False
以下关于数组的说法中 A. 使用了 Preserve , 错误的是 .
子句的 Redim 语句,只允许改变数组最后一维的上界 B. 对于动态数组 , Redim 语句可以改变其维界但不可以改变其数据类型 C. Erase 语句的功能只是对固定大小的数组进行初始化 D. Lbound 函数返回值是指定数组某一维的下界 第 7 题
设 运行 print a>b>c 的结果是 .
a=3,b=2,c=1, D. 出错
A. True
B. False
C. 1
第 8 题
以下说法不正确的是
.
A. 使用不带关键字
B. 使用不带关键字
C. 使用不带关键字
D. 使用不带关键字第9 题
的
的
的
的
ReDim语句可以重新定义数组的维数
ReDim语句可以改变数组各维的上、下界
ReDim语句可以改变数组的数据类型
ReDim语句可以对数组中的所有元素进行初始
化
Preserve
Preserve
Preserve
Preserve
在列表框List1 中有若干列表项
A. List1.text=""
B. List1.List(List1.ListIndex)=""
C. List1.Clear
, 可以删除选定列表项的语句是.
D. List1.RemoveItem List1.ListIndex
第10 题
2 x 5 3
e ln x sin ( 2 x )
数学表达式对应的VB表达式是.
x 2
| sin x cos |
A. (e^(2* π*x-5)*Log(x)+(Sin(2x))^3)/Sqr(Sin(x)-Cos(x^2))
B. (Exp(2*3.14159*x-5)*Log(x)+(Sin(2*x))^3)/Sqr(Sin(x)-Cos(x^2))
C. (Exp(2* π*x-5)*Ln(x)+(Sin(2*x))^3)/Sqr(Sin(x)-Cos(x^2))
D. e^(2*3.14159*x-5)*Ln(x)+(Sin(2*x))^3)/Sqr(Sin(x)-Cos(x^2))
第11 题
以下有关数组参数的说明中,正确的是
A. 在过程中也可用Dim 语句对形参数组进行说明
B. 动态数组作为实参时,可用ReDim语句在过程中改变对应形参数组的维
界
C. 调用过程时,数组名不能作为实参
D. 数组可以按地址传递也可以按植传递
第12 题
下列有关过程的说法中, 错误的是.
A. 在Sub 或
B. 对于使用
过程内部不能再定义其它Sub 或Function 过程Function
ByRef 说明的形参, 在过程调用时形参和实参只能按传址方式结合
C. 递归过程既可以是递归过程, 也可以是递归Sub 过程
Function
D. 可以像调用
第13 题
Sub 过程一样使用Call 语句调用Function 过程
要将焦点设置在某个控件上, 以下四个选项中正确的是.
A. 只能使用鼠标直接点击控件
B. 只能使用Tab 键将焦点移到该控件
C. 只能在程序中调用该控件的SetFocus 方法
D. A 、B、C 三选项中涉及的方法均可使用
第14 题
以下Case 语句中, 能正确描述A. Case Abs(Y)>6
C. Case Not(-6 To 6)
第15 题以下关于变量作用
域的叙述中Y 的绝对值大于 6 的是.
B. Case -6 To 6
D. Case Is<-6,Is>6 , 正确的是.
A. 窗体中凡用Private 声明的变量只能在某个指定的过程中使用
B. 模块级变量只能用Dim 语句声明
C. 凡是在窗体模块或标准模块的通用声明段用Public 语句声明的变量都是全局变量
D. 当不同作用域的同名变量发生冲突时,优先访问局限性小的变量
第16 题
以下关于数值常量的说法中, 错误的是
A. 八进制数的表示方法是在数字前面加
B. 十六进制数的表示方法是在数字前面加&O
&H
C. 在浮点运算中使用D来分隔尾数和指数时,系统将把该数值作为单精度型数处
理
D. 32768 是合法的数值常量
第17 题
x 3
e sin 30
数学表达式对应的VB表达式是.
x A. Abs(e^x+Sin(30)^3) y
∕Sqr(x+y))
B. Abs(Exp(x)+Sin(30)^3) ∕(Sqr(x+y))
C. Abs(e^x+Sin(30*3.14159 ∕180)^3) ∕(Sqr(x+y))
D.
Abs(Exp(x)+Sin(30*3.14159 ∕180)^3) ∕Sqr(x+y))
第18 题
下面的 4 个表达式中, 有关个能够对类型变量x( 正数) 的第3 位小数正确地进行四舍五入计
Single
算.
Format(x, ″#.00 ″)
Fix(100*(x+0.005))/100
Int(100*(x+0.005))/100 CInt(100*(x+0.005)/100
A. 1 个第19 题
B. 2 个
C. 3 个个
D. 4
执行以下语句时, 会出现错误提示的是.
A. Print"2b3 " +12.5
D.Print"2e3"+12
第20 题
以下Case 语句含有错误的是A. Case 0 To 10
第21 题
B. Print"12.5"+ 12
C.Print"12.5" & 12.5
.
B. Case Is>10
C. Case Is>10 And Is<50
D. Case 3,5,Is>10
下列语句中, 正确的是
A. Textl.SetFocus
第22 题
B. Forml.Clear
C. Labell.SetFocus
D. Listl.Cls
下列选项中, 所包含的所有表达式能够将两位整数
.
x 的个位数与十位数对调( 如将78 转换为87) 的是
①Val(Right(X,1)&Left(X,1))
③Val(Right(CStr(X),1)&Left(CStr(X),1))
②Val(Right(Str(X),1)&Left(Str(X),1))
④Val(Mid(X,2,1)+Mid(X,1,1))
D. ①③④
A. ①②第23 题
B. ②③②④
C.
以下关于子过程或函数的定义中A. Sub f1(n As String*1 )
C. Function f1(f1 As Integer)As
, 正确的是
B. Sub
D. Function
f1(n As
f1(ByVal
Integer)As Integer
n As Integer) Integer
第24 题
下列有关控件数组的说法中, 错误的是.
A. 控件数组由一组具有相同名称和相同类型的控件组成,不同类型的控件无法组成控件数组
B. 控件数组中的所有控件不得具有各自不同的属性设置值
C. 控件数组中的所有控件共享同一个事件过程
D. 控件数组中每个元素的下标由控件的
第25 题
Index 属性指定
以下对数组参数的说明中, 错误的是.
A. 在过程中可以用Dim 语句对形参数组进行声明
B. 形参数组只能按地址传递
C. 实参为动态数组时,可用ReDim语句改变对应形参数组的维
界
D. 只需把要传递的数组名作为实参,即可调用过程
第26 题
要向文件datal.txt 添加数据, 正确的文件打开命令是.
A. Open"datal.txt"For Output As #1
B. Open"datal.txt"For Input As #1
C. Open"datal.txt"For Append As #5
D. Open"datal.txt" For Write As #5
第27 题下面有关数组处理的叙述
中,正确的是.
A. 在过程中使用ReDim语句可以改变动态数组数据的类
型
B. 在过程中,可以使用Dim 、Private 和Static 语句来定义数组
C. 用ReDim语句重新定义动态数组时,可以改变数组的大小,但不能改变数组的维
数
D. 不可以用Public 语句在窗体模块的通用处说明一个全局数组
第28 题
下面的表达式中, 运算结果为True 的是.
A. "abcrd" <="ABCRD"
C. 3>2>1
第29 题B. Int(134.69) <=CInt(134.69)
D. Mid("Visual",1,4)=Right("lausiV",4)
设计界面时设置为 3.
A. MultiLine 第30 题, 要使一个文本框具有水平和垂直滚动条, 应先将其属性置为再将ScrollBar 属性
True,
B. AutoSize
C. Alignment
D. RightToLeft
下面有关数组的说法中, 正确的是A. 数组的维下界不可以是负数
B. 模块通用声明处有
C. 模块通用声明处有
D. 模块通用声明处有第31 题
下面有关数组的叙述中
,则模块中数组定义语句Dim A(0 To 5) 会与之冲突Option Base 1
Option Base 1
Option Base 1
,模块中有
,模块中有
Dim A(0 To 5), 则A 数组第一维维下界为
DimA(0 To 5), 则A 数组第一维维下界为
1 , 不正确的是.
①②③在过程中用ReDim语句定义的动态数
组
, 其下标的上下界可以是变量数组作为形式参数时, 传递的是每个数组元素的值
在窗体模块的通用声明处可以用Public 说明一个全局数组
④数组定义语句中可以用负数或小数来指定某一维的维下界或维上界的值
A. ②③
第32 题下列关于对象A. SetFocus C. Setfocus 第33 题创建一个名为
.
B. ①③④
C. ①②③④
D. ③④
与GotFocus 的描述中, 正确的是
SetFocus
是事件,GotFocus 是方法 B. Setfocus 和Gotfocus 都是事件
和GotFocus 都是方法 D. SetFocus 是方法,GotFocus 是事件
" 文件" 的菜单项, 欲使其可用方式访问, 则在菜单编辑器的标题文本框中应输入
Alt+F
A. 文件($F) 第34 题在下列属性中
B. 文件(&F)
C. 文件(#F)
D. 文件(%F)
, 属于CommandButton控件、
ListBox
B. Visible 、Font
控件共有的是.
A. Caption 、Text 第35 题
、Visible 、Visible C. Caption D. List
下列能够正确表示条件"X≤Y<Z"的VB逻辑表达式
是A. X ≤Y<Z
第36 题以下关于C. X ≤Y OR Y<Z
B. X<=Y And Y<Z D. X<=Y<Z
过程的说法中, 错误的是.
过程名可以有一个或多个返回值
A. Function
B. 在Function 过程内部不得再定义
C. Function 过程中可以包含多个
Function 过程
语句Exit Function
D. 可以像调用
第37 题
Sub 过程一样调用Function 过程
下面的关系表达式中A. CInt(1.5)=Int(1.5) C. Fix(-1.5)=CInt(-1.5) 第38 题, 运算结果为True 的是.
B. Fix(1.5)=Int(1.5)
D. Fix(-1.5)=Int(-1.5)
已知X<Y,A>B,则下列表达式中A. Sgn(X-Y)+Sgn(A-B)=-1
C. Sgn(Y-X)+Sgn(A-B)=2 , 结果为True 的是
B. Sgn(X-Y)+Sgn(A-B)=-2
D. Sgn(Y-X)+Sgn(A-B)=0
第39 题
执行语句时, 会出现出错提示信息.
A. Print 5+7=14 C. Print 32768*2 第40 题
B. Print 16384*2
D. Print "14"+32
sin 30
2log x y
数学表达式对应的Visual Basic 表达式是.
x y
e
A. Sin(30*3.14159/180)+Sqr(Log(x)+y)/2*3.14159+Exp(x+y)
B. (Sin(30* π/180)+Sqr(Ln(x)+y))/(2* π+Exp(x+y))
C. Sin(30*180/3.14159)+Sqr(Log(x)+y)/(2*3.14159+e^(x+y))
D. (Sin(30*3.14159/180)+Sqr(Log(x)+y))/(2*3.14159+Exp(x+y))
第 41 题
在一个多窗体程序中 A. Form2.Unload C. Form2.End 第 42 题 , 可以仅将窗体 Form2 从内存中卸载的语句是 B. Unload Form2
D. Form2.Hide
.
Print 方法可在 上输出数据 . ①窗体 A. ①③⑥ 第 43 题
②文本框
B. ③图片框
②③⑤
④标签
⑤列表框
⑥立即窗口
①②⑤
D. ③④⑥
C. 若要使逻辑表达式 结果为 True, 则 x 、y 、 z 的取值应为下列选项中的 x>y Xor y<z .
x=3 、
y=3 、z=4 x=1 、 y=3 、z=2 44 题 、
y=1 、 z=2 、
y=2 、 z=2 A. C. B. x=2 D. x=2 第 下列 是合法的变量名 . B. – al
A. abs 第 45 题 C. cdc d
D. Abe_10
下列 是正确的 VB 常
量 . A. D-6 第 46 题 若在模块中用
B. E-6
C. 5D
D. 5E-6
定义了函数 Fun. 调用函数 Private Function Fun(A as Single,B as Integer) As Integer Fun 的过程中定义了
.
I 、J 和 K 三个 Integer 型变量 , 则下列语句中不能正确调用函数 Fun 的语句是
A. Fun 3.14,J 第 47 题
B. Call Fun(I,365)
C. Fun(I),(J)
D. K=Fun("24","35")
若需要在同一窗体内安排两组相互独立的单选按钮 可使用 控件做容器将它们分开 (OptionButton),
④ Frame D. ③或④
.
①TextBox A. ①或② 第 48 题
②PictureBox B. ②或③
③ C. Image ②或④
以下关于文件的叙述中,错误的是。
A. 用 Output 模式打开一个顺序文件,即使不对它进行写操作,原来的内容也被清除
B. 可以用 Print # 语句或 Write#
语句将数据写到顺序文件中
C. 若以 Output 、 Append 、 Random 、Binary 方式打开一个不存在的文件,系统会出错
D. 顺序文件或随机文件都可以用二进制访问模式打开 第 49 题
窗体上有若干命令按钮和一个文本框 钮的 Click 事件过程 , 需要将该按钮的 , 程序运行时焦点置于文本框中
, 为了在按下回车键时执行某个命令按
属性设置为 True.
A. Enabled 第 50 题
B. Default
C. Cancel
D. Visible
5 x
cos 29 ln y) 数学表达式
对应的 VB 表达式是
x
(e
5
A. (x^5-Cos(29))/Sqr(e^x+In(y))+5
B. (x^5-Cos(29))/(Sqr(Exp(x)+Log(y))+5)
C. (x^5-Cos(29*3.14159/180))/(Sqr(Exp(x)+Log(y))+5)
D. (x^5-Cos(29*3.14159/180))/(Sqr(e^x+Log(y))+5
二、填空_共20题(选:15空*2’=30分)——阅读理解:填写程序的输出结果第 1 题
运行下列程序,单击
, 第三行的内容是Command1, 在窗体上显示的第一行内容是
【3】。
【1】, 第二行的内容是【2】
Option Explicit
Private Sub Command1_Click()
Dim s As String
s="Basic"
Call trans(s)
End Sub
Private Sub trans(s As String)
Dim j As Integer,t As String
Dim k As Integer
k=3
Do
j=InStr(s,"a")
t=LCase(Right(s,j))
s=Right(t,Len(s)-k) & Left(s,Len(t))
k=k-1
Print s
Loop Until k=0
End Sub
第 2 题
执行下面程序,单击
行是__【3】__。
Option Explicit
Command,1则窗体上显示的第一行是_【1】___,第三行是__【2】__,最后一
Private Sub Command1 _Click()
Dim x As Integer,y As Integer
x=12:y=0
Do While x> 0
If x Mod 4=0 Then
y=y+x
Else
y=y-x
End If
x=x-3
Print x,y
Loop
End Sub
第 3 题
执行下面的程序,单击Command1
窗, 体上显示的第一行是【1】,第二行是【2】, 第
四行是【3】。
Option Explicit
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a=1 : b=1
Call sub1(a, b)
Print a, b
End Sub
Private Sub sub1(a As Integer, b As Integer) a=a+b : b=b+a
Print a, b
If a>10 Then
a=a+b
b=b+a
Else
Call sub1(a, b)
End If
End Sub
第 4 题
运行下面的程序,单击Command1在, 窗体上显示的变
量a 的值为【1】,变量b 的值为【2】
, 变量c 的值为【3】。
Option Explicit
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a=5: b=10: c=15
Print fun(a,b,c)+fun(a,b,c)
Print a,b,c
End Sub
Private Function fun(x As Integer, y As Integer, z As Integer) As Integer z=x
x=x+y
y=y+z
fun=x+y
End Function
第 5 题
执行下面的程序,连续三次单击命令按钮Command1之后,A 数组共有。
【1】个元素;数组元素A(2) 的
值【2】
Option Explicit
Option Base 1
,A(4) 的值是【3】
Private Sub Command1_Click()
Static A( ) As Integer,n As Integer Dim i As Integer,k As Integer
k=n '
n=n + 2
ReDim Preserve A(n)
For i=k+1 To n
A(i)=i*n+1
Next i
For i=1 To n
Print A(i);
Next i
Print
End Sub
第 6 题
运行下面程序,单击Command,1在窗体上显示的变量
A 的值为【1】, 变量
B 的值为【2】。
Option Explicit
Dim a As Integer
Private Sub Command1_Click()
Dim b As Integer
b = 3
a = 4
b = fun(fun(a, b + 2), a) + b
Print a, b
End Sub
Private Function fun(n As Integer, k As Integer)
n = n + a
k = n - k
fun = n + k + a
End Function
第7 题
执行下面的程序,单击
Command,l则窗体上第一行显示的是【1】,第二行显示的是【2】。
Option Explicit
Dim x As Integer
Private Sub Command1_Click()
Dim y as Integer
X=10:Y=2
Call process(y)
Print X,Y
Call process((y))
Print X,Y
End Sub
Private Sub process(n As Integer)
Dim y As Integer
If n>0 Then
x=x-n
y=x
Else
x=x+n
y=x+2
End If
n=-n
End Sub
第8 题
执行下面程序,单击Command,1窗体上显示的第一行是【1】,第二行是【2】,第四行是【3】,最后一行是【4】.
Option Explicit
Private Sub Command1_Click()
Dim n As Integer
n = 5
Call test(n)
Print n
End Sub
Private Sub test(ByVal n As Integer)
Dim i As Integer, s As Integer
If n > 0 Then
For i = 1 To n
s = s & CStr(i)
Next i
Print s
Call test(n - 2)
Else
Print "OVER"
End If
End Sub
第9 题
运行下列程序,单击Command,1在窗体上显示的第一行内容是【1】第二行的内容是【2】, 第三行
,
的内容是【3】。
("A" 的ASCII 码是65,"Z" 是90)
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, st As String, n As Integer, p As String * 1
p = "B"
For i = 3 To 1 Step -1
n = Asc(p) - i
If n < 65 Then n = n + 26
st = Chr(n)
st = st & F(i)
Print st
Next i
End Sub
Private Function F(n As Integer)
Dim i As Integer
Static s As Integer
For i = 1 To n
s = s + i
Next i
F = s
End Function
第10 题
执行下面的程序,单击Command,1输出的变量i 的值是【1】,变量j 的值是【2】,变量k 的值是【3】。
Option Explicit
Private Sub Command1_Click()
Dim i As Integer,j As Integer
Dim k As Integer
i=10
j=4
k=Funk(i,j)
Print i,j,k
End Sub
Priate Function Funk(ByVal A As Integer,B As Integer) As Integer
A=A+B
B=B-2
If B=0 Or B=1 Then
Funk=1
Else
Funk=A+Funk(A,B)
End If
End Function
第11 题运行下面程序,如果连续三次单击命令按钮之后,
A数组共有
【2】,A(5) 的值是【3】.
【1】个元素;数组元素A(2) 的值是
Option Explicit
Option Base 1
Private Sub Command1_Click()
Static a() As Integer, n As Integer
Dim i As Integer, k As Integer
k = n
n = n + 2
ReDim Preserve a(n)
For i = k + 1 To n
a(i) = i * n + 1
Next i
For i = 1 To n
Print a(i);
Next i
Print
End Sub
第12 题
执行下面的程序,单击Command1
在, 窗体界面上显示的第一行是【1】,第二行是【2】,第三行是
【3】,第四行是【4】。
Option Explicit
Dim a As Integer,b As Integer,i As Integer
i=1218
a=i\100
b=i Mod 100
If b<>0 Then
Print a
Print b
.
Print Lcd((a),(b));a;b
Print Lcd(a,b);a;b
End If
End Sub
Private Function Lcd(x As Integer,Y As Integer) As Integer
Dim d As Integer
If x<y then
d=x:x=y:y=d
End If
d=x
Do
If x Mod y=0 Then
Lcd=x
Exit Do
Else
x=x+d
End If
Loop
End Function
第13 题执行以下
程序,单击Command,1则在Picturel 上显示的第一行是【1】,第二行是【2】,第三行是【3】。
Option Explicit
Private Sub Command1_Click()
Dim A(3,3) As Integer,i As Integer,j As Integer
Dim k As Integer
i=3:j=2:A(i,j)=1:k=1
Do Until k>9
k=k+1
If i+1>3 And j+1<=3 Then
i=1:j=j+1
ElseIf i+1<=3 And j+1>3 Then
i=i+1:j=1
Elself i+1>3 And j+1>3 Then
i=i-1
ElseIf i+1<=3 And j+1<=3 And A(i+1,j+1)<>0 Then
i=i-1
Else
End If
A(i,j)=k
Loop
For i=1 To 3
For j=1 To 3
Picture1.Print A(i,j);
Next j
Picture1.Print
Next i
End Sub
第14 题
执行下列程序,单击Command,1在窗体上显示的第一行内容是__【1】__,第二行的内容是__【2】__,第三行的内容是_【
3】___。
Option Explicit
Private Sub Command1_Click
Dim n As Integer ,i As Integer
n=2
For i=7 To 1 Step -1
Call sub2(i,n)
Print i,n
Next i
End Sub
Private Sub sub2(x As Integer,y As Integer)
Static n As Integer
Dim i As Integer
For i =2 To 1 Step -1
n =n+x
x =x-1
Next i
y=y+n
End Sub
第15 题
执行下列的程序,单击Command,1在窗体上显示的变量 b 的值为__【1】__,变量 c 的值为___【2】_,变量z 的值为__【3】__。
Private Sub Command1_Click()
Dim b As Integer,c As Integer,z As Integer
b=2
c=1
z=fun(b,fun(b+1,c))+b-c+1
Print b,c,z
End Sub
Private Function fun(x As Integer,ByVal y As Integer) As Integer
x=x-y
y=x+y+2
fun=y-x
第16 题
执行下面程序,单击【3】. Command1窗,体上显示的第一行
是
【1】, 第二行是【2】, 第四行是
Option Explicit
Private Sub Command1_Click()
Dim a As Integer, b As Integer, i As Integer
a=2:b=5
For i=a To a*b Step a
Call sub1(i,a,b)
Print a,b
Next i
Print a,b,i
End Sub
Private Sub sub1(i As Integer, a As Integer, b As Integer)
i=i+1
a=a+1
b=b+1
End Sub
第17 题
执行下面程序,单击
_【3】___。
Option Explicit
Option Base 1
Command,1窗体上显示的第一行是__【1】__,第二行是__【2】__,第三行是
Private Sub Command1_Click()
Dim sa (3,3) As String*1,i As Integer,j As Integer,k as Integer
k=1
For i=1 To 3
For j=1 To 3
sa(i,j)=Chr(Asc("A")+(k+i+j) Mod 26)
Print sa(i,j);" ";
k=k+3
Next j
Print
Next i
End Sub
第18 题
执行下面程序,单击Command1则,数组元素a(1,2) 的数值是【1】,a(3,3) 的数值是【2】,
图片框中最后一行显示的是
Option Explicit
【3】.
Private Sub Command1_Click()
Dim a(4,4) as Integer, i as Integer, j as Integer Dim k As Integer, num as Integer
num=0
For k=1 To 4
num=num+1
a(i,k)=num
next i
For j=k To 1 Step -1
num=num+1
a(k,j)=num
next j
next k
For i=1 To 4
For j=1 To 4
" & a(i,j),3);
Picture1.Print Right("
Next j
Picture1.Print
Next i
End Sub
第19 题
执行下面程序,单击Command,1则图片框中显示的第一行是【1】,显示的第二行是【2】,最后一行显示的是【3】.
Private Sub Command1_Click()
Dim a(3, 3) As Integer
Dim i As Integer, j As Integer
For i = 1 To 3
For j = 3 To 1 Step -1
If i >= j Then
a(i, j) = i - j
Else
a(i, j) = j - i
End If
Next j
Next i
For i = 1 To 3
For j = 3 To 1 Step -1
Picture1.Print a(i, j);
Next j
Picture1.Print
Next i
End Sub
第20 题
执行下面程序,单击Command,1则窗体上显示的第一行是
【1】,第二行是【2】,第三行是【3】。
Option Explicit
Private Sub Command1_Click()
Dim a As String,i As Integer
Dim x As String,z As String
a="iamstudent"
i=InStr(5,a,"d")
x=Mid(a,i,3)
z=Right(x,1)
z=UCase(x & Z)
i=i-2
Print z
Loop Until i=1
End Sub
三、程序填空_共16题(选:10空*2’=20分)——完形填空:把题目中空的程序代码行补齐
第 1 题
' 本程序的功能是把由4个"." 分隔的十进制数表示的IP 地址转换为由32 位二进制数组成
' 的IP 地址。
例如十进制表示的IP 地址为202.119.191.1, 其中每个十进制数对应一个8 位
' 的二进制数,合起来构成一个32 位二进制的
IP 地址中每个用
IP 地址11001010011101111011111100000001 。
"." 分隔的十进制数;
8 位二进制数。
程序界面参见下图。
' 过程' 过程Tiqu 用于提取十进制
Convert 用于将十进制数转换为相应的
Option Explicit
Private Sub Command1_Click()
Dim str1 As String, str2 As String
Dim a(4) As Integer, i As Integer
str1 = Text1.Text
Call Tiqu(str1, a)
For i = 1 To 4
If a(i) < 0 Or a(i) > 255 Then
地址错误!")
MsgBox("IP
Exit Sub
Else
'**********SPACE**********
【?】
End If
Next i
Text2.Text = str2
End Sub
Private Sub Tiqu(st As String, a() As Integer)
Dim n As Integer, k As Integer, s As String, d As String * 1, i As Integer n = Len(st): k = 0: s = ""
For i = 1 To n
'**********SPACE**********
【?】
If d = "." Then
k = k + 1
a(k) = Val(s)
'**********SPACE**********
【?】
Else
s = s & d
End If
a(4) = s End Sub
Private Function convert(ByVal n As Integer) As String Dim b As Integer, i As Integer, s As String Do While n > 0 b = n Mod 2 n = n \ 2
'**********SPACE**********
【 ?】
Loop
For i = 1 To 8 - Len(s) s = "0" & s Next i
'**********SPACE**********
【 ?】 End Function 第 2 题
' 下面程序的功能是:统计存放在数组 A 中的 N 个数有多少个是不同的。
' 具体做法是:变量 Left 指向要被处理的数(从第
2 个元素开始) ,
'Right
指向数组最后一个元素。
若
A(Left) 与排在它前面的某个数组元素值相同,
' 就用数组元素 A(Right) 的值来替换 A(Left) 的值,同时将变量 的值减 1; Left>Right
Right ' 否则将变量 Left 的值加 1,处理数组下一个元素,重复以上过程,直到 为止。
'Right
的值即为不同的数的个数。
程序界面参见下图所示
Option Explicit Option Base 1
Private Sub Command1_Click()
Dim A() As Integer, N As Integer, I As Integer Dim OP As Integer 。
请输入数据个数 N = InputBox(" ReDim A(N) Randomize For I = 1 To N
", , 10)
A(I) = Int(Rnd * 10) + 1 Text1 = Text1 & A(I) & " " Next I
Call statistic(A, OP) 有 " & OP & "
个不同的数 : "
Text2 = "
For I = 1 To OP
Text2 = Text2 & A(I) & " " Next I End Sub
Private Sub statistic(A() As Integer, Right As Integer) Dim Left As Integer, K As Integer, I As Integer '**********SPACE********** Right= 【 ?】
Do While Left <= Right '**********SPACE**********
【 ?】
K=
For I = K To 1 Step -1
If A(Left) = A(I) Then Exit For Next I
'**********SPACE**********
【 ?】 Then Left = Left + 1
Else
A(Left) = A(Right) '**********SPACE**********
【 ?】 End If Loop End Sub 第 3 题
' 下面程序的功能是随机生成小于 Option Explicit
Private Sub Command1_Click()
If 100 的诸素数组成的数据。
程序界面如下图所示。
Dim p() As Integer,i As Integer,n As Integer Dim st As String,k As Integer Randomize 元素个数; ",,20)
k =InputBox(" ReDim p(k) Do
n =Int(Rnd*90)+10 '**********SPACE**********
【 ?】 Then
If i =i+1 p(i) =n End If
'**********SPACE********** 【 ?】
Loop Until
For i =1 To UBound(p) st =st & Str(p(i))
If i Mod 10 =0 Then st =st & vbCrLf Next i Text1 =st End Sub
Private Function prime(n As Integer) As Boolean Dim i As Integer Prime =True For i =2 To Sqr(n) If n Mod i =0 Then
【 ?】 Exit For End If Next i End Function 第 4 题
' 用以下 公式 求 f(x)
的值。
当通项的绝对值小于
10^-7 时停止计算, x 的值由键盘输入。
' 程序界面和公式参考图片所示: Option Explicit
Private Sub Command1_Click() Dim x As Single, fx As Single
Dim a As Single, a1 As Single, a2 As Single Dim t As Single a1 = 1: a2 = 2 x = Text1
'**********SPACE********** 【 ?】 Then MsgBox ("x Exit Sub End If
If
必须在 -1 ~ 1 之间 ")
fx = a1 * x - a2 * x * x t = (-1) * x * x Do
a = 1 / (a1 + a2) t = (-1) * t * x
'**********SPACE********** 【 ?】
fx = a1 = a2
'**********SPACE**********
【?】
Loop Until Abs(a * t) < 0.0000001 Text2 = fx End Sub 第 5 题
' 下面程序的功能是: 首先生成一个由小到大已排好 序的整数数组,再输入一个数据,
' 单击 " 插入 " 按钮会自动把这个数据插人到原数组 适当的位置,并保持数组的有序性。
' 程序界面参见下图。
Dim a( ) As Integer
Private Sub Form_Activate() Dim i As Integer
ReDim a(10)
For i=1 To 10
a(i)=(i-1)*10+1
Text1=Text1 & Str(a(i))
Next i
Text2.SetFocus
End Sub
生成有序数组'
Private Sub Command1_Click()
Dim n As Integer,i As Integer
n=Text2
For i=1 To UBound(a)
'**********SPACE**********
【?】Then Exit For 确定插入的位置
If
Next i
'
'**********SPACE**********
【?】
For i=1 To UBound(a)
Text3=Text3 & Str(a(i))
Next i
End Sub
Private Sub inst(P() As Integer,n As Integer,k As Integer) '
Dim i As Integer
'**********SPACE**********
【?】
For i=UBound(P)-1 To k Step -1
'**********SPACE**********
【?】
Next i
P(k)=n
End Sub
第 6 题
数组元素移位并实现插入
' 下面程序的功能是:将输入的 2 位16 进制数的每一位转换为一个 4 位的二进制数,
' 再组合成为一个
Option Explicit
8 位的二进制数。
程序界面参见下图。
Private Sub Command1_Click()
Dim h As String, h1 As String * 1,h2 As String * 1
h=Text1
h1=Left(h,1): h2=Right(h,1)
Text2=h2b(h1) & h2b(h2)
End Sub
Private Function h2b(p As String) As String
Dim st As String, i As Integer
For i=1 To Len(st)
'**********SPACE**********
【?】Then Exit For
If
Next i
i=i-1
Do
'**********SPACE**********
h2b= 【?】
i=i\2
Loop Until i<=0
'**********SPACE**********
h2b= 【?】
End Function
第7 题
' 用以下公式( 公式如下图所示) 求Sin(x) 的值. 当级数通项的绝对值小与时停止
eps=10^-7
x 3 3! x5
5!
x 2n
( 2n
1
n
sin( x) x (1) , | x | , n 0,1,2,
1)!
' 计算,x 的值由键盘输入
' 请完善如下程序
Option Explicit
Private Sub Form_Click()
Dim x As Double,t As Double,n As Integer,sum As Double
Const eps=0.0000001
.
请输入x:"))
X =Val(InputBox("
'**********SPACE**********
【?】
sum =t
n =1
'**********SPACE**********
【?】
Do Until
t =-t
'**********SPACE**********
【?】
t =
sum =sum+t
n =n+1
Loop
Print "Sin(";x;")=";Format(sum,"0.000")
End Sub
第8 题
' 下面程序的功能是:在文本框 1 中输入若干以空格分隔的整数(末尾无空格),' 程序自动将输入的数据分解并存储到一个一维数组,
' 再把数组中所有重复的元素删除(只保留一个),并输出到文本框2。
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a() As Integer, i As Integer, st As String Dim k As Integer, p As Integer
st=Text1
Do
p=InStr(st," ")
If p<>0 Then
'**********SPACE**********
【?】
ReDim Preserve a(k)
a(k)=Val(Left(st,p-1))
st=Right(st,Len(st)-p)
Else
'**********SPACE**********
【?】
a(k+1)=Val(st)
End If
'**********SPACE**********
Loop Until
【?】
Call del(a)
For i= 1 To UBound(a)
Text2=Text2 & Str(a(i))
Next i
Text2=LTrim(Text2)
End Sub
Private Sub del(a() As Integer)
Dim i As Integer, j As Integer, k As Integer
Do
i=i+1
j=i+1
Do While j<=Ubound(a)
'**********SPACE**********
【?】Then
If
For k=j To UBound(a)-1
a(k)=a(k+1)
Next k
ReDim Preserve a(UBound(a)-1)
Else
'**********SPACE**********
【?】
End If
Loop
Loop Until i>UBound(a)
第9 题
' 下面程序的功能是将给定整数
N 表示成若干个质数因子相乘的形式(分解质因数). ' 程序界面参见下图。
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim n As Integer,a() As Integer
Dim st As String,i As Integer
n =Text1
Call fenjie(n,a)
st =CStr(n) & "="
For i =1 To UBound(a)-1
St =st & a(i) & "*"
Next i
Text2 =st & a(i)
End Sub
'**********SPACE**********
Private Sub fenjie(
【?】)
Dim k As Integer,i As Integer
k =2
Do
If n Mod k =0 Then
i =i +1
ReDim Preserve a(i)
a(i) =k
'**********SPACE**********
【?】
Else
'**********SPACE**********
【?】
End If
'**********SPACE**********
Loop Until
【?】
End Sub
第10 题
' 学生的某次课程测验中,选择题的答案已记录在列表框List1 中,
' 其数据行格式是:学号为 6 个字符长度、 2 个空格、选择题的答案为15 个字符长度。
List2
' 程序根据标准答案进行批改,每答对一题给 1 分,并将得分存放到列表框中。
' 标准答案存放在变量
Exact 中。
程序界面参考图片所示。
Option Explicit
Private Sub Command1_Click()
Dim Anw As String, StudId As String
Dim Scor As Integer, Exact As String
Dim I As Integer, J As Integer
For I =
【?】
'**********SPACE**********
【?】
Anw =
StudId = Left(Anw, 6)
Anw = Right(Anw, Len(Anw) - 8)
'**********SPACE**********
【?】
For J = 1 To Len(Anw)
'**********SPACE**********
【?】Then
If
Scor = Scor + 1
End If
Next J
List2.AddItem StudId & " " & Scor
Next I
End Sub
第11 题
' 下面程序的功能是:输入一个
n 位的整数(n≤10), 求出由这n 个数字组成的n 位的' 最小整数和最大整数。
Option Explicit
0ption Base 1
Private Sub Command1_Click()
Dim n As Long,a() As String
n=Text1
Call change(n,a)
Call sort(a)
For i=1 To UBound(a)
large=a(i) & large
'**********SPACE**********
small=
【?】
Next i
Text2=large
For i=1 To Len(small)
'**********SPACE**********
If
【?】Then Exit For
Next i
If i<>1 Then
small =Mid(small, i ,1) & Left(small,i-1) & Right(small,Len(small)-i)
End If
Text3=small
End Sub
冒泡法排序
Private Sub sort(a() As Integer) '
Dim i As Integer,j As Integer,t As Integer
For i=1 To UBound(a)-1
If
【?】Then
t =a(j)
a(j)=a(j+1)
a(j+1)=t
End If
Next j
Next i
End Sub
'**********SPACE**********
【?】)
Private Sub
change(Dim k As
Integer Do
k=k+1
ReDim Preserve a(k)
a(k)=n Mod 10
'**********SPACE**********
【?】
n=
Loop Until n=0
End Sub
第12 题
' 下面程序的功能是计算如图所示的值。
请完善如下程序:
Option Explicit
Private Sub Command1_Click()
Dim n As Integer, st As String, i As Integer
Dim k As Single, s As Single, j As Integer
n=Text1
s=1
For i =2 To n
'**********SPACE**********
【?】
For j =1 To i
st=st & CStr(i)
next j
'**********SPACE**********
k=
【?】
s=s + k
Next i
Text2=s
End Sub
第13 题
' 在数据传输时可用作奇偶校验位。
传输时ASCII 代码转换成传输码的方法是,
' 若7 位ASCII 码有偶数个1,则最高位为1。
有奇数个1,则最高位为0。
' 例如字母"A" 的ASCII 码十进制表示为65,二进制表示为01000001。
' "A" 的传输码则为"1100 0001" 。
本程序的功能就是把
ASCII 代码转换成这种传输码。
' 程序参考界面如下图所示。
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, s As String
Dim str As String, ch As String
str = Text1.Text
For i = 1 To Len(str)
'**********SPACE**********
【?】
Call convert(ch, s)
List1.AddItem ch & "==>" & s
Next i
End Sub
Private Sub convert(ch As String, s As String)
Dim m As Integer, k As Integer, n As Integer, i As Integer
'**********SPACE**********
s= 【?】
n = Asc(ch)
Do While n > 0
'**********SPACE**********
【?】
s = m & s
If m = 1 Then
k = k + 1
End If
n = n \ 2
Loop
将字符的二进制代码补足7 位
For i = 1 To 7 - Len(s)
'
s = "0" & s
Next i
If k Mod 2 = 0 Then
'**********SPACE**********
【?】
Else
s = "0" & s
End If
End Sub
第14 题
' 下面程序的功能是:找出仅由数字1、2、3、4 组成的 4 位素数,要求每个素数由 4 个不' 同数字组成。
算法提示:函数Validate 用于验证一个 4 位数是否由 4 个不同数字组成。
' 在函数中用A数组的各个元素分别对应数0~9,只要某数字出现在四位数中,无论几次,。