第 1 题 近日,空中客车公司表示,约6000架空客A320系列飞机需要紧急更换一种易受太阳辐射影响的飞行控制软件。空客表示,在对一起飞行事故进行分析后,表明强烈的太阳辐射可能会损坏飞行控制系统所需的关键数据,导致判断失误,进而可能引发飞行异常。在这里的飞行控制系统中,执行判断的部件最可能是下面的( )。A. 辐射传感器B. 处理器C. 内存单元D. 输出设备
正确答案:B核心考点:计算机硬件基础(核心部件的功能定位)解题分析:处理器(CPU)是计算机的运算与控制核心,负责执行逻辑判断、数据运算和指令处理,是飞行控制系统中完成判断动作的核心部件,因此B选项正确。A选项错误:辐射传感器仅负责采集辐射相关的物理数据,不具备逻辑判断能力;C选项错误:内存单元仅负责临时存储数据和运行指令,不执行运算与判断操作;D选项错误:输出设备仅负责将处理结果对外输出,不承担判断功能。
第 2 题 小杨最近为了备考GESP,开始看网络上关于网络知识的视频。其中提到计算机网络系统有不同的划分标准,其中之一就是按照地理覆盖的范围来划分。那他平时上学所在的教学楼内的网络是一个( )。A. PANB. LANC. MAND. WAN
正确答案:B核心考点:计算机网络分类(按地理覆盖范围划分)解题分析:LAN(局域网,Local Area Network)的覆盖范围为局部小区域,典型场景为办公室、教学楼、校园内的网络,完全匹配题目描述,因此B选项正确。A选项错误:PAN(个人域网)覆盖范围仅10米内,仅用于手机、耳机等个人设备互联;C选项错误:MAN(城域网)覆盖范围为一个城市,远超教学楼的范围;D选项错误:WAN(广域网)为跨城市、跨国家的大范围网络,如互联网。
第 3 题 下面有关Python变量的说法,正确的是( )。A. 不可以用 for 作为变量名,因为 for 是Python的关键字(保留字)。B. _tnt 不可以是变量名,因为变量名的第一个字符必须是英文字母。C. tnt 不可以是变量名,因为最后一个字符容易与减号混淆。D. 可以用 print 作为变量名,因为 print 是关键字,但这不是好习惯,因为 print 有约定的功能与含义。
正确答案:A核心考点:Python变量命名规则、关键字与内置函数的区别解题分析:for是Python的循环关键字,Python语法明确禁止关键字作为变量名使用,因此A选项正确。B、C选项错误:Python变量名的合法首字符为英文字母、下划线_,_tnt、_tnt_均为符合规则的合法变量名;D选项错误:print是Python内置函数,并非关键字,虽语法上可作为变量名,但会覆盖原有函数功能,不推荐使用。
第 4 题 一个无限循环小数是 0.123123123……,其小数点后第1位是1,后第2位是2,后第3位是3,后第4位是1,依此类推,求第N位。横线处应填入的代码是( )。
N = int(input())remainder = _________if remainder == 0: print(1)elif remainder == 1: print(2)else: print(3)A. N % 3B. (N - 1) % 3C. N // 3D. (N - 1) // 3
正确答案:B核心考点:循环节规律、取模(%)运算的实际应用解题分析:该小数的循环节为3位(1、2、3),需要实现:N=1时余数为0(输出1)、N=2时余数为1(输出2)、N=3时余数为2(输出3)、N=4时余数回到0,完全匹配(N-1)%3的计算结果,因此B选项正确。A选项错误:N%3会导致N=3时余数为0,错误输出1,不符合循环规律;C、D选项错误://是整数除法,无法实现循环节的余数匹配,不符合题目需求。
第 5 题 某同学执行Python代码 print(3 + 3.14) 时输出 6.140000000000001 ,其原因是( )。A. Python中整数和浮点数相加时,整数会被转换为浮点数,而某些十进制小数如 3.14 无法用有限位二进制精确表示,从而产生微小的舍入误差。B. Python的 print 函数在输出浮点数时有默认小数点位数,因此输出了更多位数。C. 3.14 是一个无限循环小数,在计算机中无法精确表示。D. 由于计算机CPU的运算错误导致。
正确答案:A核心考点:Python浮点数的二进制存储原理、精度误差解题分析:计算机使用二进制存储浮点数,十进制有限小数3.14无法用有限位二进制数精确表示,会产生微小的舍入误差;同时整数与浮点数相加时,整数会隐式转换为浮点数,最终结果出现精度偏差,因此A选项正确。B选项错误:该现象是数值本身的存储误差,与print函数的输出格式无关;C选项错误:3.14是十进制有限小数,并非无限循环小数;D选项错误:这是浮点数存储的通用规则,并非CPU运算错误。
第 6 题 某单位工号的编码规则:编码总长5位,均为数字,前4位依次整除以3,其值累加之和除以10的余数为第5位数字。如某工号为76587,前4位分别整除3后,商分别为2、2、1、2,其累加之和为7,除以10的余数为7,故第5位为7。下面的程序依次输入前4位数字,并计算输出最后一位。程序逐行输入前4位数字,要输出第5位数字。则在横线处应填上的代码是( )。
rst = 0for _ in range(4): N = int(input()) rst += ___________print(___________)A. 1.N % 3 2.rst // 10B. 1.N // 3 2.rst % 10C. 1.N % 3 2.rst % 10D. 1.N // 3 2.rst // 10
正确答案:B核心考点:Python算术运算符(整除//、取模%)、循环累加逻辑解题分析:第一空:题目要求前4位数字依次整除以3,取商进行累加,整除运算对应N//3;第二空:题目要求累加和除以10的余数作为第5位,取余运算对应rst%10; 因此B选项正确。
第 7 题 下面的Python代码执行之后的输出是( )。
for i in range(-2, 2):if i % 2: print(i, end = "#")A. -1#1#B. -1#0#1#C. -2#-1#1#2#D. -2#-1#0#1#
正确答案:A核心考点:range函数的取值规则、Python取模运算规则、条件判断的布尔转换解题分析:
range(-2, 2)为左闭右开区间,生成的元素为-2、-1、0、1;-2%2=0、-1%2=1、0%2=0、1%2=1;-1和1会被输出,最终结果为-1#1#,A选项正确。第 8 题 下面的Python代码执行后其输出是( )。
cnt = 0for i in range(1, 10, 2):for j in range(i): cnt += 1print(cnt)A. 100B. 55C. 45D. 25
正确答案:D核心考点:嵌套循环的循环次数计算、range函数的步长参数解题分析:
range(1, 10, 2)的步长为2,生成的i值为1、3、5、7、9,共循环5次;range(i)的循环次数等于i的值,总循环次数为1+3+5+7+9=25;第 9 题 下面Python代码执行后其输出是( )。
for i in range(1, 12):if i % 2 == 0:continuefor j in range(i):if i * j % 2 == 0:breakelse: print(i * j, end=" ")else: print(i * j)A. 0 0B. 11C. 0D. 0 11
正确答案:C核心考点:循环控制语句(break/continue)、循环的else子句、嵌套循环执行流程解题分析:
1、3、5、7、9、11;i*j=0,0%2==0永远成立,会立即触发break,内层循环永远无法正常结束;i*j=0,最终仅输出0,因此C选项正确。第 10 题 与下面Python输出效果不一致的代码是( )。
for i in range(10): print(i)A.
i = 0while i < 10: print(i) i += 1B.
i = 0while i < 10: i += 1 print(i)C.
i = 0whileTrue: print(i) i += 1if i >= 10:breakD.
i = 0whileTrue:if i >= 10:break print(i) i += 1正确答案:B核心考点:for循环与while循环的转换、循环执行顺序对输出结果的影响解题分析:原代码的输出效果为:依次输出0、1、2、3、4、5、6、7、8、9,共10行,从0开始到9结束。B选项先执行i += 1再执行print,输出内容为1、2、3...10,与原代码效果完全不一致,因此B选项正确。A、C、D选项的输出均为0-9,与原代码效果一致。
第 11 题 下面Python代码执行后输出是( )。
num = 0while num <= 5: num += 1if num % 3:continue print(num, end='#')else: print(num)A. 3#6#B. 3#6#6C. 1#2#3#4#5#6#D. 1#2#3#4#5#6#6
正确答案:B核心考点:while循环的执行流程、continue语句、循环的else子句解题分析:
3#;6#;num<=5,while循环正常结束,执行else子句的print(num),输出6;3#6#6,因此B选项正确。第 12 题 下面Python代码执行后,其输出是( )。
cnt = 0for i in range(5):for j in range(i,4): cnt += 1print(cnt)A. 9B. 10C. 14D. 20
正确答案:B核心考点:嵌套循环的循环次数计算、range函数的起始值参数解题分析:
0、1、2、3、4;range(i,4)为左闭右开区间,循环次数计算:第 13 题 漂亮数的定义是:如果N能被M整除,或者某位是M,或者N的每位数之和能被M整除,则说N是M的漂亮数。如果三个条件都满足,则是完整漂亮数。123是3的完整漂亮数,因为123能被3整除,也含有3,其每位数之和为6也能被3整除。下面的代码用于判断N是否为M的完整漂亮数并输出。相关说法正确的是( )。
N = int(input("请输入N,N必须是0或正整数:"))M = int(input("请输入M:M必须大于1小于等于9:"))Sum = 0#记录各位数之和Flag = False#记录N是否含有Mwhile N != 0: num = N % 10 Sum += numif num == M: Flag = True N //= 10if (N % M == 0) and (Flag == True) and (Sum % M == 0): print(f"{N}是{M}的完整漂亮数")else: print(f"{N}不是{M}的完整漂亮数")A. 代码能完成题目设定目标。B. 在 while 循环中 N 最终将变成0,因为代码 N % M 将总是满足条件,可以在 while 前增加一行代码 old_num = N ,并将 N % M 改为 old_num % M ,随后print() 中的{N} 改为{old_num} 。C. while 循环中 if 判断语句可以增加 else 子句,其内容为 Flag = False 。D. 如果先后输入 0 和 3 ,则肯定会输出 0是3的完整漂亮数。
正确答案:B核心考点:while循环的变量修改、整数数位处理、逻辑判断的bug排查解题分析:代码存在核心bug:while循环中通过N = N//10逐位处理数字,循环结束后N会被修改为0,导致后续N%M==0永远成立,且print输出的N是0,而非用户输入的原始数值,无法完成题目要求。B选项的修改方案完美解决了该bug:先保存原始输入的N到old_num,用old_num做整除判断,输出也使用原始数值,因此B选项正确。
第 14 题 阅读下面的Python代码。执行后如输入 5 ,其输出的字符图形是( )。
n = int(input())for i in range(n):for j in range(n - i - 1): print(" ", end="")for k in range(2 * i + 1): print("*", end="") print()A.
***** **** *** ** *B.
* *** ***** *******C.
***************D.
* ** *** *********正确答案:B核心考点:嵌套循环实现图形打印、循环次数与空格/星号数量的对应关系解题分析: 输入n=5时,i的取值为0、1、2、3、4,逐行执行:
第 15 题 某学校举办“十佳歌手大奖赛”,经过选拔最终参赛选手有25人,评委10人,最终计分规则去掉一个最高分 去掉一个最低分作为该参赛选手的最终得分,并输出该得分。每位评委都必须打分,且分数都大于等0。相关说法正确的是( )。
for _ in range(25): max_score = 0#记录最高分 min_score = 9999#记录最低分 total_score = 0#记录总分for _ in range(10): now_score = float(input()) #录入评委打分if now_score > max_score: max_score = now_scoreif now_score < min_score: min_score = now_score total_score += now_score print(total_score - max_score - min_score)A. 程序总体逻辑错误。因为要去掉最高分和最低分,需要排序,而程序没有相关代码。B. 内层循环和外层循环之间的三行代码也就是 max_score = 0 开始的三行代码应该移动到外层循环外。C. if now_score > max_score 和 if now_score < min_score 中的 > 和 < 分别调整为 >= 和 <= 不影响程序执行结果。D. total_score += now_score 不可以更改为 total_score = total_score + now_score 。
正确答案:C核心考点:循环中的极值计算、累加运算、运算符的等价性解题分析:计分规则仅需去掉一个最高分和一个最低分,即使存在多个相同的极值,>改>=、<改<=仅会改变极值的记录时机,不会改变最终的极值数值,因此不影响程序执行结果,C选项正确。A选项错误:遍历过程中可直接记录最大值和最小值,无需排序,程序总体逻辑正确;B选项错误:每个选手的最高分、最低分、总分都需要重新初始化,移到外层循环外会继承上一个选手的数据,导致计算错误;D选项错误:+=是增量赋值运算符,total_score += now_score与total_score = total_score + now_score完全等价。