-
1、以下属于常见手机操作系统的是( )。A、Linux B、Windows C、Unix D、Android
-
2、Python中的求余运算符是( )。A、% B、// C、/ D、#
-
3、某款手机小游戏,可以通过晃动手机实现游戏画面的变化,该功能借助的元器件是( )。A、红外传感器 B、屏幕 C、重力传感器 D、蓝牙
-
4、小明利用3D打印机把自己设计的飞机模型打印出来,这里使用的3D打印机属于( )。A、输入设备 B、存储器 C、输出设备 D、控制器
-
5、有n个从小到大排列的整数依次存储在列表nums中,现要求将上述n个数的平方按从小到大的顺序依次存入列表ans中。如nums = [-4,-1,0,3,10],则ans = [0,1,9,16,100]。(1)、实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
# 输入n个数从小到大依次存储到列表nums中,代码略
k = -1
for i in range(n):
if nums[i] < 0:
k = i
else:
break
ans = []
i, j = k, k + 1
while i >= 0 or j < n:
if i < 0:
ans.append()
j += 1
elif j==n:
ans.append(nums[i] * nums[i])
elif :
ans.append(nums[i] * nums[i])
i -= 1
else:
ans.append(nums[j] * nums[j])
j += 1
print(ans)
(2)、若输入nums的数据为[-4,1,4],则输出ans的值为。 -
6、用1~26的二进制值对大写英文字母A~Z进行编码,编码如下表所示:
A
00001
B
00010
C
00011
D
00100
E
00101
F
00110
G
00111
H
01000
I
01001
J
01010
K
01011
L
01100
M
01101
N
01110
O
01111
P
10000
Q
10001
R
10010
S
10011
T
10100
U
10101
V
10110
W
10111
X
11000
Y
11001
Z
11010
小明使用该编码对由大写字母组成的明文字符串进行加密,加密算法如下:
l依次将明文中每个字符转换为其对应的二进制编码;
l依次将密钥中每个字符转换为其对应的二进制编码;
l依次取出密钥的每个二进制位与原文的二进制位进行异或运算(若密钥长度不够,则循环重复使用),得到的结果即为密文编码;
l二进制位异或运算原则:1
1=0,0
0=0,1
0=1,0
1=1
例如,明文:HELLO,密钥:ZHE,则按上述方式进行加密:
明文字符
H
E
L
L
O
密钥字符
Z
H
E
Z
H
明文编码
01000
00101
01100
01100
01111
密钥编码
11010
01000
00101
11010
01000
密文编码
10010
01101
01001
10110
00111
(1)、若原文为“HUI”,密钥为“TZ”,则密文编码为。(2)、实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。def ctob(c): # 将一个字符转换为其对应的5位二进制编码
n =
ans = ""
for i in range(5):
r =
n = n // 2
ans = str(r) + ans
return ans
def xor(s1, s2): # 将二进制数s1和s2进行异或运算
ans = ""
for i in range(len(s1)):
if :
ans += "0"
else:
ans += "1"
return ans
s = input("请输入明文(大写字母):")
key = input("请输入密钥(大写字母):")
ans = ""
for i in range(len(s)):
s1 = ctob(s[i])
k =
s2 = ctob(key[k])
b = xor(s1, s2)
ans = ans + b
print("密文编码为:", ans)
-
7、寻找素单词。素数是指大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。例如,2,3,5,7等是素数。本题输入一个单词,每个单词由小写字母组成。每个字母对应一个特定的值,字母a对应1,字母 b对应2,以此类推,字母z对应26。如果这个单词的字母值的总和是素数,则这个单词是素单词( prime word)。请编写程序,判定一个单词是否为素单词。(1)、实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
def isprime(n): #判断n是不是素数
for i in range(
):
if n%i==0:
else:
return True
def strsum(word): #统计单词的字母值总和
dic={"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9,"j":10,
"k":11,"l":12,"m":13,"n":14,"o":15,"p":16,"q":17,"r":18,"s":19,
"t":20,"u":21,"v":22,"w":23,"x":24,"y":25,"z":26}
n=0
for ch in word:
return n
word=input("请输入一个单词:")
s=strsum(word)
if flag:
print("这是一个素单词")
else:
print("这不是一个素单词")
(2)、下列选项中不可以填入加框处的代码是 (单选,填字母)。A、2,n B、2,n+1 C、2,int(n**0.5)+1 D、2,n//2+1 -
8、有如下Python程序段:
import random
a=[0,0,0,0,0,0]
for i in range(6):
x = random.randint(1, 10)
if i % 2 == 0:
a[i] = 2 * x + 1
elif x % 2 == 0:
a[i] = x // 2
else:
a[i] = x - 1
执行该程序段后,a[0]~a[5]各元素可能的值是( )
A、3,3,9,0,19,8 B、5,0,9,4,13,10 C、9,3,11,5,17,7 D、3,2,7,4,22,6 -
9、计算两数的最小公倍数算法如下:
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
k = 2
Lcd = 1
while a != 1 or b != 1:
if a % k == 0 or b % k == 0:
if
a = a // k
if
b = b // k
else:
print("最小公倍数为:", Lcd)
方框中的代码由以下四部分组成:
①Lcd = Lcd * k ②k = k + 1 ③b % k == 0 ④a % k == 0
则(1)(2)(3)(4)处代码顺序依次为( )
A、③④②① B、③④①② C、④③②① D、④③①② -
10、下面python循环体执行的次数与其他不同的是 ( )
A
B C D i=0
while i<=10:
print(i)
i=i+1i=10
while i>0:
print(i)
i=i-1for i in range(10):
print(i)for i in range(10,0,-1):
print(i)A、A B、B C、C D、D -
11、有如下Python程序段:
# 输入3个整数分别存储到变量a、b、c中,代码略
if a > b and a > c:
maxn = a
elif b > a and b > c:
maxn = b
elif c > a and c > b:
maxn = c
print("a,b,c的最大值为:", maxn)
执行该程序段,输入下列4组测试数据,无法正确输出a、b、c的最大值的是( )
A、10,20,30 B、20,30,10 C、30,10,10 D、10,10,10 -
12、Python表达式7%2**3+abs(19//2-10)*len("123")的值是( )A、2 B、4 C、8 D、10
-
13、在Python中,下列能作为变量名的是( )A、a/b B、2two C、a_b D、for
-
14、在Python中,判断a不等于0且b不等于0的条件表达式是( )A、not a == 0 or not b == 0 B、not (a == 0 or b == 0) C、not(a == 0 and b == 0) D、a != 0 or b != 0
-
15、某算法的部分流程图如图所示,执行这部分后,下列说法不正确的是( )A、a的值为9 B、b的值为17 C、循环条件b<=15?共判断4次 D、当第3次判断循环条件b<=15?时,b的值为9
-
16、下列关于大数据的说法,正确的是( )A、分析数据时更注重事物的因果关系 B、大数据要分析的是全体数据,而不是抽样数据 C、数据产生的速度快,但处理的速度慢 D、大数据蕴含的价值巨大,价值密度高
-
17、已知n是一个6位二进制数1■11■1,其中有两位数字模糊不清。下列数中,可能与它相等的是( )A、49D B、64D C、2DH D、3CH
-
18、下列关于编码的说法,正确的是 ( )A、计算机中的汉字也是采用二进制进行编码的 B、模拟信号是以离散的、不连续的物理量形式存在的 C、将模拟声音数字化需要经过采样、量化、编码三个过程,该过程为数模转换 D、对某段声音进行数字化,量化值的范围是0-256,则量化位数最少是8 位
-
19、下列关于数据的说法,不正确的是( )A、数据的表现形式只能是数字 B、可以通过网络爬虫、传感器等方式自动采集数据 C、计算机数据的管理经历了人工管理、文件管理、数据库管理三个阶段 D、对数据进行加密可以提高数据的安全性
-
20、某工厂生产的产品包含n个(编号为0~n-1)组件,其组装可由多名工人共同协助完成。组装时每个组件都不可遗漏并能按序完成,有些组件存在前置组件(以下简称“前置”),即安装有先后顺序。例如,某产品有6个组件,如下图a所示,组件3的前置是组件1和组件2,即安装组件3需要在组件1和组件2完成之后。若0~5号组件的组装所需单位时间分别为2,5,2,4,3,5,则在工人数量不限的情况下,所有组件安装完成最短需要14个单位时间。
图a
为了梳理产品组件的组装顺序,并计算所有组件安装完成所需的最短时间,编写程序模拟组装过程:先同时组装前置总数为0的组件,完成后更新每个组件的前置总数,再重复以上步骤,直至所有组件安装完毕,程序运行结果如下图b所示,请回答下列问题:
图b
(1)、图a所示产品的1号组件组装时长若缩短为3个单位时间,其它时间保持不变,则所有组件安装完成所需最短时间为个单位时间。(2)、定义如下cal(a, n)函数,参数a列表的每个元素包含两项,a[i][1]是组件编号,a[i][0]是a[i][1]的前置编号,例如a中某个元素值为[2,3],表示组件2是组件3的前置。该函数的返回值是列表s和列表pre,其中s记录所有组件的相互关系,pre[i]记录初始情况下组件i的前置总数。Def cal(a, n):
pre=[0]*n
s=[[0 for i in range(n)] for j in range(n)] #创建n×n的二维数组s,元素初始值为0
for i in range(len(a)):
x, y=a[i][0], a[i][1]
s[x][y]=1
pre[y]=
return pre, s
(3)、定义如下proc(n, s, pre)函数,该函数的返回值是列表v, v[i]代表从开始到组件i完成组装所需的最短时间。请在划线处填入合适的代码。def proc(n, s, pre):
head=tail=0
que=[0]*n
for I in range(n):
if pre[i]==0:
que[tail]=i
tail+=1
while
:
x=que[head]
head+=1
for i in range(n):
if s[x][i]==1:
pre[i]-=1
if pre[i]==0:
que[tail]=i
tail+=1
v[i]=max(v[i], )
return v
"""
组装编号0~n-1的单个组件所需时间存入t列表,组件前置关系存入a列表,如第15题图a所需时间t=[2, 5, 2, 4, 3, 5];a=[[0, 2], [2, 3], [1, 3], [3, 5], [3, 4]]
"""
n=len(t)
print(’编号为0~’+str(n-1)+’的组件组装所需单位时间分别为:’, t)
v=t[:]
pre, s=cal(a, n)
v=proc(n, s, pre)
data=[0]*n
result=[i for I in range(n)] #创建列表result=[0,1,2,……,n-1]
for i in range(n):
data[i]=v[i]-t[i] #data[i]表示组件i开始安装时间
for i in range(n-1): #按组件开始安装时间升序排序,开始安装时间相同时按组件序号升序
for j in range(n-1-i):
if data[result[j]]>data[result[j+1]]:
print(‘组件组装顺序:’, result, ‘, 安装完成所需最短时间:’, max(v))
(4)、以下选项与题(3)加框处代码功能相同的是___________(多选,填字母)。A、head!=tail B、head<n C、tail<=n D、len(que)>0