NCT等级测试-Python编程二级真题测试卷2
一、选择题
1.Python中,设a=2b=3,表达式a<b and b>=3值是(
A.1    B.0    C.True    D.False
2.Python中,通过(  )函数查看字符的编码。
A.int( )    B.ord( )    C.chr( )    D.yolk( )
3.下列选项中,能作为python程序变量名的是( 
A.if    B.2x    C.a*b    D.x2
4.Python中,表达式a**3+b**3+c**3==100*a+10*b+c属于(
A.算术表达式    B.关系表达式    C.逻辑表达式    D.日期表达式
5.Python中,不同的数据,需要定义不同的数据类型,可用方括号“[]”来定义的是( 
A.列表    B.元组    C.集合    D.字典
6.下面代码执行完毕后, ab的值分别为( 
a=l
a=l;
b=2
b=2;
a=b
a=b;
VBPython 代码
JAVA代码
A.1 2    B.1 1    C.2 2    D.2 1
7.利用Python程序绘制x-y的散点图,则下列程序第5行应该填写的代码是( )
A.plt. plotX,Y    B.plt. scatterX,Y
C.plt. barX,Y    D.plt .boxplotX,Y
8.有如下Python程序,当程序运行后输入15000,则程序输出结果为( 
A.2800    B.2800.0    C.12200    D.12200.0
9.下列Python程序段
a = 0
b = 4
if b > a
    a = 3 * b
else
    a = 10
程序运行后,a的值是(
A.10    B.0    C.12    D.4
10.在数学中,我们一般使用“=“表示相等关系,那么“=”在Python语言中的写法为(
A.=    B.==    C.:=    D.<>
11.下列定义变量的python程序语句变量赋值错误的是( 
A.x=y=1    B.x,y=1,2    C.x==1    D.x=1,2
12.Python表达式中,可以使用(  )控制运算的优先顺序。
A.圆括号()    B.方括号[]    C.大括号{}    D.尖括号<>
13.python中,下列属于字符串常量的是( 
A."python"    B.3.14    C.cnt    D.2018
14.下列关于算法说法不正确的是(   
A.算法独立于任何具体的语言,Python算法只能用Python语言来实现
B.解决问题的过程就是实现算法的过程
C.算法是程序设计的“灵魂”
D.算法可以通过编程来实现
15.以下(      )是python文件
A.*.mp3    B.*.xls    C.*.ppt    D.*py
二、程序填空
16.水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:1**3+5**3+3**3=153。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。
[问题求解]设这个数存放于变量x中,变量gsb分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量gsb表示为x的形式。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。
print "三位数之内的水仙花是:"
for x in___1001000):
b=x//100
s=x//10___
g=___
If x=b**3 +s**3+g**3):
print___
17.奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。“奇校验”的原理:在发送端发送的每个字节二进制码后增加一个校验位(01),使得“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.某种数据加密方法描述如下(加密前数据是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
s = Text1. Text
st = convert(Val(Text2. Text))
For i = 1 To Len(s)
a(i) = Mid(s,i,1)
Next i
i = 1:start = -8
Do While________
If i Mod 8 = 1 Then start = start + 8
b(i)=_______
i = i + 1
Loop
For j = i To Len(s)
b(j) = a(j)
二进制转换方法的口诀Next j
For i = 1 To Len(s)
________
For j = 1 To 8
If Mid(ss,j,1)= Mid(st,j,1)Then
res = res + "0" Else res = res + "1"
'按位异或
Next j
Next i
Text3. Text = res
End Sub
19.程序设计:唐三藏又被妖怪抓走了,这次孙悟空还是没打得过妖怪,于是来求观音菩萨。观音菩萨告诉孙悟空,在天庭里身高正好为1000米的那位神仙可以降伏此妖。于是悟空立刻来到天上,在玉皇大帝的神仙册上看到了按身高从矮到高排列有10000个神仙。由于时间紧迫,悟空想用最短的时间到这位神仙,这样才可以尽快解救唐僧。
代码如下:
Listlist(map(intinput(“请按身高递增顺序依次输入10000个神仙的身高”).split()))
left1
right10000
while   
mid   
if List[mid]==1000:
   
elif List[mid]1000:
   
else:
   
print(“能帮孙悟空的神仙在第{0}位上”.format(midl))
1)程序代码中①处正确的代码是(_______)
A.leftright      B.left<=right    C.left!right    D.leftright
2)程序代码中②处正确的代码是(_______)
A.(leftright)/2    B.(leftright)\2
C.(leftright)//2    D.(leftright)\\2
3)程序代码中③处正确的代码是(_______)
A.pass          B.print(mid)z      C.break        D.continue
4)程序代码中④处正确的代码是(_______)-
A.leftmid      B.rightmid    C.leftmid1    D.rightmid-1