《Python语言程序设计》刘卫国主编,中国工信出版集团,电子工业出版社
习题4
一、选择题
1.关于while循环和for循环的区别,下列叙述中正确的是( C )。
A.while语句的循环体至少无条件执行一次,for语句的循环体有可能一次都不执行
B.while语句只能用于循环次数未知的循环,for语句只能用于循环次数已知的循环
C.在很多情况下,while语句和for语句可以等价使用
D.while语句只能用于可迭代变量,for语句可以用任意表达式表示条件
2.设有程序段:
k=10
while k:
k=k-1
print(k)
则下面描述中正确的是( A )。
A.while循环执行10次 B.循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
while 表达式: 会先计算表达式的值,表达式的值为True时,可以重复执行循环体中的语句块。k的初始值为10,然后经过代码块的运算,10,9,8,7,6,5,4,3,2,1时都为True,一共可执行10次。
3.以下while语句中的表达式“not E”等价于( )。A
while not E:
pass
A.E==0 B.E!=1 C.E!=0 D.E==1
举例:当E为0时,not E和E==0的值都为True
4.有以下程序段:
n=0
p=0
while p!=100 and n<3:
p=int(input())
n+=1
while循环结束的条件是( D )。
A.P的值不等于100并且n的值小于3
B.P的值等于100并且n的值大于等于3
C.P的值不等于100或者n的值小于3
D.P的值等于100或者n的值大于等于3
当while循环语句中表达式中的只为False的时候结束循环,此处表达式为and语句,当左右两边有一个不满足时值即为False。
5.以下for语句中,不能完成1~10的累加功能的是( A )。
A.for i in range(10,0):sum+=i
B.for i in range(1,11):sum+=i
C.for i in range(10,-1):sum+=i
D.for i in (10,9,8,7,6,5,4,3,2,1):sum+=i
range(10,0)是空序列,产生这种现象的原因就是python总是把双参数的range函数当作为range(start,stop)。即一个从10开头,到0结尾的序列。这样的序列是没有任何数字的空序列,因此在转换成列表的过程中,就产生了空列表。
6.对下列语句不符合语法要求的表达式是( )。D
for var in :
print(var)
A.range(0,10) B."Hello" C.(1,2,3) D.5
python中的for循环是一个通用的序列迭代器,可以遍历任何有序的序列对象元素。但是5不是序列对象。
7.下面Python循环体执行的次数与其他不同的是( A )。
A.i=0 B.i=10
while i<=10: while i>0:
print(i) print(i)
i+=1 i-=1
C.for i in range(10): D.for i in range(10,0,-1):
print(i) print(i)
A的表达式是<=,可以执行11次,其他三个选项都是执行10次。
8.下列for循环执行后,输出结果的最后一行是( C )。
for i in range(1,3):
for j in range(2,5):
print(i*j)
A.2 B.6 C.8 D.15
range 计数迭代的序列中不包含stop,所以随后一行是2*4=8
9.关于下列for循环,叙述正确的是( D )。
for t in range(1,11):
x=int(input())
if x<0:continue
print(x)
A.当x<0时整个循环结束 B.x>=0时什么也不输出
C.print()函数永远也不执行 D.最多允许输出10个非负整数
continue语句并不会推出循环,而是立即结束本次循环,重新开始下一轮循环;当x>=0是执行print语句;
10.下列说法中正确的是( )。D
A.break用在for语句中,而continue用在while语句中
B.break用在while语句中,而continue用在for语句中
C.continue能结束循环,而break只能结束本次循环
D.break能结束循环,而continue只能结束本次循环
break结束循环,continue重新开始下一轮循环。