浙江省诸暨市2020届高三上学期信息技术诊断性考试试卷
年级: 学科:信息技术(信息科技) 类型:月考试卷 来源:91题库
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分) (共12小题)
下列说法正确的是( )
下列说法正确的是( )
执行这部分流程,输出s的值是( )
Private Sub Command1_Click()
Dim d(1 To 8) As Integer
Dim i As Integer, s As Integer
d(1)=1
For i=2 To 10
d(i)=d(i-1)*i
Next i
For i=1 To 5
s=s+d(i)
Next i
Text1.Text = Str(s)
End Sub
程序运行时,单击命令按钮Command1后,将会出现的提示信息是( )
Dim a(1 To 10) As Integer
a(1)=2: a(2)=18: a(3)=10: a(4)=34: a(5)=16
a(6)=7: a(7)=37: a(8)=6: a(9)=15: a(10)=15
c=0: x=0: t= 1
For i=1 To 10
a(i)=a(i)*t
c=c+a(i)
If c>0 Then x=x+1
t=-t
Next i
Text1.Text=Str(x)
则程序运行后Text1中显示( )
For i=1 To 8
d(i)= In(Rnd*10)
Next i
For i= 2 To 8
If i Mod 2=0 And d(i)> d(i-1)Then
d(i)=d(i-1)+1
ElseIf i Mod 2= 1 Then
If d(i)>d(i-2) Then
t=d(i): d(i)=d(i-2): d(i-2)=t
End If
Next i( )
Dim a(1 To 10) As Integer
Dim flag As Boolean
Dim i As Integer, j As Integer, tmp As Integer
随机生成10个不重复的数据存入数组A中,代码略
For i=2To 10
tmp= a(i)
j=i
flag=False
Do While ① And Not flag
a(j)=a(j-1)
j=j-1
②
Loop
a(j)=tmp
Next i
要实现上述功能,方框①②中的语句分别是( )
二、非选择题(本大题共5小题,4+8+7+7,共26分) (共4小题)
图 a
请回答下列问题:
图 b
实现该功能的VB程序如下:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer
Dim sum As Intcger
Const t= 50
‘将50个学生的信息技术和通用技术成绩依次存储在数组a(1)~a(100),代码略
Key = Val(Text2.Text)
i= 1
j= 100
m=(i+j)\2
Do While ① And m>1
If m Mod 2=1 Then m= m- 1
sum = a(m)+ a(m- 1)
If ② Then
j=m-2
Else
End If
m=(i+j)\2
Loop
Label2.Caption "大于等于"& Key & "分的人数为: "+ Str(t-j\2)
End Sub
① ②
假如我们用数组表示上述大根堆:
a(1) |
a(2) |
a(3) |
a(4) |
a(5) |
a(6) |
a(7) |
a(8) |
a(9) |
9 |
6 |
8 |
5 |
3 |
4 |
7 |
2 |
1 |
现有一算法把一个无序数组改造成大根堆。例如:我们在上图的大根堆中再增加一个值为8的新元素,如下图所示。
数组存储为:
a(2) |
a(3) |
a(4) |
a(5) |
a(6) |
a(7) |
a(8) |
a(9) |
a(10) |
6 |
8 |
5 |
3 |
4 |
7 |
2 |
1 |
8 |
具体操作方法如下:
第一步:因为a(10)大于它的双亲结点a(5),故需交换a(10)和a(5)的值;
数组存储为:
第二步:因为a(5)大于它的双亲结点a(2),故需交换a(5)和a(2)(t)值;
数组存储为:
a(1) |
a(2) |
a(3) |
a(4) |
a(5) |
a(6) |
a(7) |
a(8) |
a(9) |
a(10) |
9 |
8 |
8 |
5 |
6 |
4 |
7 |
2 |
1 |
3 |
第3步:因为a(2)不大于它的双亲结点a(1),故无需做交换操作。此时新元素已经放到了正确的位置,新的大根堆构造完成,上移行动结束。
实现上述功能的程序代码如下请在划线处填入合适的代码。
Dim a(1 To 100) As Integer
‘该函数功能为实现数据的对齐输出
Function pout(x As Integer, y As Integer) As String
代码略
End Function
Private Sub Command1_Click()
Dim tmp As Integer, Dim m As Integer
Dim n As Integer, Dim s As String
n = Val(Text1.Text)
For i=1 To n
a(i) = Int(Rnd()*99)+ 1
Next i
For i= 2 To n
p=i
f=p\2
Do While ①
tmp = a(p): a(p)= a(f): a(f) = tmp
p=f
f=p\2
If f= 0 Then Exit Do
Loop
Next i
k= n
Do While k >=1
m=m+1
②
Loop
k= 1
For i=0 To m- 1
s=""
For j= 1 To ③
If k> n Then Exit For
s=s+ pout(a(k), (2^(m-1)-2^i)/2^i)
k=k+ 1
Next j
List1.AddItem s
Next i
① ② ③