青少年编程等级考试Python编程二级试卷1精品
一、选择题
1.已知下列Python程序段,k取下列哪组值是x=4? ( )
for i in range(10):
k=int(input())
if k<=20 and k>0:
if k>15:
if k>18:
x=0
else:
x=1
else:
if k>12:
二级VB x=4
else:
x=5
A.13,16 B.13,14,15 C.16,17,18 D.18,19
2.下列Python程序段运行的结果是( )。
i=0
sum=0
while i<10:
if i%2==0:
sum+=i
i+=2
print("sum=",sum)
A.sum=17 B.sum=18 C.sum=19 D.sum=20
3.下列不可以用来搭建本地服务器的软件是( )
(1)Python (2) Excel (3)IIS (4)Apache
A.(1)(2) B.(3)(4) C.(1)(2)(3)(4) D.(1)(2)(4)
4.以下文本框内是一段用Python程序设计语言编写的源代码,功能是输出200以内能被17整除的最大正整数。这段源代码属于( )。
A.软件 B.程序 C.指令 D.高级语言
5.小平打算用python编写一个管理班上同学通讯录的程序,如果用一个变量A来对应处理同学们的电话号码,这个变量A定义成什么数据类型比较适合?()。
A.布尔型 B.浮点型 C.整型 D.字符串
6.在python中,运行下列程序,正确的结果是( )。
A.i=4 s=10 B.i=5 s=10 C.i=5 s=15 D.i=6 s=15
7.在Python IDLE编辑器中书写正确的表达式( )
A.b**2-4ac B.1/2gt2 C.pi*r^2 D.2*pi*r
8.Python不支持的数据类型有( )。
A.char B.int C.float D.list
9.下列可以导入Python模块的语句是( )
A.import module
B.input module
C.print module
D.def module
10.下列可以被计算机直接执行的程序是( )
A.机器语言程序 B.高级语言程序 C.汇编语言程序 D.Python源程序
11.下列选项中,不属于Python合法变量名的是( )
A.int32 B.40xl C.self D._name_
12.下面Python代码运行后,a、b的值为( )
a=23
b=int(a/10)
a= a-b * 10
print(a,b)
A.23 2 B.3 2 C.3 20 D.2 3
13.在Python中,表达式(21%4)+3的值是( )
A.2 B.4 C.6 D.8
14.在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
15.在Python中,Print(abs(-16//5))的执行结果是( )
A.2.4 B.3 C.4 D.-2.4
二、程序填空
16.编写Python程序实现如下功能:输入年月日,输入格式如“2021-06-21”,年月日之间用“-”分隔。判断这一天是这一年的第几天。以2021-06-21为例,前面5个月总天数,加上21天即这一天是本年的第几天。特殊情况,当输入的年份是闰年时,2月份有29天。闰年的判断方式如下:
I、能被4整除,但不能被100整除;
II、能被400整除;
(1)“2020-05-20”这一天是这一年的第_________天。
(2)编写Python代码如下,在划线处填入正确的代码
_________________
_________________
_________________
(3)加框处的代码有误,请改正。
改正:_________________
mon=[31, 28, 31, 30, 31, 30,31, 31, 30, 31, 30,31] #mon 中存储1-12每个月的天数
s=input("请输入年月日: ")
'month=int(s[5:7])
①
sum=0
for i in range( ② ):
sum+=mon[i]
sum+=day
if :
isleap=True
else:
isleap=False
if ③
sum+=1
print("这一天是当年的第" +str (sum)+''天'')
17.(项目情境)水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:1**3+5**3+3**3 = 153。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。
(问题求解)设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。print ("三位数之内的水仙花是:")
for x in _____ :
b=x//100
s=_____
g=_____
if x==(b**3 + s**3 + g**3):
_____
18.某种数据加密方法描述如下(加密前数据是ASCII字符):
●以8个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于8)为独立数据段。
●数据加密规则:数据个数等于8的数据段,对各个字符进行位置变换;数据个数小于8的数据段,不进行位置变换。
位置变换:用位置变换密钥数组c,将数据段每个字符进行位置变换,方法如下:
加密后某数据段的第i个元素=对应原数据段的第c(i)个元素,其中i=1,2,……,8。
数值变换:位置变换后,依次取出各个字符进行数值变换:把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m为1到255之间的整数)按位异或运算。异或运算(⊕)规则:如果a、b两个值不相同,则a⊕b结果为1;如果a、b两个值相同,则a⊕b结果为0,即:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。
●把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是
数组c | 3 | 6 | 1 | 5 | 2 | 8 | 4 | 7 |
则数据位置变换如下:
如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进制表示是010100)的数值变换过程如下:
变换前 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
密钥m | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
变换后 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
(1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______(填二进制数据)。
(2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。
Const n = 1024
Dim c(1 To 8) As Integer
Private Sub Form _ Load()
‘产生位置变换密钥数组c,代码略
End Sub
Function convert(c As Integer)As String
‘程序功能:把整数c转成8位二进制数,代码略
End Function
Private Sub Command1_Click()
Dim s As String,st As String,ss As String,res As String
Dim i As Integer,j As Integer start As Integer
Dim a(1 To n) As String,b(1 To n) As String
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论