
实现上述功能的VB程序如下,请回答下列问题:
Dim ach(1 To 500) As String '存储各学生选课编码
Dim bno(1 To 10) As Integer '存储各科目编号
Dim bname(1 To 10) As String '存储各科目名称
Dim bnum(1 To 10) As Integer '存储各科目被选次数
Dim bmc(1 To 10) As Integer '存储各科目被选的名次
Dim n As Integer, num As Integer
Private Sub Command1_Click()
Dim i As Integer, km As String
km = "物理化学生物政治历史地理技术"
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, sql As String
cn.Open "provider=Microsoft.Jet.oledb.4.0;Data Source=" + App.Path + "\students.mdb"
rs.Open "select * from choose", cn
Do While Not rs.EOF
n = n + 1 : ach(n) = rs.Fields("subject") : rs.MoveNext
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
For i = 1 To 7
bno(i) = i
bname(i) = Mid(km, (i - 1) * 2 + 1, 2)
List2.AddItem Str(bno(i)) + "---" + bname(i)
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer
Dim c As String, per As Integer
For i = 1 To n
If check(ach(i)) = True Then
For j = 1 To 3
c = Mid(ach(i), j, 1)
bnum(Val(c)) =
Next j
num = num + 1
End If
Next i
i = 1
Do While i <= 7'该循环得到各学科被选人数的名次
bmc(i) = 1
For j = 1 To 7
If bnum(j) >bnum(i) Then
Next j
i = i + 1
Loop
For i = 1 To 7
For j = 1 To 7
If Then
per = Int(bnum(j) * 100 / num * 100) / 100
List3.AddItem Str(bno(j)) + "---" + bname(j) + "---" + Str(per) + "%"
End If
Next j
Next i
End Sub
Function check(s As String) As Boolean
'代码略! 若学生选科代码有效,函数返回True,否则返回False
End Function
实现上述功能的VB程序,如下请回答下列问题。
Private Sub Command1 _Click ( )
Dim i As Integer, y As Integer
Dim s As String, ans As string
Dim a As String
s = Text1. Text
a = Mid(s, i, 1)
y = 0
For i = 1 To 6
a = Mid (s, i , 1)
①
If i Mod 2 = 1 Then
y = m
Else
②
ans = ans + str(y)
If ③ Then ans = ans + ","
y = 0
End If
Next i
Label2. Caption = “RGB (“+ ans +”)”
End sub
Function HtoD(x As String) As Integer ‘将一位十六进制数转换为十进制数
code = "0123456789ABCDEF”
j = 0
Do While j < = 16
j = j +1
If x = Mid(code, j, 1) Then Exit Do
Loop
④
End Function
① ② ③ ④
Key = Int(Rnd * 30) * 2 + 41
s = 0: i = 1: j = 10
Do While i <= j
m = (i + j) \ 2
If Key > a(m) Then
i = m + 1: s = 3 * s + 2
Else
j = m - 1: s = 3 * s
End If
Loop
Text1.Text = s
数组a(1)到a(10)的值依次为“2,13,24,31,35,44,45,47,61,101”,执行该程序段后,s的值不可能为( )
例如,标准答案为“ABE”,则对应得分表如下所示。
| 学生答案 | ABE | AB | AE | BE | A | B | E | AC | ...... |
| 字符串 | 11001 | 11000 | 10001 | 01001 | 10000 | 01000 | 00001 | 10100 | ...... |
| 十进制数(x) | 25 | 24 | 17 | 9 | 16 | 8 | 1 | 20 | ...... |
| ans(x) | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
小温依据上述描述设计了“多选题阅卷”的VB程序,实现如下功能:在文本框Text1中输入标准答案(大写字母),先单击“初始化”按钮Command1,在数组ans中生成所有答案组合对应的分值,然后单击“阅卷”按钮Command2,从数据库中读取学生的答案并进行阅卷,在列表框List1中显示得分结果。程序运行界面如图所示。
Dim ans(0 To 31) As Integer
Private Sub Command1_Click()
Dim b(0 To 4) As Integer
Dim s As String, c As String, sum As Integer, k As Integer
'初始化数组ans和数组b,各元素的初始值均为0。代码略
s = Text1.Text:k = Len(s)
For i = 1 To k
c = Mid(s, i, 1)
b(Asc(c) - 65) = 2 ^ (69 - Asc(c))
Next i
For i = 0 To 4
If b(i) <> 0 Then
ans(b(i)) = 1
sum = ①
End If
Next i
ans(sum) = 2
'当标准答案含3个及以上选项时,学生答案选其中2个选项可得1分
i = 0
Do While k >= 3 And i <= 4
For j = i + 1 To 4
If b(i) * b(j) <> 0 Then ans(b(i) + b(j)) = 1
Next j
i = i + 1
Loop
i = 0
Do While k >= 4 And i <= 4
For j = i + 1 To 4
If b(i) * b(j) = 0 Or k = 5 Then ②
Next j
i = i + 1
Loop
'当标准答案含5个选项时,学生答案选其中4个选项可得1分。代码略
End Sub
Private Sub Command2_Click()
Dim xh(1 To 1000) As String, answer(1 To 1000) As String
'从数据库中读取学生学号和答案的数据分别存储在数组xh和answer中
'记录总数存储在变量n中,代码略
List1.Clear
For i = 1 To n
List1.AddItem xh(i) + " " + answer(i) + " " + Str(ans(f(answer(i))))
Next i
End Sub
Function f(s As String) As Integer
Dim i As Integer, x As Integer
x = 0
For i = 1 To Len(s)
x = ③
Next i
f = x
End Function
① ② ③
import math
h = 500
g = 9.8
t = math
sqrt(2*h/g)
hx = g*(t-1)*(-1)/2
hh = h-hx
print(“小球最后1秒下落的位移是:”,hh,“m”)
实现上述功能的VB程序如下。
Dim a(1 To 8)As Integer
Dim n As Integer
Private Sub Form_Load( )
a(1)=30:a(2)=47:a(3)=30:a(4)=72
a(5)=70:a(6)=23:a(7)=99:a(8)=24
n=8
For i=1 To 8
List1.AddItem a(i)
Next i
End Sub
Private Sub Command1_Click( )
Dim i,j,k,pos As Integer
Dims As String
s=Text1.Text
pos=Val(Text1.Text)
For i=1 To n-1
For j=n
If a(j)<a(j-1)Then
k=a(j-1):a(j-1)=a(j):a(j)=k
‘如果pos位置的数据参与交换,则更新pos值,记录pos变化位置
If pos=j Then
pos=j-1
s=s+"→"+Str(pos)
pos=j
s=s+"→"+Str(pos)
End If
End If
Next j
Next i
Label1.Caption=“位置变化情况:"+s
For i=1 To n
List2.AddItem Str(a(i))
Next i
End Sub
1)根据字符串长度构建一个最小的n*n矩阵,将字符串中每个字符从左到右,自上而下顺序填入矩阵,不足部分用字符“*”代替;
2)将矩阵转置(行列对换),然后将奇数行字母内码加上1,偶数行字母内码减1,字符为a、z或A、Z时做循环处理。比如,字符a减1为z;字符Z加1为A。
3)按从左到右,从上而下依次取出字符,形成新的字符串。如图a为字符串“Go to the zoo.”的加密过程。编写VB程序,在文本框Text1中输入字符串,点击“加密”按钮,在文本框Text2中输出加密后的字符串。程序运行结果如图b所示。
|
图a | 图b |
Dim a(1 To 100) As String, b(1 To 100) As String, n As Integer
Private Sub Command1_Click()
Dim s1 As String, s2 As String,i As Integer, j As Integer, m As Single
s1 = Text1.Text
m = Sqr(Len(s1))
If m > Int(m) Then n = Int(m) + 1 Else n = m
For i = 1 To n * n
If i <= Len(s1) Then a(i) = Mid(s1, i, 1) Else a(i) = "*"
Next i
For i = 1 To n
For j = 1 To n
b((i - 1) * n + j) = ‘将矩阵转置
b((i - 1) * n + j) = jm(i, j) ‘内码变换
Next j
Next i
s2 = ""
For i = 1 To n * n
s2 = s2 & b(i)
Next i
Text2.Text = s2
End Sub
Function jm(x As Integer, y As Integer) As String
Dim s As String
s = b((x - 1) * n + y)
If s <= "Z" And s >= "A" Or s <= "z" And s >= "a" Then
If x Mod 2 <> 0 Then
If s <> "Z" And s <> "z" Then
s = Chr(Asc(s) + 1)
Else
s = Chr(Asc(s) - 25)
End If
Else
If s <> "a" And s <> "A" Then
s = Chr(Asc(s) - 1)
Else
s =
End If
End If
End If
End Function
km =”物化生政史地技”
combs =[]
for i in range(128) :
t=
c=0
s=“”
for j in range(7):
c=
if t % 2=1:
s += km[j]
t =t//2
if c=3:
combs.append(s)
print (combs)
Dim x As Integer Dim s As String
Dim st As String
Dim t As Integer
st=“0123456789ABCDEF”
x = Val(Text1.Text)
Do While x > 0
Loop
Label1.Caption=s
方框中的代码由以下三部分组成:
① x = x \ 16 ② s = Mid(st,t+1,1)+ s ③ t = x Mod 16
下列选项中代码顺序正确的是( )
s=0
for k in range(3,1,-1):
if k <= 1 :
x = 1
if k <= 2 :
x = 2
if k <= 3 :
x = 3
s = s + x
print(s)
执行该程序段后,输出显示的内容是( )
编写一个验证哥德巴赫猜想的VB程序:程序运行时,在文本框Text1中输入一个大于等于4的偶数,单击“验证”按钮Command1后,如果哥德巴赫猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式,否则显示“No”。程序运行结果如图所示。
实现上述功能的VB代码如下,但加框处代码有错,请改正。
′函数pp(x)的功能是判断整数x是否为素数,若是素数则返回True,否则返回False
Function pp(x As Integer) As Boolean
Dim j As Integer
pp = True
j = 2
Do While j <= Int(Sqr(x)) And pp=True
If x Mod j = 0 Then pp = False Else
'①
Loop
End Function
Private Sub Command1_Click()
Dim n As Integer, p As Integer, q As Integer, pd As Boolean
n = Val(Text1.Text)
p = 1
pd = False
Do While Not pd And p < n
p = p + 1
'②
If pp(p) And pp(q) Then
Text2.Text = “Yes”
pd = True
List1.AddItem Str(n) + “=” + Str(p) + “+” + Str(q)
End If
Loop
If pd = False Then Text2.Text = “No”
End Sub
程序中加框①处应改正为;
加框②处应改正为。