【GESP】2023年03月Python一级试卷

2023年GESP03月认证Python一级试卷

分数:100 题数:27

一、单选题(共15题,每题2分,共30分)

010203040506070809101112131415
BACBBBCBAAAACBB

1、以下不属于计算机输入设备的有( )。

  • A. 键盘
  • B. 音箱
  • C. 鼠标
  • D. 传感器
  • 标准答案:B
  • 试题解析:本题属于考察计算机基础知识中的“输入”和“输出”概念;“输入”指外界向机器内部传递信息,“输出”指计算机内部信息向外界展示。此题中,“音箱”属于向外部播放声音,故属于输出概念,正确答案为B。

2、计算机系统中存储的基本单位用B来表示,它代表的是( )。

  • A. Byte
  • B. Block
  • C. Bulk
  • D. Bit
  • 标准答案:A
  • 试题解析:本题属于考察计算机基础知识中,关于存储的基本单位;计算机中,表示存储大小的最小单位为“字节”,英文为“Byte”,表示一个字节存储空间大小的单位,用大写字母B表示,故此题选A。

3、下面有关Python的说法,不正确的是( )。

  • A. Python是一种面向对象的程序设计语言
  • B. Python有丰富的扩展库,是Python的重要特色
  • C. Python编译器可以生成目标平台的机器代码,运行效率高
  • D. Python是解释型高级语言,可以跨平台运行
  • 标准答案:C
  • 试题解析:本题考察考生对于Python编程环境与语言特点的了解;C选项错误的原因为:Python是通过解释器逐行解释与运行程序,不属于编译型编程语言,且通常状况下,Python相对于C或C++等编程语言运行效率更低。

4、以下选项中,符合Python语言变量命名规则的是( )。

  • A. 5Star
  • B. fiveStar
  • C. *Star
  • D. @Star
  • 标准答案:B
  • 试题解析:本题考察Python语言中变量名的定义规则;Python中声明变量名时,变量名中能且只能包含字母、数字、下划线,且不能用数字开头,选项中A、C、D均不满足要求,故选B。

5、下面有关Python循环中有关break语句的说法,正确的是( )。

  • A. 含有break语句的所在循环,将不会执行该循环的else子句
  • B. 含有break语句的所在循环,如果break被执行,将中断该循环
  • C. 一个循环只能有且只能有一个break语句
  • D. 一个循环可以有多个break子句,但每次执行只能一个break被执行
  • 标准答案:B
  • 试题解析:本题属于考察循环结构中,流程控制关键字break的使用;A选项错误在于,如果循环与else结合,当循环没被break终止时,会执行else中的语句;C选项错误在于,循环结构中可以设置多个break语句;D选项的每次执行可能一个break也不被执行,而是正常结束。

6、在Python中实现123除以10分别得到其商a和余数b的代码是( )。

  • A. a, b = 123 % 10, 123 // 10
  • B. a, b = 123 // 10, 123 % 10
  • C. a, b = 123 / 10, 123 % 10
  • D. a, b = 123 / 10, 123 // 10
  • 标准答案:B
  • 试题解析:本题属于考察Python中的基本运算;首先需要了解赋值运算符的规则,如a,b = 1,2,相当于a=1,b=2;其次考察求商运算符//和求余运算符%的使用;综上,本题正确答案为B。

7、下面有关 turtle.color() 的说法,正确的是( )。

  • A. turtle.color() 函数不能没有参数;
  • B. turtle.color(1, 2, 3) 表示画笔颜色为1,背景颜色为2,前景颜色为3;
  • C. turtle.color(“red”,“green”)表示画笔颜色为red、填充颜色为green;
  • D. turtle.color((1, 2, 3), (4, 5, 6)) 分别表示画笔颜色和填充颜色;
  • 标准答案:C
  • 试题解析:本题属于考察Python中turtle绘图库的使用;turtle库中的color函数,默认颜色为黑色,故A错误;当接收整数作为参数时,三个整数分别表示红、绿、蓝三种颜色,参数可取值只有0和1,故B、D错误;当接收字符串作为参数时,两个参数分别表示画笔颜色和填充颜色,故此题选C。

8、下面Python代码执行后输出如下图形,请在第4行range后括号内横线上填入正确的代码( )。

import turtle

turtle.pensize(3)
for i in range(__________):
    if i % 2 == 0:
        turtle.pencolor("red")
        turtle.forward(40)
        turtle.left(90)
    else:
        turtle.pencolor("blue")
        turtle.forward(20)
        turtle.right(90)
  • A. 9
  • B. 10
  • C. 1, 9
  • D. 1, 10
  • 标准答案:B
  • 试题解析:本题主要考察for循环中变量i的取值范围;观察给出的图形可发现,图形中画出了5条红色线条和蓝色线条,程序共需要运行10次;通过对于程序代码的分析,当i%2==0表示i的取值为偶数时条件成立;所以第一条画出红色线条,i的初始值应为偶数,故排除A、C、D,正确答案为B。

9、turtle.speed(n) 用于确定绘图速度,当 n 值为( ),速度最快。

  • A. 0
  • B. 1
  • C. 5
  • D. 10
  • 标准答案:A
  • 试题解析:本题考察了turtle绘图库中speed()函数;参数的取值范围为0~10,其中参数从1~10画笔速度不断增加,参数为0时速度最快,本题属于固定用法,故选A。

10、下面Python代码执行后显示图形如下,turtle.circle() 实现,内外层半径相差为20像素,在横线上填入相应代码( )。

import turtle

turtle.pensize(2)
for i in range(5):
    turtle.penup()
    turtle.goto(0, -i * 20)
    turtle.pendown()
    turtle.circle(__________, steps=4)

turtle.done()
  • A. (i + 1) * 20
  • B. i * 20
  • C. 20
  • D. 40
  • 标准答案:A
  • 试题解析:本题考察了turtle绘图库中circle()函数的使用与for循环中变量i的取值;通过阅读程序发现,goto()函数中的y坐标在不断变小,画笔向下运动,可以分析出正方形要逐渐放大;for循环中,变量i的取值从0开始不断增加1,所以可以结合变量让circle函数的半径变大,实现画出更大的正方形,排除C、D选项;同时需注意i初始值为0,排除B选项;故正确答案为A。

11、下面Python执行后的输出结果是( )。

n = 30
if n > 10:
    print("A")
elif n > 20:
    print("B")
elif n == 30:
    print("C")
else:
    print("D")
  • A. A
  • B. B
  • C. C
  • D. D
  • 标准答案:A
  • 试题解析:本题主要考察Python中选择结构的使用;if…elif…else…结构,代表“如果…否则如果…否则…”,特点是:当多个条件中有一个条件能够成立时,不再进行其他条件的进行判断;当变量n的值为30时,满足第一个n>30的条件,直接输出对应的结果“A”后结束这个选择结构,故正确答案为A选项。

12、以下Python代码执行后输出结果是( )。

Sum = 0
for i in range(1, 10, 2):
    if i % 3:
        continue
    Sum += i
print(Sum)
  • A. 12
  • B. 13
  • C. 18
  • D. 23
  • 标准答案:A
  • 试题解析:本题考察了for循环中range()函数参数与变量i的关系,与循环结构中流程控制关键字continue的使用;range()函数的三个参数分别表示变量i能够取值的初始值、结束值与步长;如range(a,N,x)表示变量从a开始,到N-1结束,每次增加x;由此得出题目中i的取值分别为1、3、5、7、9。关键字continue的作用为,终止当次循环并重新开始下一次循环;条件i%3表示当i除3的余数非0时,略过当次循环,所以Sum中累加的i的值为3和9,故答案为A选项。

13、下面Python代码用来计算 1/1 + 1/3 + 1/6 + 1/10 + 1/15 + … 之和,其中第N项的分母为1 + 2 + 3 + … + N 之和,在横线填上合适代码以实现( )。

lastSum = 0
N = 1000000
runEnd = 0
for i in range(1, N + 1):
    __________
    runEnd += 1 / lastSum
print(runEnd)
  • A. lastSum = i
  • B. lastSum = sum(i)
  • C. lastSum += i
  • D. lastSum *= i
  • 标准答案:C
  • 试题解析:本题主要考察for循环中变量的取值,与复合赋值运算符的使用;首先需清楚a+=1的程序写法,等效于a=a+1;根据题意,分母应为1到N的和,阅读代码发现,i此时的取值范围恰好为从1到N,所以应该将变量i的值累加到lastSum变量中,故选项C为正确答案。

14、下面Python代码执行后输出是 ( ) 。

i = 2
for i in range(i + 2):
    print(i, end='#')
    i += 2
print(i)
  • A. 0#1#2#3#4
  • B. 0#1#2#3#5
  • C. 0#4#4
  • D. 因为i一直在变大,所以无穷循环永远输出
  • 标准答案:B
  • 试题解析:本题考察考生对于for循环中range()参数的设置与变量i取值的理解;首先i初始值为2,range(i+2)表示程序会重复执行4次;其次i的取值从0开始每次递增1,所以i值依次取0、1、2、3,程序输出0#1#2#3#;最后当i取值为3的时候,变量经过i+=2变为5,当循环结束输出i时,输出数字5,故选B。

15、执行以下Python代码后,数据结果是( )。

Sum = 0
for i in range(10):
    if i % 2 == 0:
        continue
    if i % 7 == 0:
        break
    Sum += i
print(Sum)
  • A. 0
  • B. 9
  • C. 10
  • D. 18
  • 标准答案:B
  • 试题解析:本题考察考生对于for循环中变量i取值的理解和流程控制break、continue关键字的掌握;首先i取值为从0到9;其次条件1表示当i为2的倍数时,略过当次循环,条件2表示当i为7的倍数时,终止整个循环;所以Sum变量中累加的数值依次为0、1、3、5,最终输出的结果为9,故此题选B。

二、判断题(共10题,每题2分,共20分)

01020304050607080910
××××

1、在Windows系统中通过键盘完成对选定文本移动的按键组合是先Ctrl+X,移动到目标位置后按Ctrl+V。

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题解析:本题考察计算机基础中快捷键的使用;Ctrl+X表示剪切文件(复制并从原位置删除),Ctrl+V表示粘贴所剪切的文件。

2、程序员用C、C++、Python、Scratch等编写的程序能在 CPU 上直接执行。

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题解析:本题属于对计算机历史中,编程语言特点的考察;题目中所列举的编程语言,均无法在CPU上直接执行,而是需要通过各自的方式,转换成机器语言后才能被CPU识别和执行,故本题错误。

3、Python代码 turtle.circle() 可以绘制每边边长相等的多边形。

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题解析:本题考察了turtle绘图库中circle函数的使用;circle函数可以通过设置steps参数,来画出圆形的内接正多边形,如circle(100, steps=3)可以画出半径100的圆形中的内接正三角形,故此题正确。

4、Python代码 turtle.goto() 执行后不会改变海龟的朝向。

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题解析:本题考察了turtle绘图库中goto函数的使用;goto函数只会改变画笔所在的位置,并不会调整画笔的方向,故此题正确。

5、Python的int()函数可以将数字式字符串形如"3.14"或浮点数如3.14转换为整数。

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题解析:本题主要考察Python中的数据类型概念和类型转换函数的使用;int函数可以将只包含整数的字符串类型数据,转换为整型数据,无法将包含小数点的数据转换为整数,故此题错误。

6、Python表达式 “10” * 2 的值为20。

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题解析:本题主要考察Python中不同数据类型进行运算时的规则;Python中定义字符串型*整型,代表将字符串重复N次,题目中的正确结果应该为"1010"。

7、Python表达式5 * 3 // 2的值为8,因为15除以2的商为7.5,四舍五入即为8。

  • 正确();
  • 错误();
  • 标准答案:×
  • 试题解析:本题主要考察Python基本运算中算术运算符的使用;//表示求除法运算中的商,所以5*3//2应该为15//2,即15除2的商,结果为7,故此题错误。

8、在Python语言中,判断语句if可以有多个elif从句,但最多只能有一个else从句。

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题解析:本题主要考察Python中选择结构中的if…elif…else…结构;本结构可以通过elif设置多个“否则如果”的条件,当所有条件不满足时,程序会执行else中的语句,此结构中只能有一个else,故此题正确。

9、在Python中,假如N为正整数,则range(N)与range(0, N)等效。

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题解析:本题考察了for循环结构中,range()的使用;range()函数默认从0开始,故range(N)与range(0,N)效果相同。

10、Python代码print(“19” + “49”)执行后将输出1949。

  • 正确();
  • 错误();
  • 标准答案:√
  • 试题解析:本题考察了基本数据类型中字符串的拼接操作;Python中定义两个字符串相加时,代表两个字符串进行拼接,故此题正确。

三、编程题(共2题,共50分)

1、鸡兔同笼

【问题描述】

利用 input() 语句先后输入两个正整数,分别代表鸡兔的头和脚的总数。其中,兔有四只脚,鸡有两只脚,都只有一个头。

请编写 Python 代码计算出兔和鸡的数量,输出结果形如“Chicken=15 Rabbit=5”,如没有解则输出“No solution!”。

【输入描述】

分两次输入,第一次输入头的总数,回车后输入脚的总数。

特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有input()函数不可有提示信息。

【输出描述】

如果有解,则输出鸡和兔分别数量,形如“Chicken=15 Rabbit=5”Rabbit之前有 1 个英文半角空格,C 和 R 都为大写。

如没有解则输出“No solution!”,No 之后有 1 个英文半角空格,solution
之后有英文半角叹号。

特别提示:注意字母大小写以及空格、叹号等匹配一致。

【样例输入 1】

20
50

【样例输出 1】

Chicken=15 Rabbit=5

【样例输入 2】

20
30

【样例输出 2】

No solution!

参考程序:

方法一:

head = int(input())
foot = int(input())

i = 0
num = 0
while i <= head:
    if i * 2 + (head - i) * 4 == foot:
        print("Chicken={} Rabbit={}".format(i, head - i))
        num += 1
    i += 1
if num == 0:
    print("No solution!")

方法二:

head = int(input())
foot = int(input())
R = (foot - 2 * head) / 2
C = head - R

if R < 0 or int(R) != R:
    print('No solution!')
else:
    C = int(C)
    R = int(R)
    print("Chicken={} Rabbit={}".format(C, R))

2、分数交错加减计算

【问题描述】

分数交错加减计算,形如:

1 1 − 1 3 + 1 5 − 1 7 + 1 9 − 1 11 + 1 13 − ⋯ \frac{1}{1}-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\frac{1}{11}+\frac{1}{13}-\cdots 1131+5171+91111+131

(1)利用 input() 语句输入一个大于 1 的正整数;

(2)计算规则:分母为连续奇数,分子为 1,偶数位置相减,奇数位置相加,一直计算到最接近 N(含)的奇数分母为止;

(3)计算结果四舍五入保留 8 位小数,仅输出计算结果,没有其他。

【输入描述】

输入一个大于 1 的正整数,假设输入合规,不考虑不合规情景,如带小数点的数,负数等。

特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有input()函数不可有提示信息。

【输出描述】

输出四舍五入保留 8 位小数。

特别提示:仅输出 8 位小数,没有其他。

【样例输入 1】

100

【样例输出 1】

0.78039866

【样例输入 2】

1000

【样例输出 2】

0.78489816

参考程序:

方法一:

N = int(input())

i = 0
s = 0
j = 2 * i + 1
while j <= N:
    if i % 2 == 0:
        s += 1 / j
    else:
        s -= 1 / j
    i += 1
    j = 2 * i + 1
print(round(s, 8))

方法二:

N = int(input())
s = 0
for i in range(1, N + 1, 2):
    if i % 4 == 1:
        s += 1 / i
    elif i % 4 == 3:
        s -= 1 / i

print(round(s, 8))

方法三:

N = int(input())
s = 0
for i in range(1, N + 1, 4):
    s += 1 / i

for i in range(3, N + 1, 4):
    s -= 1 / i

print(round(s, 8))

方法四:

N = int(input())
s = 0
for i in range(1, N + 1, 4):
    s += 1 / i
    if i + 2 <= N:
        s -= 1 / (i + 2)

print(round(s, 8))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少年编程小助手_Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值