资源描述
【编程】NCT全国青少年编程能力等级测试python一级
一、选择题
1.在Python中,下面代码运行成果是( )
x=365
g=x%10 #%为求余意思
s=x//10%10 # //为整除意思
b=x//100
sum=g*100+s*10+b #sum英文是求和意思
print(sum)
A.365 B.14 C.563 D.41
2.如下Python程序段
x = 2
print (x+1)
print (x+2)
运行后,变量x值是( )
A.2 B.3 C.5 D.
3.下面选项中对Python操作描述错误是( )
A.x1+x2 连接列表x1和x2,生成新列表
B.x*n 将列表x复制次,生成新列表
C.Min(x) 列表x中最大数据项
D.Len(x) 计算列表中组员个数
4.王明录入程序代码并运行,出现错误提醒(如下图所示),分析原因并改错,对是( )
A.变量名1w太短 B.应当写成float(input("输入体重(kg):")=1w
C.将float改为int D.变量名1w不符合 Python语言规范,不能以数字开头
5.运行下列 Python程序,成果对是( )
a=18
b=7
c=a%b
b=a%b
print(a,b)
A.18 5 B.5 18 C.18 4 D.4 18
6.在Python IDLE编辑器中书写对体现式( )
A.b**2-4ac B.1/2gt2 C.pi*r^2 D.2*pi*r
7.计算机能直接识别、理解执行语言是( )
A.汇编语言 B.Python语言 C.自然语言 D.机器语言
8.在数学中,我们一般使用“=“表达相等关系,那么“=”在Python语言中写法为( )
A.= B.== C.:= D.<>
9.在python中运行print(“3+6”)成果是( )。
A.9 B.“3+6” C.3+6 D.“9”
10.除python语言之处,尚有诸多其他程序设计语言。程序设计语言经历了从机器语言、汇编语言到高级语言发展过程。其中python语言是属于( )。
A.机器语言 B.高级语言 C.汇编语言 D.自然语言
11.下列哪个语句在Python中是非法?( )
A.x=y=z=1 B.x=(y=z+1) C.x,y=y,x D.x+=y
12.在python语言中表达“x属于区间[a,b)” 对体现式是( )
A.a≤ x or x < b B.a<= x and x < b C.a≤x and x< b D.a<=x or x<b
13.下列变量名在Python中合法是( )
A.36B B.F55# C.for D._Good
14.在Python中,设a=2,b=3,体现式 not(b-a>0)值是 ( )
A.1 B.-1 C.True D.False
15.在Python中要互换变量a和b中值,应使用语句组是( )
A.a,b = b,a B.a = c ;a = b;b = c
C.a = b;b = a D.c = a;b = a;b = c
二、程序填空
16.阅读程序。分析如下两段Python程序并回答问题。
#程序1
i=1
while i<101:
print('把这句话打印100遍')
i+=1
#程序2
i=100
while i:
print('把这句话打印100遍')
i=i-2
(1)在程序1中,i+=1这句话含义是______________。
(2)在程序1中,‘把这句话打印100遍 ’实际输出了_____遍。
(3)在程序2中,i初值是___。
(4)在程序2中,‘把这句话打印100遍 ’实际输出了_____遍。
(5)在程序2中,while i 含义是_________。
17.奇偶校验码是一种增长二进制传播系统可靠性简单且广泛采用措施,该措施通过增长一种校验位使得传播二进制码中“1”个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。“奇校验”原理:在发送端发送每个字节二进制码后增长一种校验位(0或1),使得“1”个数为奇数;接受端接受并记录每个字节及其校验位中“1”个数,若为偶数,则意味着传播过程中存在差错。例如:
接受到每个字节及校验码
1个数
传播正误
100101001
4
错误
011010101
5
对
101011010
5
对
根据以上原理,小强编写了一种Python程序,对接受到9位二进制编码进行“奇校验”,判断其传播正误,若判断对则将前一种字节编码转成十六进制并输出。
请回答问题:
(1)若接受到二进制码为“101011011”,传播过程__________(选填:是/否)存在差错。
(2)实现上述功能Python程序如下,请在划线处填入合适代码。
s=input("请输入9位二进制编码:")
code={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}
k=0;p=0;ans=“”
for i in s:#记录9位二进制编码中“1”个数
k=k+int(i)
if ____:
print("传播错误!")
else:
print("传播对!")
for j in range(0,8,4):
p=int(s[j:j+4],2)
# int(x,[base]):将x(字符串或者数字)按照base进制转换成整数
if 0<=p<=9:
ans=ans+str(p)
else:
ans=___
print("字节编码用十六进制表达:",___
18.求解a到b内(包含a和b)所有质数,并对每个质数每一位数字求和。请完善程序。程序如下:
import math
def IsPrime(i):
if i==1:
return False
for j in range(2,int(math.sqrt(i))+1):
if____:
return False
return True
a=int(input("请输入a:"))
b=int(input("请输入b:"))
summ=0
for i in range(a,b+1):
if IsPrime(i):
________
while t>0:
summ=summ+t%10
_________
print("数字和为:",summ)
19.小敏有10万元本金,想要购置银行保证收益型理财产品。每年到期后连本带利仍购置此种理财。请你协助小敏分析,在年收益率不变状况下,多少年后小敏合计收益能超过本金,请完毕程序填空。(例如输人:5.15%,输出:后收益超过本金。)
1 s=input("请输入年利率:")
2 rate=float(s[:-1])*0.01
3 money=100000
4 year=0
5 while money<=00:
6 money=round( ),2)
7 year=year+1
8 print(year,"年后收益超过本金。”)
(1)程序第6行下划线处应填入___________。
(2)程序第2行作用是____________,并赋值给变量 rate。
(3)该程序重要是通过while实现____________构造。
20.请编写一种密码登陆系统,接受顾客从键盘输入密码和你自已密码进行比对,假如对就显示“恭喜你进入系统”假如不对让顾客重新输入,有三次机会。
21.约瑟夫问题是个有名问题:N个人围成一圈,次序为0,1,2,3,4,5,从0号这个人开始报数,报到2将被杀掉,接下去重新开始报数,报到3将被杀掉...以此类推,最终剩余一种,其他人都将被杀掉。例如N=6,被杀掉次序是:1,4,3,0,5;最终只剩余2这个人。
llist=
n=int(input(“请输入参与人数:”))
for i in range(0,n-1):
llist.append([i,i+1])
___________
___________
long=n
k=head
i=1
p=2
while(____ ):
if i==p-1:
t=llist[k][1]
print(llist[t][0])#索引为t删除
__________________
if t==head:
___________________
i=1
p+=1
long=long-1
k=llist[k][1]
______________
i+=1
print(llist[head][0])
【参照答案】***试卷处理标识,请不要删除
一、选择题
1.C
【详解】
本题重要考察Python基本运算。%为求余, //为整除,程序实现了提取了变量x各位上数值,然后倒置形成新数,因此C选项对。
【点睛】
解析:C
【详解】
本题重要考察Python基本运算。%为求余, //为整除,程序实现了提取了变量x各位上数值,然后倒置形成新数,因此C选项对。
【点睛】
2.A
【详解】
本题重要考察Python程序执行。x=2没有发生变化,只是输出x+1、x+2值,故本题选A选项。
解析:A
【详解】
本题重要考察Python程序执行。x=2没有发生变化,只是输出x+1、x+2值,故本题选A选项。
3.C
【详解】
本题重要考察Python列表有关操作。x1+x2 连接列表x1和x2,生成新列表;x*n 将列表x复制次,生成新列表;Min(x) 列表x中最小数据项;Len(x) 计算列表中组员个
解析:C
【详解】
本题重要考察Python列表有关操作。x1+x2 连接列表x1和x2,生成新列表;x*n 将列表x复制次,生成新列表;Min(x) 列表x中最小数据项;Len(x) 计算列表中组员个数,故本题选C选项。
4.D
【详解】
本题考察是Python变量名。在Python中变量名是由数字、字母、下划线构成,且不能以数字开头。故本题应选D。
解析:D
【详解】
本题考察是Python变量名。在Python中变量名是由数字、字母、下划线构成,且不能以数字开头。故本题应选D。
5.C
【详解】
本题重要考察Python程序执行。a=18,b=7,c=a%b=4,b=a%b=4,输出a和b值是18和4,故本题选C选项。
解析:C
【详解】
本题重要考察Python程序执行。a=18,b=7,c=a%b=4,b=a%b=4,输出a和b值是18和4,故本题选C选项。
6.D
【详解】
本题重要考察Python体现式知识点。书写体现式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C对体现式分别是b**2-4*a*c,1/2*g*t*
解析:D
【详解】
本题重要考察Python体现式知识点。书写体现式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C对体现式分别是b**2-4*a*c,1/2*g*t**2,pi*r**2,2*pi*r是对体现式,故本题选D选项。
7.D
【详解】
本题重要考察程序语言。计算机能直接识别、理解执行语言是机器语言(即0和1),故本题选D选项。
解析:D
【详解】
本题重要考察程序语言。计算机能直接识别、理解执行语言是机器语言(即0和1),故本题选D选项。
8.B
【详解】
本题重要考察Python运算符。在Python语言等高级语言中,“=“往往被用于赋值语句,而表达相等状况时,大多用“==”。因此B选项对。
解析:B
【详解】
本题重要考察Python运算符。在Python语言等高级语言中,“=“往往被用于赋值语句,而表达相等状况时,大多用“==”。因此B选项对。
9.C
【详解】
本题考察是python中print函数。print(str)#str是任意一种字符串,数字等。“3+6”是字符串故输出为:3+6,选项C对。
解析:C
【详解】
本题考察是python中print函数。print(str)#str是任意一种字符串,数字等。“3+6”是字符串故输出为:3+6,选项C对。
10.B
【详解】
本题考察是计算机语音有关知识。高级语言是一种独立于机器,面向过程或对象语言。python语言是一种面向对象动态类型语言,故选项B对。
解析:B
【详解】
本题考察是计算机语音有关知识。高级语言是一种独立于机器,面向过程或对象语言。python语言是一种面向对象动态类型语言,故选项B对。
11.B
【详解】
本题重要考察Python程序语句。x=y=z=1(给变量x、y、z均赋值为1),x,y=y,x(互换x和y值),x+=y等价于x=x+y,x=(y=z+1)是非法语句,故本题选B
解析:B
【详解】
本题重要考察Python程序语句。x=y=z=1(给变量x、y、z均赋值为1),x,y=y,x(互换x和y值),x+=y等价于x=x+y,x=(y=z+1)是非法语句,故本题选B选项。
12.B
【详解】
本题重要考察Python体现式。在python语言中表达“x属于区间[a,b)” 对体现式是a<= x and x < b,故本题选B选项。
解析:B
【详解】
本题重要考察Python体现式。在python语言中表达“x属于区间[a,b)” 对体现式是a<= x and x < b,故本题选B选项。
13.D
【详解】
本题重要考察Python变量命名。变量命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故“_Good”在Python中是合法变量名,故本题选D选项。
解析:D
【详解】
本题重要考察Python变量命名。变量命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故“_Good”在Python中是合法变量名,故本题选D选项。
14.D
【详解】
本题重要考察Python体现式运算。a=2,b=3,b-a>0值为True,则体现式 not(b-a>0)值是False,故本题选D选项。
解析:D
【详解】
本题重要考察Python体现式运算。a=2,b=3,b-a>0值为True,则体现式 not(b-a>0)值是False,故本题选D选项。
15.A
【详解】
本题考察Python语句。在Python中要互换变量a和b中值,可以使用语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。
解析:A
【详解】
本题考察Python语句。在Python中要互换变量a和b中值,可以使用语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。
二、程序填空
16.i=i+1 无数遍 100 无数遍 i!=0 或 i>0 或其他等价答案
【详解】
本题重要考察Python程序执行与调试。①在程序1中,i+=1这句话含义是i=i+1(即i递增1)。②i初值为1,while循环条件i<101为真,会一直执行循环体,无法跳出循环体执行i+=1,故‘把这句话打印100遍 ’实际输出了无数遍。③在程序2中,i初值是100。④i=100,while i(即while 100)一直为真,会一直执行循环体,无法跳出循环体执行i=i-2,故‘把这句话打印100遍 ’实际输出了无数遍。⑤在程序2中,while i 含义是i!=0 或 i>0 或其他等价答案
17.是 k%2==0或(k+1)%2==1或(k-1)%2==1 ans+code[p] ans
【详解】
本题重要考察Python程序执行与调试。①若接受到二进制码为“101011011”,1个数有6个,则传播过程存在差错。②变量k记录1个数,若k是偶数则表明传播错误,否则传播对,故此处填k%2==0或(k+1)%2==1或(k-1)%2==1。③假如p是1~9之间数字,则直接将p拼接到ans中,否则从字典code中取对应字母,故此处填ans+code[p]。④变量ans保留转换后十六进制,故此处填ans。
18.i%j==0 t=i t=t//10
【详解】
本题重要考察Python程序执行与调试。①此处是处理从2开始到i开方加1,若能整除i则表明i不是素数,否则直到循环结束,表明i是素数,故此处填i%j==0。②若i是素数,则将变量i赋给变量t,并通过while循环将t每一位取出来并加到summ中,故此处填t=i。③同理此处取出个位数后,更新t值继续循环,故此处填t=t//10。
19.money*(1+rate) 将输入字符串年利率由百分制转换为浮点数 循环
【详解】
本题重要考察Python程序设计。①round(x,n)函数是将x取n位,此处是计算目前年份收益,收益=本金+本金*年利率,故填money*(1+rate),并将成果取2位。②程序第2行作用是将输入字符串年利率由百分制转换为浮点数,并赋值给变量 rate。③该程序重要是通过while实现循环构造。
20.pw=input("请输入密码:")
password="123456"
i=1
while(i<=3):
if pw==password:
print("恭喜你进入系统!")
break
else:
print("请重新尝试:",i)
pw = input("请输入密码:")
i=i+1
【详解】
本题重要考察程序设计。可以通过Python程序设计语言实现题干规定,可以通过while循环控制三次机会,使用if条件分支构造判断与否输入对,详细代码如下:
pw=input("请输入密码:")
password="123456"
i=1
while(i<=3):
if pw==password:
print("恭喜你进入系统!")
break
else:
print("请重新尝试:",i)
pw = input("请输入密码:")
i=i+1
21.llist.append([n-1,0]) head=0 long>1 head=llist[k][1] llist[k][1]=llist[t][1] k=llist[k][1]
【详解】
本题重要考察Python程序执行与调试。①for循环体是将索引0-n 追加到llist中,此处是循环体执行完,将末元素与首元素索引加入到llist中,故填llist.append([n-1,0])。②head是列表头,初始化为0,故填head=0。③最终剩余一种,其他人都将被杀掉,故循环条件是long>1,变量long控制元素个数,故填long>1。④索引为t删除后,此处是更新head值,故填head=llist[k][1]。⑤删完后,假如t等于head,需要更新索引k,将索引t值赋给变量k,故填llist[k][1]=llist[t][1]。⑥假如t不等于head,也需要更新索引k,故填k=llist[k][1]
展开阅读全文