q=[0]*6
q[0]=1
head=0; tail=1
while tail<len(q)=1:
x=q[head]
if x%2==0:
q[tail]=x//2
tail+=1
else:
q[tail]=x*2
q[tail+1]=x*3
tail+=2
head+=1
程序运行后 , tail-head的值为( )
import random
a = [1,3,4,6,6,6,9,9,11,12]
key = random.randint(2,5) * 2
i,j = 0,9
while i <= j :
m = (i + j) // 2
if key < a[m]:
j = m - 1
else:
i = m + 1
print(j)
执行该程序段后,输出的结果不可能是( )
A .2 B .3 C . 5 D . 7
def wordlist(data,info) :
n = len (data)
for i in range(n):
data[i].append(-1) #data[i]追加一个元素-1
for i in range(n):
d = data[i][0]
if info[k] == -1:
info[k] = i
else:
head = info[k]
q = head
while :
p = q
q = data[q][2]
if q != head:
data[p][2] = i
data[i][2] = q
else:
data[i][2] = head
return data,info
def searchword(data,info,key) :
k = ord(key [0]) - ord("a")
head = info[k]
p = head
while p != -1:
if data[p][0] == key:
return
p = data[p][2]
return "没有找到该单词"
读取词汇数据库,存入列表 data 中,列表的每个元素包含 2 个数据项,分别为英文单词和中 文翻译,如 data = [[‘audio ’,‘音频 ’], [‘binary ’,‘二进制数 ’] …], 数据读取 存入的代码略。
'''
info = [-1] * 26
data,info = wordlist(data,info)
key = input("请输入查找单词:").lower () #转化为小写字母
res = searchword(data,info,key)
print(key, "查找结果是:", res)
a=['1','14','5141','91','9810']
key=input()
i=0;j=len(a)-1
while i<=j:
m=(i+j)//2
if a[m]==key:
break
elif a[m]<key:
i=m+1
else:
j=m-1
b=''
for i in range(len(a[m])):
b+=chr(ord(a[m][i])-49+97)
print(b)
已知ord(‘a’)的值为97,ord(‘1’)的值为49,若输入的key值为“1919810”,则程序运行后输出为( )
d= [1,3,8,15,22,26,28,40,46,61,80]
i=0;j=len(d)-1
while i<=j:
m= (i+j)//2
if key<d[m] :
j=m-1
else:
若 key 值为 22,程序运行结束后,加框处语句执行的次数为( )
p=")!@#$%^&*("
c="cra2edu"
t=""
for i in range(len(c)//2+1):
if i%2==0:
t+=c[len(c)-i-1]
elif c[i]>="0" and c[i]<="9":
t+=p[int(c[i])]
else:
t+=c[i]
print(t)
程序运行后,输出的结果是( )
例如,在右侧5×5的方阵中可以产生[1,3,4,12,21,234,243,324,342,423,432]共11个数。其中数“234”的产生过程可以是:选择第4行第2列为起点,第一步吃掉2,接着往右走三步吃掉3,再往右走一步穿越到对面的4,吃掉它成为“234”,共五步。其中“1234”或“123”等整数是不可能出现的。
请回答以下问题。
dx = [0, 1, 0, -1] # 模拟贪吃蛇往四个方向游走时行号变化的数组
dy = [1, 0, -1, 0] # 列号变化数组
n = int(input()) # 方阵的大小
a, b = [], []
for i in range(n):
s = input().strip().split() #方阵中的一行数据,“.”号和数字字符都以空格分隔
a.append(s)
def calc(i, j, p):
x, y, res = i, j, 0
if '0' <= a[x][y] <= '9':
res = int(a[x][y])
for i in range(n-1):
x = # 产生新的行号
y = # 产生新的列号(与行号类似),代码略
if '0' <= a[x][y] <= '9':
res = res * 10 + int(a[x][y])
return res
for i in range(n):
for j in range(n):
for k in range(4):
num =
if num > 0:
b.append(num)
print(b) # 输出所有可能能产生的整数(可能会产生重复的整数)
b = [1, 12, 23, 23, 23, 35, 35,146] 输入输出示例: 请输入待查找的整数:23 小于等于23的数共有5个 请输入待查找的整数:31 小于等于31的数共有5个 |
bn = len(b)
for i in range(bn-1):
for j in range( ):
if b[j] > b[j+1]:
b[j], b[j+1] = b[j+1], b[j]
key = int(input("请输入待查找的整数:"))
i, j = 0, bn-1
while i <= j:
m = (i + j) // 2
if :
i = m + 1
else:
j = m - 1
print("小于等于", key, "的数共有", i, "个")
import random
d=[28, 37, 39, 42, 45, 50, 70, 80]
i, j, n=0, len(d)-1, 0
key=random.randint(20, 35)*2
while i<=j:
m=(i+j)//2; n+=1
if key==d[m]:
break
elif key<d[m]:
j=m-1
else:
i=m+1
print(i, j, m, n)
执行该程序段后,下列说法正确的是( )
import random
total=10
num=[0]*total
for i in range(total):
num[i]=random.randint(1,100)
m1,m2=len(num)-1,len(num)-1
for i in range(len(num)):
if num[i]>num[m2]:
m1=m2;m2=i
elif num[i]>num[m1]:
m1=i
print(m2,m1)
假设当前num=[47, 4, 46, 75, 52, 6, 71, 81, 34, 11],则该程序段运行后的输出结果为( )