题型:综合题 题类:常考题 难易度:困难
浙江省嘉兴市、丽水市2017-2018学年选考信息技术教学测试试卷(3月)
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Dim a(0 To 20)As Integer,d(0 To 20)As Integer
Dim n As Integer
Private Sub Command1_Click()
‘产生n个[10,99]之间的随机整数,存储在a(0 To n-1)中,同时显示在List1中,代码略
End Sub
Private Sub Command2_Click()
Dim i As Integer
n=Val(Text1.Text)
For i=0 To n-2
For j=i+1 To n-1
If Then ‘(1)
temp=a(i):a(i)=a(j):a(j)=temp
End If
Next j
Next i
If n Mod 2<>0 Then d(n\2)=a(n-1) ‘个数为奇数,最小值放中间位置
For i=0 To n\2—1
d(i)=a(i*2)
=a(2*i+1) ‘(2)
Next i
‘在列表框List2中输出数组d,代码略
End Sub
原始数据:
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
3 |
4 |
方法一:
①向右旋转1步:
a(1) |
a(2) |
a(3) |
a(4) |
4 |
1 |
2 |
3 |
②向右旋转2步:
a(1) |
a(2) |
a(3) |
a(4) |
3 |
4 |
1 |
2 |
③向右旋转3步:
a(1) |
a(2) |
a(3) |
a(4) |
2 |
3 |
4 |
1 |
方法二:
①将a(1)值放至旋转3个位置后位置a(4):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
3 |
1 |
②将原a(4)值放至旋转3个位置后位置a(3):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
4 |
1 |
③将原a(3)值放至旋转3个位置后位置a(2):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
3 |
4 |
1 |
④将原a(2)值放至旋转3个位置后位置a(1):
a(1) |
a(2) |
a(3) |
a(4) |
2 |
3 |
4 |
1 |
有n个数存储在数组a中,给定一个整数p(1≤p≤n),将数组a的前p个数与后n-p个数分别向右旋转k次。例如数组a的各个数值分别是1,2,3,4,5,6,7,当p=4,k=1时,旋转后的结果为4,1,2,3,7,5,6。小明为此编写了VB程序,功能如下:在文本框Text2、Text3中依次输入p和k的值,单击“旋转数组”按钮Command1后,数组旋转后结果显示在Text4中。程序运行界面如图1所示,请回答下列问题:
图1
试题篮