2024年6月GSEP(python)一级认证真题讲解

    注意!做题时长为2小时,孩子做完题目后对照讲解视频和讲解分析,针对薄弱点,进行有效的专项提高。

👑讲解视频

2024.6GESPpython真题讲解

补充:第九题视频讲解的有错误,讲解分析是对的,答案是A。

​​​​​​​for i in range(10)这样的for循环最后遍历的值只会等于终止值-1,比如:
for i in range(10) # 遍历0到10-1=9
for i in range(0,10) # 从0开始遍历到10-1=9
for i in range(0, 10, 1) # 从0开始每一次+1遍历到10-1=9
这三个for循环是等价的。
最后i只会等于9!!!
但如果是
i = 0 
while i < 10:
  i +=1
这样的话i是等于10的最后

👑讲解分析

1 单选题(每题 2 分,共 30 分)🎈

答案与解析: 选C,分别是C++,Python,Scratch。

答案与解析: 选B,感应线圈不用制造计算机,集成电路和晶体管发明时间分别是1958年和1947年,其中晶体管是电子管的升级版,在第一台计算机制造出来之后才发明成功。

答案与解析: 选B,余数N%M最大值为M-1,所以值为 2 + 6 = 8。比如 3%3=0,3%4=1,3%5=2,3%6=0,这是一个无限循环0->1->2->0-,8也是一样的道理。

答案与解析: 选D,考察print输出格式,""双引号里面的都是打印的内容,可以看到双引号前面有一个f,这个格式下的print当遇到{}的时候,有三种情况:

  1. {}里面没有表达式:那么大括号里面的内容会被直接打印出来。
    print(f"5%2={}", 5%2)
    
    输出:5%2= 1
  2. {}里面有表达式:那么逗号后面的内容会被打印出来。
    print(f"5%2={5%2}", 5%2)
    
    输出:5%2=1 1

逗号后面的,后括号前面的这一部分是另外的打印,自动使用空格隔开,这个式子计算结果是1,所以最后的结果是 5%2=1 1

答案与解析:选B , 这里面有两个关键函数print()和input(),print()的作用是输出字符串,input的作用是输入字符串,这个代码等价于:

pin = input()
prnt(pin)

输入的5+2是一个字符串,自然也就原本不动的输出字符串。

 答案与解析:选C , 太简单啦!显示让a等于一个小数101.101,随后又让a等于一个整数101,此时a等于小数101.101已经被覆盖掉了,因为程序是一行一行执行的,最后输出了a+1的值,a等于101,a+1自然就是102,结合print的格式,毫无疑问就是C。

  答案与解析:选A , 这题依旧考察的是print,当使用print的时候输出的都是字符串,如果不是字符串那就会自动转换为字符串,所以 {a}+{b} 的输出就是 5 + 5。字符串输出的样子也是5,整形也是5,自动转换为字符串后还是5,都不会说输出'5',B选项容易被坑,这个单引号错了,多余了。

  答案与解析:选A ,根据程序和题意可知,N等于10,并且被转换为了int类型 N%3=10%3=1,非零都是True,所以直接进入if下面的代码,而不是else下面的代码。

答案与解析:选A , 就是一个简单的for循环,i从0遍历到9,每一次都让Sum加上i,所以Sum最后等于0+1+2+3+4+5+6+7+8+9 = 45, 根据print可知打印的是i和Sum,逗号在打印会自动使用空格隔开。所以答案就是 9 45。

 答案与解析:选D , 

  • 分析A选项:Flag初始化为False,通过判断语句N>=2可以知道,如果输入负整数直接跳过中间的质数判断,此时Flag还是False,所以执行else那块代码。√
  • 分析B选项:如果输入2,进入判断是否质数,是质数的话Flag就是True,2就是质数,代码都不用看就知道Flag是True。
  • 分析C选项:此时N等于2,满足N≥2的条件会进入for循环,但此时N为2,与for循环初始值2相等,直接退出循环。所以并没有被执行。
  • 分析D选项:和A选项一个原理,改了之后没执行Flag=True这代码,没进去,默认是False。

  答案与解析:选C , 分析A选项:如果输入10,N=10,进入循环从1遍历到N,也就是10,每一次遍历,如果i%2==1,也就是i等于奇数的话,就让Sum加上i。实现求得1到N的奇数和,最后输出i和Sum,i最后肯定等于N+1,Sum则是1到N的奇数和。1+3+5+7+9 = 25,所以A是对的。

  • 分析B选项:一样的道理,也是对的。
  • 分析C选项:移动到上面的话i一上来就等于2了,就永远少加了一个1.大no特no。
  • 分析D选项:这个有点小难度,看到C的话已经得出答案了,但还是要分析一下,这其实也非常简单,无非就是从1遍历到N,每次遍历判断i是不是奇数,这一步改为了从1遍历到N,每次i加上2,那么i永远都是奇数。因为奇数n的上一个奇数m相减一定等于2,比如奇数1和3,3-1=2。但必须是非零。

 答案与解析:D ,看似是考察turtle,其实就是简单考一下余数计算,可以看到程序就是从1遍历到9,每一次让i加上2,也就是遍历[1,3,5,7,9],线段一共有5条,然而,i%3=0满足条件的有[3,9]。满足条件就是输出红色,所以红色2条,蓝色3条。

   答案与解析:C ,很简单,就是考察一下turtle.circle()函数的参数是什么东西。

以下是turtle.circle()方法的参数表:

  • radius:圆的半径,为正数表示圆心在乌龟左侧,为负数表示圆心在乌龟右侧。
  • extent(可选):绘制的角度范围,默认为360度(完整圆形)。
  • steps(可选):近似圆的边的数量,用于绘制圆的多边形近似,默认为30。

    

答案与解析:C ,太简单了,for循环里面的就是turtle.left()转弯用的,可以看到一共有9个转折点,所以转了9次,一眼C,因为for循环从10开始遍历,每次加10,知道满足d=100,d一共遍历了[10,20,30,40,50,60,70,80,90],正要d=100的时候,满足d=100的条件直接退出了,所以一共9次,是对的。如果选了D,那就只运行8次,转少了。

 答案与解析:C ,太简单啦!看下图,轻而易举就知道每一次转了90°,直接选90那个。

 2 判断题(每题 2 分,共 20 分)🎈

 第 1 题 GESP测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。( )

 答案与解析: , 常识题。

第 2 题 Python语句

 print(N // 3,N % 3, N ** 3, sep = "->",end = "END") 

中的N已被赋值为10,则该语句 执行后输出是。 ( ) 

输出:3->1->1000->END

 答案与解析:× ,

 "//"是做除法的意思,和”/“不同的是它只返回整数,比如10//3=3,而不是3.3333。 

"%"余数不必多说,10%3=1.

”**“运算符的意思是求指数,N**3的意思就是3个N相乘,也就是10*10*10=1000,3个0。

sep="->",说明这三个运算中间使用->来分割,也就是逗号的位置,但后面两个逗号不算,因为逗号后面接的是print函数的参数。

end=""END",说明结尾加上END,所以最终输出结果如下;

3->0->729END

 第 3 题 Python语句

print(int(float(input()))) 

可以输入正负整数和浮点数,并将其转换为整数后输出。( )

答案与解析:√ , 接受一个字符串,然后转换为float浮点型,最后又转换为int整型,变成string字符串输出。不管输入的是正负整数还是浮点数,都是这样。但是浮点数会丢失小数点后面的数。

 第 4 题 Python语句

print(f"{N}*2") 

中的N已被赋值为5。该语句执行后将输出10。( )

答案与解析:× ,由于*2运算符不在{}里面,所以无效。 

第 5 题 在Python中,break语句用于终止当前层次的循环,可以是for-in循环,也可以是while循环。( )

 答案与解析:√ , break和continue用于for与while。

第 6 题 在Python,continue语句通常与if语句配合使用。( )

 答案与解析:, 是的,满足一定的条件才去continue。

第 7 题 在Python代码中,不可以将变量命名为print,因为print是Python语言的关键字。( )

 答案与解析:× , print不是Python语言的关键字,而是一个内置函数。以下为关键字↓

False      class      finally    is         return
None       continue   for        lambda     try
True       def        from       nonlocal   while
and        del        global     not        with
as         elif       if         or         yield
assert     else       import     pass
break      except     in         raise

第 8 题 在Python turtle中,turtle.forward()与turtle.fd()具有相同的功能。( )

答案与解析:√ turtle.forward() 和 turtle.fd() 确实具有相同的功能,都用于让海龟(turtle)向前移动一定距离。这两个方法是等效的,可以根据个人喜好选择使用其中的任何一个来实现让海龟向前移动的效果。

第 9 题 Python代码turtle.clear()可以清除海龟绘图,且海龟将回到原点。( )

答案与解析:× turtle.clear()方法用于清除海龟绘图,并且将海龟回到原点(坐标为(0, 0)的位置)。调用turtle.clear()方法会清除之前绘制的图形,包括海龟轨迹和任何其他绘制的图形,同时将海龟移动到原点位置。

10 题 下面Python代码执行后将绘制正多边形,如输入5将绘制正5边形,输入8将绘制正8边形,以此类推。( )

import turtle
N = int(input("请输入正整数:"))
for i in range(N):
    turtle.forward(100)
    turtle.left(360/N)

  答案与解析:√ 

这段代码几乎是正确的,让我们来看看这段代码的执行过程:

  1. 用户输入一个正整数N。
  2. 通过循环N次,海龟向前移动100个像素,然后向左旋转360/𝑁度,确保N个角加在一起的内角和是360°。

3 编程题(每题 25 分,共 50 分) 🎈

h = int(input())    # 小杨开始学习的时间 小时h
m = int(input())    # 小杨开始学习的时间 分钟m
s = int(input())    # 小杨开始学习的时间 秒钟s
k = int(input())    # 小杨学习多久开始休息 秒钟s
'''
进行加法前统一单位,小时h和分钟m都变成秒s一起加起来,小时*60就是分钟,分钟*60就是秒钟。
'''
now = int(h)*60*60+int(m)*60+int(s)    
now+=k    # 直接加上k就是休息的时间
# 把加上学习多久开始休息的总时间,再转换回来就OK。
hh = int(now/3600)
now %= 3600
mm = int(now/60)
now %= 60
print(str(hh)+" "+str(mm)+" "+str(now)

# 输入一个整数给n
n = int(input())

# 设置一个开关,如果是立方数就让他等于1,如果不是就等于0,也就是不变,方便我们最后的输出
fl = 0
# 进入循环,从1 遍历 到 n ,所以结束条件需要是n + 1
for i in range(1,n+1):
    # 如果是立方数 满足 i*i*i = n
    if i*i*i==n:
        # 标记一下 说明n是立方数
        fl = 1
        # 从1遍历到n有一个数满足i*i*i=n,那么就可以结束了,因为已经判断出来了结果就是立方数
        break

if fl==1:
    print("Yes")
else:
    print("No")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大气层煮月亮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值