算法思路:从乘数的最后一位开始逐个取出来与被乘数相乘,例如635的最后一位5,取出来与被乘数5相乘,得到25,个位数5作为结果存入s字符串,十位数2作为进位,留着加入下一次的乘积中,然后取出3,与5相乘,得到15,但是要加上刚才的进位,所以应该是17,个位数7作为结果存入s(此时结果是75),十位数作为进位1,留着加入下一次乘积…… 。
Private Sub Command1_Click()
dim s as string,s1 as string,s2 as string
dim i as integer,jinwei as integer,d as integer,t as integer
s1 = Text1.Text
s2 = Text2.Text
s = ""
jinwei = 0
For i = Len(s1) To 1 Step -1
d = Val(Mid(s1, i, 1))
t =
s =
jinwei = t \ 10
Next
If jinwei<> 0 Then s =
List1.AddItem s1 &"*"& s2 &"="& s
End Sub
listque=[] #定义列表listque存储订单
x=0
while(x!=4): #当x=!4时,执行循环
print('1. 添加订单')
print('2. 发货')
print('3. 查看订单列表')
print('4. 退出')
x=int(input("输入你的选择:")) #输入选择项
if ① :
y=input("输入订单编号:") #输入订单编号
② #在列表listque中添加订单号
elif x==2:
③ #如果订单列表为空
print("订单列表为空")
else:
print("发货单号:"+listque.pop(0))
elif x==3:
print("等待发货:",listque) #查询列表listque中的订单号
print()
input("运行完毕,请按回车键退出...")
① ② ③
For i=1 To n-1
k=i
If i<>k Then t=a(i):a(i)=a(k):a(k)=t
Next i
框内代码运行结束时,保存最小值的数组元素一定是( )
①老年人(年龄≥60岁)比非老年人优先就诊;
②老年人按年龄从大到小的顺序就诊,年龄相同的按预约顺序就诊;
③非老年人按预约顺序就诊。
小王根据以上规则编写了一个VB程序,通过引入索引数组temp进行排序,使得age(temp(1))≥age(temp(2))≥age(temp(3))…≥age(temp(n))。如图a所示。
图a
图b
程序运行时,病人的数据显示在列表框List1中,单击“就诊排序”按钮Command1,排序结果显示在列表框List2中,程序运行界面如图b所示。
实现上述功能的VB程序如下,请回答下列问题:
Dim pname(1 To 100)As String ‘存放病人姓名
Dim age(1 To 100)As Integer ‘存放病人年龄
Dim num(1 To 100)As Integer ‘存放病人序号
Dim n As Integer
Private Sub Command1_Click( )
Dim temp1(1 To 100)As Integer, temp2(1 To 100)As Integer ‘索引数组
Dim i As Integer, j As Integer, k1 As Integer, k2 As Integer, t As Integer
k1=0:k2=0
For i=1 To n
If age(i)<60 Then
k1=k1+1
temp1(k1)=num(i)
Else
k2=k2+1
temp2(k2)=num(i)
End If
Next i
For i=1 To k2-1
For j=k2 To i+1 Step-1
If ① Then
t=temp2(j):temp2(j)=temp2(j-1):temp2(j-1)=t
End If
Next j
Next i
List2.Clear
List2.Addltem "就诊号 名单 年龄"
For i=1 To k2
List2.Addltem Str(i)&." "&.pname(temp2(i))&"r/&.Str(age(temp2(i)))
Next i
For j=1 To k1
List2.Addltem ② &" "&pname(templ(j)&" "&.Str(age(templ(j)))
Next j
End Sub
Private Sub Form_Load( )
Dim conn As New ADODB. Connection, rs As New ADODB. Recordset
Conn.ConnectionString="Provider=Microsoft. ACE. OLEDB. 12.0;DataSource="&App. Path&"\pdxt.accdb"
conn.Open
Set rs. ActiveConnection=conn
rs. Open"select*from jzmd"
n=0
List1.AddItem"预约号 名单 年龄"
Do While Not rs. EOF
③
num(n)=n
pname(n)=rs. Fields(1)
age(n)=rs Fields(2)
List1. Addltem Str(num(n))&" "&-pname(n)&." "&.Str(age(n))
rs. MoveNext
Loop
rs.Close:conn.Close
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
Private Sub Comd1_Click()
Dim i As Integer, j As Integer, n As Integer
Dim ch As String, s As String, ss As String
s = Text1.Text
n = 0: ss = ""
i = 1
Do While i <= Len(s)
If ch >= "0" And ch <= "9" Then
Else
For j = 1 To n
ss = ss + ch
Next j
n = 0
End If
Loop
Text2.Text = ss
End Sub
Dim s1 As String, s2 As String
s1 = "what doesn't kill you makes you stronger."
s2 = text1.text
i = 1: j = 1
Do While i <= Len(s1) And j <= Len(s2)
If Mid(s1, i, 1) = Mid(s2, j, 1) Then j = j + 1
i = i + 1
Loop
If j > Len(s2) Then
s3 = "true"
Else
s3 = "false"
EndIf
执行该程序段后,s3的值为“false”,则text1输入的文本可能是( )
n=int(input("请输入n值:"))
x=n;y=0
if x>0:
y=y+1
elif x<0:
y=y-1
print (y)
执行上述语句,下列说法不正确的是( )
1)初始时,建立一个空字典,把26个小写字母加入字典中。26个小写英文字母编码为1-26,字母“a”的编码为1,字母“b”的编码为2,其它字母的编码依次增加。
2)从字符串第一个位置开始扫描,若遇到空格(空格用“*”表示),则得到一个单词,截取该单词并存入变量中。
3)若该单词在字典中,则取出该单词在字典中的编码值;否则,依次取出该单词中各字母在字典中的编码值,(编码值之间用一个空格分隔),同时产生该单词的编码(编码为字典中的最大编码值加1),加入字典中。
4)继续扫描字符串,截取单词,并按照步骤(3)的方法进行处理,直至整个字符串编码完毕。字符串“abab”LZW编码过程如图所示。
Dim pos As Integer, a(1 To 100)As String
Private Sub Form_Load( )
'将字母“a”至“z”依次存入数组元素a(1)到a(26)
End Sub
Function judge(ss As String) As Integer '判断字典中是否有ss这个单词
Dim i As Integer judge = 0
For i = 27 To pos
If a(i) =Then judge = i
Exit For
End If
Next i
End Function
Private Sub Command1_Click( )
Dim s As String, i As Integer, j As Integer, k As Integer, ch As String, word As String, result As String, Dim id As Integer, idletter As Integer
s = Text1.Text pos = 26: i = 1
Do While i <= Len(s)
j = i
Do While Mid(s, j, 1) <> " " j = j + 1
If j > Len(s) Then Exit Do
Loop
word = Mid(s, i, j - i)
If Len(word) = 1 Then '单个字母的单词
result = result + Str(Asc(word) -Asc("a") + 1)
Else
id = judge(word)
If id = 0 Then '新的单词
For k = 1 To Len(word) '依次处理该单词中的各个字母编码
ch = Mid(word, k, 1)
Next k
pos = pos + 1 '对该单词编码
a(pos) = word
Else '词典中存在该单词
result = result + Str(id) End If
End If
If j < Len(s) Then result = result + " *"
Loop
Text2.Text = result
End Sub
n =1
For i=2 To 12
If ⑴ Then
n=n+1
⑵
End If
Next i
S=””
For i=1 To n
s=s+Str(a(i))
Next i
Text1.Text = s
上述程序中划线处可选语句为:①a(i)<>a(n) ②a(i)=a(n) ③a(n)=a(i)
则(1)、(2)处语句依次是( )
Const n = 10
Dim a(1 To 10) As Integer, b(1 To 10) As Integer
Dim k1 As Integer, k2 As Integer 'k1,k2为相同数据的前、后次序
Private Sub Command1_Click ()
Dim i As Integer, tmp As Integer, t As Integer
Randomize
List1.Clear
For i = 1 To 9 '随机生成9个不重复数
b(i) = Int(Rnd * 90) + 10
Do While ①
b(i) = Int(Rnd *90) + 10
Loop
Next i
'以下代码为随机选取数组中的1个数作为第10个数字再随机的插入到原数组的1-9位置
K1 = Int(Rnd *9 + 1)
tmp = b(k1)
k2 = Int(Rnd* 9 + 1)
For i=10 To k2+1 Step -1
b(i)=b(i-1)
Next i
b(k2) = tup
For i =1 To n
a(i) = i
List1. AddItem Str(a(i)) +””+ Str(b(i))
Next i
If k1 >= k2 Then
②
t =k1: k1=k2: k2=t
End If
Text1. Text = Str(k1) + Str (k2)
End Sub
Private Sub Command2 _Click ()
Dim i As Integer, j As Integer, k As Integer, t As Integer
List2. Clear
For i=1 To n-1
k=i
For j=i +1 To n
If b(j) < b(k) Then k= j
Next j
If k<>i Then
t=a(k): a(k)=a(i): a(i)=t
t=b(l): b(k)=b(i): b(i)=t
End If
Next i
For i= 1 To n
List2.AddItem Str (a(i)) +"" + Str (b(i))
Next i
i=1
Do While i<=n-1 And b(i)< b(i+1)
i=i+1
Loop
Text2.Text = Str(a(i)) + Str(a(i + 1))
If ③ Then Label1. Caption="稳定" Else Label1. Caption ="非稳定"
End Sub
Function check(x As Integer, y As Integer) As Boolean
Dim j As Integer
check = False
For j= 1 To y-1
If b(j)=x Then
check = True
Exit For
End If
Next j
End Function
① ② ③

游戏规则如下:
1)第1轮,将所有灯都关闭
2)第2轮,将所有偶数(编号为2的倍数的灯打开)
3)第3轮,如果编号为3的倍数的灯开着,则关闭,如果灯关闭着,则打开
4)重复游戏直到第n轮结束
现在给定灯的数目n(5<=n<=200),求最后灯关闭的数目。
编写VB程序,实现上述功能,运行程序,在文本框Text1中输入n盏灯数,单击“确定”按钮Command1,在文本框Text2中显示灯灭掉的数量。程序运行界面如、图所示。
请回答下列问题:
Private Sub Command1_Click()
Dim n As Integer, k As Integer, tmp As Integer, num As Integer
Dim a(1 To 200) As Integer, i As Integer, j As Integer
n = Val(Text1.Text)
For i = 1 To n
a(i) = 1
Next i
For i = 1 To n
Do While tmp <= n
If _ Then
a(tmp) = 0
Else
a(tmp) = 1
End If
Loop
Next i
num = 0
For j = 1 To n
If a(j) = 0 Then num = num + 1
Next j
Text2.Text = Str(num)
End Sub
s="Happy National Day!"
m=____
if m=="Happy":
print("Happy to you!")
elif m=="National":
print("Best Wishes to you!")
else:
print("It's a fine Day!")
s1 = "567898765"
s2 = ""
n = Len(s1) \ 2
For i = 1 To n
If Mid(s1,i,1) < Mid(s1, n + 1, 1) Then
s2 = s2 + Mid(s1, i, 1)
Else
s2 = Mid(s1, n + i, 1) + s2
End If
Next i
Text1.Text = s2
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代码如下,运行效果如图所示。请回答下列问题:
Const n= 5
Dim a(1 To n) As String
Private Sub Form_ Load( )
'将n个字符串分别赋值给数组元素a(1)、a(2)、……、a(n),并在列表list1中显示
'代码略:
End Sub
Private Sub Command1_ Click( )
Dim s As String, i As Integer, j As Integer
Dim m As Integer, k As Integer
Dim flag As Boolean
s = Text1. Text
m = Len(s)
List2. Clear
flag = False
For i=1 To n
k = Len(a(i))
For j=1 To k- m + 1
If
= s Then '①改错
List2. AddItem a(i)
flag = True
Exit For '退出for 循环
End If
Next j
Next i
If
Then '②填空
List2. AddItem“查找无结果”
End If
End Sub
|
类型 |
计算公式 |
结果 |
||
|
有限小数 |
格式 |
a. b |
(a*x+b)/x |
|
|
示例 |
3. 14 |
(3*10^ 2+14)/10 2 |
157/50 |
|
|
纯循环小数 |
格式 |
a. (b) |
(a*(x-1)+b)/(x-1) |
|
|
示例 |
3. (14) |
(3*(10^ 2-1)+14)/(10^2-1) |
311/99 |
|
|
混循环小数 |
格式 |
a.b(c) |
(a*(t-1)*x+ (b*t+c-b))/((t-1)*x) |
|
|
示例 |
3. 14(159) |
(3*(10 3-1)*10 2+(14*10 3+159-14))/(10^ 3-1)*10^2) |
20923/6660 |
|
|
说明: ()内的数字串表示循环节 x=10 Len(b) t=10' Len(c) |
||||
程序运行时,在文本框Text1中输入小数,单击“转化”按钮,输出对应的分数,界面如图所示。
Private Sub Command1_ Click()
Dim s As String, xS As String, zS As String
Dim fz As Long, fm As Long
Dim i As Integer
Dim x As Integer, y As Integer
s = Text1.Text
i=1
Do While Mid(s, i, 1) <> "."
i=i+1
Loop
zs =
xs=Mid(s, i+1)
If not(f(xs)) Then
fm = power (Len(xs))
fz = val(zs) * fm + vas (xs)
Else
If Mid(xs, 1, 1) = "(" Then
xs = Mid(xs, 2, Len(xs) - 2)
fm = power(Len(xs)) - 1
fz = Val(zs) * fm + Val(xs) .
Else
x=0: y=0: i=1
Do While Mid(xs, i, 1) <> "("
i=i+1
Loop
x=i-1
y=Len(xs)-i-1
fm =
fz= Val (Mid(xs, 1, x)) * power(y)+Val (Mid(xs, i+1, y))-Val (Mid(xs, 1, x))
fz=Val(zs)*fm+fz
End If
End If
Label2. Caption = Str(fz / gcd(fz, fm)) + "/"+ Str(fm / gcd(fz, fm))
End Sub
Function gcd (ByVal m As Long, ByVal n As Long) As Long
Dim r As Long
Do While m Mod n<>0
r= m Mod n
m=n
n=r
Loop
End Function
Function f(s As String) As Boolean '循环节判断
'函数返回True代表循环小数,False 不是循环小数,代码略
End Function
Function power(x As Integer) As Long '返回10的x次方
'代码略
End Function
s= Text1. Text '输人的英语短文
t= Text2. Text '要统计的开头字母
b=Len(s): f = True
For i=1 To b
c = Mid(s, i, 1)
If ① Then
n= n+1
②
ElseIf c = "" Or c= "." Then
③
Else
f = False
End If
Next i
Label1.Caption= "以" + t + "为开头的单词个数:" + Str(n)
为实现上述程序,划线处应填入的代码是( )
s1=input("请输⼊明⽂:")
q="1357902468";
s2="" for ch in s1:
if "0"<=ch<="9":
s2+=q[int(ch)]
elif "a"<=ch<="z":
s2+=chr((ord(ch)-ord("a")+2)%26+ord("a"))
else:
print(s2)
s2+=ch
运⾏该程序,输⼊s1的值为“Mike521@qq.com”,则输出结果为( )