For i = 2 To 10
Print "*"
Next i
1)在输入的数字字符串中依次提取有效的密文,有效的密文的特点:
①是一组连续的,都小于5的三位数字串;②每个位置上的数字不能被重复提取;
2)对有效密文进行解密的过程:
将密文作为一个五进制数转换为对应的十进制数值,根据ASCII字符的十进制编码表,得出对应的明文字符(提示:空格符所对应的ASCII码值为十进制数32,小写字母“z”所对应的ASCII码值为十进制数122).
例如,密文242转换成十进制数为72,对应的明文字符为大写字母“H”。
程序运行界面如下图所示,在文本框Text1中输入密文,单击“解密”按钮,在文本框Text2中输出解密后的明文密码。
'以下代码是将有效密文数字转换为十进制数的函数
Function conv(p As String) As Integer
Dim k As Integer, q As String, i As Integer
k = 0: g = ""
For i = 1 To 3
q = Mid(p, i, 1)
①
Next i
conv = k
End Function
Private Sub Command1_Click()
Dim st As String, p As String, res As String
Dim c1 As String, c2 As String, c3 As String
Dim i As Integer, d As Integer, n As Integer
st = Text1.Text: n = Len(st)
i = 1: res = ""
Do While i <= n – 2 '提取有效密文,并进行转换
c1 = Mid(st, i, 1): c2 = Mid(st, i + 1, 1): c3 = Mid(st, i + 2, 1)
If c1<"5" Or c2 <"5" Or c3 <"5" Then
②
d=conv(p)
If d >= 32 And d <= 122 Then res = res + Chr(d)
③
Else
i = i + 1
End If
Loop
Text2.Text = res
End Sub
① ② ③
a(1)=1:a(2)=2
i=3:flag=True
Do While i<=10 and flag=True
a(i)=a(i-1)+a(i-2)
If a(i)>4*i then flag=False
i=i+1
Loop
Text1.Text=a(i-1)
该程序段运行后,文本框Text1中显示的是( )
k=1
For j=2 To 100
If a(j)>a(k)Then k=j
Next j
x=a(k)
满足以上规则的最简单算法可描述为:假设总金额为n元,为使问题简单化,我们将总金额乘以100,此时的单位为分,使得问题在整数范围内解决。假设分发给m个人,则我们只需在[1,100n- 1]长度的范围内随机生成m-1个不重复的点,这些点将长为100n的线段划分为m个段,每一段长度即可表示红包金额,再将每一段长度数据除以100换算为单位元输出。
编程实现:分别在文本框Text1 和Text2中输人总金额n和总人数m,点击“抢红包”按En钮commandl,在列表框Listl中输出抢红包结果,并输出“手气最佳”数据。程序运行界面如下图所示。实现上述算法的VB程序如下,回答以下问题:

Private Sub Command1_ Click()
Dim n As Integer, m As Integer
Dim f(1 To 32767) As Boolean
n= Int(Val(Text1.Text) * 100)
m= Val(Text2.Text)
If m> n Then
List1.AddItem "游戏无法继续,结束!"
Else
Randomize
For i=1 To m- 1
t= Int(Rnd * (n-1))+1

f(t)= True
Next i
begin= 1
Max=0
For i=1 To n
If f(i) Then
If red > Max Then Max= red
'改错
List1.AddItem Str(red / 100)
End If
Next i
List1.AddItem "手气最佳:"+Str(Max / 100)
End If
End Sub
Const n=640 '参加统测总学生数
Const nc =16 '班级数
Dim class(1 To n) As Integer, sname(1 To n)As String, score(1 To n) As Integer
Dim b( To nc) As Integer '存储每个班级的参加统测人数
Dim c(1 To nc) As Integer
Dim d(1 To n)As Integer
Private Sub Form_Load()
'本过程读取每个参加统测学生的班级序号、姓名和统测成绩分别存储在数组class,sname和 score中并在List1中显示,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
For i = 1 To nc
b(i) = 0
Next i
For i = 1 To n '统计每个班级统测人数
Next i
k = 1
For i = 1 To nc
c(i) = k
k = k + b(i)
Next i
For i = 1 To n
k = class (i)
c(k) = c(k) + 1
Next i
For i = 1 To nc '对各班级按统测成绩进行排序
Call px(),c(i)-1))
Next i
For i = 1 To n
List2.AddItem " " & class(d(i)) & " "& sname (d(i)) & " " & score(d(i))
Next i
End Sub
Private Sub px(head As Integer, tail As Integer)
Dim i As Integer, j As Integer, t As Integer
For i = head To tail - 1
For j = tail To i + 1 Step -1
If Then
t = d(j): d(j) = d(j - 1): d(j - 1) = t
End If
Next j
Next i
End Sub
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 = Text1.Text:n = Len(s)
'按s中字符顺序从左到右依次存入到数组a中,代码略
i = 1
Do While i <= n - 1
t = ①
For j = n - 1 To i Step -1
a(j + 1) = a(j)
Next j
②
i = i + 1
Loop
For i = 1 To Len(s)
Text2.Text = Text2.Text + ③
Next i
Private Sub Command1_Click()
Const jz = "0123456789ABCDEF"
Dim d As Integer, r As Integer, s As String
d = Val(Text1.Text)
s = ""
Do While d > 0
Loop
Label1.Caption = "十六进制结果是" + s
End Sub
①d=d\16 ② s=Mid(jz,r+1,1)+s ③ s=s + Mid(jz,r,1) ④ r=d Mod 16
PRIVATE SUB FORM_CLICK( )
S=0
FOR I= 1 TO
X=VAL(INPUTBOX(“请输入成绩”))
NEXT I
END SUB
n=36
s=0
for i in range(n):
j=9
num[j]+=1
while num[j]==2:
num[j]=0
j-=1
num[j]+=1
for i in range(10):
s+=num[i]
print(s)
执行此代码后,变量s的值为( )
|
def fib(m):n1=1 n2=1 for i in range(3,m +1): t = n1 + n2 n1 = n2 n2 = t return t Print(fib(5)) |
运行结果是:
s=1
a(1) = 1
For i=2 To 6
a(i) =2*i+a(i-1)
If I Mod 2=0 Then
a(i)=a(i)+1
End If
s= s+ a(i)
Next i
Text. Text = Str(s)
程序运行时,单击按钮Command1后,文本框Text1中显示的内容是( )
s=0
for i in range(9):
if i%3==0:
s+=i
print(s)
有四个嫌疑人甲乙丙丁涉嫌偷盗,其中一人是小偷。甲说“不是我”,乙说“是丙”,丙说“是丁”,丁说“丙在冤枉我”。若他们中只有一人说了假话,请编程判断谁是小偷。(注:在Python运算中,True的值为1,Fa1se的值为0)
运行输出结果是
的Visual Basic程序段是( )
For i=1 To 49
Sum = Sum+i/(2 * i- 1)
Next i
B . Sum=0For i=1 To 99
Sum=i/(2*i-1)
Next i
C . Sum=0i=1
Do While i<= 50
Sum = Sum+i/(2*i- 1)
i=i+1
Loop
D . Sum=0i=1
Do While i<= 50
Sum= Sum+i/(2 * i- 1)
Loop
请填空完善该程序,实现功能:按程序提示依次输入行和列的数字,则按行列打印由“*”组成的矩形。例如,按提示输入:
请输入行数:3
请输入列数:5
屏幕将打印以下图形:
a=int(input("请输入行数:"))
b= ①
for i in range( ② ):
for j ③
print( ④ , end=' ') #end=' '表示接上一个输出项后输出,不换行
print( )
from random import randint
a=[0]*6
for i in range(6):
a[i]=randint(1, 10)
for i in range(6):
if a[i]%2==0 and i%2== 0:
a[i] += 1
elif i%2==1:
a[i]=a[i]+a[i- 1]
print(a)
程序运行后,输出结果可能是 ( )