●变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)<a(i-1))和持平段(a(i)=a(i-1))。数组a中的n个元素可构成n-1个依次排列的变化段。
●波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个,终点是峰顶后所有连续下降段中的最后1个。
●对称波峰:上升段与下降段个数相同的波峰称为对称波峰。
下图为一组数据的变化段及波峰示意图。
现要求统计数组a各元素依次变化过程中“对称波峰”的个数。小李依据上述描述设计了如下VB程序。请回答下列问题:
Const n=20
Dim a(1 To n)As Integer
Private Sub FormLoad()
‘读取数据,并存储到数组a中。代码略
End Sub
Private Sub Command1_Click()
Dim flag As Integer ‘存储变化段的状态:1表示升;-1表示降;0表示平
Dim count As Integer ‘存储对称波峰的个数
Dim steps As Integer
Dim i As Integer
flag=0:steps=0:count=0
For i= ① To n
If a(i)>a(i-1)Then
If IsSymPeak(flag,steps)Then count count+1
If flag=0 Or flag=-1 Then
②
Else
steps=steps+1
End If
flag=1
EIself a(i)=a(i-1)Then
If IsSymPeak(flag,steps)Then count=count+1
steps=0
flag=0
Else
steps=steps-1
flag=-1
End If
Next i
If IsSymPeak(flag,steps)Then count=count+1
Text1.Text=Str(count)
End Sub
Function IsSymPeak(flag As Integer,steps As Integer)As Boolean
If ③ Then
IsSymPeak=True
Else
IsSymPeak=False
End If
End Function
① ② ③
s = "2019appreciate": sum = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" Then
m = Asc(ch) - Asc("a") + 1
a(m) = a(m) + 1
End If
Next i
For i = 1 To 10
If a(i) > 0 Then sum = sum + 1
Next i
数组a各元素的初始值都为0,执行该程序段后,变量sum的值为( )
For i= 1 To 10
b(i)=0
Next i
For i= 1 To 5
For j= 1 To 10
If b(i) <a(j) Then
b(i)=a(j)
t=j
End If
Next j
a(t)=0
List 1.Additem Str(b(i) )
Next i
其中数组元素a(1)到a(10)的值依次为“25,42,53,66,77,83,98,14,38,99”,执行程序后,在列表框List 1中依次输出的数据是( )
Private Sub Form_Click()
s = 11 \ 3 + 11 Mod 3
Print s
End Sub
Dim a(1 To 100) As Integer, n As Integer
Function moving( start As Integer, finish As Integer, st As Integer)
'将元素 a(finish)插入到元素 a(start)和元素 a(start+st)之间
Dim i As Integer, k As Integer k = a(finish)
For i = finish - st To start Step -st a(i + st) = a(i)
Next i a(start) = k
End Function
Private Sub Command1_Click()
Dim head As Integer, end1 As Integer, i As Integer, ans As String
' 将待排序的数存储在数组 a 的 a(1)至 a(n)中,并输入元素个数 n,代码略
head = 1: end1 = n + 1
Do While head < end1
If ① Then
For i = 1 To head - 1
If a(i) > a(head) Then Exit For
Next i
Call moving(i, head, 1)
head = ②
Else
For i = end1 To n
If a(i) < a(head) Then Exit For
Next i
Call moving( ③ )
End1 = end1 - 1
End If
Loop
For i = 1 To n
ans = ans + Str(a(i))
Next i
Text2.Text = ans End Sub 请回答下列问题:
① ② ③
Key = Int(Rnd * 30) * 2 + 41
s = 0: i = 1: j = 10
Do While i <= j
m = (i + j) \ 2
If Key > a(m) Then
i = m + 1: s = 3 * s + 2
Else
j = m - 1: s = 3 * s
End If
Loop
Text1.Text = s
数组a(1)到a(10)的值依次为“2,13,24,31,35,44,45,47,61,101”,执行该程序段后,s的值不可能为( )
a[0]=8 #修改列表第一个元素的值为8,注意列表的索引号从0开始
del a[1 ] #删除列表第二个元素
a.append(9) #在列表尾部添加一个数据元素9
print (a) #打印列表
运行结果:
h = float (input(“请输入身高(单位:米);”))
w = float (input(“请输入体重值(单位:千克):”))
bmi = w/(h*h)
print(“BMI值为:”,中bmi)
import jieba
str="热烈庆祝建党100周年"
fc=jieba.lcut(str)
print(fc)
for i in fc[::1]:
print(i)
已知分词之后的文本输出fc为:['热烈庆祝', '建党', '100', '周年'],则程序运行结束后的结果是( )
建党
100
周年
C . 热烈庆祝建党100周年 D . 年周001党建祝庆烈热a=10
b=20
c=a+b
a=c-a
b=c-b
⑴素数:指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。例如11,它只能被1和11整数,所以11是素数。
⑵回文数:正读和反读都是一样的数字,例如12321,它的正反都是一样,是回文数字。
编写Python程序,实现如下功能,找出100~n中的所有的回文素数(n为>=100的正整数)。
程序代码如下,请回答下面问题:
import math
def prime(n): # 判断 n 是否是素数
i=2
k=int(math.sqrt(n))
while i<=k:
if :
break
i=i+1
return i>k
def rev(n):# 倒转数字
t=0
while :
t=t*10+n%10
n=n//10
return t
n=int(input('请输入整数 n:'))
L=[]
for i in range(100,n+1):
if :
if prime(i)==True:
L=L+[i]
print('100 到 n 中的回文素数:',L)
x = 5 < 3
print( x)
程序的运行后,显示的结果是( )
x=54
y=5
z=x%y
print(“z=”,z)