第1题
窗体的事件过程如下:
Private Sub Form MouseDown(Button As Integer ,Shift As integer,X As Single,Y As Single)
If Shift = 6 And Button = 2
Then MsgBox "Hello World."
End lf
End Sub
程序运行后,要在窗体消息框中显示"Hello World.",在窗体上应执行的操作是(同时按下 Ctr、Alt 键和鼠标右键)。
鼠标事件MouseDown中的Button参数用于判断鼠标操作的是左中右哪个键,可以分别用符号常量acLeftButton(左键1)、acRightButon(右键2)和acMiddleButton(中键4)来比较,本题中的if语句中条件语句Button=2,如果条件成立,那么应该按下鼠标右键;Shift参数用于判断鼠标操作的同时,键盘控制键的操作,可以分别用符号常量acAltMask (Shift键1)、acAItMask(ctrl键2)和acAItMask(AIt键4)来比较,本题中的if语句中条件语句Shift=6,如果条件成立,那么应该按下acAltMask(ctrl键2)和acAItMask(Alt键4)
第2题
假设有选课成绩表score(学号,课程号,成绩等),查询所选课程在两门以上(含两门)并且所选的课程成绩都在90分以上(含90分)的学号列表,正确的是
SELECT score.学号
FROM score WHERE score.学号 Not In(select 学号 from score where 成绩 < 90)
GROUP BY score.学号
HAVING Count(score.[学号]) >= 2
SELECT语句的一般格式为:
SELECT[ALL | DISTINCT | TOP n]*|<字段列表>[,<表达式>AS<标识符>]
FROM<表名1>[,<表名2>]...
[WHERE<条件表达式>]
[GROUP BY<字段名>[HAVING<条件表达式>]]
[ORDER BY<字段名>[ASC | DESC]];
第3题
假设数据库中有学生信息表 stud(sno,sname,ssex)其中 ssex 字段已建索引,要输出最后一名男同学的信息,程序空白处应填写的语句是
Private Sub Form Load()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.ActiveConnection ="Provider=Microsoft.Jet.OLEDB.4.0;"&"Data Source= e:\考试中心教程\教学管理.mdb;"
rs.CursorType = adOpenKeysetrs
rs.LockType = adLockOptimistic
rs.Index="ssex"
rs.Open "stud",,,,adCmdTableDirect
__________
Debug.Print rs("sno "), rs("sname "), rs("ssex ")
rs.Close
Set rs = Nothing
End Sub
DAO的Seek成员函数是在表类型记录集中基于表索引进行搜索记录,Find成员函数是在动态集类型或快照类型记录集中进行搜索记录。因为本题中性别ssex字段已建索引,因此采用Seek成员函数。AdSeekfirstEQ查找等于关键值的第一个关键字,AdseekLastEQ查找等于关键值的最后一个关键字。
第4题
窗体中有文本框Text1、Text2和Text3。运行程序时,输入整数m和n(n>0),单击按钮Command1计算下列表达式的值:
S
U
M
=
m
−
(
m
+
1
)
/
2
+
(
m
+
2
)
/
3
−
(
m
+
3
)
/
4
+
.
.
.
+
(
−
1
)
n
+
1
(
m
+
n
−
1
)
/
n
SUM=m-(m+1)/2+(m+2)/3-(m+3)/4+...+(-1)^{n+1}(m+n-1)/n
SUM=m−(m+1)/2+(m+2)/3−(m+3)/4+...+(−1)n+1(m+n−1)/n
在Text3给出结果,事件代码如下:
Private Sub Command1_Click()
Dim sum As Double
m = Val(me!Text1)
n = Val(me!Text2)
sum = 0
For k = 1 to n
sum = sum +【】/ k
Next k
Me!text3 = sum
End Sub
程序【】处应填写的语句是:llf(kMod2 = 0 , -(m + k - 1) , (m + k - 1))
窗体中有文本框Text1、Text2和Text3。运行程序时,输入整数m和n(n>0),单击按钮Command1计算下列表达式的值:
S
U
M
=
m
+
(
m
−
1
)
/
2
+
(
m
+
2
)
/
3
+
(
m
−
3
)
/
4
+
.
.
.
+
(
m
+
(
−
1
)
n
+
1
(
n
−
1
)
)
/
n
SUM=m+(m-1)/2+(m+2)/3+(m-3)/4+...+(m+(-1)^{n+1}(n-1))/n
SUM=m+(m−1)/2+(m+2)/3+(m−3)/4+...+(m+(−1)n+1(n−1))/n
在Text3给出结果,事件代码如下:
Private Sub Command1_Click()
Dim sum As Double
m = Val(me!Text1)
n = Val(me!Text2)
sum = 0
For k = 1 to n
sum = sum + (【】)/ k
Next k
Me!text3 = sum
End Sub
程序【】处应填写的语句是:m + llf(kMod2 = 0 , -k + 1 , k - 1)
窗体中有文本框Text1、Text2和Text3。运行程序时,输入整数m和n(n>0),单击按钮Command1计算下列表达式的值:
S
u
m
=
m
−
(
m
+
1
)
+
(
m
+
2
)
−
(
m
+
3
)
+
.
.
.
+
(
−
1
)
n
+
1
(
m
+
n
−
1
)
Sum=m-(m+1)+(m+2)-(m+3)+...+(-1)^{n+1}(m+n-1)
Sum=m−(m+1)+(m+2)−(m+3)+...+(−1)n+1(m+n−1)
Text3给出结果。事件代码如下:
Private Sub Command1_Click()
m = val(me!text1)
n = val(me!text2)
sum = 0
For k = 1 to n
sum = sum + 【】
Next k
Me!text3 = sum
End
程序【】处应填写的语句是:llf(kMod2 = 0 , -(m + k - 1) , ( m + k - 1))
窗体中有文本框Text1、Text2和Text3。运行程序时,输入整数m和n(n>0),单击"计算"按钮Command1计算下列表达式的值:
S
u
m
=
m
−
2
(
m
+
1
)
+
3
(
m
+
2
)
−
4
(
m
+
3
)
+
.
.
.
+
(
−
1
)
n
+
1
n
(
m
+
n
−
1
)
Sum=m-2(m+1)+3(m+2)-4(m+3)+...+(-1)^{n+1} n(m+n-1)
Sum=m−2(m+1)+3(m+2)−4(m+3)+...+(−1)n+1n(m+n−1)
Text3给出结果。事件代码如下:
第5题
窗体中有文本框Text1。运行程序,输入大于0的整数m,单击按钮Command1,程序显示由星号组成的高度和上底均为m的等腰梯形。事件代码如下:
Private Sub Command1_Click()
m= Val(Me!Text1)
result = ""
For k = 1 To m
For n = 1 To【】
if n < m - k + 1 Then
result = result & " "
Else
result = result & "*"
End lf
Next n
result = result + Chr(13)
Next k
MsgBox result,,"运行结果”
End Sub
程序【 】处应填写的语句是:k + 2 * m - 2
窗体中有文本框Text1。运行程序,输入大于0的整数m,单击按钮Command1,程序显示由星号组成的高度为m的等腰三角形。事件代码如下:
Private Sub Command1_Click()
Dim result As String
m = Val(Me!Text1)
result = ""
For k = 1 To m
For n = 1 To k + m - 1
if n < m - k + 1 Then
result = result & " "
Else
result = result & "*"
End lf
Next n
result = result + Chr(13)
Next k
MsgBox result,,"运行结果
End Sub
窗体中有文本框Text1。运行程序,输入大于0的整数m,单击按钮Command1,程序显示由星号组成的高度和边长均为m的平行四边形。事件代码如下:
Private Sub Command1_Click()
m = Val(Me!Text1)
result = ""
For k = 1 To m
For n = 1 To 【】
if n < m - k + 1 Then
result = result & ""
Else
result = result & " *"
End lf
Next n
result = result + Chr(13)
Next k
MsgBox result,,"运行结果”
End Sub
程序【 】处应填写的语句是:2 * m - k
第6题
窗体中有文本框为Text1和Text2。运行程序,在Text1中输入整数m(m>0),单击"运行"按钮Command1,将m分解为质因子之积,并在Text2中给出结果。例如,18=2*3*3,输出结果为"2,3,3,“;28=2*2*7,输出结果为"2,2,7,”。事件代码如下:
Private Sub Command1_Click()
m= Val(Me!Text1)
resule = ""
k = 2
Do While m > 1
if m Mod k = 0 Then
result = result & k & ","
m = m / k
Else
【】
End lf
Loop
Me!Text2 = result
End Sub
程序【 】处应填写的语句是:k = k + 1
第7题
窗体中有文本框Text1、Text2和Text3。运行时在Text1中输入整数m,在Text2中输入整数n(m<n),单击按钮Command1,计算m到n之间(含m和n)全部奇数之和,然后在Text3中输出结果。事件代码如下:
Private Sub Command1_Click()
m = Val(Me!Text1)
n = Val(Me!Text2)
sum = 0
For【 】To n Step 2
sum = sum + k
Next k
Me!Text3 = sum
End Sub
程序【 】处应填写的语句是:k = llf(m Mod 2 = 1 , m , m + 1)
窗体中有文本框Text1、Text2和Text3。运行时在Text1中输入整数m,在Text2中输入整数n(m<n),单击按钮Command1,计算m到n之间(含m和n)全部偶数之和,然后在Text3中输出结果。事件代码如下:
Private Sub Command1_Click()
m = Val(Me!Text1)
n = Val(Me!Text2)
sum = 0
For【 】To n Step 2
sum = sum + k
Next k
Me!Text3 = sum
End Sub
程序【 】处应填写的语句是:k = llf(m Mod 2 = 0 , m , m + 1)
第8题
在窗体中有文本框Text1和Text2。运行程序时,在Text1中输入整数m(m>0),单击Command1"运行“按钮,程序能够求出m的全部除1之外的因子,并使用Text2显示结果,例如,18的全部因子有2,3,6,9,18,输出结果为"2,3,6,9,18,“;28的全部因子为2,4,7,14,28,输出结果为"2,4,7,14,28”。事件代码如下:
Private Sub Command1_Click()
m = Val(Me!Text1)
result = ""
k = 2
Do
if m Mod k = 0 Then result = result & k & ","
K = k + 1
Loop Until【】
Me!Text2 = result
End Sub
程序【 】处应填写的语句是:k > m
在窗体中有文本框Text1和Text2。运行程序时,在Text1中输入整数m(m>0),单击Command1"运行“按钮,程序能够求出m的全部除1和自身之外的因子,例如,例如,20的因子有2,4,5,10,输出结果为"2,4,5,10,";16的因子为2,4,8,输出结果为"2,4,8,”。事件代码如下:
Private Sub Command1 Click()
m = Val(Me!Text1)
resule = ""
k = 2
Do
if m Mod k = 0 Then result = result & k & ","
k = k + 1
Loop While【】
Me!Text2 = result
End Sub
程序【 】处应填写的语句是:k < m
区别:Loop While和Loop Until
Do While当判断条件为真时,执行循环体,而Do Until是当判断为假时,执行循环体。
第9题
窗体中有文本框Text1和标签Label1,运行程序,输入大于0的整数m,单击按钮Command1,程序判断m是否为素数,若是素数,则Label1显示"m 是素数",否则显示”m 是合数"。事件代码如下:
Private Sub Command1_Click()
m = Val(Me!Text1)
result = m & "是素数"
k = 2
Do While k <= m / 2
if m Mod k = 0 Then
result = m & "是合数"
End lf
k = k + 1
Loop
Me!lLabel1.Caption = result
End Sub
程序【 】处应填写的语句是:Exit Do
DO…while退出时,用Exit Do。
第10题
(最大公约数)在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码:
Private Sub Command1 Click()
MsgBox f(24,18)
End Sub
Public Function f(m As Integer, n As Integer)As Integer
Do While m <> n
Do While m > n
m = m - n
Loop
Do While m < n
n = n - m
Loop
Loop
f = m
End Function
窗体打开运行后,单击命令按钮,则消息框的输出结果是6
第11题
(斐波拉契序列)运行下列程序,结果是13。
Private Sub Command32_Click()
f0 = 1 : f1 = 1 : k = 1
Do While k <= 5
f = f0 + f1
f0 = f1
f1 = f
k = k + 1
Loop
MsgBox "f="& f
End Sub
第12题
有如下事件程序,运行该程序后输出结果是x=1,y=0。
Private Sub Command33_Click()
Dim x As Integer, y As Integer
x = 1 : y = 0
Do Until y <= 25
y = y + x * x
x = x + 1
Loop
MsgBox "x=" & x & ",y=" & y
End Sub
Do Until循环采用的是先判断条件后执行循环体的做法,如果条件为True,则循环体一次都不执行,否则进入循环体执行。
运行下列程序,输入数据8、9、3、0后,窗体中显示结果是20。
Private Sub Form_click()
Dim sum As Integer, m As Integer
sum = 0
Do
m = InputBox("输入m")
sum = sum + m
Loop Until m = 0
MsgBox sum
End Sub
通过Do循环结构对键盘输入的数据进行累加,循环结束条件是输入的字符为0。
第13题
在窗体上有一个命令按钮Command1,编写事件代码如下:
Private Sub Command1_Click()
Dim x As Integer, y As Integer
x = 12 : y = 32
Call Proc(x,y)
Debug.Print x;y
End Sub
Public Sub Proc(n As Integer, ByVal m As Integer)
n = n Mod 10
m = m Mod 10
End Sub
打开窗体运行后,单击命令按钮,立即窗口上输出的结果是2 32。
参数有两种传递方式:传址传递ByRef(形参的变化将会返回到实参)和传值传递BVal(不因形参的变化而变化)。如果没有说明传递类型,则默认为传址传递。
第14题
窗体中有命令按钮run34,对应的事件代码如下:
Private Sub run34_Enter()
Dim num As Integer, a As Integer, b As Integer, i As Integer
For i = 1 To 10
num = InputBox("请输入数据:","输入”)
If Int(num / 2) = num / 2
Then
a = a + 1
Else
b = b + 1
End
If
Next i
MsgBox("运行结果:a = "& Str(a)&",b = "& Str(b))
End Sub
运行以上事件过程,所完成的功能是对输入的10个数据分别统计奇数和偶数的个数。
第15题
在窗体中有一个命令按钮Command1,编写事件代码如下:
Private Sub Command1_Click()
Dim s As Integer
s = P(1) + P(2) + P(3) + P(4)
debug.Print s
End Sub
Public Function P(N As Integer)
Dim Sum As Integer
Sum = 0
For i = 1 To N
Sum = Sum + i
Next i
P = Sum
End Function
打开窗体运行后,单击命令按钮,输出结果是20。
第16题
窗体中有文本框Text1、Text2和Text3,运行时在Text1中输入整数m,在Text2中输入整数n(m<n),单击按钮Command1统计m到n之间(含m和n)个位为9的整数数量,然后在Text3中输出结果。事件代码如下:
Private Sub Command1_Click()
m = Val(Me!Text1)
n = Val(Me!Text2)
count0 = 0
For k = m To n
count0 = 【】
Next k
Me!Text3 = count0
End Sub
程序【 】处应填写的语句是:count0 + llf(k Mod 9 = 0, 1, 0)