当前位置:首页>python>2025年GESP 9月认证 Python二级真题解析(一选择题部分)

2025年GESP 9月认证 Python二级真题解析(一选择题部分)

  • 2026-08-27 16:41:01
2025年GESP 9月认证 Python二级真题解析(一选择题部分)

2025年GESP 9月认证 Python二级真题解析(一选择题部分)

第 1 题 人工智能现在非常火,小杨就想多了解一下,其中就经常听人提到“大模型”。那么请问这里说的“大模型”最贴切是指 ( )。A. 大电脑模型B. 大规模智能C. 智能的单位D. 大语言模型

正确答案:D核心考点:人工智能基础常识解题分析:当前人工智能领域提及的“大模型”,核心是大语言模型(Large Language Model, LLM),是基于海量文本数据训练的、具备强大语言理解与生成能力的AI模型,也是ChatGPT、文心一言等产品的核心底座。A、B、C均为无行业共识的错误表述。

第2题  在TCP协议中,完成连接建立需要通过( )握手。A. 一次B. 二次C. 三次D. 四次

正确答案:C核心考点:TCP/IP网络协议基础解题分析:TCP协议是面向连接的可靠传输协议,建立连接需要三次握手,断开连接需要四次挥手。三次握手的核心是确保客户端和服务端的发送、接收能力都正常,是网络通信的基础常识。

第3题 下面的Python代码用于输入姓名,然后输出姓名,正确的说法是( )。

XingMing = input("请输入您的姓名:")print(XingMing)

A. XingMing 是汉语拼音,不能作为变量名称B. 可以将 XingMing 改为 Xing MingC. 可以将 XingMing 改为 xingmingD. 可以将 XingMing 改为 Xing-Ming

正确答案  C核心考点:Python变量命名规则解题分析:Python变量名必须遵循3个核心规则:① 只能由字母、数字、下划线组成;② 不能以数字开头;③ 不能包含空格、特殊符号(如连字符),大小写敏感。

  • A错误:汉语拼音属于合法的字母组合,可作为变量名;
  • B错误:变量名不能包含空格;
  • C正确:xingming是纯小写字母,完全符合命名规则;
  • D错误:变量名不能包含连字符-。

第4题  下面Python代码用于获得正整数N的第M位数,如N等于1234,M等于2,则输出3。此题假设M的值大于等于1小于等于N的位数。横线处应填入的代码是( )。

N = int(input("请输入一个正整数:"))M = int(input("请输入从右到左取第几位数:"))div = 10 ** (M - 1)print(__________)

A. N % div // 10B. N // div // 10C. N % div % 10D. N // div % 10

正确答案:D核心考点:Python整除//与取模%运算解题分析:核心逻辑是先通过整除去掉目标位右侧的所有数字,再通过取模提取目标位。

  • 示例验证:N=1234,M=2(从右数第2位是3),div=10^(2-1)=10
  • 正确逻辑:N//div → 1234//10=123(去掉右侧1位),再123%10=3(提取个位,即目标位),对应公式N // div % 10

第5题  下面Python代码执行,其输出是( )。

a, b = 3, 4c = a == bprint(a, b, c)

A. False 4 4B. 3 3 3C. 4 4 4D. 3 4 False正确答案:D核心考点:Python变量赋值与比较运算解题分析:

  1. 第一行是序列解包赋值,a=3,b=4;
  2. 第二行==是相等比较运算符,3==4的结果是布尔值False,因此c=False;
  3. 最终输出a、b、c的值,即3 4 False。

第6题  某种编号的规则是“XX-Y”,其中XX从00到11,Y从0到9,X和Y均为10进制。第一个编号是00-0,第二个编号是01-1,第12个编号11-1,第13个编号00-2,即其编码规则是XX和Y同时增1,到XX到11时下一个变为00,Y到9时,下一个变为0。下面的Python代码用于生成第N个编号,横线处应填上的代码是( )。

N = int(input("请输入编号位置:"))part1 = N % _____part2 = N % _____if part1 < 10:    print(f"0{part1}-{part2}")else:    print(f"{part1}-{part2}")

A. 12 10B. 10 10C. 11 9D. 9 9

正确答案:A核心考点:循环周期的取模运算解题分析:编号的核心是两个循环周期:

  1. XX部分从00-11,共12个值,周期为12,因此part1 = N % 12;
  2. Y部分从0-9,共10个值,周期为10,因此part2 = N % 10;
  3. 示例验证:N=12(第12个编号),part1=12%12=0?不,题目中编号从0开始计数,N=11对应第12个编号,part1=11%12=11,part2=11%10=1,正好对应11-1,完全符合题目规则。

第7题  下面的Python代码执行后,将输出( )。

for i in range(-2, 2):if i:        print(i, end = "#")

A. -2#-1#1#B. -2#-1#0#1#C. -2#-1#1#2#D. -2#-1#0#1#2#

正确答案:A核心考点:range函数、Python布尔值规则解题分析:

  1. range(-2,2)是左闭右开区间,取值为-2、-1、0、1;
  2. if i:中,数值会被隐式转换为布尔值:非0数值为True,0为False;
  3. 因此i=-2、-1、1时会执行print,end="#"表示不换行,用#分隔,最终输出-2#-1#1#。

第8题  下面Python代码执行后其输出是( )。

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

A. 145B. 125C. 55D. 45

正确答案:D核心考点:嵌套for循环的执行次数计算解题分析:

  1. 外层循环i的取值:range(-10,10) → i从-10到9,共20个值;
  2. 内层循环range(i)的规则:当i≤0时,range无元素,内层循环不执行,cnt不增加;只有i>0时,内层循环才会执行;
  3. 有效循环次数:i从1到9,内层循环次数分别为1、2、...、9次,总和为1+2+3+...+9 = 45。

第9题  下面Python代码执行后其输出是( )。

for i in range(1, 12):if i % 2 == 0:continuefor j in range(i):if i * j % 2:breakelse:        print(i * j)

A. 99B. 11C. 0D. 没有输出

正确答案:C核心考点:循环的continue/break、for-else语法、奇偶运算规则解题分析:

  1. 外层循环:i从1到11,if i%2==0: continue 过滤掉偶数,i仅取奇数:1、3、5、7、9、11;
  2. 核心语法:for-else结构,仅当for循环正常结束(未被break中断)时,才会执行else子句;
  3. 逐一代入验证:
    • i=1:内层j取0,i*j=0,0%2=0,不触发break,循环正常结束,执行else,print(i*j) → 输出0;
    • i=3/5/7/9/11:j=0时无异常,j=1时,奇数×奇数=奇数,i*j%2=1,触发break,else子句不执行,无输出;
  4. 最终仅输出0。

第10题  阅读下面的Python代码,正确的是( )。

a = int(input())b = int(input())while b != 0:    remainder = a % b    a = b    b = remainderprint(a)

A. b 不能为 0,因为 a % b 将导致错误B. a 必须小于 b ,否则 a % b 将导致错误C. a 和 b 都必须为正整数,否则 a % b 将导致错误D. 如果 a 为0,则不管 b 为多少,输出都将是 b

正确答案:D核心考点:辗转相除法(欧几里得算法)、Python取模运算规则解题分析:该代码是经典的求两个数最大公约数的算法,逐一分析选项:

  • A错误:while循环的条件是b!=0,因此循环内的b永远不为0,不会出现除零错误;
  • B错误:Python取模运算不要求被除数小于除数,如10%3=1完全合法,算法会自动交换a和b的顺序;
  • C错误:Python支持负数取模,如-10%3=2,不会报错,无需必须为正整数;
  • D正确:验证示例,a=0,b=5,循环执行:remainder=0%5=0,a=5,b=0,循环结束,print(a)=5,即b的值,符合描述。

第11题  下面Python代码执行后输出是( )。

num = 0while num <= 5:    num += 1if num == 3:continue    print(num, end='#')

A. 1#2#4#5#6#B. 1#2#4#5#6C. 1#2#3#4#5#6#D. 1#2#3#4#5#6

正确答案:A核心考点:while循环执行流程、continue关键字解题分析:continue的作用是跳过本次循环剩余代码,直接进入下一次循环判断,逐行执行:

  1. 初始num=0,进入循环:num=1,非3,输出1#;
  2. num=1,进入循环:num=2,非3,输出2#;
  3. num=2,进入循环:num=3,触发continue,跳过print,无输出;
  4. num=3,进入循环:num=4,非3,输出4#;
  5. num=4,进入循环:num=5,非3,输出5#;
  6. num=5,进入循环:num=6,非3,输出6#;
  7. num=6,不满足num<=5,循环结束。 最终输出1#2#4#5#6#。

第12题  下面Python代码用于记录多个输入数中的最大数和最小数(输入 -999 则输入结束),相关说法错误的是 ( )。

now_num = int(input())min_num = max_num = now_numwhile now_num != -999:if max_num < now_num:        max_num = now_numif min_num > now_num:        min_num = now_num    now_num = int(input())print(min_num, max_num)

A. 程序运行时如果第一个数输入 -999 ,则输出将是-999 -999B. 程序输入过程中,如果输入的第一个数不是 -999 ,且如果待输入的实际数据中没有 -999 【即:-999 仅作为结束程序的标志数据】,则程序能求出最大数和最小数C. 如果用于输入考试成绩,即成绩中不可能有 -999 ,则程序能求出最高成绩和最低成绩D. 可以将now_num = int(input()) 移动到while now_num != -999: 之后

正确答案:D核心考点:while循环的输入逻辑、边界条件判断解题分析:本题要求选择错误的说法,逐一验证:

  • A正确:第一个数输入-999,min_num和max_num初始化为-999,while条件不成立,循环不执行,直接输出-999 -999;
  • B正确:-999仅作为结束标志,说明输入的最后一个数是-999,程序会正常遍历所有有效数据,求出最大最小值;
  • C正确:考试成绩无-999,最后输入-999结束,程序逻辑完全适用;
  • D错误:将输入语句移到while之后,会导致min_num = max_num = now_num这一行中,now_num未定义,直接抛出NameError,程序无法运行,说法错误。

第13题  下面Python代码执行后输出与 5 有关数的数量。与5有关的数定义为含有 5 或者能被 5 整除的数。相关说法 正确的是( )。

cnt = 0for i in range(1,1000):if i % 5 == 0:        j = i        cnt += 1continuewhile j > 0:if j % 10 == 5:            cnt += 1breakelse:            j //= 10print(cnt)

A. 删除代码中 continue 不影响程序执行结果 B. 删除代码中 break 不影响程序执行结果 C. 删除j = i 并将 while 循环的j修改为i,不影响程序执行结果 D. 将while j > 0 修正为while j>= 0 不影响程序执行的结果

正确答案:C核心考点:循环的continue/break、数位遍历逻辑解题分析:代码核心逻辑是统计1-999中,能被5整除或包含数字5的数的个数,逐一分析选项:

  • A错误:删除continue后,能被5整除的数会继续执行while循环,若数中包含5,会被重复计数(如5会被统计2次),结果错误;
  • B错误:删除break后,若一个数包含多个5(如551),会被多次计数,结果错误;
  • C正确:原代码中j=i仅在能被5整除的分支中,不能被5整除的数未给j赋值,本身存在逻辑缺陷;将while循环的j改为i后,直接遍历当前数的每一位,逻辑完全正确,不影响最终结果;
  • D错误:改为while j>=0后,j=0时会进入死循环,程序无法结束,结果错误。

第14题  下面Python代码实现输出如下图形,应该在横线处填入的代码是( )【注:字符串乘以一个正整数,相当于相同字符重复】。

输入行数量:10输入每行字符数量:12-----**----------**----------**----------**-----************************-----**----------**----------**----------**----------**-----
n = int(input("输入行数量:"))m = int(input("输入每行字符数量:"))mid_row = n // 2mid_col = m // 2for i in range(n):if __________:        print('*' * m)else:if m % 2 == 1:            left = '-' * mid_col            center = '*'            right = '-' * mid_col            print(left + center + right)else:            left = '-' * (mid_col - 1)            center = '**'            right = '-' * (mid_col - 1)            print(left + center + right)

A. (n % 2 == 1 and i == mid_row) or (n % 2 == 0 and (i == mid_row - 1 or i == mid_row))B. (n % 2 == 0 and i == mid_row) or (n % 2 == 1 and (i == mid_row - 1 or i == mid_row))C. (n % 2 == 1 and i == mid_row) or (n % 2 == 0 and (i == mid_row or i == mid_row + 1))D. (n % 2 == 1 and i == mid_row) or (n % 2 == 0 and i == mid_row - 1) and (n % 2 == 0 and i == mid_row)

正确答案:A核心考点:图形打印的边界条件、奇偶行判断解题分析:横线处的核心逻辑是判断当前行是否为中间行,中间行打印全*:

  1. 当n为奇数时,只有1行中间行,即i == mid_row(如n=9,mid_row=4,i=4为中间行);
  2. 当n为偶数时,有2行中间行,即i == mid_row-1和i == mid_row(如n=10,mid_row=5,i=4和5为中间行);
  3. 合并逻辑后,与选项A完全一致。其他选项均存在奇偶逻辑颠倒、索引越界、逻辑运算符错误等问题。

第15题 下面Python代码实现输出如下图形,应该在横线处填入的代码是( )。

请输入层数:10         1        23       456      7891     23456    789123   4567891  23456789 1234567891234567891
N = int(input("请输入层数:"))K = 1for i in range (1, N + 1):for _ in range(1, ___________):        print(" ", end = "")for _ in range(1, ________):        print(K, end = "")        K += 1if K == 10:            K = 1    print()

A. N-i+1 和 i+1B. N - i 和 2 iC. 1 N 和 2 iD. 2 N - i 和 i + 1正确答案:A核心考点:金字塔图形打印、循环次数控制解题分析:金字塔的核心规律:第i行(i从1到N),先打印N-i个空格,再打印i个数字。

  1. 空格循环:Python的range是左闭右开,要循环N-i次,range的结束值为N-i+1(如N=10,i=1,循环9次,range(1,10),即N-i+1=10-1+1=10);
  2. 数字循环:要循环i次,range的结束值为i+1(如i=1,循环1次,range(1,2));
  3. 完全匹配选项A的内容。

最新文章

随机文章