1.选择题- (共16题)
n = 0 : i = 1 : j = 8
Key = Val(Text1.Text)
Do While i <= j
m = (i + j) \ 2
If Key = d(m) Then Exit Do 'Exit Do表示退出循环
If Key > d(m) Then
j = m - 1 : n = n - 1
Else
i = m + 1 : n = n + 1
End If
Loop
Label1.Caption = Str(n)
当输入不同的Key值,运行该程序段后,在标签Label1中显示的不同结果共有
A.5种 | B.6种 | C.7种 | D.8种 |
Dim a(1 to 1000)as long,n as integer
n=Val(Text1.Text)
a(1)= 1:a(2)= 1
For i=3 to n
a(i)= a(i-1)+a(i-2)
Next i
Label1.Caption=“斐波那契的第”&Str(n)&“是”&a(n)
该程序用到了下列哪一个算法( )
A.枚举算法 | B.递归算法 | C.排序算法 | D.查找算法 |

If Rnd>0.5 Then
n=n+1
Else
m=m+1
Next i
分析该程序段,该代码中缺少了( )
A.For | B.End If | C.Next | D.If |
A.178 | B.172,175,178 | C.172,177,178 | D.172,175,177,178 |
A.Asc(a)>=0 Or Asc(a)<=9 | B.“0”<=a<=“9” |
C.a<=“0”Or a>=“9” | D.a>=“0”and a<=“9” |
Private Sub Command1_Click()
Dim x As Integer,y As Integer,z As Integer
x=Val(Text1.Text) ‘第1 个正整数
y=Val(Text2.Text) ‘第2 个正整数

Text3.Text=Str(z)
End Sub
Function gcd(a As Integer,b As Integer) As Integer
Do While a <> b
If a>b Then a=a-b Else b=b-a
Loop
gcd=b
End Function
方框中的正确语句是( )
A.z=gcd | B.z=gcd(a,b) | C.z=gcd(x,y) | D.z=gcd x,y |
For i=1 To 6
k=i
For j=i+1 To 7
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)= a(k):a(k)= t
End If
Next i
在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”。则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是( )
A.10,11,41,75,12,63,85 | B.10,11,75,12,63,41,85 |
C.10,11,12,75,63,41,85 | D.10,11,12,41,63,75,85 |
m = Val(Text1.Text)
Do While m <> 0
x = m Mod 8
m = m \ 8
a(x) = a(x) + 1
If a(x) = 1 Then n = n + 1
Loop
数组a 各元素的初始值都为0,在文本框Text1中输入“529”,执行程序后,变量n的值为()
A.1 | B.2 | C.3 | D.4 |
A.Int(Rnd ∗ a)+b | B.Int(Rnd ∗ b)+a |
C.Int(Rnd ∗(b-a+1))+a | D.Int(Rnd ∗(b-a))+a |
n=Len(s) ’s 是待判断的字符串
k=0:j=n
For i=1 To n/ 2

Next i
If k=0 Then Labell.Caption=“对称”Else Labell.Caption=“不对称”
方框中的代码由以下三部分组成:
① j=j-1 ②If cl <> c2 Then k=k+1 ③cl=Mid(s,i,l):c2=mid(s,j,l)
代码顺序正确的选项是( )
A.①③② | B.②③① | C.③②① | D.②①③ |
For i=3 to 15 step x
Print “∗”
Next i
下列说法中正确的是( )
A.若x 的值为3,则显示5 个∗ | B.若x 的值为5,则显示4 个∗ |
C.若x 的值为0,则显示0 个∗ | D.若x 的值为-2,则显示1 个∗ |
i=l:j=9:n=0
key=Val(Text1,Text)
Do While i<=j
n=n+1
m=Fix((i+j) / 2)
If key=d(m) Then Exit Do ’Exit Do 表示退出循环
If key<d(m) Then j=m-1 Else i=m+1
Loop
数组元素d(1)到d(9)的值依次为“7,12,18,25,39,58,61,72,86”。若该程序段运行结束后,n 的值为2,则key 的值是( )
A.39 | B.18 或61 | C.18 或72 | D.12 或61 |
A.2022,2021,2018,2017,2014,2012,2015 | B.2012,2014,2018,2017,2021,2022,2015 |
C.2012,2017,2018,2014,2021,2022,2015 | D.2022,2021,2018,2014,2017,2012,2015 |
2.填空题- (共2题)
某学校开设多样化选修课程,学生可以根据个人兴趣和特长选择选修课。假设每门选修课的选课人数不超过40,学生选课的相关信息存放在数据库文件“student.accdb”的data 表中,选课查询程序运行时界面如图所示。
程序功能:在文本框Text1 中输入课程号,单击“查询” 按钮Command1,在列表框List1 中显示选修本课程的学生信息。如果没人选修该课程显示“该课程当前无人报名”。
按此要求将程序补充完整。Private Sub command1_click()
Dim xh(1 to 40),xm(1 to 40) As String ’学号和姓名的数组
Dim i,num as integer
Dim conn As New ADODB.Connection,rs As New ADODB.Recordset
Dim strSQL As String
conn.ConnectionString=“Provider=Microsoft.AC
A.OLEDB.12.0;DataSource=”+App.Path+“ \① ” ’打开到数据库的链接 |
strSQL=”select xh,xm from ② where ‘课程&(Text1.Text)&’”
’设置查询的SQL 语句
Set rs.ActiveConnection =conn ’设置rs 的ActiveConnection 属性,指定与其关联的数据库链接
rs.Open strSQL ’打开记录集,将从表student 中读取的结果集保存到记录集rs 中
List1.Clear
num=0
Do while not rs.EOF
num=num+1
xh(num)= rs.Fields(“xh”)
xm(num)= rs.Fields(“xm”)
rs.MoveNext
loop
rs.Close
conn.close
set rs=nothing
set conn=nothing
For i=1 to num
list1.additem xh(i)+””+xm(i) Next i
if num=0 then list1.additem(“该课程当前无人报名”)
End Sub
(1)程序中①划线处应填入____________________________。
(2)程序中②划线处应填入____________________________。
某编码由4 个信息位和3 个校验位组成,通过对编码信息进行验算,能够检测并纠正一位错误代码。该7 位编码中b1~b4 为信息位,p1~p3 为校验位,位置如下:
编码中位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
对位信息 | p1 | p2 | b1 | p3 | b2 | b3 | b4 |
校验的方式如下,求校验值g1、g2、g3:
g1 = p1 Xor b1 Xor b2 Xor b4
g2 = p2 Xor b1 Xor b3 Xor b4
g3 = p3 Xor b2 Xor b3 Xor b4
其中Xor 为异或运算,规则是:0 Xor 0 =0,0 Xor 1 =1,1 Xor 0 =1,1 Xor 1 =0,
p1 Xor b1 是将p1、b1 转换为二进制后按位进行异或运算,如7 Xor 12 的结果为11。
(1)若计算得到的校验值g1、g2、g3 均为0,说明校验正确,数据无错误。例如:若7 位编码为1101001,计算校验值g1、g2、g3 值均为0,验证正确。
(2)若校验值g1、g2、g3 不全为0,说明数据有错,出错位置为g3g2g1(二进制数表示),纠错的方法是对错误的位进行取反,即“0”变“1”,“1”变“0”。例如:若7 位编码为1111001,计算校验值g1=1、g2=1、g3=0,不全为0,说明数据有错,错误位置在011(二进制数)位,即第3 位,原位置上“1”应为“0”,正确编码为1101001。
小明为此编写了VB 程序,程序运行时,在文本框Text1 中输入编码值,单击“校验”
按钮Command1 后,在文本框Text2 中输出运行结果,如图所示。

实现上述功能的 VB 程序如下,请回答下列问题:
(1)若按上述规则的7 位编码为1001000,其中一位有错,则正确的编码应为______________________。
(2)请在划线处填入合适的代码。
Function check(s As String) As Integer
Dim i As Integer, g1 As Integer, g2 As Integer, g3 As Integer
Dim c(1 To 7) As Integer
For i = 1 To 7
c(i) = Val(Mid(s, i, 1))
Next i
g1 = c(1) Xor c(3) Xor c(5) Xor c(7)
g2 = c(2) Xor c(3) Xor c(6) Xor c(7)
g3 = c(4) Xor c(5) Xor c(6) Xor c(7)
If g1 + g2 + g3 = 0 Then check = 0 Else check = ①__________
End Function
Private Sub Command1_Click()
Dim i As Integer, m As Integer, Outs As String
m = ②__________
If m = 0 Then
Text2.Text = "验证正确,数据无错误"
Else
For i = 1 To 7
If i = m Then
Outs = Outs + Chr( Asc(Mid(Text1.Text, i, 1)) Xor ③__________)
Else
Outs = Outs + Mid(Text1.Text, i, 1)
End If
Next i
Text2.Text = "第" + Str(m) + "位上数据有错误,正确编码应为:" + Outs
End If
End Sub
-
【1】题量占比
选择题:(16道)
填空题:(2道)
-
【2】:难度分析
1星难题:0
2星难题:0
3星难题:0
4星难题:0
5星难题:0
6星难题:0
7星难题:0
8星难题:0
9星难题:18