1、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?(
)
A.小程序
B.计时器
C.操作系统
D.神话人物
【答案】C
【解析】鸿蒙(HarmonyOS)是华为推出的一种操作系统,旨在为各种智能设备提供统一的操作系统支持,包括智能手机、平板电脑、智能手表、智能电视等。因此,小杨的手表上跑的鸿蒙是指操作系统。
2、中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是(
)。
A.制造自动驾驶汽车
B.创立培训学校
C.发明汉字激光照排系统
D.成立方正公司
【答案】C
【解析】王选先生是中国计算机学会(CCF)的一位著名科学家,他的重大贡献是发明了汉字激光照排系统。这项技术对于中文印刷工业的发展有着重要意义。
3、Python表达式(3
- 2) * 3 + 5 的值是(
)。
A.
-13
B.
8
C.
2
D.
0
【答案】B
【解析】先计算括号内的表达式:
(3 - 2) = 1,将结果乘以3:
1 * 3 = 3,将上一步的结果加上5:
3 + 5 = 8
因此,表达式(3
- 2) * 3 + 5 的值是B.
8。
4、Python语句print("5%2=",5
% 2) 执行后的输出是(
)。
A.
2 2
B.
1 1
C.
5%2=2
D.
5%2= 1
【答案】D
【解析】在Python中,print("5%2=",
5 % 2)会输出字符串"5%2=",然后跟着计算表达式5
% 2的结果,即余数1,print()函数输出项之间,默认用空格间隔,即最终结果为5%2=
1 。
5、执行Python语句a
= input() 时如果输入5+2,下述说法正确的是(
)。
变量a将被赋值为整数7
B.变量a将被赋值为字符串,字符串内容为5+2
C.语句执行将报错,不能输入表达式
D.语句执行将报错,因为input()函数的括号内没有提示字符串作为参数
【答案】B
【解析】input()函数接受用户的输入作为字符串,无论输入的是什么,都会被视为字符串。所以,无论输入什么内容,变量a都会被赋值为相应的字符串,并且字符串不会直接运算。
6、下面Python代码执行后的输出是(
)。

A.
a+1= 2
B.
a+1=2
C.
2=2
D.
2= 2
【答案】B
【解析】给定的代码使用了f-string 格式化字符串。在f-string 中,变量名应该用花括号{} 括起来。因此,正确的输出是:a+1=2。
7、下面Python代码执行时输入21后,有关描述正确的是(
)。

A.仅有代码4行被执行
B.第4和第7行代码都被执行
C.仅有代码第7行被执行
D.第8行代码将被执行,因为input() 输入为字符串
【答案】A
【解析】当输入21 时,21能够被3 整除,因此执行第一个条件语句块,输出"能被3整除"。由于满足了第一个条件,elif和else语句块都不会执行,因此只有第4行代码被执行,在程序中,即便有多个条件满足,也只执行满足条件的第一个。
8、下面Python代码第2行,总共被执行次数是(
)。

A.
0
B.
10
C.
19
D.
20
【答案】D
【解析】这是因为range(-10,
10) 生成了一个从-10到9的整数序列,包括-10但不包括10,所以有20个整数。每次循环中都会执行一次print(i),所以总共被执行了20次。
9、下面Python代码执行后的输出是(
)。
A.
0
B.
7
C.
18
D.
20
【答案】D
【解析】for循环遍历范围为0到9的整数。在if语句中,条件i%3 and i%7是指除以3和除以7的余数都不为0的情况下才执行tnt
+= i这个操作。因此,循环中只有当i等于1,2,4,5,8时,tnt才会累加。计算累加的结果是1+2+4+5+8=20。
10、下面Python代码执行后的输出是(
)。

A.
9#6#3#
B.
9#6#3#0#
C.
8#7#5#4#2#1#
D.
10#8#7#5#4#2#1#
【答案】B
【解析】N的初始值是10,然后开始循环迭代,每次减去1,直到N变为0。在迭代过程中,打印出被3整除的N的值,并在末尾添加"#"。
11、下面Python代码用于判断键盘输入的整数是否为质数。质数是只能被1和它本身整除的数。在横线处应填入代码是(
)。

A.
n % i
B.
n % i == 0
C.
n // i
D.
n / i
【答案】B
【解析】在横线处应填入判断条件,用来检查N是否能被i整除。因为质数是只能被1和它本身整除的数,所以应该填入选项B. n % i == 0。
12、下面Python代码执行后的描述,正确的是(
)。

A.有4条蓝色线段5条红色线段,总计9条线段
B.有4条红色线段5条蓝色线段,总计9条线段
C.有5条蓝色线段5条红色线段,总计10条线段
D.只有1条线段,线段颜色为蓝色
【答案】D
【解析】这段代码中,循环执行了10次,但是turtle.forward(50)只会在循环结束后执行一次,这是因为turtle.forward(50)与for对齐,所以没有被循环控制,只会被执行一次。在循环中的每次迭代中,颜色会被交替设置为'red'和'blue',但绘制线段的命令却只出现在循环外部,因此只有一条线段被绘制,而且颜色是最后一次循环设置的颜色,即蓝色。
13、下面Python执行后输出是(
)。

A.红色正方形,四周封闭
B.红色正方形,左边有缺口
C.红色正方形,右边有缺口
D.红色正方形,底边有缺口
【答案】B
【解析】这段代码绘制了一个红色的正方形,循环执行了3次。每次循环,海龟向前移动50个单位,然后向左转90度。因此,正方形的每条边都是直线段,但最后一个边的绘制会停在左上角,造成一个缺口。
14、下面Python代码执行后正确的图形是(
)。

A.完整圆形,但原位置重复三次,看起来是一个圆
B.以坐标(150,90)为圆心的完整圆形
C.不是完整圆形,缺少左下角的四分之一
D.不是完整圆形,缺少右下角的四分之一
【答案】C
【解析】这段代码绘制了三个圆弧,每个圆弧都是以半径为150的圆为基础,绘制了90度的弧度。这意味着每个圆弧都只绘制了一个四分之一的圆,而且是缺少左下角的四分之一。
15、为画出如下所示图形,下面Python代码横线处应填入(
)。


A.
150
B.
100
C.
50
D.
0
【答案】B
【解析】循环5次,每次执行以下操作:
使用turtle.circle函数绘制一个直角四边形,该四边形的半径为50,表示每条边的长度为50像素,步数为4,表示绘制一个4边形。使用turtle.forward函数向当前方向移动100个像素,即在绘制完正方形后,海龟向前移动100像素,以准备绘制下一个正方形。
二、判断题(每题2分,共20分)
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | √ | √ | × | √ | √ | × | × | √ | × | √ |
1、小杨今年春节回奶奶家了,奶奶家的数字电视可以通过遥控器输入电视剧名称来找到想播放的电视剧,所以
可以推知里面有交互式程序在运行。( )
【答案】正确
【解析】用户可以通过遥控器与数字电视进行交互。
2、任何一个for循环都可以转化为等价的while循环。(
)
【答案】正确
【解析】任何一个for循环都可以转化为等价的while循环,反之亦然。这是因为for循环和while循环都可以实现相同的功能,只是语法不同。
3、在Python代码中变量n被赋值为27,则print(n
//10)执行后输出的是7。(
)
【答案】错误
【解析】如果变量n被赋值为27,那么print(n
// 10) 执行后输出的应该是2,而不是7。
因为//运算符表示整数除法,结果会将除法的小数部分舍去,只保留整数部分。所以27除以10的整数部分是2,而不是7。
4、Python语句print(2,3,sep="#",end="&")执行后输出的是2#3&。(
)
【答案】正确
【解析】执行print(2,3,sep="#",end="&")会输出2#3&,因为print函数会打印出所有参数,并且参数之间用sep指定的分隔符分隔,然后在最后添加end指定的结束符号。在这个例子中,参数是2和3,分隔符是#,结束符号是&,所以最终的输出是2#3&。
5、在Python中,while可能是死循环,而for-in循环不可能是死循环。(
)
【答案】错误
【解析】在Python中,while循环和for-in循环都有可能成为死循环,这取决于循环的条件设置和循环体内部的逻辑。例如,在while循环中,如果条件始终为真,那么循环将永远执行下去,成为死循环。而在for-in循环中,如果遍历的可迭代对象长度为无限或者遍历条件不正确,同样会导致死循环的发生。
因此,无论是while循环还是for-in循环都有可能成为死循环。
6、Python表达式"10"*2执行时将报错,因为"10"是字符串类型而2是整数类型,它们数据类型不同,不能
在一起运算。( )
【答案】错误
【解析】在Python中,使用*运算符对字符串进行乘法运算会将字符串重复指定的次数。因此,"10"*2的结果是将字符串"10"重复两次,即"1010"。
7、在Python,break语句用于提前终止当前层次循环,适用于while循环,但不适用于for-in循环。(
)
【答案】错误
【解析】在Python中,break语句用于提前终止当前层次循环,不论是在while循环还是for-in循环中都适用。
以下Python代码默认将绘制一条水平直线。(
)

【答案】正确
【解析】turtle.goto(50,0)移动过程中移动轨迹为一条水平直线。
9、Python代码执行后,将绘制一个边长为100的等边三角形,且填充颜色为红色。(
)

【答案】错误
【解析】turtle.circle(100,
steps=3)绘制的是一个半径为100的圆的内切正三角形,边长不等于100。
10、Python代码turtle.right()也可以实现海龟指向左旋转。(
)
【答案】正确
【解析】turtle.right()函数确实可以使海龟向左旋转,这是因为right()函数中的参数是旋转的角度,正值表示向右旋转,负值表示向左旋转。因此,turtle.right()中如果传入正值参数,则海龟将向右旋转,如果传入负值参数,则海龟将向左旋转。
三、编程题(每题25分,共50分)
1、小杨买书
题面描述
小杨同学想用零花钱购买图书,已知图书单价为13元,请根据输入的零花钱数量,编写程序计算出最多可以购买多
少本图书,以及还剩余多少零花钱。
输入格式
只输入一个正整数,表示小杨零花钱的数量。【注意:零花钱的数量大于0但小于200,该条件不必体现在程序之中】
输出格式
输出为两行。第1行,最多购买图书的数量,第2行为购买图书后剩余的零花钱数量。
样例1

样例1解释
100为小杨可用于购买图书的金额,7为最多可以购买图书的数量,每本13元,最多可以购买7本,剩余9元不够购买一本,9为购买图书后的剩余零花钱数量。
样例2

【解题思路】通过input()函数获取输入的零花钱数量,然后使用整除运算符//计算可以购买的图书数量(每本图书13元),并使用取余运算符%计算剩余的零花钱数量。最后,将计算结果输出。如果输入的零花钱数量为m,则程序输出的第一行是可以购买的图书数量(m
// 13),第二行是剩余的零花钱数量(m
% 13),剩余零花钱数量还可以通过m-m//13*13实现。
【参考程序】

2、找因数
问题描述
小杨同学最近刚刚学习了因数的概念,具体来说,如果一个正整数N可以被另一个正整数M整除,我们则说M是N的因数。如6可以被2整除,因此2是6的因数。
请编写一个程序,从小到大输出正整数N的所有因数。如输入6,则逐行输出1、2、3、6。
输入描述
输入一行一个正整数N,假设N≤1,000【注意:不必反应到编程代码之中】。
输出描述
输出若干行,为N的所有约数,从小到大排列。
特别提醒
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
样例输入1

样例输出1

样例输入2

样例输出2

样例输入3

样例输出3

样例输入4

样例输出4

【解题思路】
输入一个正整数a,然后使用一个循环来遍历从1到a的所有数字,注意范围填入的是a+1,因为在循环时不包括最后一个数。循环中,检查当前数字是否是输入正整数a 的因数,如果是,则将其输出。
a
= int(input()): 接受用户输入一个正整数并将其存储在变量a 中。
for
i in range(1, a + 1):: 使用循环遍历从1到a的所有数字。
if
a % i == 0:: 检查当前数字i 是否是输入正整数a 的因数,即能整除a 而没有余数。
print(i):如果i 是a 的因数,则将其输出。
这样,程序将会按照从小到大的顺序输出正整数a 的所有因数。
【参考程序】
