相关试卷
- 浙江省衢州市2024-2025学年高一下学期6月教学质量检测(期末)技术试题-高中信息技术
- 浙江省宁波市2024-2025学年高二下学期期末考试技术试题-高中信息技术
- 浙江省舟山市2024-2025学年高二下学期6月期末技术试题-高中信息技术
- 浙江省丽水市2024-2025学年高二下学期期末教学质量监控技术试题-高中信息技术
- 浙江省浙南名校联盟2024-2025学年高二下学期期末联考技术试题-高中信息技术
- 浙江省宁波市九校2024-2025学年高二下学期期末考试技术试题-高中信息技术
- 2025届浙江省Z20联盟(名校新高考研究联盟)高三下学期第三次联考技术试题-高中信息技术
- 2025届浙江省强基联盟高三下学期三模技术试题-高中信息技术
- 浙江省诸暨市2024-2025学年高三下学期5月适应性考试信息技术试题
- 2025届浙江省温州市普通高中高三下学期第三次适应性考试(三模)技术试题-高中信息技术
-
1、小李基于冒泡排序算法编写了一个VB程序,功能如下:在文本框Text1中显示排序前的数据,单击“排序”按钮Command1,在文本框Text2中显示剔除重复数据后的升序排序结果。程序运行界面如下图所示。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const n = 10
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer,bottom As Integer
'获取排序前数据依次存储在数组a中,并在文本框Text1中显示。代码略
bottom = n
i = 1
Do While i <= bottom - 1
For j = bottom To i + 1 Step -1
If
Then '①
t = a(j): a(j) = a(j - 1): a(j - 1) = t
ElseIf a(j) = a(j - 1) Then '相邻两个数据相等,进行剔除处理
'②
bottom = bottom - 1
End If
Next j
i = i + 1
Loop
Text2.Text = “ ”
For i = 1 To bottom
Text2.Text = Text2.Text + Str(a(i))
Next i
End Sub
程序中加框①处应改正为;
加框②处应改正为。
-
2、下面是一个采用拉锯式排序法对数组元素按升序进行排序的程序,所谓“拉锯式排序法”是这一遍把最小的元素从下往上移动到最上面的位置,下一遍则是从上往下把最大的元素移动到最下面的位置。 程序运行效果如下图所示。
Private Sub Command1_Click()
Dim a(10) As Integer, i As Integer
Randomize ′产生不同的随机数
For i = 1 To 10
a(i) = Int(Rnd * 100) + 1
Text1.Text = Text1.Text & Str(a(i))
Next i
Call Shaker_sort(a()) '调用Shaker_sort
For i = 1 To 10
Text2.Text = Text2.Text & Str(a(i))
Next i
End Sub
Private Sub Shaker_sort(k() As Integer)
Dim i As Integer,c As Integer,d As Integer
Dim t As Integer
c = 1
d = 10
Do While c<=d
For i= '从下往上把最小的元素移到最上面的位置
If k(i-1)>k(i) Then
t = k(i - 1):k(i- 1) = k(i):k(i) = t
End If
Next i
For i = c+1 To d-c '从上到下把最大的元素移到最下面的位置
If Then
t = k(i+1):k(i+1) = k(i):k(i) = t
End If
Next i
c = c + 1
Loop
End Sub
-
3、有如下VB程序段:
Private Sub Command1_Click()
Dim a(1 To 100) As String, x As String, st As String
Dim i As Integer, j As Integer, n As Integer
x = Text1.Text
n = Len(Text1.Text)
For i = 1 To n
a(i) = Mid(x, i, 1)
Next i
For i = 1 To n - 1
For j = n To i + 1 Step -1
If a(j) > a(j - 1) Then
st = a(j): a(j) = a(j - 1): a(j - 1) = st
End If
Next j
Next i
st = “ ”
For i = 1 To n
st = st + a(i)
Next i
Label1.Caption = st
End Sub
程序运行时,在文本框Text1中输入“Text”(不包含双引号),单击按钮Command1,则在标签Label1上显示的内容为( )
A、Tetx B、Txte C、xtTe D、xteT -
4、如下VB程序段:
st = “ ”
For i = 1 To 4
For j = 1 To 10 - i
If d(j) < d(j + 1) Then
temp = d(j): d(j) = d(j + 1): d(j + 1) = temp
End If
Next j
st = Str(d(j)) + st
Next i
Text1.Text = st
数组元素d(1)~d(10)中的数据依次为“21,8,12,16,26,71,65,89,42,36”,程序执行后,在文本框Text1中显示的内容是( )
A、8,12,16,21 B、42,65,71,89 C、21,16,12,8 D、89,71,65,42 -
5、有如下程序段:
For i = 1 To 4
For j = i + 1 To 5
If a(j) > a(i) Then t = a(j): a(j) = a(i): a(i) = t
Next j
Next i
数组元素a(1)~a(5)的值依次为“15,4,12,7,9”,整个排序过程中,数组中数据比较次数和交换次数分别是( )
A、比较11次,交换3次 B、比较11次,交换4次 C、比较10次,交换3次 D、比较10次,交换4次 -
6、对数组元素b(1)~b(8)进行降序排序,其排序算法的VB部分程序如下:
For x = 1 To 7
w = x
For y = x + 1 To 8
Next y
If w < > x Then
Temp = b(x): b(i) = b(w): b(w) = temp
End If
Next x
方框中应填入的语句为( )
A、If b(w) > b(y) Then w = y B、If b(w) < b(y) Then w = y C、If b(w) > b(y) Then w = x D、If b(w) < b(y) Then w = x -
7、采用冒泡排序对数组d中元素进行排序,第一趟排序后的结果为“10,25,15,30,50,38,60,55”,则d数组中元素的初始顺序不可能是( )A、25,15,30,50,38,60,55,10 B、25,15,30,50,38,60,10,55 C、25,15,10,50,38,60,30,55 D、25,15,30,50,10,38,60,55
-
8、采用冒泡排序算法对数组a中的6个数据“8,20,5,17,30,9”进行排序,部分程序代码如下:
For i=1 To 2
For j=6 To i+1 Step -1
If a(j)>a(j-1) Then
t=a(j): a(j)=a(j-1): a(j-1)=t
End If
Next j
Next i
运行该程序,数据交换的次数为( )
A、1 B、2 C、3 D、4 -
9、有趣的乘法:输入一个个位数不是5的奇数p,寻找一个整数s,使得p×s = 1111...1(每位数字均为1),要求输出整数s及它们乘积中1的个数(即乘积有几个1构成)。例如,当p=13时,13*8547=111111,因此整数s为8547,乘积由6个1构成;当p=23时,整数s为48309178743961352657,乘积由22个1构成。
算法思想:
首先生成一个比p大的全1数a,如果a能整除p,则算法结束,否则继续扩大a的位数,如此继续,直至a整除p。
程序运行界面如下图所示,在文本框Text1中输入整数p,单击“计算”按钮,在文本框Text2中输出整数s,在文本框Text3中输出乘积中1的个数。
小明依据上述描述设计如下VB程序。请回答下列问题:
(1)、当p=3时,整数s为。(2)、请在划线处填入合适的语句。Private Sub Command1_Click()
Dim p As Long, a As Long, b As Long, c As Long, n As Long
Dim s As String '存放整数s,因为该数较大,因此采用字符串存储
Do While True '判断输入的整数p是否为个位不是5的奇数
p = Val(Text1.Text)
If p Mod 2 < > 0 And p Mod 5 < > 0 Then Exit Do
Loop
a = 0
n = 0
Do While a < p
n = n + 1
Loop
c = a Mod p
s = Str(a \ p)
Do While c < > 0
a = c * 10 + 1
s = s & b
n = n + 1
Loop
Text2.Text = s
Text3.Text = Str(n)
End Sub
-
10、哥德巴赫猜想:任意一个大于等于4的偶数,都可以用两个素数之和表示。如:4=2+2,6=3+3,8=3+5,10=5+5,12=5+7,98=17+79。
编写一个验证哥德巴赫猜想的VB程序:程序运行时,在文本框Text1中输入一个大于等于4的偶数,单击“验证”按钮Command1后,如果哥德巴赫猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式,否则显示“No”。程序运行结果如图所示。
实现上述功能的VB代码如下,但加框处代码有错,请改正。
′函数pp(x)的功能是判断整数x是否为素数,若是素数则返回True,否则返回False
Function pp(x As Integer) As Boolean
Dim j As Integer
pp = True
j = 2
Do While j <= Int(Sqr(x)) And pp=True
If x Mod j = 0 Then pp = False Else
'①
Loop
End Function
Private Sub Command1_Click()
Dim n As Integer, p As Integer, q As Integer, pd As Boolean
n = Val(Text1.Text)
p = 1
pd = False
Do While Not pd And p < n
p = p + 1
'②
If pp(p) And pp(q) Then
Text2.Text = “Yes”
pd = True
List1.AddItem Str(n) + “=” + Str(p) + “+” + Str(q)
End If
Loop
If pd = False Then Text2.Text = “No”
End Sub
程序中加框①处应改正为;
加框②处应改正为。
-
11、编写“加法练习题生成器”程序,实现如下功能:在文本框Text1中输入题数n,单击“生成”按钮Command1,在列表框List1中显示n个两数之和小于100的加法练习题。程序运行界面如图1所示。(1)、在设计程序界面时,应使用图2所示“控件工具箱”中的(填写相应编号)添加“生成”按钮。(2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click( )
Dim n As Integer,i As Integer,a As Integer,b As Integer
Randomize
n=Val(Text1.Text)
i=
Do While i<=n
a=Int(Rnd*100)
b=Int(Rnd*100)
IfThen
List1.AddItem“(“+Str(i)+”)“+Str(a)+”+“+Str(b)+”=”
i=i+1
End If
Loop
End Sub
(3)、运行该程序,在文本框中输入5,单击“生成”按钮后,对语句“a=Int(Rnd*100)”执行次数的描述,最合理的是(单选,填字母:A .执行次数等于5 / B .执行次数大于等于5 / C .执行次数小于等于5)。 -
12、小明编写了一个VB程序,功能如下:输入一个不超过10000的整数,若该数的各位数字之积是其各位数字之和的倍数,则输出“Yes”,否则输出“No”。
程序运行时,在文本框Text1中输入一个整数,单击“判断”按钮Command1后,在标签Label3中显示判断结果。程序运行界面如下图所示。
(1)、在设计程序界面时,要清空标签Label3中的显示内容,应修改该标签的属性。(2)、实现上述功能的VB程序如下,请在划线处填入合适代码。Private Sub Command1_Click()
Dim x As Integer, h As Integer, k As Integer
x = Val(Text1.Text)
h = 0
k=1
Do While x > 0
h = h + x Mod 10
k=
x = x \ 10
Loop
IfThen
Label3.Caption = “Yes”
Else
Label3.Caption = “No”
End If
End Sub
(3)、运行该程序,在文本框Text1中输入1234,单击“判断”按钮,显示的判断结果为。 -
13、编写VB程序,实现如下功能:在文本框中输入一个整数,单击“计算”按钮Command1,则输出表达式
的值。程序运行界面如下图所示。
(1)、该VB窗体上共包含类对象。(2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。Private Sub Command1_Click()
Dim n As Integer, p As Long, s As Double, i As Integer, t As Integer
s = 0
t = 1
p = 0
n = Val(Text1.Text)
For i = 1 To n
s = s + t * 1 / p
Next i
Label1.Caption = Str(s)
End Sub
(3)、运行该程序,在文本框Text1中输入5,单击“计算”按钮,则表达式的值是。 -
14、小明编写了一个计算BMI指数的VB程序。BMI指数(即身体质量指数,称简体质指数又称体重,英文为Body Mass Index,简称BMI),是用体重(公斤)除以身高(米)平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准,BMI指数的判断标准如下表所示:
BMI指数
<18.522.9
18.5~23~
25~24.9
29.9
≥30
≥40.0
结果
偏瘦
正常
偏胖
肥胖
重度肥胖
极重度肥胖
程序运行时,在文本框Text1中输入体重,在文本框Text2中输入身高,单击”测试”按钮Command1,在标签Label4中显示对应的结果。程序运行界面如下图所示。
实现上述功能的VB程序如下,请回答下列问题:
Private Sub Command1_Click()
Dim h As Single, w As Single, ans As Single, s As String
w = Val(Text1.Text)
h = Val(Text2.Text)
①
If ans< 18.5 Then
s = “偏瘦”
ElseIf ans< 22.9 Then
s = “正常”
ElseIf ans<= 24.9 Then
s = “偏胖”
ElseIf ans<= 29.9 Then
s = “肥胖”
ElseIf ans< 40 Then
s = “重度肥胖”
②
s = “极重度肥胖”
End If
Label4.Caption = s
End Sub
(1)、程序代码“Private Sub Command1_Click()”中Command1_Click()是指(选填:对象 / 属性 / 过程 / 事件 / 方法)。(2)、请在程序划线处填入合适代码。① ②
(3)、程序运行时,输入体重70,身高1.65,则测试结果为。 -
15、有如下VB程序段:
n = 0
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= “0” And c <= “9” Then m = 1 Else m = 2
a(m) = a(m) + 1
If a(m) = 1 Then n = n + 1
Next i
数组a各元素的初始值都为0,文本框Text1的内容为“Happy2018”。执行程序后,变量n的值为( )
A、1 B、2 C、4 D、9 -
16、计算斐波那契数列的前n项。该数列从第 3 项开始,每一项都等于前两项之和,其中第1项为1,第2项也为1。计算前第 n项的 VB程序段如下所示:
Private Sub Command1_Click()
Dim n As Integer,i As Integer,a As Long,b As Long,c As Long
a = 1
b = 1
n = Val(Text1.Text)
List1.AddItem Str(a)
List1.AddItem Str(b)
For i = 3 To n
List1.AddItem Str(c)
Next i
End Sub
上述程序中方框处可选语句为( )
①a=b ②c=a+b ③b=c
A、①、②、③ B、①、③、② C、③、①、② D、②、①、③ -
17、有如下VB程序段:
Dim a(1 To 6) As Long, i As Integer, x As Long, y As Long
x = 654321
For i = 1 To 6
a(i) = x Mod 10
x = x \ 10
y = y + a(i) * 10 ^ (6 - i + 1)
Next i
执行该程序段后,变量y的值为( )
A、123456 B、1234560 C、6543210 D、654321 -
18、有如下VB程序段:
Dim i As Integer, j As Integer, st As String
n = 5
For i = 1 To 5
st = “ ”
If i < 4 Then
For j = 1 To i
st = st + “*”
Next j
Else
For j = i To n
st = st + “*”
Next j
End If
List1.AddItem st
Next i
该程序段运行后,在列表框List1中显示的内容是( )
A、B、
C、
D、
-
19、有如下 VB 程序段:
a(1) = 10
For i = 2 To 10
a(i) = 0
If i Mod 2 = 1 Then
a(i) = a(i \ 2) + a(i - 1)
Else
a(i) = a(i) + 1
End If
Next i
该程序段执行后,数组元素a(7)的值是( )
A、2 B、10 C、11 D、12 -
20、有如下VB程序段:
Dim d As Integer, p As Integer
p = 2
d = 10
Do While d > 1
p = 2 * p
d = d - 1
Loop
Label1.Caption = Str(p)
该程序段运行后,在标签Label1中显示的内容是( )
A、2 B、512 C、1024 D、2048