内容正文:
题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
答案 A D A C C B A B C B C A A B A
Python 二级
2024 年 09 ⽉
1 单选题(每题 2 分,共 30 分)
第 1 题 据有关资料,⼭东⼤学于1972年研制成功DJL-1计算机,并于1973年投⼊运⾏,其综合性能居当时全国第三
位。DJL-1计算机运算控制部分所使⽤的磁⼼存储元件由磁⼼颗粒组成,设计存贮周期为2μs(微秒)。那么该磁⼼
存储元件相当于现代计算机的( )。
A. 内存
B. 磁盘
C. CPU
D. 显⽰器
第 2 题 Python程序执⾏出现错误,不太常见的调试⼿段是( )。
A. 阅读源代码
B. 单步调试
C. 输出执⾏中间结果
D. 跟踪计算机执⾏的底层代码(如⼆进制机器码,汇编码)
第 3 题 在Python中,下列 变量的是( )。不可做
A. ccf-gesp
B. ccf_gesp
C. ccfGesp
D. _ccfGesp
第 4 题 在Python中,与 range(1, 10) 效果相同的是( )。
A. range(10)
B. range(11)
C. range(1, 10, 1)
D. range(0, 10, 1)
第 5 题 在Python中, print(5 // 2 + 5 % 3) 的输出是( )。
A. 1
B. 2
C. 4
D. 5
第 6 题 下⾯Python代码执⾏时先后输⼊2和3.14后,其输出是( )。
A. 5
B. 23.14
C. 5.14
D. 将触发异常
第 7 题 在Python代码中假设N为正整数,则下⾯代码能获得个位数的是( )。
A. N % 10
B. N // 10
C. N / 10
D. 以上选项均不正确
第 8 题 下⾯Python代码执⾏后的输出是( )。
A. 0
B. 0#
C. 0#0#1
D. 没有输出
第 9 题 执⾏下⾯Python代码并输⼊1和0,输出是( )。
a = input()
b = input()
print(a + b)
1
2
3
for i in range(10):
if i % 2:
break
print("0", end = "#")
else:
print("1",end = "#")
1
2
3
4
5
6
A. 1
B. 2
C. 3
D. 4
第 10 题 下⾯Python代码执⾏后的输出是( )。
A. 1
B. 2
C. 3
D. 5
第 11 题 下图是Python程序执⾏后的输出。为实现其功能,横线处应填⼊代码是( )。
A. i, i
B. 1, i
C. i, i*2
a = int(input())
b = int(input())
if a and b:
print("1")
elif not (a or b):
print("2")
elif a or b:
print("3")
else:
print("4")
1
2
3
4
5
6
7
8
9
10
loopCount = 0
for i in range(1, 5, 2):
loopCount += 1
print(loopCount)
1
2
3
4
lineNum = int(input())
for i in range(1, lineNum + 1):
for j in range(____________):
print(j, end = " ")
print()
1
2
3
4
5
D. i+1, i + i
第 12 题 下⾯Python代码执⾏后输出逆序数,如输⼊123则输出321。如输⼊120则输出21。横线处先后应填⼊的代码
是( ) 。
A. rst = rst * 10 + N % 10 N = N // 10
B. rst += N % 10 N = N // 10
C. rst = rst * 10 + N % 10 N = N / 10
D. rst += N % 10 N = N / 10
第 13 题 下⾯的Python代码⽤于输⼊学⽣成绩,并根据⼈数计算出平均成绩,有关说法错误的是( )。
A. 代码 while True: 写法错误
B. 如果输⼊负数,将结束输⼊,并正确输出
C. 如果录⼊的学⽣成绩含有⼩数,程序将报错
D. 以上说法都没有错误
第 14 题 请在横线上填写代码。以下Python代码判断输⼊的数是否为质数,如果该数字是质数,则输出YES,否则输
出NO。质数是指仅能被1和它本⾝整除的正整数( )。
A. num % i
B. num % i == 0
C. num // i
N = int(input())
rst = 0
while N:
____________________
______________________
print(rst)
1
2
3
4
5
6
Sum = 0 #保存总成绩
cnt = 0 #保存学生人数
while True:
score = int(input())
if score < 0:
break
cnt += 1
Sum += score
print(f"总学生数:{cnt},平均:{Sum/cnt}")
1
2
3
4
5
6
7
8
9
num = int(input())
for i in range(2,num):
if __________:
print("NO")
break
else:
print("YES")
1
2
3
4
5
6
7
题号 1 2 3 4 5 6 7 8 9 10
答案
D. num // i == 0
第 15 题 ⼀个数如果能被某个⼩于10的正整数(⽐如7)整除,或者含有该数,则说该数是某个数的相关数。下⾯
Python代码⽤于判断输⼊的数与7是否有关。其说法 的是( )。错误
A. 删除break语句将导致死循环
B. 删除 M //= 10 将可能导致死循环
C. 删除 M = N 并将其后代码中的M变量改为N,同样能完成相关功能,但输出形式有所不同
D. 删除break语句不会导致死循环,但有时会影响效率
2 判断题(每题 2 分,共 20 分)
第 1 题 ⼩杨最近开始学习Python编程,⽼师说Python是⼀门⾼级语⾔。( )
第 2 题 在Python中,print(3, 4, 5)可以输出 3 4 5 每个输出项之间⽤空格分开。( )
第 3 题 Python表达式 12 % 10 % 10 的值为2。( )
第 4 题 Python表达式 round(12.56) 的值为13。( )
第 5 题 Python语句 print(input() + input()) 能将先后输⼊的内容拼接在⼀起。 ( )
第 6 题 下⾯的Python将导致死循环。( )
第 7 题 下⾯Python代码执⾏后将输出10。( )
N = int(input())
Flag = False
M = N
if M % 7 == 0:
Flag = True
while Flag == False and M != 0:
if M % 10 == 7:
Flag = True
break
M //= 10
if Flag == True:
print(f"{N}与7有关")
else:
print(f"{N}与7无关")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while True:
break
1
2
第 8 题 下⾯Python代码能求整数N和M之间所有整数之和,包含N和M。( )
第 9 题 将下⾯Python代码中的range(1, 5)调整为range(5)输出结果相同。( )
第 10 题 某⼀系列数据的规律是从第3个数值开始是前两个数之和。下⾯的代码求第N个数的值,N限定为⼤于2。(
)
3 编程题(每题 25 分,共 50 分)
3.1 编程题 1
试题名称:数位之和
时间限制:1.0 s
内存限制:512.0 MB
3.1.1 题面描述
⼩杨有 个正整数,他认为⼀个正整数是美丽数字当且仅当该正整数每⼀位数字的总和是 的倍数。
⼩杨想请你编写⼀个程序判断 个正整数哪些是美丽数字。
for i in range(10):
continue
else:
print(i)
1
2
3
4
N = int(input())
M = int(input())
if N > M:
N, M = M, N
Sum = 0
for i in range(N, M + 1):
Sum += i
print(Sum)
1
2
3
4
5
6
7
8
9
10
11
loopCount = 0
for i in range(1, 5):
for j in range(i):
loopCount += 1
print(loopCount)
1
2
3
4
5
start1 = int(input()) #第1个数
start2 = int(input()) #第2个数
N = int(input()) #求N个数的值
for i in range(2, N):
start1, start2 = start2, start1 + start2
print(start2)
1
2
3
4
5
6
7
3.1.2 输入格式
第⼀⾏包含⼀个正整数 ,代表正整数个数。
之后 ⾏,每⾏包含⼀个正整数。
3.1.3 输出格式
对于每个正整数,如果是美丽数字则输出 Yes,否则输出 No。
3.1.4 样例1
的各位数字之和为 ,是 的倍数。 的各位数字之和为 ,是 的倍数。 的各位数字之和为
,不是 的倍数。
对于全部数据,保证有 。
3.1.5 参考程序
3.2 编程题 2
试题名称:⼩杨的
时间限制:1.0 s
内存限制:512.0 MB
3.2.1 题面描述
⼩杨想要构造⼀个 的 N 字矩阵( 为奇数),这个矩阵的从左上角到右下角的对角线、第 列和第 列都
是半角加号 + ,其余都是半角减号 - 。例如,⼀个 的 N 字矩阵如下:
3
7
52
103
1
2
3
4
Yes
Yes
No
1
2
3
import math
n = int(input())
for i in range(n):
x = int(input())
tot = 0
while x>0:
tot+=(x%10)
x=int(x/10)
if tot%7==0:
print("Yes")
else:
print("No")
1
2
3
4
5
6
7
8
9
10
11
12
13
请你帮⼩杨根据给定的 打印出对应的 N 字矩阵。
3.2.2 输入格式
第⼀⾏包含⼀个正整数 。
3.2.3 输出格式
输出对应的 N 字矩阵。
3.2.4 样例1
对于全部数据,保证有 且 为奇数。
3.2.5 参考程序
+---+
++--+
+-+-+
+--++
+---+
1
2
3
4
5
51
+---+
++--+
+-+-+
+--++
+---+
1
2
3
4
5
n = int(input())
for i in range(0,n):
for j in range(0,n):
if j==0 or j==n-1:
print('+',end='')
else:
if i==j:
print('+',end='')
else:
print('-',end='')
print('')
1
2
3
4
5
6
7
8
9
10
11