k1 = 1:k2= 10
For i=2 To 10
If a(i) < a(k1) Then
ElseIf a(i) < a(k2) Then
End If
Next i
Text1.Text = Str(a(k1)) + "," + Str(a(k2))
上述程序中方框处可选语句为:
①k1=i
②k2= i
③k2= k1
则⑴⑵⑶处语句依次是( )
import math
a=float(input("请输入方程系数a:"))
b=float(input("请输入方程系数b:"))
c=float(input("请输入方程系数c:"))
d=b*b-4*a*c
if :
x1=(-b+math.sqrt(d))/(2*a)
x2=(-b-math.sqrt(d))/(2*a)
print("方程有两个不同的解",x1,x2)
elif:
x1=-b/(2*a)
print("方程有两个相同的解",x1)
else:
print("方程无解")
For j=7 To 3 Step -1
If a(j-2) > a(j) Then
t=a(j-2): a(j-2)=a(j): a(j)=t
End If
Next j
数组元素a(1)到a(7)的值依次为“1, 4,5,2,7,6,3”,执行该程序段后,元素交换的次数为( )
Dim a(0 To 25)As Integer
s=Text1.Text
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch>=“a” And ch<=“z” Then
m=Asc(ch)-97
a(m)=a(m)+1
End If
Next i
已知数组a中元素的初值为0,若文本框Text1中输入的内容是“One of the most important questions;”,执行该段程序后,数组元素a(14)的值为( )
计算机的管理规则如下:
·对于某人需要的物品数量,若仓库有足够的物品,将直接分配给该人。
·若某人需要的物品数量超过了当前的库存量,仓库会拒绝该人的请求。
管理员希望知道有多少人没有顺利取到物品。
现编写VB程序实现对物品的管理,在文本框Text 1中输入物品库存总量,在文本框Text 2中输入每人所需要物品的数量(以逗号分隔),单击“统计”按钮count,在Label 4中显示一天中没有取到物品的人数。程序设计界面如图所示。
Private Sub count_Click()
Dim sum As Integer,num As Integer
Dim cnt As Integer
Dims As String,chAs String,tmp As String
cnt= 0
sum=Val(Text 1.Text)
s=Text 2.Text
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch=","Then
num=Val(tmp)
If num>sum Then
cnt=cnt+ 1
Else
End If
tmp=""
Else
End If
Next i
Label 4.Caption=Str(cnt)
End Sub
m=a(1):s=0
For i= 2 To 5
If a(i)> m Then m=a(i)
s=s+m
If a(i)<m Then m=a(i)
s=s+m
Next i
数组元素 a(1)到 a(5)的值依次为“1,2,3,1,2”,执行该程序段后变量 s 的值为( )
间隔2张取第6张纸牌,……直到取完为止(如果取的位置超过n,重新从1位置取)。如果有4张纸牌,那么取的纸牌编号依次为1,3,4,2。同样,可以知道每张纸牌的被取走的顺序如下表。
|
序号 |
1 |
2 |
3 |
4 |
|
1 轮次 |
1 | 2 1 | 3 1 | 4 1 |
| 2 轮次 | 2 2 | 2 | 4 2 | |
| 3 轮次 | 3 | 2 3 | ||
| 4 轮次 | 4 |
纸牌被取走顺序也可以理解为纸牌存留的轮次。每次取走一张纸牌后,下一轮第一张纸牌编号为该纸牌的后一张。上述例子中3第二个被取,留存轮次2,下一轮的第一张纸牌为4,剩下的纸牌留存轮次增加。
现在,只要给小九纸牌的数量n,他能通过逆推法快速地计算出取的纸牌编号顺序,方法如下(以n=4为例):
| 逆推得到的纸牌顺序 | 1 | 4 | 2 | 3 |
| 最终得到的纸牌编号 | 1 | 2 | 3 | 4 |
即在第i轮,上一轮纸牌轮次加1,并在后面增加一张轮次为1的纸牌。然后将轮次为1放在最前的位置,最后整体循环向右移动n-i次。直到n轮后,可知每张纸牌被取走的顺序,根据此顺序,得到每次取走纸牌的编号。
| 轮次 | 数组 | 1 2 3 4 |
| 1 | a(1)=1 | 1 |
| 2 | ①前一轮所有值加1 ②第二位增加数值1 ③将轮次为1的数放在最前 ④整体右移动2位 | 2 2 1 1 2 1 2 |
| 3 | ①前一轮所有值加1 ②第三位增加数值1 ③将轮次为1的数放在最前 ④整体右移动1位 | 2 3 2 3 1 1 2 3 3 1 2 |
| 4 | ①前一轮所有值加1 ②第四位增加数值1 ③将轮次为1的数放在最前 ④整体右移动0位 | 4 2 3 4 2 3 1 4 2 1 4 2 |
根据以上算法小九编写了如下VB程序,请回答下列问题。
Dim n As Integer
Dim a(1 To 100) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer,k As Integer
Dim ans As String, x As Integer
n = Val (Text1. Text)
a(1) = 1
For i=2 To n
For j=1 To i-1
Next j
j=i
Do While j>1
a(j)=a(j-1)
j=j-1
Loop
a(1) = 1
For j=1 Ton - i
k = a(1)
a(x) = k
Next j
Next i
ans =“”
For i=1 Ton
ans = ans + Str(a(i))
Next i
Label1. Caption =“序列为:”+ ans
End Sub
Function yd(i As Integer) As Integer
Dim j As Integer, tmp As Integer
For j=i To 2 Step -1
tmp=j+1
If tmp > i Then
a (tmp) = a(j)
Next j
yd=j+1
End Function
实现上述功能的VB程序如下,请回答下列问题:
Dim xn(1 To 50) As String, sg(1 To 50) As Integer
Dim n as integer, i as integer, j as integer, ch as string, t1 8s string, t2 as integer
Private sub form_load( ) ‘把数据表中姓名和身高分别存储到数组xm( )和sg( ),代码略
‘按身高从低到高对学生数据进行排序,代码略
List1.Clear
List1.AddItem“第一组”+“第二组”+“第三组”+“第四组”
List1.AddItem
“------------------------------------------------------------”
‘将排序好的学生姓名按6行8列的格式输出在列表框list1中
For i=1 To n
ch=ch+xm(i)+””
If i Mod2=0 Then ch=ch+””
If Then
List1.Addltem ch
ch=””
End If
Next i
End Sub
Private Sub Com1_Click( )
Dim a(1 To 50) As String, b(1 To 50) As String
Dim st As String
‘下面进行组与组之间的调换,调换后的数据保存在数组a中
For i =1 To 6
For j=1 To 8
a((-1)*8+j)=
Next j
Next i
‘下面进行同桌之间互换位置,互换后的数据保存在数组b中
For i=1 To 6
For j=1 To 8
If j Mod2=1 Then
b((-1)*8+j)=
Else
b((i-1)*8+j)=a((-1)*8+j-1)
End If
Next j
Next i
‘在列表框List2中输出轮换后的结果,代码略
‘下面进行数据重新赋值,为下一次轮换做准备
For i=1 To 48
xm(i)单b(i)
Next i
End Sub
L = [1,-2,3,7,-8,-9,10]
j=len(L)-1
i = 0
k = 0
while i<j:
while L[i]>0:
i=i+1
while L[j]<0:
j=j-1
if i<j:
k = L[i]
L[i]=L[j]
L[j] = k
print(L)
n=30
s=0
for i in range(2,n):
if n%i==0:
s=s+i
print(i)
程序运行后输出结果是:
|
内码(十六进制) |
CA |
B1 |
|
二进制 |
11001010 |
10110001 |
|
后5位十进制 |
10 |
17 |
|
前3位十进制 |
6 |
5 |
|
加密结果 |
10,6,17,5 |
|
按照上述规则,小明设计了一个解密的VB程序,功能如下:单击“解密”按钮,程序依次将文本框Text1中的字符提取,进行解密处理,并输出在文本框Text2中,程序效果如图a所示,请回答下列问题
Private Sub Command1_Click()
Const n = 100
Dim s As String, ch As String, nm As String
Dim p As Integer, i As Integer, k As Integer, t As Integer Dim a(1 To n) As Integer
s = Text1.Text p = 0: k = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
Else
If k Mod 2 = 1 Then
Else
a(k+1) = p
End If
k = k + 1:p = 0
End If
Next i
a(k + 1) = p * 32 + a(k)
For i =
nm = nm + dtoh(a(i))
Next i
Text2.Text = nm
End Sub
Function dtoh(x As Integer) As String Const
st1 = "0123456789ABCDEF"
Do While x > 0
x = x \ 16
Loop
End Function
print("请输入3个数:")
x=int(input("x="))
y=int(input("y="))
z=int(input("z="))
temp=0
if x>y:
temp=y
y=x
x=temp
if x>z:
temp=z
z=x
x=temp
if y>z:
temp=z
z=y
y=temp
print("这3个数新序列是:",x,y,z)
s = input("请输入字符串:")
i = int(input("请输入待删除字符是第几位:"))
n = len(s)
if i < 1 or i > n:
result = "输入错误"
elif i == 1:
result = s[1:]
elif i < n:
elif i == n:
result = s[:-1]
print(s,"删除第",i,"位后的结果是",result)
则程序中划线处应填入的语句是( )
s=0:k=0
For i=1 to 7 step 2
If i<=1 then
k=k+1
Elseif i<=2 then
k=k+2
Elseif i<=3 then
k=k+3
End if
s=s+k
Next i
该程序段运行后,s值是( )
Private Sub Command1 Click)
Const n=9 '总人数
Dim b(1 Ton) As Integer
Dim k As Integer, i As Integer, p As Integer, cnt As Integer, pre. p As Integer
k =Val(Text1. Text)
For i= 1 Ton
b(i)=iModn+1
Next i
p = n:i = 0:cnt=0
Do While i<n
pre_p = p
p= ①
cnt=cnt+1
If cnt=k Then
List1. AddItem Str(p)
b(pre_p) ②
cnt=0
i= i+1
End If
Loop
End Sub
Dim i As Integer, sum As Integer
Dim a(1 To 10) As Integer
sum=0
For i=1 To 10
a(i) = i+5
If a(i) Mod 3=0 Then sum=sum+a(i)
Next i
Text1. Text = Str(sum)
该程序段运行后,文本框Text1中显示的内容是( )
m= Text1. Text: s=" "
If m>= "a" And m<= "z" Then init= Asc("a")
If m>= "A" And m<= "Z" Then init= Asc("A")
n= Asc(m) - init +1
For i=1 To
If i <= n Then
s=s+
Else
s=s+
End If
Next i
Label2. Caption=s
上述程序中方框处可选语句为:
①12*n-1 ②2*n ③Chr(Asc(m)+i-n) ④Chr(init+2 * n- i- 1)
则(1)(2)(3)处语句依次是( )
n=int(input("请输入一个正整数"))
d={}
c=0
m=0
while n>0:
x=n % 10
if x not in d:
d[x]=1
else:
d[x]=d[x]+1
if d[x]==1:
c=c+1
n=n // 10
print(c)

n = int(input("请输入行数:"))
if n % 2 == 0: #保证n的值为奇数
n=n-1 a=[]
for i in range(n):
if i<=n//2:
b=2*i+1 #当在上半部分的时候
else:
#当在下半部分的时候
a.append(" "*w+"&"*b)
for s in a:
请输入行数:9
请输入行数:6
print(s)
上述程序中划线处可选语句为( )
①b=n-2*i+1 ②b=(n-i)*2-1
③w=(n-b)%2 ④w=(n-b)//2