CCF GESP Python 一级 2023年12月真题解析

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

1、某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。( )
A. 麦克风
B. 扬声器
C. 油量表
D. 传感器

答案:C

2、现代计算机是指电子计算机,它所基于的是( )体系结构。
A. 艾伦·图灵
B. 冯·诺依曼
C. 阿塔纳索夫
D. 埃克特-莫克利

答案:B

3、 以下Python不可以作为变量的名称的是( )。
A. CCF GESP
B. ccfGESP
C. CCFgesp
D. CCF_GESP

答案:A
解析:
1、变量名只能包含字母、数字和下划线。变量名的第一个字符必须是字母或下划线,不能以数字开头。
2、Python中大小写敏感
3、A答案中有空格键,空格键不能作为变量名

4、 Python表达式 10 - 3 ** 2 % 10 的值是( )。
A. 0
B. 1
C. 2
D. 3

答案:B
解析:3 ** 2 = 9,3的2次方,幂运算

5、假设现在是上午十点,求出N小时(正整数)后是第几天及时,如输入20小时则为第2天6点,如N输入4则为今天14点。为实现相应功能,应在横线处填写代码是( )。

N = int(input())
dayX,hourX = ___________________

if dayX == 0:
    print("今日",hourX,"点",sep="")
else:
    print("第",(dayX+1),"天",hourX,"点",sep="")

A. (10 + N) % 24 , (10 + N) // 24
B. (10 + N) // 24 , (10 + N) % 24
C. N % 24 , N // 24
D. 10 // 24 , 10 % 24

答案:B
解析:
1、先计算出一共多少小时
2、一天24小时,求天数:总共的小时数 // 24
3、小时:总共的小时数 % 24

N = int(input())
dayX,hourX = (10+N)//24,(10+N)%24

if dayX == 0:
    print("今日",hourX,"点",sep="")
else:
    print("第",(dayX+1),"天",hourX,"点",sep="")

6、下面的程序用于判断N是否为偶数,横线处应填写代码是( )。

N = int(input())
if _____________:
    print("偶数")
else:
    print("奇数")

A. N % 2 == 0
B. N % 2 = 0
C. N % 2
D. N % 2 != 0
答案:A
解析:偶数能被2整除,余数为0;奇数被2整数后余数为1

N = int(input())
if N % 2 == 0:
    print("偶数")
else:
    print("奇数")

7、下面对Python代码执行后输出的描述,正确的是( )。

N = int(input())
cnt = 0
for i in range(1,N):
    cnt += 1
print(cnt)

A. 如果输入的N是小于等于2的整数,第5行将输出0。
B. 如果输入的N是大于等于2的整数,第5行将输出N-1。
C. 如果输入的N是大于等于2的整数,第5行将输出N。
D. 以上说法均不正确。

答案:B
解析:带入数据测试每个结果是否正确
1、N是小于等于2的整数,设N = 1,运行结果为0;设N = 2,运行结果为1,A答案不正确
2、N是大于等于2的整数,设N = 2,运行结果为1;设N = 5,运行结果为4,B答案正确
3、N是大于等于2的整数,设N = 2,运行结果为1;设N = 5,运行结果为4,C答案不正确

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

cnt = 0
for i in range(1,10):
    cnt += 1
    i += 2
print(cnt)

A. 5
B. 6
C. 9
D. 10

答案:C
解析:注意i每次都是重新赋值,i从1变到9

cnt = 0
for i in range(1,10):
    cnt += 1
    i += 2
    print(cnt,i)
print(cnt)

运行结果:
1 3
2 4
3 5
4 6
5 7
6 8
7 9
8 10
9 11
9

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

tnt = 0
for i in range(20):
    if i % 20:
        continue
    else:
        if i % 3 == 0 and i % 5 == 0:
            break
    tnt += i
print(tnt)

A. 0
B. 1
C. 2
D. 3

答案:A
解析:注意看break的位置,break用于立即终止当前循环。

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

N = 10
cnt = 0
while True:
    if N == 0:
        break
    cnt += 1
    N -= 2
print(cnt)

A. 11
B. 10
C. 5
D. 4

答案:C
解析:cnt和N的取值
1 8
2 6
3 4
4 2
5 0

11、下面Python代码用于判断一个数是否为质数(素数),在横线处应填入代码是( )。

N = int(input("请输入一个正整数:"))
N = int(N)

cnt = 0 # 记录N被整除的次数

for i in range(1,N+1):
    if N%i == 0:
        ___________

if cnt == 2:
    print(N,"是质数。")
else:
    print(N,"不是质数。")


A. cnt = 1
B. cnt = 2
C. cnt =+ 1
D. cnt += 1

答案:D
解析:

N = int(input("请输入一个正整数:"))
N = int(N)

cnt = 0 # 记录N被整除的次数

for i in range(1,N+1):
    if N%i == 0:
        cnt += 1

if cnt == 2:
    print(N,"是质数。")
else:
    print(N,"不是质数。")

12、 当执行 turtle.forward() 时,提示如下信息: NameError: name ‘turtle’ is not defined. Did
you mean: ‘tuple’? ,下面描述正确的是( )。

A. 提示的含义有“ turtle 没有定义”之意,故先执行 turtle = 0 即可
B. 将 turtle 修改为 tuple 后将不会报错
C. turtle.forward() 中的 forward 错误,必须先执行 turtle.pendown()
D. 因为没有执行 import turtle ,故有此错误。

答案:D
解析:翻译一下这句话的意思,is not defined = 没有被定义

13、先后执行Python代码 import turtle 和 turtle.circle(10,steps = 3) 后,正确的说法是( )。

A. 将绘制出半径为10,弧度为3的圆
B. 将绘制出半径为10,角度为3的圆
C. 将绘制出边长为10的正三边形,即等边三角形
D. 将绘制出半径为10的内接圆正三边形,即等边三角形

答案:D

14、下面Python代码执行后输出的正确图形是( )。

import turtle

turtle.pensize(4)
turtle.pencolor("red")

for i in range(3):
    turtle.forward(80)
    turtle.left(120)

在这里插入图片描述

答案:A
解析:最初箭头是朝向右边的

15、 为实现下图所示效果,请完善随后的Python代码,并在横线上填入相应代码( )。
在这里插入图片描述

import turtle

nowX = 0
for i in range(5):
    turtle.penup()
    turtle.goto(nowX,________)

    turtle.pendown()
    turtle.circle(10*(i+1))

    nowX = nowX + 10*(i*2+3)

turtle.penup()
turtle.home()
turtle.pendown()
turtle.forward(nowX-10*(i*2+3))

A. -10
B. 10 * i
C. 10 * (i + 1)
D. -10 * (i + 1)

答案:D
解析:

import turtle

nowX = 0
for i in range(5):
    turtle.penup()
    turtle.goto(nowX,-10*(i+1))

    turtle.pendown()
    turtle.circle(10*(i+1))

    nowX = nowX + 10*(i*2+3)

turtle.penup()
turtle.home()
turtle.pendown()
turtle.forward(nowX-10*(i*2+3))

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

第 1 题 小杨最近在准备考GESP,他用的Python IDLE来练习和运行程序,所以Python IDLE也是一个小型操作系统。(错误)

解析:Python IDLE是一个集成开发和学习环境,‌专为Python编程语言设计,‌它提供了一个简单易用的界面,‌允许用户编写、‌调试和运行Python代码。‌

第 2 题 任何一个 while 循环都可以转化为等价的 for 循环(错误)。

解析:这题有争议

第 3 题 Python表达式 int(3.14) 的值为3。( 正确 )
第 4 题 Python语句 print(2 ** 3, 3 % 10, 2+3) 的输出为 8,3,5 。 ( 错误 )

解析:输出为:8 3 5,考点:输出语句默认用空格键间隔

第 5 题 Python内置函数 range(1,10,3) 表示从1开始到10结束间隔为3,相当于1、4、7、10。( 错误)

解析:range(1,10,3)表示从1开始到9结束间隔为3,相当于1、4、7。

第 6 题 Python表达式 int(“10”*2+“10”)+101 的值为101111。( 正确)

解析:int(“10”*2+“10”) = int(101010),101010 + 101 = 101111

第 7 题 在Python中,判断语句如果有多个条件,条件之间通常不应重叠,否则可能导致误判。( 正确)

第 8 题 在下面的Python代码中,由于循环中的 continue 是无条件被执行,因此将导致死循环。( 错误)

while True:
    continue

解析:这题有争议,代码应该会形成死循环

第 9 题 在Python代码中, turtle.reset() 和 turtle.clear() 功能相同,都是清除画面,海龟回到原点,朝向置为默认方向。( 错误 )

解析:
1、turtle.clear() 命令用于清空 turtle 窗口的内容,‌但不会改变海龟的位置和状态。‌
2、turtle.reset() 命令不仅清空窗口,‌还会将海龟的状态重置为起始状态,‌即将海龟的位置设置到原点,‌并且朝向东方。‌

第 10 题 在Python的turtle库中, turtle.right() 与 turtle.rt() 等价。(正确)

三、编程题(每题 25 分,共 50 分)

3.1 编程题 1

试题名称:小杨的考试
时间限制:1.0 s
内存限制:128.0 MB

3.1.1 题面描述

今天是星期X,小杨还有N天就要考试了,你能推算出小杨考试那天是星期几吗?(本题中使用7表示星期日)

3.1.2 输入描述

输入 2 行,第一行一个整数 (1<=X<=7);第二行一个整数N (1<=N<=364)。

3.1.3 输出描述

输出一个整数,表示小杨考试那天是星期几。

3.1.4 特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

3.1.5 样例输入 1

6
1

3.1.6 样例输出 1

7

3.1.7 样例解释 1

今天是星期 1,那么 6 天后就是星期日,星期日在本题中用7表示。

3.1.8 样例输入 2

5
3

3.1.9 样例输出 1

1

3.1.10 样例解释 2

今天是星期 5,那么 3 天后就是星期 1。

3.1.11 参考程序

参考代码:来自官网

x = int(input())
n = int(input())
print((x - 1 + n % 7) % 7 + 1)

3.2 编程题 2

试题名称:小杨报数
时间限制:1.0 s
内存限制:128.0 MB

3.2.1 问题描述

小杨需要从1到N报数。在报数过程中,小杨希望跳过M的倍数。例如,如果 N=5,M=2,那么小杨就需要依次报出1、3、5。
现在,请你依次输出小杨报的数。

3.2.2 输入描述

输入 2 行,第一行一个整数N(1<=N<=1000);第二行一个整数M(2<=M<=100)。

3.2.3 输出描述

输出若干行,依次表示小杨报的数。

3.2.4 特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

3.2.5 样例输入 1

5
2

3.2.6 样例输出 1

1
3
5

3.2.7 样例输入 2

10
3

3.2.8 样例输出 2

1
2
4
5
7
8
10

3.2.9 参考程序

参考代码:来自官网

n = int(input())
m = int(input())
for i in range(1, n + 1):
    if i % m != 0:
        print(i)
  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值