- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- 常量、变量、数组
- 常用的标准函数
- 基本运算及表达式
- 赋值语句
- 选择语句
- + 循环语句
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
某算法的部分流程图如图所示。
执行这部分流程,输入11,变量i和f的值分别是( )

执行这部分流程,输入11,变量i和f的值分别是( )
A.10,True | B.10,False | C.11,True | D.11,False |
分析完善程序。
“完数”是指一个自然数恰好等于它的因子(不包含本身)之和。如6的因子为1,2,3,而6=1+2+3,因此6就是完数。再如28的因子为1,2,4,7,14,而28=1+2+4+7+14,因而28也是完数。
问题:输入一个正整数n,判断该正整数是否为完数。
要判断一个正整数n是否为完数,最简单的方法是:求出1到n-1之间的所有因子和为Sum,如果Sum的值和n的值相同,则n就是完数。
以下代码是判断n是否为完数的程序片段,请你补全代码:
Dim n As Long
Dim Sum As Long ' Sum用来记录n的因子和
n = InputBox(“n=”)
For i = 1 To n-1 ' 求n的因子和Sum
If n Mod i = 0 Then Sum =_________
Next i
If _____________ Then
Print n & “是完数”
Else
Print n & “不是完数”
End If
“完数”是指一个自然数恰好等于它的因子(不包含本身)之和。如6的因子为1,2,3,而6=1+2+3,因此6就是完数。再如28的因子为1,2,4,7,14,而28=1+2+4+7+14,因而28也是完数。
问题:输入一个正整数n,判断该正整数是否为完数。
要判断一个正整数n是否为完数,最简单的方法是:求出1到n-1之间的所有因子和为Sum,如果Sum的值和n的值相同,则n就是完数。
以下代码是判断n是否为完数的程序片段,请你补全代码:
Dim n As Long
Dim Sum As Long ' Sum用来记录n的因子和
n = InputBox(“n=”)
For i = 1 To n-1 ' 求n的因子和Sum
If n Mod i = 0 Then Sum =_________
Next i
If _____________ Then
Print n & “是完数”
Else
Print n & “不是完数”
End If
进入2016年7月份以来,浙江省气温连续高企,为了观察气温的变化情况,小明用VB编写了一个连续高温天数的统计软件。小明采集了杭州市7-8月的每日最高气温,并存放在ACCESS数据库中。程序运行时,读取日期和最高气温并显示在列表框List1中,在文本框Text1中输入温度值,单击“统计”按钮Command1,程序自动统计运行在该温度值以上的最长连续天数,并显示在Text3中,同时在Text2中显示日期区间,运行界面如图所示。
Dim rq(1 to 100) as String:Dim qw(1 to 100) as Integer:Dim n as Integer
Private sub Form_Load()
'读取数据库内容,其中日期数据放在数组rq中,最高气温数据存放在qw中,第i个日期保存在rq(i)中,对应的气温保存在qw(i)中,并显示在列表框List1中,代码略
End sub
Private sub Command1_Click()
Dim max as Integer '记录最大连续天数
Dim nend as Integer '记录最大连续天数时的结束日期的下标
Dim ncount as Integer '统计连续天数
Dim tjqw as Integer '存放输入的温度
tjqw = Val(Text1.Text)
ncount = 0
max = 0
For i = 1 To n
If _____________ Then
ncount = ncount + 1
Else
ncount = 0
End If
If max < ncount Then
max = ncount
__________________
End If
Next i
If max <> 0 Then Text2.Text = ____________________& ”-”& rq(nend)
Text3.text = Str(max)
End sub

Dim rq(1 to 100) as String:Dim qw(1 to 100) as Integer:Dim n as Integer
Private sub Form_Load()
'读取数据库内容,其中日期数据放在数组rq中,最高气温数据存放在qw中,第i个日期保存在rq(i)中,对应的气温保存在qw(i)中,并显示在列表框List1中,代码略
End sub
Private sub Command1_Click()
Dim max as Integer '记录最大连续天数
Dim nend as Integer '记录最大连续天数时的结束日期的下标
Dim ncount as Integer '统计连续天数
Dim tjqw as Integer '存放输入的温度
tjqw = Val(Text1.Text)
ncount = 0
max = 0
For i = 1 To n
If _____________ Then
ncount = ncount + 1
Else
ncount = 0
End If
If max < ncount Then
max = ncount
__________________
End If
Next i
If max <> 0 Then Text2.Text = ____________________& ”-”& rq(nend)
Text3.text = Str(max)
End sub
编写VB程序,实现如下功能:在文本框Text1中输入一串字符,单击“统计”按钮Command1,统计每个英文字母(不区分大小写)出现的次数,找出出现次数最多的字母,在标签Label1中显示结果。运行效果如图所示。

实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, max As Integer
Dim a(1 To 26) As Integer '数组a存放26个大小写字母出现的次数Dim st As String, ch As String
st = Text1.Text
For i = 1 To Len(st)
①_____
If ch >= "A" And ch <= "Z" Then n = Asc(ch) - Asc("A") + 1 a(n) = a(n) + 1
ElseIf ch >= "a" And ch <= "z" Then n = ②_____
a(n) = a(n) + 1
End If
Next i
max = a(1)
For i = 1 To 26
If ③_____Then max = a(i)
End If Next i st = ""
For i = 1 To 26
If max = a(i) Then
st = st + " " + Chr(Asc("A") + i - 1) End If
Next i
Label1.Caption = "出现次数最多的字母是:" & st & " " & "出现次数为:" & Str(max)
End Sub
(2)在文本框 Text1 中输入字符串“ABCEEEEffee333333”,运行程序时,标签 Label1 中输出结果为:出现次数最多的字母是:_____出现次数为:_____。

实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, max As Integer
Dim a(1 To 26) As Integer '数组a存放26个大小写字母出现的次数Dim st As String, ch As String
st = Text1.Text
For i = 1 To Len(st)
①_____
If ch >= "A" And ch <= "Z" Then n = Asc(ch) - Asc("A") + 1 a(n) = a(n) + 1
ElseIf ch >= "a" And ch <= "z" Then n = ②_____
a(n) = a(n) + 1
End If
Next i
max = a(1)
For i = 1 To 26
If ③_____Then max = a(i)
End If Next i st = ""
For i = 1 To 26
If max = a(i) Then
st = st + " " + Chr(Asc("A") + i - 1) End If
Next i
Label1.Caption = "出现次数最多的字母是:" & st & " " & "出现次数为:" & Str(max)
End Sub
(2)在文本框 Text1 中输入字符串“ABCEEEEffee333333”,运行程序时,标签 Label1 中输出结果为:出现次数最多的字母是:_____出现次数为:_____。
某客运公司为了合理地安排汽车运输,每年每月都会对汽车站的客运量进行统计,并保存到数据库。新的一年即将来临,客运公司准备制订明年的汽车排班计划。设计程序,从数据库中读取上一年的月客运量,并找出最大、最小月份,代码如下:
Dim a(1 To 12) As Integer
Private Sub Form_Load()
’本过程从数据库中读取上一年月客流量,并存储在数组a中,代码略
End Sub
Private Sub Command1_Click()
Dim max As Integer, min As Integer
Dim yx As Integer, yn As Integer
max = a(1)
min = a(1)
yx = 1
yn = 12 ……………………①
For i = 2 To 12
If a(i) >= max Then
max = a(i)
yx = i
End If
If a(i) <a(1) Then ………………②
min = a(i)
yn = i
End If
Next i
Label1.Caption =“客流量最大在第” + Str(yx) +“月,共” + Str(max) +“人,客流量最小在第” + Str(yn) +“月,共:” + Str(min) +“人”
End Sub
该程序①、②处有错误,请在画线处填写正确代码。
①_____________________②_____________________
Dim a(1 To 12) As Integer
Private Sub Form_Load()
’本过程从数据库中读取上一年月客流量,并存储在数组a中,代码略
End Sub
Private Sub Command1_Click()
Dim max As Integer, min As Integer
Dim yx As Integer, yn As Integer
max = a(1)
min = a(1)
yx = 1
yn = 12 ……………………①
For i = 2 To 12
If a(i) >= max Then
max = a(i)
yx = i
End If
If a(i) <a(1) Then ………………②
min = a(i)
yn = i
End If
Next i
Label1.Caption =“客流量最大在第” + Str(yx) +“月,共” + Str(max) +“人,客流量最小在第” + Str(yn) +“月,共:” + Str(min) +“人”
End Sub
该程序①、②处有错误,请在画线处填写正确代码。
①_____________________②_____________________
某排序算法的VB程序段如下:
k=1
For i=1 To 2
For j=1 To 6-2*i
If k* a(j)<k*a(j+2)Then
t=a(j): a(j)=a(j+2): a(j+2)=t
Next i
数组元素a(1)到a(6)的初始值依次为“15,11,58,38,26,9”,该程序段执行后,数组a元素的值分别为( )
k=1
For i=1 To 2
For j=1 To 6-2*i
If k* a(j)<k*a(j+2)Then
t=a(j): a(j)=a(j+2): a(j+2)=t
End if
k=-k
Next jNext i
数组元素a(1)到a(6)的初始值依次为“15,11,58,38,26,9”,该程序段执行后,数组a元素的值分别为( )
A.58,9,26,11,15,38 |
B.58,38,26,11,15,9 |
C.15,38,26,11,58,9 |
D.58,38,26,15,11,9 |
数组a中存储了n个学生的学号和成绩数据,其中奇数位置存储学号信息,偶数位置存储成绩信息,数组存储结构如下表所示:
小迪同学使用选择排序思想对上述n个同学按成绩进行降序排序(成绩相同的按学号升序排列),并依据成绩插入各位同学的名次信息,处理结束的数组a存储结构如下表所示:
小迪同学使用VB编写了成绩处理程序,程序运行界面如下图所示:
实现上述功能的VB程序如下,请回答下列问题。
Const n=20
Dim a(1 To 3* n)As Integer
Private Sub Command1_ Click()
Private Sub Command2_ Click()
'①改错
k=i
For j=l To i-l
If a(2*j)<a(2*k)Or ② Then
k=j
End if
A(3*i-1)=a(2*k-1)
③
A(2*k-1)=a(2*i-1)
Next i
List2. AddItem"第1名:学号+CStr(a(2))+",分数"+str(a(3))
A(1)=1
mc=1
For j=2 To n
(1)已知窗体名称为Form1,要使程序加载时,窗体标题自动显示为“第15题程序”,则可在_____________(单选,填字母)事件过程中添加代码: Form1. Caption=“第15题程序”。
(2)程序加框处的For循环语句有错,请改正。
(3)请将程序②③④划线处代码补充完整。
1 | 2 | 3 | 4 | 5 | 6 | …… | 2n-1 | 2n |
学号 | 成绩 | 学号 | 成绩 | 学号 | 成绩 | …… | 学号 | 成绩 |
第1个学生信息 | 第2个学生信息 | 第3个学生信息 | …… | 第n个学生信息 |
小迪同学使用选择排序思想对上述n个同学按成绩进行降序排序(成绩相同的按学号升序排列),并依据成绩插入各位同学的名次信息,处理结束的数组a存储结构如下表所示:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | …… | 3n-2 | 3n-1 | 3n |
名次 | 学号 | 成绩 | 名次 | 学号 | 成绩 | 名次 | 学号 | 成绩 | …… | 名次 | 学号 | 成绩 |
第1个学生信息 | 第2个学生信息 | 第3个学生信息 | …… | 第n个学生信息 |
小迪同学使用VB编写了成绩处理程序,程序运行界面如下图所示:

实现上述功能的VB程序如下,请回答下列问题。
Const n=20
Dim a(1 To 3* n)As Integer
Private Sub Command1_ Click()
'读取数据,存储在数组a中,并显示于列表框List1中
'代码略
End SubPrivate Sub Command2_ Click()

k=i
For j=l To i-l
If a(2*j)<a(2*k)Or ② Then
k=j
End if
Next j
A(3*i=a(2*k)A(3*i-1)=a(2*k-1)
③
A(2*k-1)=a(2*i-1)
Next i
List2. AddItem"第1名:学号+CStr(a(2))+",分数"+str(a(3))
A(1)=1
mc=1
For j=2 To n
If ④ Then mc=i
List2. AddItem"第"+Str(mc)+"名:学号"+CStr(a(3*i-1))+",分数"十Str(a(3*i))a(3*i-2)=mc
Next i
End sub(1)已知窗体名称为Form1,要使程序加载时,窗体标题自动显示为“第15题程序”,则可在_____________(单选,填字母)事件过程中添加代码: Form1. Caption=“第15题程序”。
A.Form_ Click() | B.Form_ Load() | C.Form1_ Click() | D.Forml_ Load() |
(3)请将程序②③④划线处代码补充完整。
把学生成绩由高到低排序后,按姓名在前、成绩在后的顺序依次存储在数组a中。例如(“张三”“97” “李四”“92” “王五”“87”,……)。设计一个VB程序,利用对分查找思想实现在数组a中查找成绩为Key的学生姓名。程序段如下:
i=1:j=n 'n代表学生的数量
Key=Val(Text1.Text)
Do While i<=j
m=
If Val(a(m))>Key Then i=m\2+1 Else j=m\2-1
Loop
List1.Clear
j=j+1
Do While i<=n
上述程序中方框处可能的语句是( )
i=1:j=n 'n代表学生的数量
Key=Val(Text1.Text)
Do While i<=j
m=

If Val(a(m))>Key Then i=m\2+1 Else j=m\2-1
Loop
List1.Clear
j=j+1
Do While i<=n
If Val(a(2*j))=Key Then List1.AddItem a(2*j-1)+""十a(2*j)
Else exit do
j=j+1
Loop上述程序中方框处可能的语句是( )
A.(i+j)\2 | B.(i+h)/2 | C.((i+j)12)*2 | D.((i+j)\2)/2 |
某对分查找算法的VB程序段如下:
Dim a(l to 6)As Integer
i=1: j=6: n=0
key= Val(Textl. Text)
Do While i<=j
n=n+1
m=(i+j)\2
If key=a(m) Then Exit Do 'Exit do为退出do循环
If key<a(m) Then
j=m-1
Else
i=m+1
LOOP
数组元素a(1)到a(6)的值依次为“1921,1927,1949,1998,2008,2019”。在文本框Text1中输入“1998”后运行该程序,则以上程序段运行结束后,下列说法正确的是( )
Dim a(l to 6)As Integer
i=1: j=6: n=0
key= Val(Textl. Text)
Do While i<=j
n=n+1
m=(i+j)\2
If key=a(m) Then Exit Do 'Exit do为退出do循环
If key<a(m) Then
j=m-1
Else
i=m+1
LOOP
数组元素a(1)到a(6)的值依次为“1921,1927,1949,1998,2008,2019”。在文本框Text1中输入“1998”后运行该程序,则以上程序段运行结束后,下列说法正确的是( )
A.变量i的值为3 |
B.变量j的值为5 |
C.变量m的值为3 |
D.变量n的值为3 |
有如下VB 程序段:
Private Sub Commandl_Click()
Dim d(l To 6) As Integer
Dim t As Integer
d(1)=35:d(2)=18:d(3)=63:d(4)=5:d(5)=85:d(6)=47
For i=1 To 3
t=d(j):d(j)=d(j-1):d(j-1)=t
End If
Next i
End Sub .
执行该程序段后,文本框 Textl输出的内容是( )
Private Sub Commandl_Click()
Dim d(l To 6) As Integer
Dim t As Integer
d(1)=35:d(2)=18:d(3)=63:d(4)=5:d(5)=85:d(6)=47
For i=1 To 3
For j=i+1 To 6
If d(j)<d(j-1) Thent=d(j):d(j)=d(j-1):d(j-1)=t
End If
Next j
Textl.Text=Str(d(i))+Text1.TextNext i
End Sub .
执行该程序段后,文本框 Textl输出的内容是( )
A.47 63 85 | B.35 5 18 | C.85 63 47 | D.18 5 35 |