校园卡信息存储在一个综合的数据库“school.mdb”,其中的“Yue”数据表用来存储学生的校园卡基本信息,包括学号(num)、姓名(name)、余额(money),括号内的为对应字段名。下列VB程序用来实现根据学号查询并显示学生姓名及余额,运行界面如图所示:
数据库文件与应用程序在同一文件夹中,在文本框Text1中输入学生的学号,单击“查询”按钮,在标签Label4、Label5中分别显示学生姓名和余额。
Private Sub Command1_Click()
Dim adocn As new connection
Dim adors As new recordeset
Dim str1 As string,str2 as string
Str1=”driver=microsoft access driver(*.mdb);dbq=”&app.path&”\ ① .mdb”
Adon.open str1
Str2=”select * from Yue where ② =’”+text1.text+”’”
Adors.open str2,adocn,adOpenDynamic,adLockOptimistic
If adors.eof then
Msgbox”你输入的学号不存在!”
Else
Label4. caption =adors.Fields(“name”).value
③ =adors.Fields(“money”).value
Endif
Adors.close
Adocn.close
End Sub
为了实现上述目标,在画线处填入合适的语句或表达式:
①
②
③
s = "ERROR:Divisor must not be zero!"
flag = False : m = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" Then
If Not flag Then
m = m + 1 : flag = True
End If
Else
flag = False
End If
Next i
Text1.Text=Str(m)
实现上述功能的 VB 程序如下,请回答下列问题:
Dim xm(1 To 600) As String '存储学生姓名
Dim xx(1 To 600) As Integer '存储信息成绩
Dim ty(1 To 600) As Integer '存储通用成绩
Dim n As Integer '存储记录总数
Private Sub Form_Load()
'本过程从数据库中读取学生数据,存储在相应的变量中,并在 List1 中显示'代码略
End sub
Private Sub Command1_Click()
Dim key As Integer, mid As Integer
Dim i As Integer, L As Integer, R As Integer, k As Integer
Dim tmp1 As String, tmp2 As Integer
'以“信息”为主要关键字、“通用”为次要关键字排序
For i = 1 To n - 1
k = i
For j = i + 1 To n
If xx(k) < xx(j) or Then
k = j
End If
Next j
If k <> i Then
tmp1 = xm(k) : xm(k) = xm(i) : xm(i) = tmp1
tmp2 = xx(k) : xx(k) = xx(i) : xx(i) = tmp2
tmp2 = ty(k) : ty(k) = ty(i) : ty(i) = tmp2
End If
Next i '查询记录
key = Val(Text1.Text) L = 1 : R = n
Do While L <= R
mid = (L + R) \ 2
If Then
L = mid + 1
Else
R = mid - 1
End If
Loop
List2.Clear
' vbTab 相当于是键盘上制表符 TAB 按键的功能
List2.AddItem "姓名" & vbTab & "信息" & vbTab & "通用"
For i = 1 to
List2.AddItem xm(i) & vbTab & xx(i) & vbTab & ty(i)
Next i
End sub
Private Sub Command1_Click()
Dim x As Integer
x=Val(Text1.Text)
Label1.Caption=Str(x) & prime(x,2)
End Sud
Function prime(n A Integer m A Integer)As String
If n=m Then
prime=“是素数。”
ElseIf n<2 Or n Mod m=0 Then
prime=“不是素数。”
Else
prime=prime(n,m+1)
End If
End Function
在文本框Text1中输入的值是123,并执行程序后,自定义函数prime( )被执行的次数是( )
Private Sub Command1_Click()
Dim n As Integer '裁判人数
Dim max As Integer, min As Integer, sum As Integer
Dim AveScore As Single '存储最终得分
n = Val(Text1.Text): sum = 0
If n <= 2 Then MsgBox ("输入数据要大于2,请重新输入!")
If n > 2 Then
List1.Clear
Randomize
score = Int(Rnd() * 31) + 70
List1.AddItem Str(score)
max = score
min = score
For i = 2 To n
score = Int(Rnd() * 31) + 70
List1.AddItem Str(score)
If score > max Then max = score
If score < min Then min = score
sum = sum + score
Next i
AveScore =
Text2.Text = Str(AveScore)
End If
End Sub
综上所述:原文为Jim is at room 4!,加密后输出密文为:NMQ MW EX VSSQ 2!
Private Sub Cmd1_Click()
Dim str1 As String, str2 As String, ch As String
Dim i As Integer, j As Integer, n As Integer
str1 = Text1.Text
str2 = ""
n = Len(Text1.Text)
For i = 1 To n
ch = Mid(str1, i, 1)
If Then
ch = Chr((Asc(ch) - 32))
End If
If ch >= "A" And ch <= "Z" Then
ch = Chr((Asc(ch) - Asc("A") + 4) Mod 26 + Asc("A"))
ElseIf ch >= "0" And ch <= "9" Then
ch =
End If
Next i
Text2.Text = str2
End Sub
i = 1: j = 63: n = 0
Do While i <= j
m = (i + j) \ 2
If key = a(m) Then Exit Do
ElseIf key < a(m) Then j = m - 1: n = n - 1
Else
i = m + 1: n = n + 1 End If
Loop
数组元素a(1)到a(63)存放着递增的数据。若执行该程序段后,n 的值为 6,则下列表达式成立的是( )
i=1:j=6:flag=False key=Val(Text1.Text)
Do While i<=j And flag = False
m=(i+j)\2
If key=a(m) Then flag=True
If key<a(m) Then j=m-1 Else i=m+1 Loop
数组元素a(1)到a(6)的值依次为“7,9,15,27,34,51”。文本框Text1中输入“27”后运行该程序,运行结束后,下列说法不正确的是( )
Dim a(1 To 10) As Integer
a(1) = 1: a(2) = 2
For i = 3 To 10
a(i) = a(i - 1) + a(i - 2)
Next i
i = 1: j = 10: f = False
Do While i <= j And f = False
num = num + 1
m = (i + j) \ 2
If num = a(m) Then
f = True
ElseIf num < a(m) Then
j = m - 1
Else
i = m + 1
End If
Text1.Text = Text1.Text + Str(m)
Loop
该程序段执行结束后,文本框Text1中显示的内容是( )
Dim a(1 To 10)As Integer
Dim i As Integer,j As Integer,m As Integer
Dim key As Integer
i= 1:j = 10:key = Val(Text1.Text)
Do While i <=j
m =(i + j)\2
If key < a(m)Then
j = m - 1
ElseIf key > a(m)Then
i = m + 1
Else
Do While m>1
lf a(m - 1)= key Then
m = m - 1
Else
Exit Do
End If
Loop
Exit Do
End If
Loop
数组中a(1)到a(10)依次为“1,1,2,3,3,3,3,4,4,4”,若在文本框Text1中输人3,经上述程序段执行后,变量m的值为( )
n = 0: i = 1: j = 6
Key = Val(Text1.Text)
Do While i <= j
m = (i + j) \ 2
n = n + 1
If Key = d(m) Then Exit Do
If Key < d(m) Then j = m - 1 Else i = m + 1
Loop
If i <= j Then s = m - n Else s = n
数组d(1)到d(6)的值依次为“4,6,9,13,20,25”,输入某个Key值后,运行该程序段后,变量s结果为3,则输入key的值不可能是( )。
i = 1: j = 10: c = 0
k = Val(Text1.Text)
Do While i <= j
m = (i + j) \ 2
c = c + 1
If a(m) >= k Then
j = m - 1
Else
i = m + 1
End If
Loop
数组元素a(1)到a(10)的值依次为“1,4,10,21,21,26,27,29,30,36”,在文本框Text1中输入“21”,执行该程序段后,下列说法正确的是( )
import random
DNA=['A','G','T','C']
s=''
for i in range(20):
①
print(s)
match={'A':'T','T':'A','G':'C','C':'G'}
t=''
for i in range(20):
②
print('互补链:',t)
#生成n*n的矩阵
import random
n=int(input(‘输入n,产生n*n的方阵:’ ))
a=[[random.randint(1,9) for i in range(n)] for j in range(n)]
for i in a:
print(i)
print( )
x,y=[],[]
xy=input("请输入左上角+右下角坐标:") #输入左上角坐标+右下角坐标,用逗号分隔数字。如:"2,1,14,13"
xy=xy+","
c,j=0,0
for i in range(len(xy)):
if xy[i]==",":
if :
x.append(int(xy[j:i]))
else:
y.append(int(xy[j:i]))
c=c+1
for i in range(y[0],y[1]+1,1):
for j in range(x[0],(x[0]+x[1])//2+1,1):
a[i][j],a[i][]=a[i][],a[i][j]
for i in range(len(a)):
print(a[i])