浙江省台州市书生中学人教版高二寒假信息技术练习:专题四 VB算法

适用年级:高二
试卷号:549468

试卷类型:假期作业
试卷考试时间:2019/5/22

1.选择题(共5题)

1.
有如下VB程序段:
Dim a(1 To 5)  As  Integer
Pos=-1
i=1
Do While i<=10
If  i Mod 2=0  Then  a(i)=i*2  Else  a(i)=i
i=i+1
Loop
i=10
Do While  i>=1
If  a(i)=12  Then  Pos=i
i=i-1
Loop
该程序段运行后,变量Pos值是(  )
A.1B.2C.6D.10
2.
某VB程序的部分代码如下:
a(1)=2
a(2)=3
For i=3 To 7
a(i)=a(i-1)*a(i-2)
If a(i)\10>0 Then
a(i+1)=a(i) Mod 10
a(i)=a(i)\10
i=i+1
End If
Next i
则执行该程序段后,数组元素a(8)的值为( )
A.2B.4C.6D.8
3.
有如下VB程序段:
For i=2 To 8
Max=0
For j=1 To i-1
If a(i)>a(j) And f(j)>Max Then Max=f(j)
Next j
f(i)=Max+f(i)
Next i
数组f元素的初始值都为1,数组a的元素值为5,3,47,4,31,39,7,8,程序运行后f(6)的值为(   )
A.1B.2C.3D.4
4.
有如下程序段
a(1)=False
For i=2 To 20
a(i)=True
Next i
For i=2 To 20
If a(i)=True Then

For j=2 To 20\i

a(i*j)=False

Next j

End If
Next i
t = 0
For i=1 To 20
If a(i)=True Then

t=t+1

End If
Next i
经过该程序段运行后,变量t的值为(   )
A.5B.6C.7D.8
5.
某算法的流程图如下所示:

若输入k的值为4,则该算法的输出结果为(  )
A.1B.2C.3D.5

2.填空题(共6题)

6.
某木材加工厂需要把购入的木料切割成长度为3米和7米两种规格的线材。现要求编写VB程序(运行界面如图所示),实现如下功能:在文本框Text1中输入木材长度,单击“计算”按钮Command1,计算出一种废料长度最小的切割方案,在文本框Text2和文本框Text3中分别输出该切割方案所得3米和7米两种规格线材的数量。请将代码补充完整。

Private Sub Command1_Click ()
Dim length As Single '木料长度
Dim min As Single    '最小废料长度
Dim x As Integer   '3米规格线材数量
Dim y As Integer   '7米规格线材数量
Dim f As Single '废料长度
Dim a As Integer   '废料最少的切割方案所得3米规格线材数量
Dim b As Integer   '废料最少的切割方案所得7米规格绒材数量
length=Val(Text1.Text)
min=length
For x=0 To _________ ‘(1)
y=(length-3*x)\7
____________    ‘(2)
If f<min Then
min=f
a=x
_____________  ‘(3)
End If
Next x
Text2.Text=Str(a)
Text3.Text=Str(b)
End Sub
7.
设有n盏灯,放在一排。从1 到 n依次顺序编号。有 n个人也从1到n依次编号。第1个人(1号)将灯全部关闭,第2个人(2号)将凡是2的倍数的灯打开,第3个人(3号)将凡是3的倍数的灯做相反处理(该灯如果为打开的,则将它关闭,如关闭的将它打开),以后的人和3号一样,将凡是自己号数倍数的灯做相反处理。问当n个人操作后,哪几盏灯是亮的。(亮灯为0,关闭为1)
为了实现这一目标,完善下列程序,使之能完成该功能。
Private Sub Command1_Click()
Const n=20
Dim i As Integer,j As Integer
Dim a(1 To n) As integer
For j=1 To n
a(j)=0
Next j
For i=1 To n
For j=1 To n
If j Mod i=0 Then
______________ ‘(1)
End If
Next j
Next i
For j=1 To n
If ________ Then List1.AddItem  Str(j) ‘(2)
Next j
End Sub
8.
编写“二进制数转换为十六进制数”程序,实现如下功能:在文本框 Text1 输入一个二进制数,单击“转换”按钮 Command1,将二进制数转换为十六进制数并在文本框 Text2 中显示。程序运行界面如下图所示。

(1)设计如图所示的程序界面,至少要使用_____个类(填数字)。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s1 As String, s2 As String
Dim i As Integer, x As Integer
Const code="0123456789ABCDEF"
s1=Text1.Text
s2=""
Do While Len(s1) Mod 4<>0 
s1="0"+s1
Loop
x=0
i=1
Do While i<=Len(s1)
x=x*2+Val(Mid(s1,i,1))  
i=i+1  
If ____________    Then ‘(1)
s2=s2+Mid(code,x+1,1)
______________  ‘(2)
End If
Loop
Text2.Text=s2
End Sub
(3)若文本框 Text1 中输入的内容为“101101” ,单击“转换”按钮后,文本框 Text2 中显示的内容是_______。
9.
李雷收到了朋友发给他的一封奇怪的邮件,里面有段内容是由一些数字和符号组成。信上面说,这段内容是加密后的内容,并给出了具体加密方法(假定原文的英文字母都是大写的),具体方法如下:
(1)“A”变为一个1到100内的随机整数×27+1,“B”变为一个1到100内的随机整数×27+2,……,“Z”变为一个1到100内的随机整数×27+26;
(2)每个字母变为数字后会加上一个“-”用来分隔数字;
(3)其他空格和标点字符都按原文表示。
 
李雷利用VB编写了一个解密程序,功能如下:将邮件中密文的内容复制到文本框Text1中,点击“解密”按钮Command1后,程序将解密后的内容显示在文本框Text2中。
(1)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(2)根据描述,若密文为“1905-1442-” ,则表示的是________________。
Private Sub Command1_Click()
Dim s As String, yw As String, t As String
Dim value As Integer    
s=Text1.Text
value=0
yw=""
For i=1 To Len(s)
___________________    ‘① 
If t>="0" And t<="9" Then 
value=value*10+Val(t)

ElseIf t="-" Then 

  yw=yw+Chr(Asc("A")+value Mod 27-1)

   ____________________   ‘② 
Else
___________________ ‘③ 
End If
Next i
Text2.Text=yw
End Sub
10.
单循环赛制是一种较为公平合理的比赛制度,比赛过程中所有参赛队伍均能相遇一次。其秩序编排可采用“逆时针轮转方法”:数字 1~ n 依次作为队伍编号,把编号按 U 型走向分成均等两边(若 n 为奇数,则在末尾增加编号 0,使总数为偶数),即可得到第一轮的比赛秩序,例如,5 个队伍的比赛编排情况如图 a 所示;第二轮,固定编号 1,其余编号均按逆时针方向移动一个位置,即为该轮比赛秩序;以后各轮比赛秩序以此类推,与编号 0 对阵的表示本轮轮空。
小赵这此编写了 VB 程序,功能如下:在文本框 Text1 中输入参赛队伍数 n,单击“编排”按钮 Command1,在列表框 List1 中输出每轮比赛秩序。程序运行效果如图 b 所示。

实现上述功能的 V B代码如下,请将程序代码补充完整。
Private Sub Command1_Click()
Dim team(1 To 20) As String    
Dim n As Integer, c As Integer
Dim result As String
Dim i As Integer, j As Integer, temp As String
n=Val(Text1.Text)
For i=1 To n
team(i)=Str(i)
Next i
c=n+n Mod 2    
If c<>n Then team(c)=Str(0)
For i=1 To c-1
result=""
For j=1 To c\2
result=result&team(j)&"-"&______________&";" ‘(1)
Next j
List1.AddItem "第"&Str(i)&"轮"&result   
temp=team(c)
For j=c To 2 Step -1
_________________    ‘(2)
Next j 

_________________     ‘(3)

Next i
End Sub
11.
设某汉字由7×7的0、1点阵图案组成。依照以下规则生成压缩码:连续一组数值,从汉字点阵图案的第一行第一个符号开始计算,按书写顺序由左到右,从上到下。压缩码第一个数表示起始的数字(例如0),第二个数表示连续有几个0,第三个数表示接下来连续有几个1,第四个数表示接下来连续有几个0,第五个数表示接下来连续有几个1,以此类推……

例如,以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是031616431616137(第一个数是c(0或者1),表示一开始时的数字为0或1)。
(1)请将程序代码补充完整。
Private Sub Command1_Click()
Dim code As String, c As Integer, res As String,k As Integer
code=Text1.Text
k=0
res=""
c=Val(Mid(code,1,1))
For i=2 To Len(code)
For j=1 To _____________   '①
res=res+Str(c)
k=k+1
If k=7 Then
List1.AddItem res
k=0
res=""
End If
Next j
_______________   '②
Next i
End Sub
(2)现给出如下点阵图:

则压缩码为_________________________________。
试卷分析
  • 【1】题量占比

    选择题:(5道)

    填空题:(6道)

  • 【2】:难度分析

    1星难题:0

    2星难题:0

    3星难题:0

    4星难题:0

    5星难题:0

    6星难题:0

    7星难题:0

    8星难题:0

    9星难题:11