(加试题)对数组a中的u个元素进行排序,生成左右交替上升的数据序列,结果如下表所示:
a(1)
a(2)
a(3)
……
a(n-2)
a(n-1)
a(n)
17
39
48
……
79
46
34
 
设计一个VB程序,单击“排序”按钮Command1后,在标签中输出排序后的数据序列,运行结果如图所示。

实现上述功能的VB程序如下,加框处代码有错,请改正。
Const n-9  ‘变量u存储待排序数据个数,以9个数为例
Dim a(1 Ton) As Integer ‘数组a存储待排序数据
Private Sub Command1_Click()

Dim i As Integer,j As Integer,t As Integer,k As Integer

‘读取一组正整数,存入数组a中,

‘在标签Label中依次输出排序前数组a从1到n各个元素的值,代码略;

For i = 1 To n\2

k=1 Label'①________
For j=i+1 To n-i+1
If a(k) > a(j) Then k = j
Next j
For j=i+1To n ‘②________
If a(j) <a(j +1) Then t =a(j): a(j) =a(j +1): a(j +1)=
Next j
Next i

‘在标签中依次输出排序后数组a从1到n各个元素的值,代码略;

End Sub
当前题号:1 | 题型:填空题 | 难度:0.99
(加试题)四宫数独规则:在4×4的格子中,根据已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个宫(粗线框区域)内均含1到4的数字并且不重复,每道数独有且仅有唯一答案。
例如,根据规则推理图1数独,在第一宫中4个格子已经3个格子分别是数字1到3,缺的数字为4,因此第一行第一格空缺的数字填4,以此类推,直至将所有格子都推理出来。
 

 

图1
图2
 
(1)根据上述规则推理,数独(图2)第一行A处应是数字______。

(2)小明编写了四宫数独推算的VB程序,单击“推算”按钮 Command1后,在列表框List1中输出数独推算过程和结果,如第17题-3题图所示。实现推算的VB程序如下,请在划线处填入合适的代码。
Dim d(1 To 16) As Integer    '数组d逐行存储四宫数独

Private Sub Command1_Click()

Dim i As Integer,flag As Boolean

For i = 1 To 16

d(i) =0    ‘值0表示该位置还未填数字

Next i

‘初始化数独中已知位置的数字

d(2) =4:d(11) =3:d(14) =2:d(16) =4

List1.Clear

'在列表框Li1中输出四宫数独,代码略

flag = False

Do While Not flag

__________
For i = 1 To 16
‘函数check(i)实现对第i位置进行推算
If d(i) = 0 Then
d(i) = check(i)
If d(i) >0 Then
flag = False
'Forniat(i,"00")函数实现将变量i的值按2个字符宽度输出
List1.Addltem"第"& Format(i,”00” & "位置填” & d(i)
End If
End If
Next i
Loop
'在列表框Lil中输出四宫数独,代码略
End Sub
根据每一行、第一列、每一个宫的已有数字进行推算
Function check(x As Integer) As Integer

Dim t(0 To 4) As Integer,m As Integer

Dim row As Integer,col As Integer,n As Integer,k As Integer

For m=0 To 4

t(m) =0

Next m

'对当前所在行列进行推算

row = (x-l)\4+l

col = ( x - l) Mod 4 + l

For m= 1 To 4

t(d( row - l) *4+m) = l
t(_______)=1

Next m

'进行宫内推算

If row < =2 And col <= 2 Then t(d(7 -x) ) = l
If row< = 2 And col > 2 Then t(d(ll - x) = l
If row > 2 And col < = 2 Then t(d(23-x) = l
If row > 2 And col > 2 Then t(d(27-x) = l
k =0

For m= l To 4

If t (m) = 0 Then n = m Else k = k + l

Next m

If _______ Then check = n Else check = 0

End Function
当前题号:2 | 题型:填空题 | 难度:0.99
(加试题)若数组元素d(1)到d(8)的值依次为“6,9,12,18,20,28,32,45”,查找Key值的VB 程序段如下:
t(1) = 1: t(2) = 1
For i = 3 To 5

t(i) = t(i - 1) + t(i -2)

Next i Key =13
i=1:j=8:k=6
Do While i <=j

m = i+t(k-1)     ‘① 

If Key = d ( m ) Then Exit Do ‘Exit Do表示退出循环

If d(m) > Key Then

j= m - 1
k=k-1

Else

i = m + 1
k=k-2

End If

Loop
运行该程序段后,①处的赋值语句共执行(   )
A.1次B.2次C.3次D.4次
当前题号:3 | 题型:选择题 | 难度:0.99
过程直接或间接的调用自己,这种调用被称为(____________)调用。
当前题号:4 | 题型:填空题 | 难度:0.99
下列程序的功能是( )
PRIVATE  SUB   FORM—CLICK(   )
S=0  :   M=0
FOR  A=1  TO  100
IF  A  MOD  2 = 0   THEN
S=S+A
ELSE
M=M+1
END  IF
NEXT  A
PRINT   S , M
END    SUB
A.统计1---100间的偶数和
B.统计1---100间的偶数个数
C.统计1---100间的偶数和,奇数个数。
D.统计1---100间的偶数个数,奇数和.
当前题号:5 | 题型:选择题 | 难度:0.99
下列说法正确的是( )
A.子过程可以嵌套调用B.子过程不可以嵌套调用
C.子过程可以嵌套定义D.函数过程不可以递归调用
当前题号:6 | 题型:选择题 | 难度:0.99
Sub过程与Function过程最根本的区别是( )。
A.Sub过程可以使用Call 语句或直接使用过程名调用,而Function过程不可以
B.Function过程可以有参数,Sub过程不可以
C.两种过程参数的传递方式不同
D.Sub过程的过程名不能返回值,而Function过程能通过过程名返回值
当前题号:7 | 题型:选择题 | 难度:0.99
要想在过程调用后返回两个结果,下面的过程定义语句合法的是[ ]。
A.Sub p(Byval n,Byval m)B.Sub p(n,byval m)
C.Sub p(n,m)D.Sub p(Byval n,m)
当前题号:8 | 题型:选择题 | 难度:0.99
有如下通用过程和事件过程,运行程序后,单击窗体,程序的运行结果是( )
public  function  ss(x  as  integer,y  as  integer)  as  integer
if   x>y   then   ss=x-y   else  ss=y-x
END  FUNCTION
PRIVATE  SUB  FORM CLICK(   )
DIM  A  AS  INTEGER ,B  AS  INTEGER
A=8: B=6
PRINT   SS(A,B)
END  SUB
A.2B.-2C.8   8D.6 6
当前题号:9 | 题型:选择题 | 难度:0.99
求2+4+6+8+10+12+14+……100。
PRIVATE  SUB   FORM-----CLICK( )
DIM   I   AS  INTEGER,S   AS  INTEGER
FOR  I= 2  TO  100 __________
S=S+___________
NEXT  I
PRINT   S
END SUB
当前题号:10 | 题型:填空题 | 难度:0.99