数据结构:编程语言之python

1、下列哪种类型是Python的映射类型?

正确答案: D 你的答案: C (错误)
str
list
tuple
dict
解析;dict是python的唯一映射类型。

2、下面哪个是Python中的不变的数据结构?
正确答案: C 你的答案: C (正确)
set
list
tuple
dict
解析:其余的都可以改变。

3、下面哪个是Python中的不变的数据结构?
正确答案: C 你的答案: C (正确)
set
list
tuple
dict

4、当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包,以下代码输出值为:

def adder(x):
def wrapper(y):
return x + y
return wrapper
adder5 = adder(5)
print(adder5(adder5(6)))

正确答案: D 你的答案: 空 (错误)
10
12
14
16

解析:adder(5) #返回了 wrapper ,且x=5
adder5 = adder(5) # adder5是对wrapper的引用 此时x等于5
adder5(6) # 相当于 wrapper(6) = 5+6=11 所以 adder5(6) =11 ,同理adder5(7)=12
adder5(adder5(6)) # = adder5(11) = wrapper(11) =5+11=16

5、以下程序输出为:
def test(a,b,*args):
print(a)
print(b)
print(args)
test(11,22,33,44,55,66,77,88,99)
正确答案: A 你的答案: 空 (错误)
11 22 (33, 44, 55, 66, 77, 88, 99)
编译错误
运行错误
11 22 (11,22,33, 44, 55, 66, 77, 88, 99)
解析:def test(a,b,*args)
a,b位置参数;*args为不定长位置参数,传入的参数被放入一个元祖里。
所以,a,b分别被赋值11、22,而其他的数被存到一个元组里。

6、以下代码输出为:
t1 = {‘1’:1,‘2’:2}
list2 = list1
list1[‘1’] = 5
sum = list1[‘1’] + list2[‘1’]
print(sum)

正确答案: D 你的答案: 空 (错误)
1
2
7
10
解析:列表1和2都指向了同一个对象空间list1,list1改变后,都跟着改变,5+5为10.

7\下列Python语句正确的是
正确答案: D 你的答案: 空 (错误)
min = x if x < y = y
max = x > y ? x : y
if (x > y) print x
while True : pass

8、下面代码运行后,a、b、c、d四个变量的值,描述错误的是?
import copy
a = [1, 2, 3, 4, [‘a’, ‘b’]]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append(‘c’)
正确答案: D 你的答案: 空 (错误)
a == [1,2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
b == [1,2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
c == [1,2, 3, 4, [‘a’, ‘b’, ‘c’]]
d == [1,2, 3, 4, [‘a’, ‘b’, ‘c’]
j解析:我是参考别人的解析:import copy
a = [1, 2, 3, 4, [‘a’, ‘b’]]
b = a # 引用,除非直接给a重新赋值,否则a变则b变,b变则a变
c = copy.copy(a) # 浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象变c不会变
d = copy.deepcopy(a) #深拷贝,完全拷贝,完全独立于原对象,a变也不变
a.append(5) # 改变父对象
a[4].append(‘c’) #改变父对象中的 [‘a’, ‘b’]子对象

a=[1, 2, 3, 4, [‘a’, ‘b’,‘c’],5]
b=[1, 2, 3, 4, [‘a’, ‘b’,‘c’],5]
c=[1, 2, 3, 4, [‘a’, ‘b’,‘c’]]
d=[1, 2, 3, 4, [‘a’, ‘b’]]

9、以下声明错误的是:
正确答案: D 你的答案: 空 (错误)
dic = {}
dic = {100:200}
dic = {(1,2,3):‘test’}
dic = {[1,2,3]:‘test’}
解析:因为字典的键值必须是不可变的类型,所以只能是:数字,字符串,元组,而列表是可变类型。
可变(mutable)对象类型 :list、dict、set、bytearray、user-defined classes (unless specifically made immutable)
不可变(immutable)对象类型: int、float、decimal、complex、bool、str、tuple、range、frozenset、bytes

10、
What gets printed?()

kvps = { ‘1’ : 1, ‘2’ : 2 }
theCopy = kvps.copy()
kvps[‘1’] = 5
sum = kvps[‘1’] + theCopy[‘1’]
print sum

正确答案: C 你的答案: 空 (错误)
1
2
6
10
An exception is thrown
解析:浅拷贝,父对象改变也不会变,父对象中的子对象改变会改变。
11、下列哪个语句在Python中是非法的?
正确答案: B 你的答案: 空 (错误)
x = y = z = 1
x = (y = z + 1)
x, y = y, x
x += y

解析:B y = z + 1 赋值结果不会返回值 再=x就会出错

12、在Python2中,下列哪种函式参数定义不合法?
正确答案: C 你的答案: 空 (错误)
def myfunc(*args):
def myfunc(arg1=1):
def myfunc(*args, a=1):
def myfunc(a=1, **args):

13、What gets printed?()
print r"\nwoow"
正确答案: C 你的答案: 空 (错误)
new line then the string: woow
the text exactly like this: r"\nwoow"
the text like exactly like this: \nwoow
the letter r and then newline then the text: woow
the letter r then the text like this: nwoow
解析:r被用做标记,不会用来输出。

14、关于Python中的复数,下列说法错误的是
正确答案: C 你的答案: 空 (错误)
表示复数的语法是real + image j
实部和虚部都是浮点数
虚部必须后缀j,且必须是小写
方法conjugate返回复数的共轭复数
解析:Python语言中有关负数的概念:
1、虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数
2、复数由实数部分和虚数部分构成
3、表示虚数的语法:real+imagej
4、实数部分和虚数部分都是浮点数
5、虚数部分必须有后缀j或J
复数的内建属性:
复数对象拥有数据属性,分别为该复数的实部和虚部。
复数还拥有conjugate方法,调用它可以返回该复数的共轭复数对象。
复数属性:real(复数的实部)、imag(复数的虚部)、conjugate()(返回复数的共轭复数)

15、关于Python内存管理,下列说法错误的是
正确答案: B 你的答案: 空 (错误)
变量不必事先声明
变量无须先创建和赋值而直接使用
变量无须指定类型
可以使用del释放资源
解析:Python 是弱类型脚本语言,变量就是变量,没有特定类型,因此不需要声明。
但每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
用 del 语句可以释放已创建的变量(已占用的资源)。

16、以下程序输出为:

def w1():
print(‘正在装饰’)
def inner():
print(‘正在验证权限’)

return inner()

w1()

正确答案: A 你的答案: 空 (错误)
正在装饰 正在验证权限
正在装饰
正在验证权限
运行错误
解析:注意这里return()返回的是函数的调用,会调用函数inner,坐一会输出inner运行的结果,如果是return就不会调用函数Inner,就不会输出inner运行的结果。

17、下述字符串格式化语法正确的是?
正确答案: D 你的答案: 空 (错误)
‘GNU’s Not %d %%’ % ‘UNIX’
‘GNU’s Not %d %%’ % ‘UNIX’
‘GNU’s Not %s %%’ % ‘UNIX’
‘GNU’s Not %s %%’ % ‘UNIX’
解析:%d表示的是数字,%d表示的是字符,所以排除AB,还有就是单引号内嵌套单引号需要转义字符;单引号内嵌套双引号不需要转义字符;
双引号内嵌套双引号需要转义字符/;双引号内引用单引号不需要转义字符;

18、有一段python的编码程序如下:urllib.quote(line.decode(“gbk”).encode(“utf-16”)),请问经过该编码的字符串的解码顺序是( )
正确答案: D 你的答案: 空 (错误)
gbk utf16 url解码
gbk url解码 utf16
url解码 gbk utf16
url解码 utf16 gbk

19、从运行层面上来看,从四个选项选出不同的一个。
正确答案: B 你的答案: 空 (错误)
JAVA
Python
objectC
C#
解析:A,C,D都是类C语言,B不是
Python是解释执行的,其他语言都需要先编译

20、下列代码运行结果是?
a = ‘a’
print a > ‘b’ or ‘c’

21、
python代码如下:

foo = [1,2]
foo1 = foo
foo.append(3)

正确答案: B D 你的答案: 空 (错误)
foo 值为[1,2]
foo 值为[1,2,3]
foo1 值为[1,2]
foo1 值为[1,2,3]
解析:等于也就是引用,原数改变它也会改变,所以都是【1,2,3】。

22、Python中函数是对象,描述正确的是?
正确答案: A B C D 你的答案: 空 (错误)
函数可以赋值给一个变量
函数可以作为元素添加到集合对象中
函数可以作为参数值传递给其它函数
函数可以当做函数的返回值

23、__new__和__init__的区别,说法正确的是?
正确答案: A B C D 你的答案: 空 (错误)
new__是一个静态方法,而__init__是一个实例方法
new__方法会返回一个创建的实例,而__init__什么都不返回
只有在__new__返回一个cls的实例时,后面的__init__才能被调用
当创建一个新实例时调用__new
,初始化一个实例时用__init

24、若 a = range(100),以下哪些操作是合法的?
正确答案: A B C D 你的答案: 空 (错误)
a[-3]
a[2:13]
a[::3]
a[2-3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椒椒。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值