NCT全国青少年编程能力等级测试python二级图文word.docx
《NCT全国青少年编程能力等级测试python二级图文word.docx》由会员分享,可在线阅读,更多相关《NCT全国青少年编程能力等级测试python二级图文word.docx(13页珍藏版)》请在冰豆网上搜索。
NCT全国青少年编程能力等级测试python二级图文word
NCT全国青少年编程能力等级测试python二级图文word
一、选择题
1.下面的Python程序段运行后的输出结果是()
List=[‘10’,25,’猕猴桃’,9,65]
Print(List[3])
A.25B.’猕猴桃’C.猕猴桃D.9
2.python中表达式4**3=()。
A.12B.1C.64D.7
3.以下对Python程序缩进格式描述错误的选项是()
A.不需要缩进的代码顶行写,前面不能留空白
B.缩进可以用tab键实现,也可以用多个空格实现
C.严格的缩进可以约束程序结构,可以多层缩进
D.缩进是用来格式美化Python程序的
4.现有如下Python程序:
List=["Happy","new","year!
"]
s=List[1]
d=s[:
-1]
执行该程序后,d的值为()
A."py"B."Happ"C."ew"D."ne"
5.已知列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)的值为()
A.5B.34C.7D.12
6.Python程序中第一行:
a=int(input()),第二行:
print(a+5),运行程序后键盘输入3,输出结果是()。
A.5B.3C.8D.其他
7.利用Python程序绘制x-y的散点图,则下列程序第5行应该填写的代码是()。
A.plt.plot(X,Y)B.plt.scatter(X,Y)
C.plt.bar(X,Y)D.plt.boxplot(X,Y)
8.在Python中常用的输入输出语句分别是()
A.input()output()B.input()print()
C.input()printf()D.scandf()printf()
9.韦沐沐同学利用Python软件编写“求能被3整除的数”程序,在设计算法环节,使用流程图描述算法,如右图所示,其中空白处可以填入的是()
A.A÷3==0B.A/3==0C.A\3==0D.A%3==0
10.两个阻值分别为R1、R2的电阻并联后,电路阻值R可由公式求解,下面能正确求出R的Python表达式是()
A.(R1+R2)/(R1*R2)B.R1+R2/(R1*R2)
C.R1*R2/R1+R2D.R1*R2/(R1+R2)
11.运行下列Python程序,结果正确是()
a=32
b=14
c=a//b
print(c)
A.2.2B.2C.“2”D.4
12.计算机能直接识别、理解执行的语言是()
A.汇编语言B.Python语言C.自然语言D.机器语言
13.如下Python程序段
foriinrange(1,4):
forjinrange(0,3):
print("Python")
语句print("Python")的执行次数是()
A.3B.4C.6D.9
14.在Python中,判断n是否为偶数的表达式是()
A.n/2=0
B.n%2==0
C.n%2=0
D.n/2==0
15.下列变量名在Python中合法的是()
A.36BB.F55#C.forD._Good
二、程序填空
16.某仓库物品代码格式为“X-XXXXXXX-Y”,其中“X”和“Y”均为0到9之间的数字,“Y”为校验码。
校验码由前面9个X计算得到,计算方法为:
从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,将该结果除以10,所得余数即为校验码。
用Python设计一个程序,输入物品代码,判断输入的代码中校验码是否正确,如果正确输出“正确”,否则输出“错误"。
运行样例如下所示:
样例1:
输入:
2-163-91475-4
输出:
正确
样例2:
输入:
2-163-91475-5
输出:
错误
(1)Python程序实现如下,请在划线处填入正确的代码:
s=input("输入物品代码:
")
a=[]
foriinrange(0,13):
if___
a.append(int(s[i]))#append()函数用于在列表末尾添加新的对象
sum=0
foriinrange(0,9):
____
sdm=sum%10
___
ifsdm==ydm:
print("正确")
else:
print("错误")
17.现在有一个程序用来解决以下问题:
如果有总量共1020个西瓜,第一天卖掉总数的一半后多卖出了两个,以后每天卖剩下的一半多两个,那么几天以后卖完呢?
请将下列程序补充完整。
tc=1020
c=0
while______________:
tc=tc-(tc/2+2)
_____________
print(c)
18.完善程序实现以下功能并保存。
输入一元二次方程的系数a,b,c的值,求解一元二次方程ax2+bx+c=0(a≠0)
#请不要更改源程序的结构,删除原题里的①、②。
填写正确的代码,使程序完善
importmath
a=float(input("请输入方程系数a(!
=0):
"))
b=float(input("请输入方程系数b:
"))
c=float(input("请输入方程系数c:
"))
delta=b*b-4*a*c
ifdelta>________:
x1=(-b+math.sqrt(delta))/(2*a)
x2=(-b-math.sqrt(delta))/(2*a)
print("方程有两个不同的解",x1,x2)
elifdelta==0:
x1=________
print("方程有两个相同的解",x1)
else:
print("方程无解")
input("运行完毕,请按回车键退出...")
19.小王编写了“字符串缩写”程序,实现如下功能:
1.输入一串由英文字母和数字组成的字符串,
2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“—”和最后一个字符组成的新字符段,
3.例如:
字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。
程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示:
实现上述功能的程序如下,请在程序划线处填入合适的代码。
s=input("请输入字符串s:
")
_______
flag=False
result=""
foriinrange(0,k-1):
if___________________:
result=result+s[i]+"-"
flag=True
eliford(s[i])!
=ord(s[i+1])-1:
result=result+s[i]
_____
result=result+s[i+1]
print("缩写后的字符串为:
",result)
划线处①处应该填入的语句为:
;
划线处②处应该填入的语句为:
;
划线处③处应该填入的语句为:
。
20.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。
得到的数字应按逗号分隔的顺序打印在一行上。
提示:
考虑使用range(#begin,#end)
21.分析完善程序
某市出租车收费标准如下:
(1)3公里内(含3公里),收费8元
(2)超过3公里但未超过6公里部分,按1.5元/公里收费
(3)超过6公里部分,按2.25元/公里收费。
根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元?
[算法分析]
假设总费用为p,则可以分段计算
p=8‘(s≤3)
p=1.5*(s-3)+8‘(3
p=2.25*(s-6)+1.5*3+8‘(s>6)
[参考代码]
a=float(input(“s=”))
ifs<=3:
p=8
if
p=1.5*(s-3)+8
ifs>6:
p=2.25*(s-6)+1.5*3+8
print(p)
根据上述回答如下问题:
(1)本题采用的算法是________(填:
解析法/枚举法/排序法/递归法)。
(2)程序代码中空白处应填写的条件是_______(填:
A/B/C/D)。
A.33ands<6D.s>3Ors<=6
【参考答案】***试卷处理标记,请不要删除
一、选择题
1.D
【详解】
本题主要考查Python程序的执行。
列表的索引是从0开始的,故List[3]=9,故段运行后的输出结果是9,故本题选D选项。
解析:
D
【详解】
本题主要考查Python程序的执行。
列表的索引是从0开始的,故List[3]=9,故段运行后的输出结果是9,故本题选D选项。
2.C
【详解】
本题考查的是python中表达式相关知识。
在Python算数运算中,*代表乘法,**代表乘方,故4**3=4*4*4=64,故选项C正确。
解析:
C
【详解】
本题考查的是python中表达式相关知识。
在Python算数运算中,*代表乘法,**代表乘方,故4**3=4*4*4=64,故选项C正确。
3.D
【详解】
本题主要考查Python语法格式。
不需要缩进的代码顶行写,前面不能留空白;缩进可以用tab键实现,也可以用多个空格实现;严格的缩进可以约束程序结构,可以多层缩进;缩进是代码书写规则
解析:
D
【详解】
本题主要考查Python语法格式。
不需要缩进的代码顶行写,前面不能留空白;缩进可以用tab键实现,也可以用多个空格实现;严格的缩进可以约束程序结构,可以多层缩进;缩进是代码书写规则要求,故本题选D选项。
4.D
【详解】
本题主要考查Python列表运算。
s=List[1]="new",d=s[:
-1]="ne"(表示去除字符串s最后一个字符剩下的部分),故本题选D选项。
解析:
D
【详解】
本题主要考查Python列表运算。
s=List[1]="new",d=s[:
-1]="ne"(表示去除字符串s最后一个字符剩下的部分),故本题选D选项。
5.D
【详解】
本题主要考查Python表达式的运算。
列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)=5+7=12,故本题选D选项。
解析:
D
【详解】
本题主要考查Python表达式的运算。
列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)=5+7=12,故本题选D选项。
6.C
【详解】
本题主要考查Python语句执行。
运行程序后键盘输入3,即a=3,执行print(a+5)后,输出结果是8,故本题选C选项。
解析:
C
【详解】
本题主要考查Python语句执行。
运行程序后键盘输入3,即a=3,执行print(a+5)后,输出结果是8,故本题选C选项。
7.B
【详解】
本题主要考查Python绘图函数。
plot是绘图函数,scatter是绘制散点图函数,bar是绘制柱状图函数,boxplot是绘制箱线图函数,故本题选B选项。
解析:
B
【详解】
本题主要考查Python绘图函数。
plot是绘图函数,scatter是绘制散点图函数,bar是绘制柱状图函数,boxplot是绘制箱线图函数,故本题选B选项。
8.B
【详解】
本题考查的知识点是python的函数。
Python中常用的输入输出语句分别是input()print(),故选项B正确。
解析:
B
【详解】
本题考查的知识点是python的函数。
Python中常用的输入输出语句分别是input()print(),故选项B正确。
9.D
【详解】
本题考查的是流程图及Python表达式相关知识。
能被3整除的数即除3的余数为0,在Python中%表示求余,故本题应选D。
解析:
D
【详解】
本题考查的是流程图及Python表达式相关知识。
能被3整除的数即除3的余数为0,在Python中%表示求余,故本题应选D。
10.D
【详解】
本题考查的是python表达式的书写。
表达式的书写要在一行中,并且乘号不能省略,并且用括号表示其计算的优先级。
电阻表达式转换后,选项D正确。
解析:
D
【详解】
本题考查的是python表达式的书写。
表达式的书写要在一行中,并且乘号不能省略,并且用括号表示其计算的优先级。
电阻表达式
转换后,选项D正确。
11.B
【详解】
本题主要考查Python程序运行。
a=32,b=14,c=a//b=32//14=2(“//”取整),故本题选B选项。
解析:
B
【详解】
本题主要考查Python程序运行。
a=32,b=14,c=a//b=32//14=2(“//”取整),故本题选B选项。
12.D
【详解】
本题主要考查程序语言。
计算机能直接识别、理解执行的语言是机器语言(即0和1),故本题选D选项。
解析:
D
【详解】
本题主要考查程序语言。
计算机能直接识别、理解执行的语言是机器语言(即0和1),故本题选D选项。
13.D
【详解】
本题主要考查Python程序的执行。
外循环变量i的范围是1-3,内循环变量j的范围是0-2,故语句print("Python")的执行次数是3*3=9,故本题选D选项。
解析:
D
【详解】
本题主要考查Python程序的执行。
外循环变量i的范围是1-3,内循环变量j的范围是0-2,故语句print("Python")的执行次数是3*3=9,故本题选D选项。
14.B
【详解】
本题主要考查Python表达式的运算。
Python中取余符号是“%”,“==”是用来判断两个对象的值是否相等,故判断n是否为偶数的表达式是n%2==0,故本题选B选项。
解析:
B
【详解】
本题主要考查Python表达式的运算。
Python中取余符号是“%”,“==”是用来判断两个对象的值是否相等,故判断n是否为偶数的表达式是n%2==0,故本题选B选项。
15.D
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故“_Good”在Python中是合法的变量名,故本题选D选项。
解析:
D
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故“_Good”在Python中是合法的变量名,故本题选D选项。
二、程序填空
16."0"<=s[i]<="9"或s[i]in"0123456789”sum=sum+a[i]*(i+1)ydm=a[9]
【详解】
本题主要考查Python程序执行与调试。
①变量s保存商品仓库物品代码,若s[i]是数字则进入循环判断,否则跳过,故此处判断条件是"0"<=s[i]<="9"或s[i]in"0123456789”。
②校验码由前面9个X计算得到,计算方法为:
从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,用变量sum统计,故此处填sum=sum+a[i]*(i+1)。
③变量sdm是计算得到的校验码,变量ydm是输入的校验码,此处需要将校验码a[9]赋给变量ydm,故填ydm=a[9]。
17.tc>0c=c+1或者c+=1
【详解】
本题主要考查Python程序执行与调试。
①变量tc保存西瓜数量,当tc大于0时,一直循环,故第一空填tc>0。
②变量c保存天数,每循环一次,变量c递增1,故第二空填c=c+1或者c+=1。
18.-b/(2*a)
【详解】
本题主要考查Python程序执行与调试。
①delta大于0,方程有两个不同的解,delta等于0,方程有两个相同的解,delta小于0,方程无解,故第一空填0。
②delta=0,则方程有两个相同的根,x=-b/(2*a),故第二空填-b/(2*a)。
19.k=len(s)ord(s[i])==ord(s[i+1])-1andflag==False或ord(s[i])==ord(s[i+1])-1andnotflag或ord(s[i])+1==ord(s[i+1])andflag==False或ord(s[i])+1==ord(s[i+1])andnotflagflag=False
【详解】
本题主要考查Python程序的执行与调试。
①第一空将输入的字符串s的长度赋给变量k,故填k=len(s)。
②flag用来标记是否有连续字符构成的升序段,第二空判断相邻位置后面字符的ASCII值是否比前面的字符的ASCII值大1且flag为False,故填ord(s[i])==ord(s[i+1])-1andflag==False或ord(s[i])==ord(s[i+1])-1andnotflag或ord(s[i])+1==ord(s[i+1])andflag==False或ord(s[i])+1==ord(s[i+1])andnotflag。
③如果不满足if判断条件,则需要将该字符加到变量result中,同时赋值flag为False,表示当前没有连续字符构成的升序段,需要继续判断寻找,故填flag=False。
20.l=[]
foriinrange(2000,3201):
if(i%7==0)and(i%5!
=0):
l.append(str(i))
print(','.join(l))
【详解】
本题主要考查程序设计。
由题干要求,可以使用Python程序设计语言实现,可使用for循环以及列表,可以使用join函数按逗号分隔格式打印结果,join函数连接字符串数组,将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串,具体代码如下:
l=[]
foriinrange(2000,3201):
if(i%7==0)and(i%5!
=0):
l.append(str(i))
print(','.join(l))
21.解析法或解析A
【详解】
本题主要考查Python程序的执行与调试。
①由算法分析可知,本题采用的算法是解析法或解析。
②3公里内(含3公里),收费8元;超过3公里但未超过6公里部分,按1.5元/公里收费;超过6公里部分,按2.25元/公里收费,故此处填3