测验4: 程序的控制结构
单项选择题
1.哪个选项不符合上述程序空白处的语法要求?
for var in ___:
print(var)
A {1;2;3;4;5}
B “Hello”
C (1,2,3)
D range(0,10)
正确答案 A
for … in … 中 in 的后面需要是一个迭代类型(组合类型),{1;2;3;4;5}不是Python的有效数据类型。
2 哪个选项是以上程序的输出结果?
for i in range(0,2):
print(i)
A 0 1
B 1
C 1 2
D 0 1 2
正确答案 A
range(0, 2)输出两个值:0和1。
3.哪个选项给出了上述程序的输出次数?
k=10000
while k>1:
print(k)
k=k/2
A 13
B 14
C 1000
D 15
正确答案 B
请跟随程序计算或在IDLE中运行程序获得结果。
4 哪个选项是程序的三种基本结构?
A 过程结构,对象结构,函数结构
B 顺序结构,循环结构,分支结构
C 过程结构,循环结构,分支结构
D 顺序结构,跳转结构,循环结构
正确答案 B
无对象结构、跳转结构、过程结构等说法。
5 哪个选项关于循环结构的描述是错误的?
A 循环是程序根据条件判断结果向后反复执行的一种运行方式
B 死循环无法退出,没有任何作用
C 条件循环和遍历循环结构都是基本的循环结构
D 循环是一种程序的基本控制结构
正确答案 B
死循环能够用于测试性能,形式上的死循环可以用break来退出,例如:
x = 10 while True:
x = x - 1
if x == 1:
break 死循环是有其作用的。
6 关于Python语句P=-P,哪个选项的描述是正确的?
A P的绝对值
B P等于它的负数
C P=0
D 给P赋值为它的负数
正确答案 D
Python中的=是赋值符号,==是判断相等性的等于符号。
7 哪个选项是用来判断当前Python语句在分支结构中?
A 引号
B 冒号
C 缩进
D 大括号
正确答案 C
缩进表达层次关系。
8 哪个选项是下面代码的执行结果?
for s in "PYTHON":
if s=="T":
continue
print(s,end="")
A PYHON
B PY
C TT
D PYTHON
正确答案 A
continue结束当次循环,但不跳出当前循环。
9 哪个选项是random库中用于生成随机小数的函数?
A randint()
B random()
C randrange()
D getrandbits()
正确答案 B
randint()、getrandbits()、randrange()都产生随机整数,random()产生0到1之间的随机小数。
10 关于try-except,哪个选项的描述是错误的?
A 用于对程序的异常进行捕捉和处理
B 表达了一种分支结构的特点
C NameError是一种异常类型
D 使用了异常处理,程序将不会再出错
正确答案 D
使用了异常处理,程序可能运行不会出错,但逻辑上可能出错。程序错误是一个大概念,不仅指代码运行错误,更代表功能逻辑错误。
2.程序设计题
四位玫瑰数
描述
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
输入输出示例
输出仅表示格式,不表示对错。
输入 | 输出 |
---|---|
无 | 1111 2222 3333 |
参考一:
s = ""
for i in range(1000, 10000):
t = str(i)
if pow(eval(t[0]),4) + pow(eval(t[1]),4) + pow(eval(t[2]),4) + pow(eval(t[3]),4) == i :
print(i)
参考二:
for i in range(10):
for j in range(10):
for k in range(10):
for n in range(10):
m = i*1000+j*100+k*10+n
re = pow(i,4)+pow(j,4)+pow(k,4)+pow(n,4)
if re == m and len(str(re))==4:
print(m)
100以内素数之和
描述
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
输入 | 输出 |
---|---|
示例 1 | 1234(这是示例,不是真实输出) |
参考一:
sum = 0
for i in range(2,100):
for j in range(2,i):
if i%j==0:
break
else:
sum+=i
print(sum)
参考二:
#Prime
def is_prime(n):
for i in range(2,n):
if n%i == 0:
return False
return True
sum = 0
for i in range(2,100):
if is_prime(i):
sum += i
print(sum)