第3章课后习题参考答案
一、单项选择题
下列描述中正确的是______。(B)
A. continue 语句可以用来终止当前所在的循环
B. break 语句可以用来终止当前所在的循环
C. if 语句不可以被嵌套在循环语句内部
D. 循环语句不可以被嵌套在 if 语句内部
下列关于分支结构描述中,正确的是______。(B)
A. 分支结构必须要有else子句
B. if-else构成双分支结构
C. 双分支结构有一种紧凑形式,使用保留字if和elif实现
D. 分支结构的嵌套只能在else子句中
下列选项中,不属于程序流程图基本元素的是______。(B)
A. 起始框 B. 提示框 C. 判断框 D. 输入输出框
下列关于算法的描述中,不正确的是______。(B)
A. 算法是解决问题的方法和步骤 B. 算法必须要有输入
C. 算法经过有限步骤后能够停止 D. 算法必须要有输出
下列不是 IPO 模式一部分的是______。(A)
A. InOut B. Process C. Input D. Output
下列程序输出结果是______。(B)
a,b=5,0
if a>5:
b=b+2
b=b+2
print(b)
A. 0 B. 2 C. 7 D. 9
下列程序输出结果是______。(B)
x=3
if x>=3:
x=x+1
elif x>=4:
x=x+2
elif x>5:
x=x+3
print(x)
A. 3 B. 4 C. 6 D. 9
下列程序输出结果是_____。©
x=7
y=12 if x>5 else 20
print(y)
A. 7 B. 5 C. 12 D. 20
下列程序输出结果是______。(B)
i=1
s=0
while i<=10:
if i%3!=0:
s=s+i
i=i+1
print(s)
A. 18 B. 37 C. 55 D. 0
下列程序输出结果是______。(B)
i=0
while i<10:
i=i+2
if i>6:
break
print(i,end=“,”)
else:
print(12)
print(123)
A. 0,2,4,6,8,123 B. 2,4,6,123 C. 0,2,4,6,8 12123 D. 2,4,6,12
二、填空题
11. 算法的表示常用的方法包括:自然语言、 (传统流程图)、 (伪代码)、 (N-S 流程图(盒图)。
12. Python选择结构包括单分支选择结构、 (双分支选择结构)、 (多分支选择结构)和嵌套选择结构。
13. Python循环结构包括 (for 循环)和 (while 循环)两种循环结构。
14. Python 循环结构根据需要可以使用三种特殊语句: (continue语句)语句、 (break 语句)语句和else语句。
15. 在循环语句中, (break 语句)语句的作用是提前退出当前循环结构。
16. 在循环语句中, (continue语句)语句的作用是提前进入下一个循环。
7.表达式20 if 10 > 5 else -20的值为 (20)。
17. 表达式 5 if 10 > 20 else ( 0 if 5 > 8 else 1) 的值为 (1)。
18. for n in range(5): print( n, end = ‘,’) 的运行结果 (0,1,2,3,4,)。
19. for i in range(1 , 20 , 2): print( i, end = ‘;’) 的运行结果 (1;3;5;7;9;11;13;15;17;19;)。
三、程序设计题
20. 编程计算下列分段函数值:.
import math x=int(input("x:")) if x<0: y=2*math.pow(x,4)-3*math.pow(x,3) else: if x==0: y=math.e**2 else: y=3*math.sqrt(2*x) print("y={}".format(y))
22.编写程序实现以下功能:求满足1+2+3+4+┄+n>2020 的最小 n 并输出(要求用循环实现)。
n = 0 z = 0 while(z<=2020): n+=1 z+=n print("n={0}".format(n))
3.给出一个小于1000的正整数,编程求该数是几位数,并按逆序打印出各位上的数字。例如:原数为456,则输出为654。
x=int(input('请输入一个数:\n')) while x<1000: a=x//100 b=x%100//10 c=x%10 break if a!= 0: print('3位数:', c,b,a) elif b!= 0: print('2位数:',c,b) elif c!= 0: print('1位数:', c)
4.输入一个字符串,编程统计并输出其中的大写英文字母和数字的个数。
print("Input a string: ") str1 = input() no_of_ capital_letters, no_of_digits = 0,0 for c in str1: if (c>='A' and c<='Z'): no_of_capital_letters += 1 if c>='0' and c<='9': no_of_digits += 1 print("Input string is: ", str1) print("Total number of capital_letters: ", no_of_capital_letters) print("Total number of digits: ", no_of_digits)
5.编程统计100 ~ 1000直接所有素数的个数,并打印出它们的和。
num=0 sum=0 for n in range(100,1000): for x in range(2, n): if (n%x==0): break else: num+=1 sum+=n print(“num={0},sum={0}”.format(num,sum))
6.统计并输出 500到 2020 之间所有能被 7 整除且个位数字为 2 的数的个数(要求用循环实现)。
n = 0 for i in range(500,2021): if (i%7==0 and i%10==2): n+=1 print("n={0}".format(n))