X=16
If X<0 then
Y=abs(X)
Else
Y=sqr(X)
End if
Dim a(1 To 6)As Integer
Randomize
a(1)=Int(Rnd*2)+1
For i=2 To 6
a(i)=Int(Rnd*i)*2+1
If a(i)< a(i-1)Then
a(i)= a(i)+ a(i-1)
End If
Next i
执行该程序段后,数组元素a(1)到a(6)的值可能是( )
⑴把该整数的数字顺序颠倒,求得该数的逆序数;
⑵将该整数和其对应的逆序数相加;
⑶若相加结果不是回数,则将结果作为新的整数,返回步骤⑴。
小林按照上述算法,设计了验证回数猜想的VB程序(猜想次数不超过10次),程序功能如下:在文本框Text1中输入一个正整数,单击“验证”按钮(Command1),获取文本框Text1中的数,当该数不是回数时,采用回数猜想的方法进行验证,并在列表框List1中输出每次验证的过程,若验证成功或验证次数超过10次,则停止验证,最后在列表框List1中输出验证结果。程序运行效果如图所示。
实现上述功能的VB程序如下:
Private Sub Command1_Click()
Dim t As String, a As Long, b As Long
Dim count As Integer ‘count用于存储回数猜想的验证次数
t = Text1.Text
count = 1
Do While Check(t) = False And count <= 10
a = Val(t)
①
c = a + b
List1.AddItem Str(a) & " +" & Str(b) & " =" & Str(c)
count = count + 1
t = c
Loop
If Check(t) Then
List1.AddItem "验证成功!"
Else
List1.AddItem "10次内未验证成功!"
End If
End Sub
' 自定义函数Turn
Function Turn(x As String) As Long
Dim s As String, i As Integer
s = ""
For i = Len(x) To 1 Step -1
s = s & Mid(x, i, 1)
Next i
Turn = ②
End Function
‘自定义函数Check,检查x是否为回文数
Function Check(x As String) As Boolean
Dim i As Integer
Check = True
For i = 1 To Len(x) \ 2 Step 1
If Mid(x, i, 1) <> ③ Then Check = False mid(x,len(x)+1-i,1)
Next i
End Function
① ② ③
Dim a As Integer, b As Integer
a=Len("China")
b=a-2
If a Mod b=2 Then a=a^2 Else a=b^2
该程序段运行后,a的值为( )
编写VB程序,实现上述算法。程序功能如下:运行程序时,在列表框List1中显示数组a中的原始数据,并在列表框List2中输出去重后的数组a中的数据,即相同的数据仅保留一个。同时在标签Label1中显示删除的数据总个数,运行效果如图所示,程序代码如下:
Const maxn=10
Dim a(1 To maxn)As Integer
Private Sub Form_Load( )
´maxn个数据在数组a中,并在列表框List1中显示
End Sub
Private Sub Command1_Click( )
Dim i As Integer, n As Integer ‘n用于存储当前查找的数字长度
Dim j As Integer, key As Integer ‘key用于存储本次查找的关键字的数据位置
key=1:n=maxn
Do While key<=n
i=n-1
Do While
‘①
i=i-1
Loop
If i=key Then ‘找到重复数据,删除;未找到,设定下一查找关键字
key=key+1
Else
For j=i To n-1
a(j)=a(j+1)
Next j
n=n-1
End If
Loop
For i= 1To n
List2.AddItem a(i)
Next i
Labell.Caption="共删除重复数据:"&___________&"个"
End Sub
以下VB程序在a数组中保存了下一个要报数的人的编号,即若。(w)=p,则表示当第w个人报过数2后,下一个要报数的是第p号。程序在列表框Listl中输出了依次出圈的人的编号,在标签Label1中输出了最后剩下的人的编号。请完善程序。
Private Sub Command1_Click( )
Dim i As Integer, n As Integer, w As Integer, num As Integer
Dim a(1 To 100)As Integer, t As Integer
n=Val(Text1.Text)
For i=1 To n-1
a(i)=i+1
Next i
a(n)=1
w=n ‘变量w表示当前检查的是第w号数组元素,即从第n号开始检查
t=0 ‘变量t用以模拟报数
Do While ①
num=a(w) ‘当前报数的人的编号
t=t+1
If t=3 Then
List1.AddItem Str(num)
a(w)= ②
t=0
Else
③
End If
Loop
Label1.Caption=Str(w)
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
|
位置 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
数据 |
64 |
67 |
45 |
145 |
269 |
119 |
1275 |
Const n=97
Dim d(0 To 96)As Integer,h(0 To 96)As Integer
Dim m As Integer ‘变量m为数据个数
Private Sub Command1_Click( ) ‘数据存储
Dim i As Integer, t As Integer
‘从数据库读取数据并先存储在数组d中,代码略
List1.Clear
For i=0 To n-1
h(i)=-1 ‘数组元素初始化
Next i
For i=0 To m
①
Do While h(t)<>-1
t=(t+1)Mod n
Loop
h(t)=d(i)
Next i
For i=0 To n-1
List1. AddItem Str(i)&""& Str(h(i))
Next i
End Sub
Private Sub Command2_Click( ) ‘数据查找
Dim x As Integer, y As Integer
x=Val(Text1.Text)
y=x Mod n
x=1
Do While ②
z=z+1
y=(y+1)Mod n
Loop
If h(y)=x Then
Label2.Caption= "共查找了 "&Str(z)&"次,在第"&Str(y)&"个位置找到"
Else
Label2.Caption="共查找了" &Str(z)&"次,没有找到"
End If
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
s = Text1.Text : sum = 0
c = 1 : j = 0
For i = 1 to len(s)
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
j = j + 1
Else
If c mod 2 = 1 then sum = sum + Val(Mid(s,i-j,j))
j=0 : c = c + 1
End If
Next i
Label1.Caption = Str(sum)
在文本框Text1中输入“20a20b1c29d9”,执行该段代码后,标签Label1中的结果是( )
Dim i As Integer, sum As Integer, a(0 To 7) As Integer
Dim s As String , ch As String , num As String
s="2-3-4-5-6-7-0"
sum=1:num=""
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch>="0" And ch<="9" Then
num=num+ch
Else
sum=sum*Val(num)
a(Val(num))=Val(num)
End If
Next i
Text1.Text=Str(sum)
执行该程序段后,下列说法正确的是( )
样例1:
输入: 2-163-91475-4
输出:正确
样例2:
输入: 2-163-91475-5
输出:错误
s=input("输入物品代码: ")
a=[ ]
for i in range(0, 13) :
if
a. append(int (s[i])) #append( )函数用于在列表末尾添加新的对象
sum=0
for i in range(0, 9):
sdm=sum%10
if sdm== ydm :
print("正确")
else:
print("错误" )
s=0:t=0
For i=1 To 5
If a(i)-a(i+1)<t Then
t=a(i)-a(i+l)
s=s+1
End If
Next i
数组元素a(1)到a(6)的值依次为“4,5,3,2,7,5”,执行该程序段后,变量s的值为( )
m=1
n=2
if true then print m else print n
Dim a(1 To 15) As Integer, num As Integer, s As String
'生成数组a,a(1)=73,a(2)=58, a(3)=62, a(4)=36…代码略
Private Sub Command1_Click()’对数组进行排序
num = 5: k = 1: f = 1
For i = 1 To num
k = k + i
For m = k - i To ①
For n = k - i To 2 * k - 2 - i - m
If ② Then t = a(n): a(n) = a(n + 1): a(n + 1) = t
Next n
Next m
f = f * (-1)
Next i
'将处理后的数组,以金字塔形显示,代码略
End Sub
i = 1: L = 0: R = n + 1
Do While i < R
If a(i) < k1 Then
L = L + 1
If L <> i Then tt = a(i): a(i) = a(L): a(L) = tt
i = i + 1
ElseIf a(i) > k2 Then
R = R - 1
tt = a(i): a(i) = a(R): a(R) = tt
Else
i = i + 1
End If
Loop
则执行上述代码后,下列说法正确的是( )
k=1 :ch= Mid(s, 1,1)
For i=2 To Len(s)
If k=0 Then
ch = Mid(s,i,1):k= 1
Else
If ch = Mid(s,i,1) Then
k=k+1
Else
k=k-1
End If
Next i
变量s分别取下列值并运行程序段后,ch的值不为"Q"的是( )
Dim a(0 To 10) As String
s= Text1.Text
a(0)= "": a(1)= Mid(s, 1, 1):t= 1
For i= 2 To Len(s)
If t>= 1 And Mid(s, i, 1)= a(t) Then
t=t- 1
Else
t=t+ 1: a(t)= Mid(s, i, 1)
End If
Next i
运行程序段,在文本框Text1中输入以下字符串,运行后变量t的值与其它三项不同的是( )
俗话说日有所进,月有所长,假设每个人的初始能值是1,经过一天的努力学习和工作后,能力会比之前增长1%。
如果周一到周五努力学习提升能力,而周末休息,且休息一天能力就降低1%。时通过取余运算来判断某一天是学习日还是休息日,如果余数是0或者6,那么这一天就是休息日;余数是其他数值时,余数是其他数值时,这一天是学习日。
请完善程序,计算两种情况下,一年后能力值增长情况。
#天天向上
dayup=1 #设置dayup为能力值, factor为能力变化幅度
factor=0.01
for i in range(0,):
dayup = * (1+factor)
print("天天向上的能力值:%.2f" % dayup)
#五上二下
dayup=1
for i in range():
if in [6, 0]: # 判断是否为休息日,是则能力下降;否则能力上升。
dayup = dayup*(1-factor)
else:
dayup = dayup*()
print("向上5天向下2天的能力值:%.2f" % dayup) #打印结果
。 小王用一个字符串记录了甲选手多局比赛数据,其中有一处错误,位于连续多个“0”的最后一个。为了找出错误,小王的处理方法如图a所示,对示例中疑似错误位置6和20分别修改数据,并统计每局比分。他编写了VB程序,功能如下:在窗体Form l的文本框Text l中输入记录数据,单击“分析”按钮Command 1,在列表框List 1中输出修改位置以及修改后每局的比分。程序运行界面如图b所示。
| 图a | 图b |
Private Sub Command 1_Click( )
Dim sp As String, s As String s ‘s存储甲选手多局比赛的记录数据, 长度小于50
Dim a(1 To 50)As Integer, e(1 To 20)As Integer
Dim i As Integer, j As Integer, k As Integer, n As Integer, m As Integer
Dim f1 As Integer, f2 As Integer
s=Text 1.Text
n=Len(s)
For i=2 To n
a(i)=Val()
Next i
m=0 : i=1
Do While i<=n
k=i
Do While a(i)=0 And i<=n 找出疑似错误位置
i=i+1
Loop
If Then
m=m+1:e(m)=i-1
End If
i=i+1
Loop
For i=1 To m ‘对每个疑似错误位置分别修改数据,并统计每局比分
f1=0 : f2=0
k=e(1)
a(k)=1
sp="" & k &""
For j=1 To n
If a(j)=1 Then f1=f1+1 Else f2=f2+1
If
Then
sp=sp & "/" & f1 &":" & f2
f1=0 : f2=0
End If
Next j
If f1+f2>0 Then sp=sp & "" & f1 & ":"& f2
List 1.AddItem sp
Next i
End Sub