2023年GESP06月认证Python一级试卷
分数:100 题数:27
一、单选题(共15题,每题2分,共30分)
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | C | D | C | D | B | A | A | B | D | B | A | A | A | D |
1、以下不属于计算机输出设备的有( )。
- A. 麦克风
- B. 音箱
- C. 打印机
- D. 显示器
- 标准答案:A
- 试题解析:考察计算机基础知识,输出指从计算机内部向外,输入指从外部向内,本题中B、C、D三个选项均是从内部向外,只有A是接收声音并传入计算机,是从外部向内。
2、ChatGPT 是 OpenAI 研发的聊天机器人程序,它能通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你猜猜看,下面任务中,ChatGPT不能完成的是( )。
- A. 改邮件
- B. 编剧本
- C. 擦地板
- D. 写代码
- 标准答案:C
- 试题解析:本题根据题目中的资料提示:“它能通过理解和学习人类的语言”,判断GPT可以完成文本相关工作和任务,C选项擦地板不属于文本任务,其余三个选项均是文本任务。
3、Python表达式2+3**2*3
的值是( )。
- A. 15625
- B. 731
- C. 75
- D. 29
- 标准答案:D
- 试题解析:本题考察算术运算符的运算优先级,本题中优先算3²=9,然后算乘法,9*3=27,最后算加法,2+27=29,所以选择D选项。
4、Python语句print(5//2*3,5%2*3)
执行后的输出是( )。
- A. 0 5
- B. 05
- C. 6 3
- D. 63
- 标准答案:C
- 试题解析:本题考察算术运算符和print逗号隔开连续输出,逗号前面整除和乘法是同等级,按从左向右运算,结果为6,逗号后面部分运算结果为3,print函数输出多个默认中间使用逗号隔开,故D选项错误。
5、执行Python语句a = int(input())
时如果输入3.14,下述说法正确的是( )。
- A. 变量a将被赋值为整数值3
- B. 变量a将被赋值为浮点数3.14
- C. 变量a将被赋值为整数值4
- D. 语句执行将报错
- 标准答案:D
- 试题解析:本题考察input和int函数,input接受的数字会被转换成字符串格式,所以接收的3.14是字符串类型,而int函数不能将字符串类型的小数形数字转换成浮点型数据,程序会报错,故选择D选项。
6、下面Python代码执行后的输出是( )。
n = 18
if n % 3:
print(0, end="#")
else:
print(1, end="#")
if n % 5:
print(0)
else:
print(1)
- A. 0#1
- B. 1#0
- C. 0#0
- D. 1#1
- 标准答案:B
- 试题解析:本题考察分支语句,if语句后方为真执行if下方代码块否则执行else下方 代码块,n=18,n%3=0,0为假,所以第一对分支语句执行else代码块,输出1#。n%5=3, 3为真,所以第二对分支语句执行if代码块,输出0,故最终输出1#0,选择B选项。
7、下面Python代码执行后的输出是( )
tnt = 0
for i in range(-50, 50):
tnt += i
print(tnt)
- A. -50
- B. 0
- C. 50
- D. 100
- 标准答案:A
- 试题解析:本题考察循环和累加,range函数是包含起点,不包含终点。所以范围是-50~49,范围内所有数累加时,从1~49正负互相抵消为0,加0不变还是0,只剩下一个-50,故选择A选项。
8、下面Python代码执行后的输出是( )。
tnt = 0
for i in range(10, 2):
tnt += i
print(tnt)
- A. 0
- B. 3
- C. 20
- D. 25
- 标准答案:A
- 试题解析:本题考察循环和累加,range函数第一个参数为起点,第二个参数为终点。所以本题中循环是要从大数到小数,但是没有写步长为负数,默认步长为1,向上增长,所以循环执行0次,即代码不执行该循环,相当于直接输出为0的tnt,故选择A选项。
9、下面Python代码执行后的输出是( )。
tnt = 0
for i in range(2, 6):
if i % 2:
tnt += i
print(tnt)
- A. 6
- B. 8
- C. 12
- D. 14
- 标准答案:B
- 试题解析:本题考察依然循环和累加,range函数是包含起点,不包含终点。所以循环变量i的范围是2~5,在2、3、4、5四个数中2和4取余2为0,不能走if语句,3和5取余2不为0,if为真能够执行累加操作,3和5能被累加,故结果为8,选择B选项。
10、下面Python代码执行后的输出是( )。
n = 10
tnt = 0
while n != 0:
if n % 3:
tnt += n
n -= 1
print(tnt)
- A. 18
- B. 22
- C. 33
- D. 37
- 标准答案:D
- 试题解析:本题考察循环、分支和累加逻辑,首先循环变量n的范围是从10到1,其中10、8、7、5、4、2、1取余3不为0,if语句为真,则能执行累加语句被累加到tnt中,故结果为37,选择D选项。
11、下面Python代码执行后的描述,正确的是( )。
import turtle
for i in range(10):
if i % 2 == 0:
turtle.pencolor("red")
else:
turtle.pencolor("blue")
turtle.forward(i * 10)
- A. 有4条蓝色线段5条红色线段,总计9条线段
- B. 有4条红色线段5条蓝色线段,总计9条线段
- C. 有5条蓝色线段5条红色线段,总计10条线段
- D. 有5条红色线段5条蓝色线段,总计10条线段
- 标准答案:B
- 试题解析:本题考察循环、分支和turtle模块,代码中循环10次,循环变量i范围是从0到9,根据奇偶决定颜色,其中第一次循环i的值为0,0*i=0,所以前进0像素,第一次循环没有线段产生,整体段数为9。其中1、3、5、7、9是奇数,产生蓝色段,2、4、6、8是偶数,产生红色段,故选择B选项。
12、下面Python执行后输出是( )。
import turtle
for i in range(10):
turtle.circle(i * 10)
-
A.
-
B.
-
C.
-
D. 以上都不正确
- 标准答案:A
- 试题解析:本题考察循环和turtle模块,代码中循环10次,共9个圆,并没有画笔坐标移动,9个圆形都是从一个位置出发,半径分别为10、20、30…形成A选项所示图形,故选择A选项。
13、下面Python代码执行后正确的图形是( )。
import turtle
for i in range(5):
if i % 2 == 0:
turtle.right(90)
turtle.pencolor("red")
else:
turtle.left(90)
turtle.pencolor("blue")
turtle.forward(10 * 15 - 10 * i)
-
A.
-
B.
-
C.
-
D.
- 标准答案:A
- 试题解析:本题考察循环和turtle模块,首先是循环次数为5次,根据最后的前进命令可知,每次循环前进的长度依次减小,根据循环变量i的奇偶性,决定转弯的方向和画笔颜色,画笔在初始朝右的状态下是先右转红色,再左转蓝色,后面以此类推,故选择A选项。
14、为画出如下所示图形,下面Python代码横线处应填入( )。
import turtle
for i in range(5):
turtle.penup()
turtle.goto(________)
turtle.pendown()
turtle.circle(40, steps=4)
- A. i * 80, 0
- B. i * 40, 0
- C. 0, i * 80
- D. 0, i * 40
- 标准答案:A
- 试题解析:本题考察循环和turtle模块,根据要求补全程序,图中的正方形是使用circle命令画出来的,通过循环每次goto到下一次的起点,由圆形的半径是40可以推断出每次向右移动的距离应为80,一直处于同一高度,所以y坐标不变,故选择A选项。
15、为画出如下所示图形,下面Python代码横线处应填入( )。
import turtle
for i in range(5):
turtle.left(90)
turtle.circle(40, ________)
turtle.goto(80*(i+1),0)
turtle.left(90)
- A. -180
- B. -90
- C. 90
- D. 180
- 标准答案:D
- 试题解析:本题考察循环和turtle模块,根据要求补全程序,图中是使用circle命令画半圆形,可确定圆心角是180度,如果角度写-180,则圆形是向下的,处于横线下方;一直处于同一高度,所以y坐标不变,故选择D选项。
二、判断题(共10题,每题2分,共20分)
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
---|---|---|---|---|---|---|---|---|---|
√ | √ | √ | × | × | × | √ | √ | × | √ |
1、计算机硬件主要包括运算器、控制器、存储器、输入设备和输出设备。
- 正确();
- 错误();
- 标准答案:√
- 试题解析:本题考察计算机基础知识中的组成部分,属于概念题,硬件主要包括运算器、控制器、存储器、输入设备和输出设备。
2、诞生于1958年的103机是中国第一台通用数字电子计算机,比1946年在美国诞生的第一台通用电子计算机 ENIAC 晚了十多年。
- 正确();
- 错误();
- 标准答案:√
- 试题解析:本题考察计算机基础知识中的计算机发展史,属于概念题,103型通用数字电子计算机是我国第一台电子计算机,于1958年8月研制成功,平均每秒运算1万次,接近当时英国、日本计算机的指标。
3、在Python代码中变量n被赋值为正整数,则表达式print(n % 10)的值为正整数n的个位数。
- 正确();
- 错误();
- 标准答案:√
- 试题解析:本题考察运算符中的算术运算符%,正整数对10进行取余运算是可以得到不够10没进位的个位数,例如:58%10=8、13%10=3。
4、Python语句print(2, 3, sep="#", end="->")
中的sep和end先后顺序不能改变。
- 正确();
- 错误();
- 标准答案:×
- 试题解析:本题考察print输出函数,sep和end两个参数为关键字参数,调换顺序也可以通过名字,找到对应位传递位置,先后顺序改变,输出结果不变。
5、Python函数input()可以输入字符串、整数、浮点数等。
- 正确();
- 错误();
- 标准答案:×
- 试题解析:本题考察input输入函数,input接收的输入会被转换成字符串,无论输入的是数字还是字符串,都以字符串的格式存储,所以我们平时做题有时需要配合int进行数据类型转换。
6、Python表达式int("10"*2)+10
的值为整数30。
- 正确();
- 错误();
- 标准答案:×
- 试题解析:本题考察数据运算和数据类型转换,首先是字符串10乘数字2之后变成字符串1010后,被int函数转换为数字1010,再和数字10做常规加法运算,1010+10=1020,故本题说法错误。
7、在Python中,通常可以用while模拟实现for-in循环,但for-in未必能模拟实现while循环。
- 正确();
- 错误();
- 标准答案:√
- 试题解析:本题考察for循环和while循环,这两种循环形式不同,某些情况可以相互和转换,但有些时候涉及到循环内局部变量和全局变量时未必能直接转换,故本题说法正确。
8、在Python代码中,可以将变量命名为print,虽然print是输出函数名称,但该变量命名非常不好。
- 正确();
- 错误();
- 标准答案:√
- 试题解析:本题考察python中的变量名命名规则,其中有规定不使用和关键字冲突的名字,虽然某些情况下可以运行通过,但这样的命名方式确实非常不好,故本题说法正确。
9、以下Python代码将绘制一个红色填充的圆。
import turtle
turtle.fillcolor('red')
turtle.circle(20)
- 正确();
- 错误();
- 标准答案:×
- 试题解析:本题考察turtle模块中的填充知识点,代码中只是设置了填充颜色,并没有使用开始填充和结束填充命令将圆形命令包裹起来,所以不会有填充颜色,故本题说法错误。
10、Python代码turtle.forward()执行后,不改变海龟朝向。
- 正确();
- 错误();
- 标准答案:√
- 试题解析:本题考察turtle模块,前进命令forward只是画笔位置移动,不会改变画笔当前朝向,故本题说法正确。
三、编程题(共2题,共50分)
1、时间规划
【问题描述】
小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟,你能通过编程帮他做到吗?
【输入描述】
输入 4 行,第一行为开始时刻的小时,第二行为开始时刻的分钟,第三行为结束时刻的小时,第四行为结束时刻的分钟。输入保证两个时刻是同一天,开始时刻一定在结束时刻之前。时刻使用 24 小时制,即小时在 0 到 23 之间,分钟在 0 到 59 之间。
【输出描述】
输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。
【样例输入1】
9
5
9
6
【样例输出1】
1
【样例输入2】
9
5
10
0
【样例输出2】
55
参考程序:
h1 = int(input())
m1 = int(input())
h2 = int(input())
m2 = int(input())
print(h2 * 60 + m2 - h1 * 60 - m1)
2、累计相加
【问题描述】
1、 累计相加,形如:
1 + ( 1 + 2 ) + ( 1 + 2 + 3 ) + ( 1 + 2 + 3 + 4 ) + ⋯ + ( 1 + 2 + 3 + 4 + 5 + ⋯ + n ) 1 + (1 + 2) + (1 + 2 + 3) + (1 +2 +3 +4) + \dots +(1 + 2 + 3 + 4 + 5 + \dots + n) 1+(1+2)+(1+2+3)+(1+2+3+4)+⋯+(1+2+3+4+5+⋯+n)
2、利用 input()语句输入一个大于 1 的正整数;
3、观察后一项与前一项的关系;
【输入描述】
1、输入一个大于 1 的正整数,假设输入合规,不考虑不合规情景,如带小数点的数,
负数等;
2、特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所
有 input()函数不可有提示信息。
【输出描述】
输出累计相加的结果。
【样例输入1】
3
【样例输出1】
10
【样例输入2】
4
【样例输出2】
20
【样例输入3】
10
【样例输出3】
220
参考答案:
N = int(input())
allTnt = 0 # 保存全部序列之和
subTnt = 0 # 保存子序列之和
for i in range(1, N+1):
subTnt += i
allTnt += subTnt
print(allTnt)