青少年编程等级考试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:
            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.下列不可以用来搭建本地服务器的软件是( 
1Python  单杠7练习2 Excel 3IIS    (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代码运行后,ab的值为(   
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属于区间[ab母亲节红包数字)” 的正确表达式是( 二级VB
A.a x or x < b    B.a<= x and x < b    C.ax 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中,变量gsb分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量gsb用什么来报答母爱表示为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=12……8
数值变换:位置变换后,依次取出各个字符进行数值变换:把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m1255之间的整数)按位异或运算。异或运算(⊕)规则:如果ab两个值不相同,则ab结果为1;如果ab两个值相同,则ab结果为0,即:00=010=101=111=0
把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是
数组c
3
6
1
5
2
8
4
7
则数据位置变换如下:
如值变换密钥m35(二进制表示是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码值是65m=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