内容正文:
《Python 程序编写入门》高等教育出版社
综合检测卷1
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________
一、选择题(本大题共10小题,每小题2分,共20分)
1.下列程序语言中,属于计算机低级语言的是( )。
A. Python
B. Java
C. 汇编语言
D. C++
2.Python 语言的设计哲学是( )。
A. 简单
B. 明确
C. 优雅
D. 以上都对
3.在 Python 中,下列变量名命名合法的是( )。
A. 你-好-呀
B. a_88
C. 88a
D. in
4.下列赋值语句正确的是( )。
A. x = y = z
B. x += 3
C. x = +3
D. (x = y) = 0
5.x = 9; y = 2; print(x >> y) 的运行结果为( )。
A. 1
B. -1
C. 2
D. -2
6.内部可以多行书写,无须使用续行符的是( )。
A. ()
B. []
C. {}
D. 以上都对
7.print(round(-9.5)) 的运行结果为( )。
A. -9
B. -10
C. -9.0
D. -10.0
8.print(-3 ** 2 + 9.0) 的运行结果为( )。
A. 18
B. 18.0
C. 0
D. 0.0
9.p = [0, -9, 2, 3]; print(p.pop()) 的运行结果为( )。
A. 0
B. 3
C. -9
D. 2
10.random.randrange(1,10,3) 运行结果可能的值( )。
A. 3
B. 5
C. 7
D. 13
二、填空题(本大题共10小题,每小题2分,共20分)
11.print(4 > 3 > 72 or -9%-3) 的运行结果为 ______。
12.print(3 > -1 + 9 and -5) 的运行结果为 ______。
13.a = (1, 2, 3); b = (1, 2, 100); print(b > a) 的运行结果为 ______。
14.print(-99 % 101) 的运行结果为 ______。
15.print(max((0, 1, -1) * 2)>1)的运行结果为 ______。
16.a = "56AB"; print(a.isupper()) 的运行结果为 ______。
17.b = "56TE_"; print(b.isalnum()) 的运行结果为 ______。
18.tkinter 有三种布局方式:grid、________ 和 place。
19.事件 <________-H> 表示是否按下字符 H 键。
20.Button 中,justify 属性的值为 ________ 时,表示多文本左对齐。
三、综合应用题(本大题共5小题 共60分)
21.编写程序,输出如下所示的图形。(注:图形的间距为1个空格)(10 分)
22.编写一个标准自定义函数,计算 300 和 600 (包含300和600)之间的满足即是素数又是回文数之和。(注:判断素数和回文数分别自定义两个函数)(10 分)
23.采用选择排序算法,将列表 lst = [-99, 6, 5, -9, 9, 1] 中的元素按由小到大进行排序并输出显示排序后的列表 lst。(10 分)
24.使用 random 模块,随机生成 10 个两位数的整数并使用sorted()函数按降序输出显示。(15 分)
25.GUI编程,新建一个窗口,窗口大小为 300*300像素。建立两个标签,使用 Entry 控件建立两个单行文本框,一个命令按钮,如图所示。单击命令按钮,在文本框2中得到十进制转换为十六进制的结果。(15分)
学科网(北京)股份有限公司
$$
《Python 程序编写入门》高等教育出版社
综合检测卷1
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________
一、选择题(本大题共10小题,每小题2分,共20分)
1.下列程序语言中,属于计算机低级语言的是( )。
A. Python
B. Java
C. 汇编语言
D. C++
【答案】C
【解析】低级语言是机器语言或汇编语言,而 Python、Java 和 C++ 都是高级语言。
2.Python 语言的设计哲学是( )。
A. 简单
B. 明确
C. 优雅
D. 以上都对
【答案】D
【解析】Python 的设计哲学是“简单、明确、优雅”。
3.在 Python 中,下列变量名命名合法的是( )。
A. 你-好-呀
B. a_88
C. 88a
D. in
【答案】B
【解析】合法的变量名不能以数字开头,也不能是 Python 关键字(如 in)。
4.下列赋值语句正确的是( )。
A. x = y = z
B. x += 3
C. x = +3
D. (x = y) = 0
【答案】D
【解析】x = y = z 是多重赋值,x += 3 是增量赋值,x = +3 是合法的,但 (x = y) = 0 是非法的。
5.x = 9; y = 2; print(x >> y) 的运行结果为( )。
A. 1
B. -1
C. 2
D. -2
【答案】C
【解析】x >> y 是右移运算,9 >> 2 等价于 9 // 2^2 = 2。
6.内部可以多行书写,无须使用续行符的是( )。
A. ()
B. []
C. {}
D. 以上都对
【答案】D
【解析】()、[] 和 {} 都可以多行书写,无需续行符。
7.print(round(-9.5)) 的运行结果为( )。
A. -9
B. -10
C. -9.0
D. -10.0
【答案】B
【解析】round(-9.5) 向最近的整数取整,结果为 -10。
8.print(-3 ** 2 + 9.0) 的运行结果为( )。
A. 18
B. 18.0
C. 0
D. 0.0
【答案】D
【解析】-3 ** 2 是 -9,-9 + 9.0 = 0.0。
9.p = [0, -9, 2, 3]; print(p.pop()) 的运行结果为( )。
A. 0
B. 3
C. -9
D. 2
【答案】B
【解析】pop() 默认移除并返回列表的最后一个元素,即 3。
10.random.randrange(1,10,3) 运行结果可能的值( )。
A. 3
B. 5
C. 7
D. 13
【答案】C
【解析】random.randrange(1,10,3) 生成的值在 1,4,7 中,所以可能的值是 7。
二、填空题(本大题共10小题,每小题2分,共20分)
11.print(4 > 3 > 72 or -9%-3) 的运行结果为 ______。
【答案】0
【解析】4 > 3 > 72 是 False,-9%-3 是 0,False or 0 的结果是 0。
12.print(3 > -1 + 9 and -5) 的运行结果为 ______。
【答案】False
【解析】3 > -1 + 9 是 False,False and -5 的结果是 False。
13.a = (1, 2, 3); b = (1, 2, 100); print(b > a) 的运行结果为 ______。
【答案】True
【解析】b元组的第三个元素100大于a元组的第三个元素3,因此返回值True
14.print(-99 % 101) 的运行结果为 ______。
【答案】2
【解析】-99 % 101 的结果是 2,因为 -99 = (-1) * 101 + 2。
15.print(max((0, 1, -1) * 2)>1)的运行结果为 ______。
【答案】False
【解析】(0, 1, -1) * 2 是 (0, 1, -1, 0, 1, -1),max 是 1,1 > 1 是 False。
16.a = "56AB"; print(a.isupper()) 的运行结果为 ______。
【答案】True
【解析】isupper() 检查字符串是否全是大写字母,"56AB" 符合条件。
17.b = "56TE_"; print(b.isalnum()) 的运行结果为 ______。
【答案】False
【解析】isalnum() 检查字符串是否全是字母或数字,"56TE_" 中的 _ 不符合条件。
18.tkinter 有三种布局方式:grid、________ 和 place。
【答案】pack
【解析】tkinter 的布局方式包括 grid、pack 和 place。
19.事件 <________-H> 表示是否按下字符 H 键。
【答案】KeyPress
【解析】<KeyPress-H> 表示按下字符 H 键。
20.Button 中,justify 属性的值为 ________ 时,表示多文本左对齐。
【答案】"left"
【解析】Button 的 justify 属性设置为 "left" 时,多行文本左对齐。
三、综合应用题(本大题共4小题 每小题10分 共40分)
21.编写程序,输出如下所示的图形。(注:图形的间距为1个空格)(10 分)
【答案】
for i in range(1,6):
print(" "*(10-2*i),end='')
print(' 1 '.join("0"*i))
【解析】
1.外层循环控制行数,range(1,6) 表示 5 行。
2.内层用 " "*(10-2*i) 控制每行的空格数量,' 1 '.join("0"*i) 生成图形主体。
22.编写一个标准自定义函数,计算 300 和 600 (包含300和600)之间的满足即是素数又是回文数之和。(注:判断素数和回文数分别自定义两个函数)(10 分)
【答案】
def su(n):
flag=True
for i in range(2,n):
if n%i==0:
flag=False
break
return flag
def hui(n):
flag=False
if str(n)==str(n)[::-1]:
flag=True
return flag
s=0
for i in range(300,601):
if su(i) and hui(i):
s+=i
print(s)
【解析】
1.su(n) 判断是否为素数,hui(n) 判断是否为回文数。
2.遍历 300 到 600,累加符合条件的数字。
23.采用选择排序算法,将列表 lst = [-99, 6, 5, -9, 9, 1] 中的元素按由小到大进行排序并输出显示排序后的列表 lst。(10 分)
【答案】
lst = [-99, 6, 5, -9, 9, 1]
n=len(lst)
for i in range(n-1):
minIndex=i
for j in range(i+1,n):
if lst[minIndex]>lst[j]:
minIndex=j
lst[minIndex],lst[i]=lst[i],lst[minIndex]
print(lst)
【解析】
1.外层循环选择当前未排序部分的最小值索引。
2.内层循环比较并交换位置,最终按从小到大排序。
24.使用 random 模块,随机生成 10 个两位数的整数并使用sorted()函数按降序输出显示。(15 分)
【答案】
import random
lst=[random.randint(10,99) for i in range(10)]
print(sorted(lst,reverse=True))
【解析】
1.random.randint(10, 99) 生成两位数。
2.sorted(lst, reverse=True) 按降序排序。
25.GUI编程,新建一个窗口,窗口大小为 300*300像素。建立两个标签,使用 Entry 控件建立两个单行文本框,一个命令按钮,如图所示。单击命令按钮,在文本框2中得到十进制转换为十六进制的结果。(15分)
【答案】
from tkinter import *
root=Tk()
root.title('进制转换')
root.geometry('300x200')
def zh():
lst1=[]
lst2=[str(i) for i in range(10)] + ['A','B','C','D','E','F']
num=eval(e1.get())
while num!=0:
num,ys=divmod(num,16)
lst1.append(lst2[ys])
lst1.reverse()
e2.delete(0,'end')
e2.insert(0,''.join(lst1))
Label(root,text="请输入一个十进制正整数:").pack()
e1=Entry(root)
e1.pack()
Label(root,text="转换为十六进制结果为:").pack()
e2=Entry(root)
e2.pack()
Button(root,text='转换',command=zh).pack()
root.mainloop()
【解析】
1.创建窗口和控件,Entry 用于输入和显示结果。
2.zh() 函数将十进制转换为十六进制,使用 divmod 计算商和余数。
学科网(北京)股份有限公司
$$