下列选项中,关于算法的描述错误的是(   )。
A.算法可以没有输入B.算法必须用 VB 语言实现
C.算法一定有输出D.算法不能有二义性
当前题号:1 | 题型:选择题 | 难度:0.99
解决问题:求m和 n的最大公约数。根据以下算法描述,回答问题。
①输入m,n
②以m为被除数,n为除数,r为m除以n的余数
③判断r的值
若r=0,输出公约数n
若r≠0,则n将赋值给m,再将r赋值给n,转为执行步骤②
(1)上述算法的描述方式是_____________。
(2)若 m=2018,n =20,则最大公约数是_____________。
(3)这个算法是著名欧几里德算法,又称_____________。
(4)“r 为 m 除以 n 的余数”的 VB 语句是_____________。
(5)上述算法是用程序的_____________结构实现。
当前题号:2 | 题型:填空题 | 难度:0.99
关系表达式0<x<1对应的VB表达式是(   )。
A.x>0 or x<1B.0<x<1
C.x>0 and x<1D.x<1
当前题号:3 | 题型:选择题 | 难度:0.99
利用计算机解决问题步骤有分析问题、设计算法、编写程序和调试运行,其中最为核心的步骤是(   )。
A.分析问题B.设计算法
C.编写程序D.调试运行
当前题号:4 | 题型:选择题 | 难度:0.99
在文本框Text1中输入一组12位以内的二进制数,将该二进制数转化为十六进制数后在Label1中输出。程序运行后如图所示,请完成以下题目。

(1)若要在窗体加载时,自动将文本框宽度调整为5000,则需在Form_Load()过程中加入语句Text1._____=5000(填字母:
A.Caption /B.Height /C.Width /D.Left)。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private  Sub  Command1_Click()
Dim  a(1 To 12)  As  String ’a数组用以存储二进制数
Dim  b(1 To 3)  As  Integer  ’b数组用以存储十六进制数
Dim  m, n  As  String
Dim  i, j, k  As  Integer
m = _______
For i = 12 To 12 - Len(m) + 1 Step -1 ’将每位二进制数保存到数组a中
a(i) = ______
Next i
For  i = 1 To 3   ’将每4位二进制数转化为十进制数后保存到数组b中
For  j = 4 To 1 Step -1
b(i) = b(i) + Val(a(i * 4 - j + 1)) * 2 ^ (j - 1)
Next j
Next i
For  i = 1 To 3
If  b(i) < 10  Then  m = Chr(b(i) + 48)  Else  m = Chr(b(i) + 55)
n = n & m
Next i
Label1.Caption = "转换后的十六进制数为:" + n
End  Sub
(3)若程序运行后,若在文本框中输入二进制数1101101101,则在Label1中显示的内容为:转换后的十六进制数为:____。
当前题号:5 | 题型:填空题 | 难度:0.99
(加试题)在文本框Text1中输入待加密的n个字符(仅由ASCII码字符构成,最多支持960个字符),输入后单击加密按钮,在文本框Text2中产生密文。加密方式如下:
①   定义一个数组a(1 to 961)。产生一个3到6之间的随机整数k,将十进制数960均分成k份,字符在字符串中的位置除以k的余数决定该字符存放在第几份数据中(余数为1保存在第一份数据中,余数为2保存在第二份数据中……,余数为0保存在第k份数据中);
②   用十进制数127减去每个字符的ASCII码值,得到的差作为该字符的密文,并保存在数组a中,同一段内的密文依次存放;
③   将随机产生的数k加64后保存在数组元素a(961)中,并一起参与加密;
④   将数组a中所有有密文值的数组元素从后往前依次存放到数组b中;
⑤   将数组b中的每个密文用3位数字保存,不足3位的前面用0补足,然后依次连接保存在变量sc中;
⑥   在文本框Text2中输出sc。
例如:
①   若现有待加密的字符串为“zp123”,产生的随机数k=3,则960分成3份,每份可存放320个值,分别为a(1)至a(320),a(321)至a(640),a(641)至a(960);
②   由于Asc(“z”) =122,则127-122=5。字符“z”在待加密字符串中的位置是1,除以k的余数为1,因此数字“5”放在第一份数据的第一个位置,即a(1)=5;同理可得,第一份数据为a(1)=5,a(2)=77;第二份数据为a(321)=15,a(322)=76;第三份数据为a(641)=78;
③   将随机产生的k与十进制数64的和保存到a数组的最后一个值中,即a(961)=64+3=67;
④   将数组a中所有有密文值的数组元素从后往前依次存放到数组b中,得到b(1)=67,b(2)=78,b(3)=76,b(4)=15,b(5)=77,b(6)=5;
⑤   将数组b中的每个元素用0补足3位后依次连接并保存在sc中,得到sc=“067078076015077005”;
⑥   输出sc。
注:(asc(“0”)=48,asc(“A”)=65,asc(“a”)=97)

Private  Sub  command1_Click()
Dim  a(1 To 961)  As  Integer
Dim  sr, sc  As  String
Dim  i, j, k, m, n, t  As  Integer
Dim  b(1 To 961)  As  Integer
Randomize
k = Int(Rnd * 4 + 3)
sr = text1.Text
For  i = 1  To  961
a(i) = -1
Next  i
a(961) = k + 64
t = 960 / k
For  i = 1  To  Len(sr)
m = i Mod k - 1
n = i \ k + 1
If  i  Mod  k = 0  then  n = n - 1: m = m + k
____= 127 - Asc(Mid(sr, i, 1)) ’将密文存储到数组a中
Next  i
For  i = 1  To  Len(sr) + 1
j = j + 1
Do  While  a(j) = -1
j = j + 1
Loop
b(Len(sr) + 2 - i) = a(j) ’将有密文值的a数组元素存储到数组b中
Next  i
For  i = 1  To  Len(sr) + 1
sc = ______     ’连接密文并保存到sc中
Next  i
text2.Text = sc
End  Sub
Function  space(x As Integer)  As  String
For i = 1 To ______
space = space & "0"
Next  i
End  Function
(1)若加密后的密文为“068029041”,则随机数是____;在Text1中输入的明文是____。
(2)在空白处填写缺失的代码。
当前题号:6 | 题型:填空题 | 难度:0.99
(加试题)有如下程序段,文本框中输入19后单击命令按钮,则窗体中显示的数字为
Private Sub Command1_Click()
Dim m, n, sum, left, mid, key, s As Integer
Dim a(1 To 13) As Integer
a(1) = 2: a(2) = 3: a(3) = 8: a(4) = 16: a(5) = 19: a(6) = 27
a(7) = 29: a(8) = 32: a(9) = 49: a(10) = 64: a(11) = 72: a(12) = 99
m = 1: n = 12
key = Val(Text1.Text)
mid = (m + n + 1) \ 2
Do While a(mid) <> key And m <= n
If a(mid) > key Then n = mid - 1: left = left + 1 Else m = mid + 1
mid = (m + n) \ 2: sum = sum + 1
Loop
Print sum,left
End Sub
A.1 1B.1 2C.2 1D.2 2
当前题号:7 | 题型:选择题 | 难度:0.99
(加试题)如图所示程序运行时,点击“生成”按钮,随机产生100个不重复的仅由数字和大小写字母组成的3位字符串并显示在List1中,点击“排序”按钮,将所有字符串排序后在List2中输出。要求:数字开头的字符串在前并按升序排序,字母开头的字符串在后并按降序排序。

实现上述功能的代码如下,但划线处代码有错,请改正。
Private Sub Command1_Click()
‘随机产生100个不重复的仅由数字和大小写字母组成的3位字符串并存储到数组zfc(1)至zfc(100)中,同时在List1中显示,代码略。
Private Sub Command2_Click()
Dim zfc(1 to 101) as integer
Dim i, j, m, k As Integer
Dim s As Boolean
For i = 1 To 100
If Asc(Mid(zfc(i), 1, 1)) >=48  Then  t = t + 1    ________________
Next  i
For i = 1 To 99
For  j = i + 1 To 100 _____________
If zfc(j - 1) > zfc(j) Then
zfc(101) = zfc(j - 1): zfc(j - 1) = zfc(j): zfc(j) = zfc(101)
End If
Next  j
Next  i
For  i = t + 1 To 99
k = i
For  j = i + 1 To 100
If zfc(k) < zfc(j) Then k = j
Next j
If  k <> i Then zfc(101) = zfc(i): zfc(i) = zfc(k): zfc(k) = zfc(101)
Next  i
For  i = 1 To 100
List2.AddItem zfc(i)
Next  i
End sub
当前题号:8 | 题型:填空题 | 难度:0.99
(加试题)有如下程序段,若有如下数据:64, 57, 22, 96, 71,分别存储在a(1)至a(5)中,经过以下程序段处理后的数据依次为
Dim  a(1 To 6)  As Integer
s = 0
For  i = 1 To 5
If  a(i) Mod 2 = 1  Then  s = s + 1
Next  i
For  i = 1 To 4
If  a(i) Mod 2 = 0  Then
For  j = 5 To i + 1 Step -1
If  a(j) Mod 2 = 1  Then
a(6) = a(i): a(i) = a(j): a(j) = a(6): Exit For
End If
Next  j
End If
Next  i
For  i = s + 2 To 5
k = i - 1
For  j = i To 5
If  a(k) > a(j)  Then  k = j
Next  j
If k <> i - 1 Then
a(6) = a(i - 1): a(i - 1) = a(k): a(k) = a(6)
End If
Next  i
A.22, 57, 64, 71, 96B.71, 57, 22, 96, 64
C.71, 57, 22, 64, 96D.57, 71, 22, 64, 96
当前题号:9 | 题型:选择题 | 难度:0.99
趣味填空题:给出用等号连接的两个整数,如“222=24”,让你在左边的整数中间某个位置插入一个加号,看有没有可能让等式成立。以上面的式子为例,可以写成2+22=24和22+2=24。现设计一个程序,实现该算法,程序运行界面如图所示。

(1)标题要显示“趣味数学”,需修改窗体的_________属性。
(2)实现上述功能的VB程序如下,请在程序划线处填入合适代码。
Private Sub Command1_Click()
Dim s As String, s1 As String, s2 As String
Dim c As Integer, k As Integer, i As Integer, flag As Boolean
flag = False
s = Text1.Text
For c = 1 To Len(s)
If ______________  Then Exit For   'Exit for退出循环
Next c
s1 = Mid(s, 1, c - 1)
s2 = Mid(s, c + 1,len(s)-c)
k = _________
For i = 1 To k - 1
If Val(Mid(s1, 1, i)) + Val(Mid(s1, i + 1,c-i-1)) = Val(s2) Then
List1.AddItem Mid(s, 1, i) + "+" + Mid(s, i + 1,len(s)-i)
________
End If
Next i
If Not flag Then List1.AddItem "等式始终无法成立!"
End Sub
当前题号:10 | 题型:填空题 | 难度:0.99