s=0
for i in range(1,8,3):
s=s+i
print(s)
① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。
②分配方案的形成方法: 将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。
③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如第16题图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。
小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Command1,在列表框List1中输出结果。程序运行效果如图b所示。
请回答下列问题:
Dim n As Integer '总人数/总作品数
Dim m As Integer '每人分配篇数
Dim a(1 To 500) As Integer '数组a大小满足处理要求
Dim c(1 To 100) As Integer '数组c大小满足处理要求
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
n = Val(Text1.Text): m = Val(Text2.Text)
Randomize
i = 1
Do While i <= m
For j = 1 To n
c(j) = 0 '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1
Next j
For j = 1 To n
If j = n - 1 And c(n) = 0 Then
①
Else
k = r(n, j)
End If
a((i - 1) * n + j) = k '分配数字k到当前方案的第j个位置上
c(k) = 1
Next j
If ② Then i = i + 1
Loop
s = ""
For i = 1 To n
s = "参赛者" & i & ":"
For j = 1 To m
s = s + Str(a((j - 1) * n + i))+ ","
Next j
List1.AddItem s
s = ""
Next i
End Sub
Function r(x As Integer, y As Integer) As Integer
'生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0
End Function
Function check(c As Integer) As Boolean
'本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE
Dim p As Integer, f As Boolean
f = True
p = 1
For i = 1 To c * n
If ③ Then
f = False: Exit For
End If
p = p mod n +1
Next i
check = f
End Function
① ② ③
以3×3数据块为例,原矩阵和转置矩阵的结果如图所示。

小明发现对这个矩阵进行转置后,主对角线上的数字没有发生变化,所以决定编写VB程序随机生成一个n×n的矩降再试一下。程序实现的功能如下:在文本框Text1中输入整数n(2≤n≤10),单击“生成矩阵”按钮Command1,生成n2个10到99之间(包含10和99)的随机整数,并以n行、n列矩阵的形式显示在列表框List1中,将转置后的矩阵也显示在List1中。再单击“主对角线”按钮Command2,则在标签Label1中输出两矩阵主对角线上的元素,运行界面如图所示,程序代码如下,请在画线处填入合适的代码。

Const max=100
Dim n As Integer
Dim a(1 To max)As Integer
Dim b(1 To max)As Integer
Private Sub Command1_Click( )
n=Val(Text1.Text)
For i=1 To n*n
a(i)= ①
Next i
p=1
For i=1 To n*n
b(i)=a(p)
If i Mod n=0 Then
p=p-n*(n-1)+1
Else
②
End If
Next i
List1.Clear
List1. AddItem Str(n)+"*"+Str(n)+"方阵”
Call Output(a( ))
List1.AddItem"转置矩阵"
Call Output(b( ))
End Sub
Private Sub Command2_Click( )
Label1.Caption="原矩阵":L.abel2.Caption="转置矩阵"
For i=1 To n
Label1.Caption=Label1.Caption & Str(a(i+(i-1)*n))
Label2.Caption=label2.Caption & Str(b(i+(i-1)*n))
Next i
End Sub
Sub Output(a()As Integer)
Dim line As String
line=""
For i=1 To n*n
If i>1 And i Mod n=1 Then
List1. AddItem line
line=Str(a(i))
Else
③
End If
Next i
List1. AddItem line
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
同时,在Text2中对该数字进行“加密”,加密规则为:对于每一位数字,加上5,结果保留个位。程序运行界面如图所示。

Private Sub Command1_Click( )
Dim s1 As String, s2 As String, c As String
Dimi As Integer, s As Integer
For i=1 To 20
s1=s1+ ①
Next i
Text1. Text=s1
For i=1 To 20
c=Mid(s1, i, 1)
s= ②
s2=s2 & s
Next i
Text2. Text=s2
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。

B .
D . 以上都不正确
Private Sub Judge_Click( )
Dim x As Integer, i As Integer
Dim y As Long, flag As Boolean
flag = False
x = Val(Text1.Text)
i = 10
Label2.Caption = "该数的平方是:" + Str(y)
Do While y \ i > 0 And flag = False
t1 = y \ i
t2 = y Mod i
If Then
flag = True
Label3.Caption = Str(t1) + "+" + Str(t2) + " = " + Str(x)"
End If
i =
Loop
If Not flag Then Label3.Caption = "该数不是卡普利加数"
End Sub
Private Sub Cmd1_Click()
Dim s As String, s1 As String, t As Integer, i As Integer
Dim k As Integer, bh As Integer, w As Integer
Dim w1 As Integer, w2 As Integer
s = Text1.Text: k = 1: t = 0: bh = 0 'bh存储当前垃圾的垃圾编号
w1 = 0: w2 = 0
For i = 1 To Len(s) s1 = Mid(s, i, 1)
If Then
t = t * 10 + Val(s1)
Else
If Then
bh = t
Else
If bh = 1 Then
w1 = w1 + t
Else
w2 = w2 + t
End If
End If
k = k + 1
End If
Next i
List1.AddItem "干垃圾共" + Str(w1) + "斤"
List1.AddItem "湿垃圾共" + Str(w2) + "斤"
Label3.Caption = "总重量共有" + Str(w) + "斤"
End Sub
import math
def func(list):
for x in list:
if
:
print(x)
def enpwd(msg, key):
size = len(msg)
result= [ ]
for i in range(key):
t=i
while t<size:
result.append(msg[t])
t+=key
return".join(result)
msg = input('请输入待加密的明文:')
key = int(input('请输入密钥:'))
pwd = enpwd(msg, key)
print(pwd)
Private Sub Command1_Click()
Dim x As Long
Dim y As Integer
x = Val(Text1.Text)
y =
Text3.Text =
End Sub
Function trans(n As Long, b As Integer) As String
Dim hex As String
hex = "0123456789ABCDEF"
Do while n<>0
r = n Mod b
n = n \ b
trans = + trans
Loop
End Function
Private Sub Command2_Click()
End Sub
i=0
sum=0
while i<10:
if i%3==0:
sum+=i
i+=1
print("sum=",sum)
代码如下:
def gcd (m,n):
r=
while r!=0:
m=n
n=
return
a=int(input(‘请输入a的值:’))
b=int(input(‘请输入b的值:’))
print(‘最大公约数是:’)
'给a(1)到a(6)各元素赋初值,代码略
For i= 1 To 6
If i Mod 2<>0 Then
If a(i) Mod 10> 5 Then
a(i)= a(i)\ 10
Else
a(i)= a(i) Mod 10
End If
Else
a(i)=a(i- 1)+ 1
End If
Next i
程序运行后a(1)到a(6)的值分别是2,3,4,5,0,1,则a(1)到a(6)各元素的初始值可能是( )
编写VB程序,依据上述要求排队。运行程序,在列表框 List1中显示了排序前的人员身高,单击“排序”按钮Command1后,在列表框List2中显示身高升序排序结果,再单击“站位”按钮Command2后,按10人一排站好,结果显示在列表框List3中。界面如图所示。
Dim h(0 To 40) As Integer '学生身高
Dim n As Integer
Private Sub Form_Load()
'从数据库中读取身高,共n条记录,存入h数组中,代码略
End Sub
Private Sub Command1_Click()
For i =2 To n
h1 = h(i): j = i – 1
Do While
j = j - 1
Loop
For k = i To j +2 Step -1
h(k) = h(k - 1)
Next k
①
Next i
'在列表框 List2中输出排序结果,代码略
End Sub
Private Sub Command2_Click()
'按人数每10人一排
Dim x As Integer
x = n \ 10
For i =1 To x
Call fenpai( ② ) '过程fenpai作用:将人员按中间低两边高排好,代码略
Next i
If n Mod 10 >0 Then Call fenpai(x * 10 + 1, n)
'将站位结果输出在列表框 List3 中,代码略
End Sub
① ②
for i in range(1,5):
print(‘#’*i)
C . a = [2,1,3,4,5]
c = 0
for i in range(2,len(a)):
if a[i-2] + a[i-1] == a[i]:
c = c + 1
print(c)
该程序段运行后,最后输出的内容是( )
s="aabbccabc"
st=s[1]
for i in range(1,len(s)):
if len(st)==0 or s[i]!=st[len(st)-1]:
st=st+s[i]
else:
st=st[0:len(st)-1]
print(st)
运行该段代码后,输出结果为( )
Dim a(1 To 5) As Integer .
a(1)= 1
For i=2 To 5
a(i)= Int(Rnd * 9) +1
If a(i) Mod 2=1 Then
a(i)=a(i)+a(i - 1)
ElseIf i mod 2=0 then
a(i)=a(i) /2
End If
Next i
执行程序后,a数组各元素不可能是( )
LET S=0
FOR I=1 TO 99 STEP 2
S=S+I
NEXT I
PRINT "S=";
END