内容正文:
《Python 程序编写入门》高等教育出版社
综合检测卷2
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________
一、选择题(本大题共10小题,每小题2分,共20分)
1.程序的灵魂是( )。
A. 算法
B. 语法
C. 语句块
D. 开发平台
2.Python 中的三种基本控制结构不包括( )。
A. 顺序结构
B. 选择结构
C. 执行结构
D. 循环结构
3.print(9&-3) 的运行结果为( )。
A. 1
B. 0
C. 9
D. -3
4.import math; print(math.floor(11.5)) 的运行结果为( )。
A. 11
B. 11.0
C. 12
D. 12.0
5.import math; print(math.ceil(-10.5)) 的运行结果为( )。
A. -11
B. -10
C. 10
D. 11
6.dic={'name':'张三','age':18};dic.update({'age':19});print(dic)的运行结果( )。
A. {'age': 19}
B. {'name': '张三}
C. {'name': '张三', 'age': 18}
D. {'name': '张三', 'age': 19}
7.print(max((1,100,0,-89,7,3))) 的运行结果为( )。
A. 100
B. -89
C. 7
D. 0
8.A=[1,2,-909]; B=A; B.clear(); print(A) 的运行结果为( )。
A. []
B. 1
C. 2
D. -909
9.print("woaixuexipython"[12:2:-2])的运行结果为( )。
A. "hyie"
B. "yiex"
C. "hyiex"
D. "hyiexa"
10.若 datetime.________(2022,12,1) 语句的含义是设置日期为 2022 年 12 月 1 日,则横线处应该填( )。
A. time
B. date
C. datetime
D. timedelta
二、填空题(本大题共10小题,每小题2分,共20分)
11.print("{:5^7}".format("12345")) 的运行结果为 _________。
12.a=[8,3,2]; a.extend([1,0]); print(a) 的运行结果为 _________。
13.st="abcdef"; print(st.index('b',2)) 的运行结果为 _________。
14.h1="1212131"; print(h1.find("2",2)) 的运行结果为 _________。
15.w1="abcdefghi"; print(w1.partition("de")) 的运行结果为 _________。
16.import math; print(math.sqrt(4)) 的运行结果为 _________。
17.print(9+2*2*3/4>12 or 8) 的运行结果为 _________。
18.在 tkinter 的布局方式中,_________方式是最精准的。
19.在鼠标事件中,与 Leave 事件作用相反的是 _________事件。
20.Checkbutton 复选框用来选取我们需要的选项,它前面有个小正方形的方块,如果选中则有一个 _________号。(填中文)
三、程序分析题(本大题共3小题,每小题6分,共18分)
21.阅读程序,写出程序的运行结果为________。
for i in range(10,1,-2):
if i%3!=0:
i=i-1
i=i-2
print(i,end=' ')
22.阅读程序,写出程序的运行结果为________。
x=True
y=0
while x:
y=y+1
if y//5==y/5:
print(y,end=' ')
else:
continue
if y>15:
x=False
23.阅读程序,写出程序的运行结果为________。
s=i=j=1
while i<=5:
s=s+i+j
j=5
while j>i:
s=s+i+j
j=j-2
i=i+2
print('s=',s)
四、程序设计题(本大题共3小题 共42分)
24. 编写程序,使用 math 模块,实现输入圆的半径,输出显示圆的面积。(近似结果保留两位小数)(8分)
25. 编写程序,输入几位学生的语文成绩,当输入-1时,将停止输入学生的语文成绩并输出显示这几位学生的语文平均成绩。(10分)
26.编写程序,输出显示如图所示的图形。(注:图形的大小、间距、颜色不作硬性要求)(12分)
5 4 3 2 1
4 3 2 1 5
3 2 1 5 4
2 1 5 4 3
1 5 4 3 2
27.编写程序,要求输出显示二元一次方程 8x+5y=100 的正整数解。(12分)
学科网(北京)股份有限公司
$$
《Python 程序编写入门》高等教育出版社
综合检测卷2
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________
一、选择题(本大题共10小题,每小题2分,共20分)
1.程序的灵魂是( )。
A. 算法
B. 语法
C. 语句块
D. 开发平台
【答案】A
【解析】程序的灵魂是算法,算法是解决问题的步骤和逻辑。
2.Python 中的三种基本控制结构不包括( )。
A. 顺序结构
B. 选择结构
C. 执行结构
D. 循环结构
【答案】C
【解析】Python 的三种基本控制结构是顺序结构、选择结构和循环结构,不包括“执行结构”。
3.print(9&-3) 的运行结果为( )。
A. 1
B. 0
C. 9
D. -3
【答案】C
【解析】9 & -3 是按位与运算。9 的二进制是 1001,-3 的二进制是 ...11111101(补码),按位与结果为 1001,即 9。
4.import math; print(math.floor(11.5)) 的运行结果为( )。
A. 11
B. 11.0
C. 12
D. 12.0
【答案】A
【解析】math.floor(11.5) 返回不大于 11.5 的最大整数,即 11。
5.import math; print(math.ceil(-10.5)) 的运行结果为( )。
A. -11
B. -10
C. 10
D. 11
【答案】B
【解析】math.ceil(-10.5) 返回不小于 -10.5 的最小整数,即 -10。
6.dic={'name':'张三','age':18};dic.update({'age':19});print(dic)的运行结果( )。
A. {'age': 19}
B. {'name': '张三}
C. {'name': '张三', 'age': 18}
D. {'name': '张三', 'age': 19}
【答案】D
【解析】ic.update({'age': 19}) 修改字典中的 age 值为 19,结果为 {'name': '张三', 'age': 19}。
7.print(max((1,100,0,-89,7,3))) 的运行结果为( )。
A. 100
B. -89
C. 7
D. 0
【答案】A
【解析】max() 函数返回最大值,结果为 100。
8.A=[1,2,-909]; B=A; B.clear(); print(A) 的运行结果为( )。
A. []
B. 1
C. 2
D. -909
【答案】A
【解析】B = A 是引用传递,B.clear() 会清空 A,所以 print(A) 输出 []。
9.print("woaixuexipython"[12:2:-2])的运行结果为( )。
A. "hyie"
B. "yiex"
C. "hyiex"
D. "hyiexa"
【答案】C
【解析】字符串切片 [::-2] 表示从后向前每隔一个字符取值,结果为 "hyiex"。
10.若 datetime.________(2022,12,1) 语句的含义是设置日期为 2022 年 12 月 1 日,则横线处应该填( )。
A. time
B. date
C. datetime
D. timedelta
【答案】B
【解析】datetime.date(year, month, day) 用于设置日期。
二、填空题(本大题共10小题,每小题2分,共20分)
11.print("{:5^7}".format("12345")) 的运行结果为 _________。
【答案】"5123455"
【解析】{:5^7} 表示将字符串 "12345" 居中填充,总长度为 7,填充字符为 5,结果为 5123455。
12.a=[8,3,2]; a.extend([1,0]); print(a) 的运行结果为 _________。
【答案】[8, 3, 2, 1, 0]
【解析】a.extend([1, 0]) 将列表 [1, 0] 添加到 a 中。
13.st="abcdef"; print(st.index('b',2)) 的运行结果为 _________。
【答案】报错
【解析】st.index('b', 2) 从索引 2 开始查找字符 'b',找不到会报错。
14.h1="1212131"; print(h1.find("2",2)) 的运行结果为 _________。
【答案】3
【解析】h1.find("2", 2) 从索引 2 开始查找字符 "2",返回第一个匹配的索引 3。
15.w1="abcdefghi"; print(w1.partition("de")) 的运行结果为 _________。
【答案】('abc', 'de', 'fghi')
【解析】partition() 方法将字符串分割为三部分,返回元组。
16.import math; print(math.sqrt(4)) 的运行结果为 _________。
【答案】2.0
【解析】math.sqrt(4) 返回平方根 2.0。
17.print(9+2*2*3/4>12 or 8) 的运行结果为 _________。
【答案】8
【解析】9+2*2*3/4 > 12 计算为 9 + 3 = 12,12 > 12 为 False,or 8 返回 8。
18.在 tkinter 的布局方式中,_________方式是最精准的。
【答案】place
【解析】place 布局方式在 tkinter 中是最精准的。
19.在鼠标事件中,与 Leave 事件作用相反的是 _________事件。
【答案】Enter
【解析】Leave 事件的相反事件是 Enter。
20.Checkbutton 复选框用来选取我们需要的选项,它前面有个小正方形的方块,如果选中则有一个 _________号。(填中文)
【答案】对
【解析】Checkbutton 选中时显示“对”号。
三、程序分析题(本大题共3小题,每小题6分,共18分)
21.阅读程序,写出程序的运行结果为________。
for i in range(10,1,-2):
if i%3!=0:
i=i-1
i=i-2
print(i,end=' ')
【答案】7 5 4 1 -1
【解析】
· 循环从 10 到 1,步长为 -2。
· 每次循环中,i 先减 1(如果 i%3 != 0),再减 2,最后打印结果。
22.阅读程序,写出程序的运行结果为________。
x=True
y=0
while x:
y=y+1
if y//5==y/5:
print(y,end=' ')
else:
continue
if y>15:
x=False
【答案】5 10 15 20
【解析】
· 循环中 y 每次加 1,当 y 是 5 的倍数时打印 y。
· 当 y > 15 时退出循环。
23.阅读程序,写出程序的运行结果为________。
s=i=j=1
while i<=5:
s=s+i+j
j=5
while j>i:
s=s+i+j
j=j-2
i=i+2
print('s=',s)
【答案】s= 33
【解析】
· 外层循环控制 i 从 1 到 5,每次累加 i + j 到 s。
· 内层循环 j 从 5 递减到 i,每次累加 i + j。
四、程序设计题(本大题共3小题 共42分)
24. 编写程序,使用 math 模块,实现输入圆的半径,输出显示圆的面积。(近似结果保留两位小数)(8分)
【答案】
import math
PI=math.pi
r = float(input("请输入圆的半径:"))
s = PI*r**2
print("圆的面积:%.2f"%s)
【解析】
1.使用 math 模块中的 pi 常量获取圆周率的值。
2.通过 input 函数获取用户输入的半径,并将其转换为浮点数。
3.计算圆的面积公式:s = PI * r ** 2。
4.使用 print 函数输出结果,并通过 %.2f 格式化保留两位小数。
25. 编写程序,输入几位学生的语文成绩,当输入-1时,将停止输入学生的语文成绩并输出显示这几位学生的语文平均成绩。(10分)
【答案】
score=0
count=0
while True:
s = eval(input("请输入语文成绩:"))
if s==-1:
break
score+=s
count+=1
print(f"{count}位学生的语文平均成绩{score/count}")
【解析】
1.初始化变量 score 和 count 分别用于累加成绩和统计学生人数。
2.使用 while True 循环不断读取用户输入的成绩。
3.如果输入的成绩为 -1,则通过 break 退出循环。
4.如果输入的成绩不是 -1,则将其累加到 score 中,并将 count 加 1。
5.最后,输出学生的总人数和平均成绩。
26.编写程序,输出显示如图所示的图形。(注:图形的大小、间距、颜色不作硬性要求)(12分)
5 4 3 2 1
4 3 2 1 5
3 2 1 5 4
2 1 5 4 3
1 5 4 3 2
【答案】
for i in range(5,0,-1):
for j in range(i,0,-1):
print(j,end=' ')
for k in range(5,i,-1):
print(k,end=' ')
print()
【解析】
1.外层循环 for i in range(5, 0, -1) 控制行数,从 5 开始递减到 1。
2.内层循环 for j in range(i, 0, -1) 从当前行的值 i 开始递减到 1,输出数字。
3.第二个内层循环 for k in range(5, i, -1) 从 5 开始递减到 i+1,输出数字。
4.每次外层循环结束后,通过 print() 换行。
27.编写程序,要求输出显示二元一次方程 8x+5y=100 的正整数解。(12分)
【答案】
for x in range(1, 100):
for y in range(1, 100):
if 8 * x + 5 * y == 100:
print(f"x={x}, y={y}")
【解析】
1.使用两层嵌套循环分别遍历 x 和 y 的可能值。
2.外层循环 for x in range(1, 100) 遍历 x 的值,从 1 到 99。
3.内层循环 for y in range(1, 100) 遍历 y 的值,从 1 到 99。
4.检查条件 8 * x + 5 * y == 100,如果满足条件,则输出 x 和 y 的值。
学科网(北京)股份有限公司
$$