XX医学院本科各专业《Python》第四章习题与答案
一、填空题
1.表达式 'ab' in 'acbed' 的值为________。(False)
2.假设n为2,那么表达式 n//1 == n%4 的值为_____________。(True)
3.Python通过保留字for实现“遍历循环”,之所以称为“遍历循环”,是因为for语句的循环执行次数是根据遍历结构中_____________确定的。(元素个数)
4.表达式 3<5<2 的值为_______________。(False)
5.表达式 1<2<3 的值为_________。(True)
6.表达式 24<=28 and 28<25 的值为________。(False)
7.表达式 24<=28 or 28<25 的值为_________。(True)
8.Python通过_____、_____、_____等保留字提供单分支、二分支和多分支。(if elif else)
9.当bmi的值为20时,表达式 bmi<28 的值为______________。(True)
10.Python中用于表示逻辑与、逻辑或、逻辑非运算的保留字分别是_________、___________、_________。(and、or、not)
11.Python 3.x语句
1
for i in range(3):
print(i+1,end=',') 的输出结果为_____________________。(1,2,3,)
12.对于带有else子句的for循环和while循环,当循环因循环条件不成立而自然结束时________(会?不会?)执行else中的代码。(会)
13.在循环语句中,__________语句的作用是提前结束本层循环。(break)
14.在循环语句中,_______语句的作用是提前进入下一次循环。(continue)
15.表达式 5 if 5>6 else ( 6 if 3>2 else 5) 的值为_________。(6)
16.Python关键字elif表示__________和___________两个单词的缩写。(else、if)
17.如果希望循环是无限的,我们可以通过设置条件表达式永远为______________来实现无限循环。(True)
18.表达式 'ac' not in 'abce' 的值为_____________。(True)
19.表达式 not (10 < 2 ** 3) 的值为________________。(True)
20.从random库中选取相应的函数满足“随机选取0到100间的奇数” ________________。( randrange(1, 100, 2) )
21.randint(0,10)函数生成的是_______________________。(一个0到10之间的随机整数)
22.uniform(1,5)函数生成的是_______________________。(一个1到5之间的随机小数)
2
23.random库中,从一个列表中随机返回一个元素的函数是______________________。(choice( ))
24.表达式 ':'.join('abcdefg'.split('cd')) 的值为______________。('ab:efg')
25.表达式 'abcabcabc'.count('abc') 的值为_____________。(3)
26.表达式 'abcdefg'.split('d') 的值为__________________。(['abc', 'efg'])
27.表达式 ':'.join('1,2,3,4,5'.split(',')) 的值为__________________。('1:2:3:4:5')
28.表达式 range(10)[-1] 的值为____________。(9)
29.表达式 round(3.7) 的值为_________。(4)
30.表达式 len('中国'.encode('utf-8')) 的值为___________。(6)
31.random模块中_____________方法的作用是将列表中的元素随机乱序。(shuffle())
32.表达式 'Hello world!'.count('l') 的值为___________。(3)
33.假设已成功导入Python标准库string,那么表达式len(string.digits)的值为_______________。(10)
二、单选题
*1.下面是流程图的基本元素的是( )。A
A.判断框
B.顺序结构 C.分支结构
3
D.循环结构
*2.循环结构可以使用Python语言中的( )语句实现。B
A.print B.while C.loop D.if
*3.Python通过( )来判断操作是否在分支结构中。B
A. 括号 B.缩进 C.花括号 D.冒号
*4.下面不是while循环的特点的是( )。D
A.提高程序的复用性 循环次数
B.能够实现无限循环 C.如果不小心会出现死循环 D.必须提供
*5.以下可以终结一个循环的保留字是( )。B
A. if B. break C. exit D. continue
6.与x > y and y > z语句等价的是( )。A
A.x > y > z B.not x < y or not y < z C.not x < y or y < z D.x > y or not y < z
7. 哪个选项对死循环的描述是正确的( )?C
A.使用for语句不会出现死循环 D.无限循环就是死循环
B.死循环就是没有意义的 C.死循环有时候对编程有一定作用
8.下列有关break语句与continue语句不正确的是( )。C
4
A.当多个循环语句彼此嵌套时,break语句跳出最内层的循环。
B.continue语句类似于break语句,也必须在for、while循环中使用。
C.continue语句结束循环,继续执行循环语句的后继语句。
D.break语句结束循环,继续执行循环语句的后继语句。
9.for var in ___:
print(var)
哪个选项不符合上述程序空白处的语法要求( )?B
A.range(0,10) B.range(0:10) C.\"Hello\" D.range(0,10,2)
10. 哪个选项所对应的except语句数量可以与try语句搭配使用?B
A.一个且只能是一个 B.多个 C.最多两个 D.0个
11. 哪个选项是实现多路分支的最佳控制结构( )?B
A.if B.if-elif-else C.try D.if-else
12.print(pow(3,0.5)*pow(3,0.5)==3)
哪个选项是上述程序的执行结果( )?B
5
A.True B.False C.3 D.pow(3,0.5)*pow(3,0.5)==3
13. 关于程序的控制结构,哪个选项的描述是错误的( )?D
A.流程图可以用来展示程序结构 B.顺序结构有一个入口
C.控制结构可以用来更改程序的执行顺序 D.循环结构可以没有出口
14.哪个选项能够实现Python循环结构( )?B
A.loop B.while C.if D.do...for
15.哪个选项的描述是正确的( )?B
A.条件35<=45<75是合法的,且输出为False
B.条件24<=28<25是合法的,且输出为False
C.条件24<=28<25是不合法的
D.条件24<=28<25是合法的,且输出为True
16.关于条件循环,哪个选项的描述是错误的( )?D
A.条件循环也叫无限循环 B.条件循环使用while语句实现
C.条件循环不需要事先确定循环次数 D.条件循环一直保持循环操作直到循环条件满足才结束
6
17.哪个选项是random库中用于生成随机小数的函数( )?A
A.random() B.randint() C.getrandbits() D.randrange()
18. 使用random库的random()函数,哪个选项的引用方式是错误的( )?D
A.from random import* B.from random import random
C.import random D.import random from random
19.哪个选项所描述的问题适合采用蒙特卡罗方法求解( )?B
A.周长 B.积分 C.微分 D.导数
20.关于try-except,哪个选项的描述是正确的( )?D
A.try-except可以捕获所有类型的程序错误
B.编写程序时应尽可能多的使用try-except,以提供更好的用户体验
C.try-except在程序中不可替代
D.try-except通常用于检查用户输入的合法性、文件打开或网络获取的成功性等
21.下面循环体内的内容会执行几次( )?B
for i in range(0,5,2):
7
print(i)
A. 5 B.3 C.2 D.4
22. if not (money < 100): 上边这行代码相当于( )?D
A .if money<=100: B. if money>100: C. if not money<100: D. if money 23.以下程序的输出结果是( )A
chs = \"a\\'bc\\\"de\"
for i in range(6):
for ch in chs[i]:
print(ch,end='')
A. a'bc\"d B. a'bc\"de C. a'bcd D. abc\"de
24. 以下关于随机运算函数库的描述,错误的是( )D
A. random 库里提供的不同类型的随机数函数是基于 random.random() 函数扩展的
B. 伪随机数是计算机按一定算法产生的,可预见的数,所以是“伪”随机数
C. Python 内置的 random 库主要用于产生各种伪随机数序列
8
100:
>=
D. uniform(a,b) 产生一个 a 到 b 之间的随机整数
25.下面程序的输出结果为( )B
n=2
while n==1:
print(123)
print(456)
A.123 B.456 C.123456 D.465123
26. 以下程序的输出结果是( )D
for i in \"CHINA\":
for k in range(2):
print(i, end=\"\")
if i == 'N':
break
A. CCHHIINNAA B. CCHHIIAA C. CCHHIAA 9
D. CCHHIINAA
27.以下程序的输出结果是( )C
x= 10
while x:
x = x - 1
if not x%2==0:
print(x,end = '')
A. 820 B. 975311 C. 97531 D. 8200
28.关于Python循环结构,以下选项中描述错误的是 ( )A
A.每个continue语句只有能力跳出当前层次的循环
B. break用来跳出最内层for或者while循环,脱离该循环后程序从循环代码后继续执行
C.遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()函数等
D. Python通过for、while等保留字提供遍历循环和无限循环结构
29.关于random.uniform(a,b)的作用描述,以下选项中正确的是( )D
A. 生成一个均值为a,方差为b的正态分布 B. 生成一个(a, b)之间的随机数
10
C. 生成一个[a, b]之间的随机整数 D. 生成一个[a, b]之间的随机小数
30.用户输入整数的时候不合规导致程序出错,为了不让程序异常中断,需要用到的语句是( )D
A. if语句 B. eval语句 C. 循环语句 D. try-except语句
31.关于a or b 的描述错误的是(C)
A.若a=True b=True, 则 a or b=True
B.若a=True b=False, 则 a or b=True
C.若a=True b=True, 则 a or b=False
D.若a=False b=False, 则 a or b=False
32.以下的布尔代数运算错误的是(B)
A.True or x==True
B.not (a and b)==not (a) and not (b)
C.False and x==False
D.True or False==True
33.下列程序共输出(C)个值
11
age=23
start=2
if age%2 != 0:
start=1
for x in range(start,age+2,2):
print(x)
A.10 B.16 C.12 D.14
34.下列程序的输出结果是(D)
a=3
b=1
if a>b:
print(a+b)
else:
print(a-b)
12
A.1 B.2 C.3 D.4
35.下列程序的输出结果是(C)
x=0
for i in range(5):
x+=1
print(x)
A.3 B.4 C.5 D.6
36.下列程序的输出结果是(B)
a=0
for i in range(10):
if i>5:
break
a+=1
print(a)
13
A.5 B.6 C.9 D.10
37.下列程序的输出结果是(C)
a=0
for i in range(10):
if i%2==0:
continue
a+=1
print(a)
A.2 B.4 C.5 D.10
38.下列程序的输出结果是(D)
x=0
k=5
while k>0:
x+=1
14
k-=1
print(x)
A.2 B.3 C.4 D.5
39.下列程序的输出结果是(B)x=0
k=10
while k>0:
k-=1
if k%2==0:
continue
x+=1
print(x)
A.4 B.5 C.6 D.10
40.下列程序的输出结果是(A)
15
x=0
k=10
while k>0:
k-=1
if k<5:
break
x+=1
print(x)
A.5 B.7 C.9 D.10
三、判断题
*1.复杂的程序结构都是由基本结构组合而成( )。对
*2.分支结构可以向已经执行过的语句部分跳转(即向后跳转 )(*3.简单分支结构是使用最广泛的结构,可替代任何选择性结构(*4.Python语法认为条件x<=y<=z是合法的( )。对
16
。错。错 )
)
*5.复杂的程序结构都是由基本结构组合而成( )。对
*6.所有for循环语句都可以用while循环语句改写( )。对
*7.while循环只能用来实现无限循环的编程( )。错
*8.死循环对编程没有任何益处( )。错
9.如果仅仅是用于控制循环次数,那么使用for i in range(20)和for i in range(20, 40)的作用是等价的( )。对
10.在循环中continue语句的作用是跳出当前循环( )。错
11.在编写多层循环时,为了提高运行效率,应尽量减少内循环中不必要的计算( )。对
12.带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码( )。错
13.对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码( )。对
14.在条件表达式中不允许使用赋值运算符“=”,会提示语法错误( )。对
15.表达式2 > 1 or 6的结果为true( )。对
16.只有Python扩展库才需要导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法。错
17
17.尽管可以使用import语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个标准库或扩展库。对
18.假设已导入random标准库,那么表达式 max([random.randint(1, 10) for i in range(10)]) 的值一定是10。错
19.Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。对
20.程序中异常处理结构在大多数情况下是没必要的。错
21.异常处理结构中的finally块中代码仍然有可能出错从而再次引发异常。对
22.在try...except...else结构中,如果try块的语句引发了异常则会执行else块中的代码。错
23.异常处理结构也不是万能的,处理异常的代码也有引发异常的可能。对
24.带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。对
25.在异常处理结构中,不论是否发生异常,finally子句中的代码总是会执行的。对
26.假设random模块已导入,那么表达式 random.sample(range(10), 20) 的作用是生成20个不重复的整数。错
27.假设random模块已导入,那么表达式 random.sample(range(10), 7) 的作用是生成7个不重复的整数。对
28.使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100。对
18
四、简答题
1.简述程序流程图。
答:程序流程图是用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式。流程图的基本元素包括起止框、判断框、处理框、输入/输出框、注释框、流向线和连接点。
2.简述分支结构。
答:分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,根据分支路径上的完备性,分支结构包括单分支结构和二分支结构,二分支结构组合形成多分支结构。
3.简述循环结构
答:循环结构是程序根据条件判断结果向后反复执行的一种运行方式,根据循环体触发条件不同,循环结构包括条件循环结构和遍历循环结构。
4.简述random库。
答:随机运算的标准函数库random共提供9个常用函数。random库采用梅森旋转算法生成各种分布的伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。
5.分析逻辑运算符“or”的短路求值特性。
答:假设有表达式“表达式1 or 表达式2”,如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。
19
6.异常和错误有什么区别?
答:异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。
五、阅读程序题
*1. 请分析下面的程序,若输入score为80,输出grade为多少?是否符合逻辑?为什么?。
if score >= 60.0:
grade='D'
elif score>=70.0:
grade='C'
elif score>=80.0:
grade='B'
elif score>=90.0:
grade='A'
运行结果:
20
(D,不符合逻辑,因为输入满足多条件分支第一个条件,执行后跳出了整个多分支。应该将成绩从高到低作为判断条件)
2.下面程序的执行结果是__________________。(1)
s = 0
for i in range(1,101):
s += i
else:
print(1)
3.下面程序的执行结果是______________。(1275)
s = 0
for i in range(1,101):
s += i
if i == 50:
print(s)
break
21
else:
print(1)
4.写出下面程序的运行结果:(1)
5. 写出下面程序的运行结果:(8)
6.写出下面程序的功能(求1-2+3-4+5-……+99的值)
7.写出下列程序的运行结果
a=b=1
22
print(a)
print(b)
for i in range(1,5):
print(a+b)
a,b=b,a+b
8.写出下列程序的运行结果
x=eval(input(\"请输入第一个数\"))
y=eval(input(\"请输入第二个数\"))
if x>y:
print(x+y)
else:
print(x*y)
23
如果输入的数是10和20,写出程序运行结果:
200
9.写出下列程序的运行结果
for i in range(1,3):
for j in range(1,3):
print(i*j,end=' ')
print()
1 2
2 4
10.写出下列程序的运行结果
for i in range(1,4):
for j in range(1,i):
print(i*j,end=' ')
print()
24
2
3 6
11.写出下列程序的运行结果 (7)
x=0
for i in range(1,10):
if i%4==0:
continue
x+=1
print(x)
12.写出下列程序的运行结果x=0
for i in range(1,5):
for j in range(1,5):
if j%2==0:
8)
25
( continue
x+=1
print(x)
13.写出下列程序的运行结果
x=0
for k in range(5):
x+=2
else:
print(x)
print(x)
10
10
14.写出下列程序的运行结果(6)x=0
26
for k in range(1,5):
if k%4==0:
break
x+=2
else:
print(x)
print(x)
15.写出下列程序的运行结果
x=0
for k in range(10):
if k%4==0:
continue
x+=2
else:
27
print(x)
print(x)
14
14
六、编程题
1.输出如下图的9*9乘法表
参考代码:
2.利用while语句写出猜大小的游戏:
设定一个理想数字,如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。
28
参考代码:
3.在上题的基础上进行升级:
给用户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果三次之内没有猜测正确,则自动退出循环,并显示“明天再试吧….”。
参考代码:
4.使用while循环输出 参考代码:
29
5.求1-100的所有数的和
参考代码:
6.输入一个正整数, 判断这个数是几位数
参考代码:
7. 有四个数字:1、2、3、4,编程实现输出所有互不相同且无重复数字的三位数。
参考代码:
30
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务