一、单选题(每题2分,共30分)
|
题号
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
|
答案
|
C
|
A
|
D
|
D
|
B
|
D
|
B
|
C
|
C
|
D
|
A
|
A
|
D
|
B
|
D
|
1、2024年10月8日,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John
J. Hopfield)和杰弗里·辛顿(Geoffrey
E. Hinton)。这两位科学家的主要研究方向是(
)。
A.天体物理
B.流体力学
C.人工智能
D.量子理论
【答案】C
【考纲知识点】计算机历史
【解析】两位科学家是计算机科学家,只有C选项人工智能属于计算机科学。
2、计算机系统中存储的基本单位用B来表示,比如某个照片大小为3MB,其中B代表的是(
)。
A.
Byte
B.
Block
C.
Bulk
D.
Bit
【答案】A
【考纲知识点】计算机基础
【解析】计算机中B表示Byte(字节)
1
B=8
bit,bit(比特)是计算机中信息传输的基本单位,代表二进制中的0或1,是最小的信息单位。而Byte(字节)是数据存储的基本单位,由8个相邻的bit组成,可以表示256种不同的状态。
3、Python语句print(3
+ 3 ** 3 * 2 - 1)执行后输出的值是(
)。
A.
731
B.
431
C.
246
D.
56
【答案】D
【考纲知识点】算术运算
【解析】3**3的结果是27,27*2结果为54,最后输出的值是3+54-1=56。
4、在Python中,与range(10)效果相同的是(
)。
A.
range(1, 10)
B.
range(1, 11)
C.
range(1, 10, 1)
D.
range(0, 10, 1)
【答案】D
【考纲知识点】range()函数
【解析】range
(10) 表示生成从0到9的整数序列(包含0,不包含10),range
(0, 10, 1) 与之相同,起始值为0,结束值为10(不包含),步长为1,答案选D。
5、下面Python代码执行后其输出是(
)。

A.
123456789
B.
0123456789
C.
12345678910
D.
012345678910
【答案】B
【考纲知识点】range()函数和print()函数的用法
【解析】for循环中i从0到9,print
(i, end="") 表示不换行输出每个数字,所以输出为0123456789,答案选B。
6、下面Python代码的相关说法中,正确的是(
)。

A.上述代码执行后其输出相当于求1
- 10的和(包含10)
B.上述代码执行后其输出相当于求1
- 10的和(不包含10)
C.上述代码执行后其输出相当于求0
- 10的和(不包含10)
D.上述代码执行时将触发异常
【答案】D
【考纲知识点】循环和变量累加
【解析】循环中tnt
+= i 相当于tnt
= tnt + i,将0到9依次累加到tnt中,但是程序并没有定义tnt的初始值,因此会报错,答案选D。
7、下面Python代码执行后输出是(
)。

A.
1
B.
2
C.
9
D.
10
【答案】B
【考纲知识点】循环与条件判断
【解析】循环从1到9,当i为奇数时continue跳过本次循环,当i为偶数时执行else中的break语句,所以当i为2时就结束了整个循环,输出2,答案为B。if
i%2当i除以2的余数为1时执行其后的continue,如果为0将break。I%2将首先得到余数值,然后转换为bool值,然后判断其结果为True还是False。
8、下面Python代码执行后的输出是(
)。
|
for
i in range(10):
if
i % 3:
continue
print("0",
end="#")
else:
print("1",
end="#")
|
A.
1#1#1#1#1#1#1#1#1#
B.
0#0#0#0#0#0#1#
C.
0#0#0#0#1#
D.
0#0#0#0#
【答案】C
【考纲知识点】循环与条件判断
【解析】
当i
= 0时,0
% 3 = 0,条件为假,执行print("0",
end="#"),输出0#。
当i
= 1时,1
% 3 = 1,条件为真,执行continue,直接进入下一次循环。
当i
= 2时,2
% 3 = 2,条件为真,执行continue,直接进入下一次循环。
当i
= 3时,3
% 3 = 0,条件为假,执行print("0",
end="#"),输出0#。
当i
= 4时,4
% 3 = 1,条件为真,执行continue,直接进入下一次循环。
当i
= 5时,5
% 3 = 2,条件为真,执行continue,直接进入下一次循环。
当i
= 6时,6
% 3 = 0,条件为假,执行print("0",
end="#"),输出0#。
当i
= 7时,7
% 3 = 1,条件为真,执行continue,直接进入下一次循环。
当i
= 8时,8
% 3 = 2,条件为真,执行continue,直接进入下一次循环。
当i
= 9时,9
% 3 = 0,条件为假,执行print("0",
end="#"),输出0#。
当循环正常结束后(即没有被break语句中断),将会执行else部分,输出1#。
整体输出为0#0#0#0#1#,答案为C。执行continue时,循环体内其后面的语句将在本次循环中不被执行。i
% 3其值为1或2时,将continue。
9、下面Python代码用于输出0
- 100之间(包含100)能被7整除但不能被3整除的数,横线处不能填入的代码是(
)。

A.
i % 7 == 0 and i % 3!= 0
B.
not(i % 7) and i % 3!= 0
C.
i % 7 and i % 3
D.
i % 7 == 0 and not i % 3 == 0
【答案】C
【考纲知识点】条件判断表达式
【解析】A、B、D选项都能正确表示能被7整除但不能被3整除的条件,C选项i
% 7 and i % 3表示既不能被7整除也不能被3整除的条件,答案选C。
10、下面Python代码用于求正整数各位数字之和,横线处应填入代码不能是(
)。

A.
tnt = tnt + N % 10
B.
tnt += N % 10
C.
tnt = N % 10 + tnt
D.
tnt = N % 10
【答案】D
【考纲知识点】求数字各位数字之和
【解析】在循环中,N
% 10 能得到N的个位数,将个位数累加到tnt中,然后N
= N // 10 去掉个位数,继续循环。D选项tnt
= N % 10 只将最后一位数字赋值给tnt,没有累加,不能求各位数字之和,答案选D。
11、下面Python代码执行后的输出是(
)。

A.
0010120123
B.
01012012301234
C.
001012012301234
D.
01012012301234012345
【答案】A
【考纲知识点】嵌套循环
【解析】外层循环5次,内层循环分别执行0、1、2、3、4次,输出的j依次是0,0、1,0、1、2,0、1、2、3,答案为A选项。
12、下面Python代码用于实现九九乘法表。相关说法错误的是(
)。

A.将代码最后一行的print()与if
- else对齐效果相同
B.将代码最后一行的print()修改为print("")效果相同
C.将Lie
* Hang > 9修改为Lie
* Hang >= 10效果相同
D.将Lie
* Hang > 9修改为Hang
* Lie > 9效果相同
【答案】A
【考纲知识点】嵌套循环
【解析】A选项将print
() 与if
- else 对齐会导致每个乘法算式后多一个换行,与之前的效果不同;B选项print
("") 与print
() 效果相同,都是起到换行的作用;C选项Lie
* Hang >= 10 与Lie
* Hang > 9 在判断条件时效果相同;D选项Hang
* Lie > 9 与Lie
* Hang > 9 在判断条件时效果相同。答案选A。
13、在数学中N!表示N的阶乘,即1到N的乘积,如3!=1*2*3。下面的Python用于求1
- N的阶乘之和,如N为3,则是1!+2!+3!。下面选项用于实现上述功能,其中不能实现的选项是(
)。





【答案】D
【考纲知识点】嵌套循环
【解析】求阶乘是从1开始累乘到当前数,A、B、C选项都能正确实现,D选项nowNum
= nowNum + i 计算错误,不是阶乘的计算方式,答案选D。
14、下面Python代码用于输出N和M之间的孪生素数,包含N和M,且孪生素数都在N和M之间。孪生素数是指间隔为2的两个数均为素数,如11和13分别是素数,且间隔为2。假设函数isPrime()是用于判断N是否为素数的函数,如果是素数返回值是True,不是素数则返回值是False。为完成上述功能,横线处应填上的代码是(
)。

A.
M - 2
B.
M - 1
C.
M
D.
M + 1
【答案】B
【考纲知识点】孪生素数的判断
【解析】要判断N到M之间的孪生素数,循环应该到M
- 1,因为判断的是i和i
+ 2 是否为素数,到M
- 1 就能包含M
- 2 和M这组可能的孪生素数,答案选B。
15、下面Python代码实现输出如下图形,横线应填入的代码是(
)。





【答案】D
【考纲知识点】循环结构与图形输出
【解析】要输出等腰三角形图形,每行前面的空格数应该是height
- 行数
个,又因为行数等于i+1,因此空格数应该是height
- (i+1),即height
- i - 1个,星号数应该是2
* i + 1 个,答案选D。
二、判断题(每题2分,共20分)
|
题号
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
|
答案
|
√
|
√
|
√
|
×
|
√
|
×
|
√
|
√
|
×
|
√
|
1、在Windows的资源管理器中为已有文件A建立副本的操作是Ctrl
+ C,然后Ctrl
+ V。(
)
【答案】正确
【考纲知识点】Windows操作系统基本操作
【解析】在Windows资源管理器中,Ctrl
+ C 是复制文件,Ctrl
+ V 是粘贴文件,可实现为已有文件建立副本,表述正确。
2、在Python代码中,假设N为正整数,则print(N
- N // 10 * 10)将获得N的个位数。(
)
【答案】正确
【考纲知识点】Python表达式获取正整数个位数
【解析】N
// 10 会舍去个位数,N
// 10 * 10会将N的个位数变成0,N
- N // 10 * 10可以获得N的个位数。
3、在Python语句print(10
<= N <= 12)中,假设N为12,则其输出为True。(
)
【答案】正确
【考纲知识点】比较运算符和逻辑表达式
【解析】10
<= 12 为True,12
<= 12 也为True,所以10
<= N <= 12 中N为12时输出True,表述正确。
4、如果Python表达式int(N
** 0.5) ** 2 == N的值为True,则说明N为完全平方数,如4、9、25等。(
)
【答案】正确
【考纲知识点】乘方运算符
【解析】先计算N
** 0.5 得到N的平方根,再取整后平方,如果等于N,则N是完全平方数,表述正确。
5、下面Python执行后将输出2*3
= 6。(
)

【答案】正确
【考纲知识点】格式化输出
【解析】f"{a}{b}={a
* b}" 会将变量a、b的值代入输出2*3
= 6,表述正确。
6、以下Python代码因为循环变量为_将导致错误,即_不能作为变量名称,不符合Python变量命名规范。(
)

【答案】错误
【考纲知识点】变量命名规范
【解析】在Python中,_可以作为循环变量,不违反变量命名规范,表述错误。
7、下面Python代码执行后将输出9。(
)

【答案】正确
【考纲知识点】continue和break语句
【解析】循环每次都会执行continue跳出本次循环,继续下一次循环,因此break一直无法执行。10次循环结束后,i的值为9,因此会输出9,表述正确。
8、下面的Python代码执行后将输出18行“OK”。(
)
【答案】正确
【考纲知识点】嵌套循环
【解析】外层循环i从8到2每次减2,但是不会取到2,因此外层循环i的值依次为8、6、4,内层循环每轮执行i次,因此一共会输出8+6+4=18行“OK”,表述正确。
9、将下面Python代码中的range(1,
5)调整为range(5)输出结果相同。(
)

【答案】错误
【考纲知识点】range()函数
【解析】range
(1, 5) 生成1到4的序列,range
(5) 生成0到4的序列,结果不同,表述错误。
10、下面两段Python代码都是用于求1
- 10的和,其运行结果相同。通常说来,for
- in循环都可以用while循环实现。(
)

【答案】正确
【考纲知识点】for循环与while循环
【解析】两段代码都能正确计算1到10的和,且for
- in 循环在很多情况下可以用while循环实现,表述正确。
三、编程题(每题25分,共50分)
1、寻找数字
题目描述
小杨有一个正整数a,小杨想知道是否存在一个正整数b满足a=b4。
输入格式
第一行包含一个正整数t,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数代表a。
输出格式
对于每组测试数据,如果存在满足条件的正整数b,则输出b,否则输出-1。
样例

对于全部数据,保证有1≤t≤105,1≤a≤
108。
【题目大意】t代表测试数据组数,意味着接下来要输入t个正整数a。对于每个输入的正整数a,先计算a的四次方根并取整得到b,然后判断b的四次方是否等于a,如果相等则输出b,否则输出-
1。
【考纲知识点】平方根函数
【解题思路】先导入math库用于数学计算,然后输入测试数据组数t。接着循环t次,每次输入一个正整数a。先计算a的平方根的平方根,也就是a的四次方根,再取整,将取整结果赋值给b。最后判断b的四次方是否等于a,如果成立输出b,否则输出-
1。
【参考程序】

2、数位和
题目描述
小杨有几个正整数,小杨想知道这些正整数的数位和中最大值是多少。
“数位和”指的是一个数字中所有数位的和。例如:
对于数字12345,它的各个数位分别是1,2,3,4,5。将这些数位相加,得到:
1+2+3+4+5=15
因此,12345的数位和是15。
输入格式
第一行包含一个正整数n,代表正整数个数。
之后n行,每行包含一个正整数。
输出格式
输出这些正整数的数位和的最大值。
样例

对于全部数据,保证有1≤n≤105,每个正整数不超过1012。
【题目大意】n代表正整数的个数,意味着接下来要输入n个正整数。对于每个输入的正整数,通过循环计算其数位和,然后与已有的最大值比较,更新最大值,最后输出最大值。
【考纲知识点】最大值函数,循环嵌套,求取数字每一位数
【解题思路】首先输入正整数个数n,初始化最大值x=0。循环n次,每次输入一个正整数tmp,计算tmp的数位和smu,通过循环取余和整除操作,将每个数位相加。求取数位和之后,比较smu和x,如果smu>x,则更新x=smu。最后输出最大值x。
【参考程序】

技术支持:冉亚玲
策划:GESP技术委员会副主席
刘晓庆