版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年12月GESP认证Python二级真题(含答案和解析)一、单选题(每题2分,共30分)。1.近日,空中客车公司表示,约6000架空客A320系列飞机需要紧急更换一种易受太阳辐射影响的飞行控制软件。空客表示,在对一起飞行事故进行分析后,表明强烈的太阳辐射可能会损坏飞行控制系统所需的关键数据,导致判断失误,进而可能引发飞行异常。在这里的飞行控制系统中,执行判断的部件最可能是下面的()。A.辐射传感器B.处理器C.内存单元D.输出设备答案:B。解析:题目的侧重点是问“哪个部件负责执行判断逻辑”,判断这个动作本身由处理器完成。2.小杨最近为了备考GESP,开始看网络上关于网络知识的视频。其中提到计算机网络系统有不同的划分标准,其中之一就是按照地理覆盖的范围来划分。那他平时上学所在的教学楼内的网络是一个()。A.PANB.LANC.MAND.WAN答案:B。解析:PAN(个人区域网)覆盖范围大约在10米以内,如蓝牙、ZigBee等设备组成的网络。通常用于个人设备之间的连接,不符合“教学楼内网络”的范围。LAN(局域网)覆盖范围一般在几十米到几千米,例如一栋楼、一个校园、一个公司的内部网络。题干中“教学楼内的网络”是典型的局域网(LAN)。MAN(城域网)覆盖一个城市范围的网络,比如城市内的多个校园网互连。教学楼内网络范围远小于城域网。WAN(广域网)覆盖范围更大,可跨市、跨省甚至跨国,如互联网。显然不属于教学楼内的网络范畴。因此,教学楼内的网络属于局域网(LAN),正确答案是B。3.下面有关Python变量的说法,正确的是()。A.不可以用for作为变量名,因为for是Python的关键字(保留字)。B._tnt不可以是变量名,因为变量名的第一个字符必须是英文字母。C._tnt_不可以是变量名,因为最后一个字符容易与减号混淆。D.可以用print作为变量名,因为print是关键字,但这不是好习惯,因为print有约定的功能与含义。答案:A。解析:A项,正确,for是python关键字,不能用作变量名。B项,错误,python变量名允许以字母或下划线开头,_tnt是合法变量名。C项,错误,_tnt_是合法的变量名(没有禁止最后一个字符是下划线)。D项,错误,在Python3中,print是内置函数名,不是关键字(保留字),因此可以把它用作变量名(会覆盖内置函数)。但它的确不是关键字,所以“因为print是关键字”这部分说法错误。因此正确选项是A。4.一个无限循环小数是0.123123123……,其小数点后第1位是1,后第2位是2,后第3位是3,后第4位是1,依此类推,求第N位。横线处应填入的代码是()。N=int(input())remainder=______________ifremainder==0:print(1)elifremainder==1:print(2)else:print(3)A.N%3B.(N-1)%3C.N//3D.(N-1)//3答案:B。解析:小数位按1,2,3重复,周期为3,可以用取模运算获取循环位置排除C、D,假设求第1位即N=1时,那么remainder的值应为0,代入选项可知。A:remainder=1%3=1。B:remainder=(1-1)%3=0。因此正确选项是B。5.某同学执行Python代码print(3+3.14)时输出6.140000000000001,其原因是()。A.Python中整数和浮点数相加时,整数会被转换为浮点数,而某些十进制小数如3.14无法用有限位二进制精确表示,从而产生微小的舍入误差。B.Python的print函数在输出浮点数时有默认小数点位数,因此输出了更多位数。C.3.14是一个无限循环小数,在计算机中无法精确表示。D.由于计算机CPU的运算错误导致。答案:A。解析:A正确,某些带小数点的数或者浮点数不能被表示为有限位数,计算机采用最接近的方式表达。B错误,print显示的是实际值,不是固定格式位数导致更多小数,这里显示出的长串小数就是因为二进制浮点表示不精确导致的误差值。C错误,3.14作为十进制有限小数,在二进制中可能是无限循环小数,但这不等于3.14在十进制里是无限循环小数。表述不严谨且没有触及本质原因。D错误,这不是CPU运算错误,是浮点数的固有表示特性。因此答案选A。6.某单位工号的编码规则:编码总长5位,均为数字,前4位依次整除以3,其值累加之和除以10的余数为第5位数字。如某工号为76587,前4位分别整除3后,商分别为2、2、1、2,其累加之和为7,除以10的余数为7,故第5位为7。下面的程序依次输入前4位数字,并计算输出最后一位。程序逐行输入前4位数字,要输出第5位数字。则在横线处应填上的代码是()。rst=0for_inrange(4):N=int(input())rst+=___________print(___________)A.N%3rst//10B.N//3rst%10C.N%3rst%10D.N//3rst//10答案:B。解析:前4位依次取商即N//3得到商并累加到rst中,第5位是累加结果rst除以10的余数,即rst%10,因此正确选项是B。7.下面的Python代码执行之后的输出是()。foriinrange(-2,2):ifi%2:print(i,end="#")A.-1#1#B.-1#0#1#C.-2#-1#1#2#D.-2#-1#0#1#答案:A。解析:python中取余运算符%的结果符号与除数的符号一致。循环从-2到1递增,-2%2=0不满足if,-1%2=1满足if,输出-1#,0%2=0不满足if,1%2=1满足if,输出1#,所以最后输出结果为-1#1#,因此正确选项是A。8.下面的Python代码执行后其输出是()。cnt=0foriinrange(1,10,2):forjinrange(i):cnt+=1print(cnt)A.100B.55C.45D.25答案:D。解析:内层循环i次,每次cnt加1,所以只要知道外层的i依次是多少就可以知道cnt加了多少次1,而外层循环依次为1、3、5、7、9,所以cnt=1+3+5+7+9=25,因此正确选项是D。9.下面Python代码执行后其输出是()。foriinrange(1,12):ifi%2==0:continueforjinrange(i):ifi*j%2==0:breakelse:print(i*j,end="")else:print(i*j)A.00B.11C.0D.011答案:C。解析:第6行先计算i*j再算%2,而j初始都为0,所以无论i为多少i*j%2都为0,都会break结束,由于是break结束的for循环第8行的else部分不会执行,不存在2个输出结果排除A、D,由于break结束时j=0,所以第10行else执行时i*0=0,只会输出一个0,因此正确选项是C。10.与下面Python输出效果不一致的代码是()。foriinrange(10):print(i)A.i=0whilei<10:print(i)i+=1B.i=0whilei<10:i+=1print(i)C.i=0whileTrue:print(i)i+=1ifi>=10:breakD.i=0whileTrue:ifi>=10:breakprint(i)i+=1答案:B。解析:参考代码的作用是依次输出0~9,A、C、D均是先输出i再加1,效果相同,而B选项是先加1,再输出,输出结果为1~10,效果不同,因此正确选项是B。11.下面Python代码执行后输出是()。num=0whilenum<=5:num+=1ifnum%3:continueprint(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。解析:循环中num依次为1~6,只有当num为3、6时不满足第4行if条件,输出3#6#,循环不是break结束的所以会执行第7行else部分输出num的值为6,因此正确选项是B。12.下面Python代码执行后,其输出是()。cnt=0foriinrange(5):forjinrange(i,4):cnt+=1print(cnt)A.9B.10C.14D.20答案:B。解析:外层循环5次i依次为0~4,内层循环与i有关,内层循环次数依次为4次、3次、2次、1次,总循环次数为4+3+2+1=10,所以cnt的值为10,因此正确选项是B。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是否含有M。whileN!=0:num=N%10Sum+=numifnum==M:Flag=TrueN//=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。解析:逐个选项分析。A:在while循环中N最终将变成0,因此第17行代码中N%M将总是满足条件,不能完成题目设定目标。C:如果增加else子句,那么只要num不是M,Flag就会被重置为0,而题目要求是某位为M,导致逻辑错误。D:若N=0则while不成立,Flag为0第17行的if不成立输出0不是3的完整漂亮数。只有B的描述是正确的,在while中N不断除以10直到为0,导致最后判断不正确,因此需要提前保存原始N的值用于判断。14.阅读下面的Python代码。执行后如输入5,其输出的字符图形是()。n=int(input())foriinrange(n):forjinrange(n-i-1):print("",end="")forkinrange(2*i+1):print("*",end="")print()A.B.C.D.答案:B。解析:当n=5时,外层循环控制行数,i=0~4共5行。第1行(i=0):打印空格j<5-0-1即4个,打印星号k<2*0+1即1个。第2行(i=1):打印空格j<5-1-1即3个,打印星号k<2*1+1即3个。……等等。第5行(i=4):打印空格j<5-4-1即0个,打印星号k<2*4+1即9个。观察选项图形,只有B符合空格数递减星号按1,3,5…递增的金字塔形状。15.某学校举办“十佳歌手大奖赛”,经过选拔最终参赛选手有25人,评委10人,最终计分规则去掉一个最高分去掉一个最低分作为该参赛选手的最终得分,并输出该得分。每位评委都必须打分,且分数都大于等0。相关说法正确的是()。for_inrange(25):max_score=0#记录最高分。min_score=9999#记录最低分。total_score=0#记录总分。for_inrange(10):now_score=float(input())#录入评委打分。ifnow_score>max_score:max_score=now_scoreifnow_score<min_score:min_score=now_scoretotal_score+=now_scoreprint(total_score-max_score-min_score)A.程序总体逻辑错误。因为要去掉最高分和最低分,需要排序,而程序没有相关代码。B.内层循环和外层循环之间的三行代码也就是max_score=0开始的三行代码应该移动到外层循环外。C.ifnow_score>max_score和ifnow_score<min_score中的>和<分别调整为>=和<=不影响程序执行结果。D.total_score+=now_score不可以更改为total_score=total_score+now_score。答案:C。解析:逐个分析选项。A:求最大值和最小值可以使用擂台法,不一定需要排序,A选项错误。B:外层循环遍历的是参赛选手,每个选手的得分都需要重新统计,如果移到外层循环外会累加所有选手的数据,B选项错误。C:max_score和min_score求解最大值或最小值可以用if语句或三目运算符实现,C选项正确。D:+=是复合赋值运算符,total_score+=now_score等价于total_score=total_score+now_score,D选项错误。二、判断题(每题2分,共20分)。16.鸿蒙是华为公司开发的一款操作系统,那么它能够将正确的源程序翻译成目标程序,并运行。()。答案:错误。解析:操作系统(如鸿蒙)的主要功能是管理计算机的硬件与软件资源,并为用户和应用程序提供接口。将源程序翻译成目标程序(机器语言)是编译程序(编译器)或解释程序的功能,而非操作系统的直接功能。因此该说法错误。17.题Python表达式5<10and20的值为True。()。答案:错误。解析:在Python中,and运算符会返回第一个假值,如果没有假值,则返回最后一个值。在这个表达式中:5<10的结果是True。and会继续检查下一个值,即20。在Python中,20是一个非零整数,属于真值,但它不返回True,而是直接返回20。18.题Python表达式10**0.5==10**1/2的值为False。()。答案:正确。解析:左边部分计算10**0.5是求10的平方根,其值为:sqrt(10)=3.162277660168379这是一个浮点数。右边部分计算,按表达式的优先级,10**1先计算,结果为10。然后执行除法10/2,结果为5.0。最后比较:左边的结果不等于右边的结果所以是False。说法正确。19.下面Python代码执行时如果输入整数(包括负整数、0和正整数),其输出都将是0。()。N=int(input())whileN:N//=10print(N)答案:错误。解析:1输入0,while条件不成立,输出N为0。2输入正整数,假设N为12,那么循环中N的位数不断减少,直至为0,输出N为0。3输入负整数,假设N=-1此时N=-1,不为0,进入循环。在Python中,//是整除,向负无穷方向取整。-1//10的结果是-1(因为-1/10=-0.1,向负无穷取整得到-1)。循环继续,N仍然是-1,whileN:仍然为真(-1!=0),继续循环。再次执行N//=10,还是得到-1。这会导致无限循环,永远不会退出。此说法错误。20.下面的Python代码执行后,其输出是4False。()。a=4b=a==5print(a,b)答案:正确。解析:第1行a先赋值为4,第2行a==5的意思是判断a和5是否相等。当前a的值是4,所以比较结果是False。将False赋值给变量b。输出a和b的值:4False。这里需要注意在Python中:当直接输出布尔值时,Python会以布尔型的符号(True或False)表示,而不会自动转换为1或0。此说法正确。21.下面Python代码执行后将输出5。()。i=0whilei<5:i+=1continueprint(i)答案:正确。解析:continue后没有任何语句,循环中i每次增加1,共循环5次,所以输出i为5,说法正确。22.下面的Python代码可以用于判断正整数N的位数(即几位数,如123是3位数,12为2位数)。()。N=int(input())i=1whileTrue:ifN%(10**i)==N:print(f"{N}是{i}位数")breaki+=1答案:正确。解析:变量i用于记录位数,循环中每次判断N%(10**i)==N即判断N<10i是否首次成立,如果成立说明N的位数为i,如果不成立,说明N至少有i+1位,于是i++,继续循环。假设N=12。i=1,12%10**1==12不成立(余数是2),继续。i=2,12%10**2==12成立→输出“12是2位数”,结束。此说法正确。23.计算交叉加减的结果,形如1-2+3-4+5-……。将下面Python代码中的Flag=-Flag改为Flag-=Flag效果相同。()。N=int(input())Flag=-1tnt=0foriinrange(1,N+1):Flag=-Flagtnt+=Flag*iprint(tnt)答案:错误。解析:Flag=-Flag是取反操作,Flag初始为-1,第1次变为1,第2次变为-1,以此来实现符号交替,但如果修改为Flag-=Flag,等价与Flag=Flag-Flag,无论Flag为何值结果都为0,无法实现题目要求,因此说法错误。24.下列Python代码执行后将输出55。()。cnt=0foriinrange(10):forjinrange(i,10):cnt+=1print(cnt)答案:正确。解析:外层循环i从0变化到9,内层循环j从i变化到9。当i=0时,j从0到9,共执行10次。当i=1时,j从1到9,共执行9次。……等等。当i=9时,j从9到9,共执行1次。总执行次数cnt=10+9+8……+1=55,此说法正确。25.下面Python代码执行后输出如下,因为代码print()的括号中没有任何内容,删除不影响输出效果。()。foriinrange(1,10):forjinrange(1,10):print(f"{i*j:3}",end="")print()答案:错误。解析:print()默认将产生换行,不管有无参数。如果有end参数,则根据end参数确定每次输出时的行为,则每次print()后,紧接着end设定的参数,此说法错误。三、编程题(每题25分,共50分)。26.试题名称:环保能量球。时间限制:1.0s。内存限制:512.0MB。题目描述:小杨最近在玩一个环保主题的游戏。在游戏中,小杨每行走1公里就可以获得1点“环保能量”。为了激励玩家,游戏设置了“里程奖励”:小杨每行走x公里,游戏就会额外奖励1点能量。现在已知小杨总共行走了n公里,请你帮他计算,他一共能获得多少点环保能量?输入格式:第一行包含一个正整数t,代表测试数据组数。对于每组测试数据。(1)第一行包含一个正整数n,代表行走的公里数。(2)第二行包含一个正整数x,代表奖励触发的间隔。输出格式:对于每组测试数据,输出一个整数,代表小杨获得的环保能量总数。样例解释:对于第1组数据n=5,x=2——小杨行走获得5点能量。此外,他在第2公里和第4公里时各获得1点额外奖励,总共5+2=7点。对于第2组数据n=10,x=3:行走获得10点。他在第3、6、9公里时各获得1点额外奖励,总共10+3=13点。对于第3组数据n=2,x=5:行走获得2点。由于行走路程不足5公里,没有额外奖励,总共2点。数据范围:对于全部数据,保证1≤t≤100,1≤n,x≤1000。参考程序。#读取测试数据组数。line_count=int(input())#读取数据组数。for_inrange(line_count):#一行读取一个数。n=int(input())#读取行走的公里数。x=int(input())#读取奖励间隔数。ans=n#基础奖励点数。add_point=n//xprint(ans+add_point)#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年(2023-2025)四川中考语文真题分类汇编:专题11 说明文阅读(原卷版)
- 2025年量子通信网络便携式终端设计
- 2026用户界面(UI)设计师校招面试题及答案
- 深静脉血栓后遗症个案护理
- 神经肌肉型脊柱侧弯脊髓灰质炎相关个案护理
- 2026校招:中国中车面试题及答案
- 2026校招:中国电信试题及答案
- 3R-5S-4-Gingerdiol-生命科学试剂-MCE
- 低碳生活绿色出行:环保行动倡议与实践指南
- 2026年宁波职业技术学院单招职业倾向性考试题库及答案详解(典优)
- 2025年重庆市中考英语试卷真题(含标准答案及解析)
- 旋挖钻孔灌注桩全护筒跟进施工工艺主要施工方法及技术措施
- 大桥连续刚构桥实施性施工组织设计
- 《当前保密工作面临的新形势、新任务》课件
- 国家职业技术技能标准 6-11-01-04 制冷工 人社厅发2018145号
- 承插型盘扣式钢管脚手架安全技术标准JGJT231-2021规范解读
- 2025年齐齐哈尔市高三语文3月一模考试卷附答案解析
- 环卫清扫保洁服务方案投标文件(技术方案)
- 生命教育与心理健康教育的融合路径研究
- 新概念英语第一册随堂练习-Lesson127~128(有答案)
- 2024-年全国医学博士外语统一入学考试英语试题
评论
0/150
提交评论