第三章 算法的程序实现
一、选择题
1.下列能判断变量x是整数的条件表达式是( )
A.x%2==1 B.x%2==0 C.int(x)==x D.random(x)=x
2.下面( )是不合法的标识符?
A.2var B.var2 C._var D._2_
3.有如下Python程序段( )
a=[]
for i in range(100):
if i%10==0:
a.append(i)
则程序执行后,a[1]和a[-1]的值分别是
A.0和100 B.10和100 C.0和90 D.10和90
4.下列程序运行后,结果可能的是( )
import random
list1=[]
i=0
while i<=5:
n=random.randint(10,45)
if n%5!=0:
list1.append(n)
i=i+1
m=random.sample(list1,2)
print(m)
A.[35, 14] B.[33, 24] C.14, 24 D.[23.0, 45.0]
5.假定选拔空军飞行学员时,只有符合身高(T)在165-178cm(含168cm和178cm)、体重(W)在52kg(含52kg)以上条件的学生才有资格报考,则表示该条件的逻辑表达式是( )
A.T>=165 or T<=178 or W>=52
B.T>=165 & T<=178 or W>=52
C.T>=165 and T<=178 or W>=52
D.T>=165 and T<=178 and W>=52
6.下列代码如果从键盘输入7,那运行结果是( )。
varl=input("请输入一个数:")
var2=var1+'0'
var3=int(var2)+3
print(float(var3))
A.703 B.73 C.703.0 D.73.0
7.下列Python表达式中,可以表示x在区间(a,b]内的是( )
A. B.
C. D.
8.如下Python程序段
x = 5 < 3
print( x)
程序的运行后,显示的结果是( )
A.False B.True C.0 D.-1
二、简答题
9.利用for循环,分别计算1--100中奇数的和、偶数的和。
sum1=0
sum2=0
for i in range(1,100):
if i%2==0:
sum1+=i
else:
sum2+=i
print(sum1,sum2)
10.利用python程序设计语言,编写一个输出1-10以内的偶数(包含10)的代码。
三、操作题
11.某加密算法的加密部分Python程序段如下:
def encrypt(msg,key):
result = ""
size = len(msg)
for i in range(0,size):
result = result + msg[(i - key) % size]
return result
msg = input("请输入明文:")
key = int(input("请输入密钥:"))
re = _________
print(re)
(1)请在划线处补充代码。
(2)如果输入的msg为“cdef”,key为3,那么输出的结果为______。
(3)这种加密机制称为____(选填字母:A.置换密码;B.换位密码;C.简单异或密码)。
四、判断题
12.在 Python语言环境下,For循环语句中的循环体在书写时需要缩进,且必须缩进四个空格。 (_____)
13.在运行程序时,先执行主程序再调用函数。(____)
14.下列程序段中,赋值语句s=s+i被重复执行了4次。
s=0
For i in range(3,10,2):
s=s+i (_____)
15.Python中的“=”是赋值运算符,跟数学上的“=”意义不一样。(______)
16.Python是动态语言,变量需要根据其要赋予的值提前定义数据类型。(______)
17.若n=6,m=3,则表达式m+3==n and n-3>=m的值为true。(______)
五、填空题
18.下面程序的运行结果为:_______________________,
s=0
for i in range(1,101):
s+=i
if i == 50:
print(s)
break
19.利用迭代算法解决问题,有三个关键步骤:
确定________;建立迭代________;对迭代过程进行________,这是编写迭代程序必须考虑的问题,不能让迭代过程无休止地重复执行下去。
20.阅读下列程序,写出运行结果
警察抓小偷,有四个嫌疑人甲乙丙丁,其中一人是小偷。甲说“不是我”,乙说“是丙”,丙说“是丁”,丁说“丙在冤枉人”。他们中只有一人说了假话,编程判断谁是小偷。(注:在Python运算中,True的值为1,False的值为0)
persons=[’甲’,’乙’,’丙’,’丁’] for thief in persons: flag =(thief!=’甲’)+(thief==’丙’)+(thief ==’丁’)+(thief!=’丁’) if flag == 3: print(thief)
运行结果是:____________
21.numpy是一个科学计算包,其中包括很多________,如________、矩阵计算方法、________、线性代数等。
22.分析完善程序
求s=3+6+9+... +300值。
解决该问题,可以采用如下两种不同的方法:
请补充完成上述程序:
(1)____________ (2)___________
23.数学可以看到算术表达式:a * b= c,现在有一段程序可以输入乘数和被乘数(默认正整数),并输出上述表达式的效果。例如:输入:3 5 ,输出的结果为:3 * 5= 15。
a=int(input(“请输入正整数:”))
b=int(input(“请输入正整数:”))
c=a*b
print(_______)+ ”*” + _______ “=” ______ )
请将上述缺失的代码补充完整。
试卷第2页,共3页
试卷第1页,共1页
参考答案
1.C
2.A
3.D
4.B
5.D
6.D
7.A
8.A
9.代码解析注释如下:
sum1=0#定义sum1存储偶数和,并赋值sum1=0
sum2=0#定义sum2存储偶数和,并赋值sum2=0
for i in range(1,100):#通过遍历1至100的所有整数,分别计算1至100中的偶数和、奇数和
if i%2==0:#若i是偶数,则把偶数加到sum1中
sum1+=i
else:#若i是奇数,则把奇数加到sum2中
sum2+=i
print(sum1,sum2)#输出结果,偶数和sum1的值为2550,奇数和sum2的值为2500
10.代码1:
for value in range(2,11,2):
print(value)
代码2:
i=2
while i<11:
print(i)
i=i+2
11.encrypt(msg,key) defc A
12.错误
13.正确
14.正确
15.正确
16.错误
17.正确
18.1275
19.迭代变量 关系式 控制
20.丙
21.数学函数 矢量运算 三角函数
22.i*3或3*i i
23.str(a) str(b)+ +str(c)
答案第1页,共2页