一、单选题
-
答案:D
- 解析:十六进制数转换为十进制数的方法是:用每个数位上的数字乘以16的相应位数次幂(幂次从0开始,从右向左计数),然后将结果相加。十六进制数
101
转换为十进制为1×161+0×161+1×160= 256 + 1= 257
- 解析:十六进制数转换为十进制数的方法是:用每个数位上的数字乘以16的相应位数次幂(幂次从0开始,从右向左计数),然后将结果相加。十六进制数
-
答案:D
- 解析:
line.strip("\n")
用于去除字符串line
两端的换行符\n
,line.replace("\n", "")
也可以实现将字符串中的换行符\n
替换为空字符串,从而达到去除换行符的效果。A选项pop
方法通常用于列表操作,从列表中删除指定位置的元素并返回该元素,不能用于去除字符串中的字符;B选项del
是用于删除变量或对象的关键字,不能直接用于去除字符串中的字符;C选项remove
方法用于从列表中删除指定值的元素,不能用于去除字符串中的字符。
- 解析:
-
答案:D
- 解析:A选项
abs(-4)
的结果是4;B选项round(abs(-3.5))
先计算abs(-3.5)
为3.5,再round
取整为4;C选项abs(round(-3.5))
先round(-3.5)
取整为 - 4,再取绝对值为4;D选项min(round(-3.5), round(3.8))
,round(-3.5)
取整为 - 4,round(3.8)
取整为4,min
函数返回较小值为 - 4,与其他三项结果不同。
- 解析:A选项
-
答案:D
- 解析:
max
函数的key
参数指定了一个函数,用于从每个元素中提取比较的键值。这里key=str
表示将每个元素转换为字符串后进行比较,在列表[111, 22, 3]
中,转换为字符串后按字典序比较,'111'
最大,所以结果为'111'
。
- 解析:
-
答案:B
- 解析:A选项直接写多个值用逗号分隔,在Python中会自动创建一个元组;C选项使用
tuple
函数将一个包含元素的元组转换为元组,结果还是(1, 2, 3, 4)
;D选项使用tuple
函数将列表[1, 2, 3, 4]
转换为元组,结果为(1, 2, 3, 4)
。B选项tuple({1:2, 3:4})
会将字典的键转换为元组,结果为(1, 3)
,不是(1, 2, 3, 4)
。
- 解析:A选项直接写多个值用逗号分隔,在Python中会自动创建一个元组;C选项使用
-
答案:B
- 解析:在Windows系统中,文件路径的分隔符可以使用
\
(需要转义为\\
)或/
。A选项f = open('D:/city.csv', 'w')
使用/
作为路径分隔符,可以正常打开文件进行写入;C选项f = open('D://city.csv ', 'w')
使用//
作为路径分隔符,也可以正常打开文件;D选项f = open('D:\\city.csv ', 'w')
使用转义后的\\
作为路径分隔符,能够正确打开文件。B选项f = open('D:\city.csv', 'w -')
中\c
被解释为特殊字符(如转义字符),导致文件路径错误,不能打开文件,并且w -
不是有效的文件打开模式。
- 解析:在Windows系统中,文件路径的分隔符可以使用
-
答案:A
- 解析:十进制数的基数为10,从小数点向左数,第一位的权值是(100),第二位的权值是(101),第三位的权值是(10^2)等,A选项说法错误。十进制数包括0 - 9这十个数码,基本运算规则是“逢十进一”,并且可以是有符号数,如 - 18,B、C、D选项描述正确。
-
答案:C
- 解析:序列是Python中最基本的数据结构,常见的序列有列表、元组、字符串等,A、B选项正确;序列中表示元素位置的数字叫做索引,索引可以是正整数、负整数(从右向左计数, - 1表示最后一个元素),C选项错误;Python内置了
len
函数用于求序列长度,D选项正确。
- 解析:序列是Python中最基本的数据结构,常见的序列有列表、元组、字符串等,A、B选项正确;序列中表示元素位置的数字叫做索引,索引可以是正整数、负整数(从右向左计数, - 1表示最后一个元素),C选项错误;Python内置了
-
答案:C
- 解析:元组是用括号把元素括在一起,元素之间用逗号分隔,A选项正确;元组可以为空,写作
()
,B选项正确;元组中只有一个元素时,需要在元素后面加逗号,如(3,)
,否则括号会被认为是表达式中的优先级符号,C选项错误;元组中的元素可以具有不同类型,D选项正确。
- 解析:元组是用括号把元素括在一起,元素之间用逗号分隔,A选项正确;元组可以为空,写作
-
答案:C
- 解析:在
try
块中,x // y
会发生除零错误(ZeroDivisionError
),因为y = 0
,当发生异常时,程序会跳转到对应的except
块中执行,这里会输出error
。
- 答案:D
- 解析:快速排序算法的平均时间复杂度为(O(nlogn)),在一般情况下是效率较高的排序算法。冒泡排序算法、选择排序算法、插入排序算法的平均时间复杂度为(O(n^2)),效率相对较低。
- 答案:D
- 解析:
bool
函数对于非零值返回True
,对于零值返回False
。A选项2 * 3 - 0 = 6
,bool(6)
为True
;B选项2 * 3 - 2 = 4
,bool(4)
为True
;C选项2 * 3 - 3 = 3
,bool(3)
为True
;D选项2 * 3 - 6 = 0
,bool(0)
为False
。
- 答案:A
- 解析:
tuple
函数用于创建元组,B选项list
函数用于创建列表;C选项dict
函数用于创建字典;D选项set
函数用于创建集合。
- 答案:C
- 解析:
ascii
函数返回一个表示对象的可打印字符串,如果对象是整数1,ascii(1)
会返回'1'
,字符串两端会加上单引号表示是字符串类型。
- 答案:C
- 解析:A选项
print(1 + 2 + 3 =?)
是错误的语法,不能这样直接在print
函数中写表达式和等号;B选项print(1 + 2 + 3, '=?')
会输出6 =?
,中间有空格;C选项print(1, 2, 3, sep='+', end='=?')
会输出1+2+3=?
,符合要求;D选项print(1, 2, 3, sep='+', '=?')
是错误的语法,sep
和end
参数不能这样混合使用。
- 答案:A
- 解析:
max('12345')
会返回字符串'12345'
中的最大字符'5'
,float('5')
转换为浮点数5,然后min(float('5'), 7, 6)
会返回5、7、6中的最小值5,所以A选项语法正确。B选项chr
函数用于将整数转换为字符,chr('5')
会报错;C选项bin
函数用于将整数转换为二进制字符串,bin('5')
会报错;D选项hex
函数用于将整数转换为十六进制字符串,hex('5')
会报错。
- 答案:B
- 解析:A选项
sum([1, 2, 3], 4)
先计算sum([1, 2, 3]) = 6
,再加上4得到10;C选项sum([2, 2, 2], max(4, 3, 2))
,max(4, 3, 2) = 4
,sum([2, 2, 2], 4)
先计算sum([2, 2, 2]) = 6
,再加上4得到10;D选项sum([0, 3, 4], int('3'))
,int('3') = 3
,sum([0, 3, 4], 3)
先计算sum([0, 3, 4]) = 7
,再加上3得到10;B选项sum([0, 1, 2], [3, 2, 2])
会将两个列表拼接成[0, 1, 2, 3, 2, 2]
,然后计算sum([0, 1, 2, 3, 2, 2]) = 10
,结果与其他三项不同(这里是将两个列表作为参数传递给sum
函数的特殊行为,与其他选项的计算方式不同)。
- 答案:D
- 解析:
list
函数可以将元组转换为列表,tuple
函数可以将列表转换为元组,元组和列表可以通过类型转换函数互相转换,A、B、C选项正确。元组和列表虽然在很多操作上类似,但它们有本质区别,例如元组是不可变的(元素不能修改、添加、删除),而列表是可变的,D选项错误。
- 答案:D
- 解析:当发生异常时,我们通常需要捕获异常并进行处理,将可能发生错误的语句放在
try
模块里,处理异常的语句放在except
模块里。一个try
模块可以对应多个except
模块,用于捕获不同类型的异常,D选项描述错误。
- 答案:B
- 解析:
int('10', 2)
表示将二进制字符串'10'
转换为十进制整数,转换结果为2。A选项描述的是将十进制数转换为二进制数的操作;C选项将字符串'10'
转换为二进制整数的说法错误;D选项将字符串'10'
转换为十进制整数的操作应该是int('10')
(默认按十进制转换),而不是int('10', 2)
(按二进制转换)。
- 答案:C
- 解析:在Python中,
0b
表示二进制数前缀,0o
表示八进制数前缀,0x
表示十六进制数前缀,C选项中关于前缀的描述错误。A选项0b100010
表示二进制数是正确的;B选项int('1a32', 2)
执行时会因为1a32
不是合法的二进制数(包含了a
)而出现错误提示,是正确的;D选项hex(89)
将十进制数89转换为十六进制数,结果是'0x59'
,是正确的。
- 答案:D
- 解析:
w
模式和w+
模式在文件不存在时都会先创建文件,并且都会覆盖原文件内容。w
模式用于只写操作,w+
模式用于读写操作,但它们的共同点是对文件的覆盖行为和文件不存在时的创建行为。w
模式不能追加读,w+
模式不是追加写(虽然可以读写,但写入时会覆盖原有内容),A、B、C选项错误。
- 答案:B
- 解析:
range(5)
生成的序列是[0, 1, 2, 3, 4]
,循环中print(i, end=',')
会依次输出每个数字,并用逗号分隔,最后一个数字输出后也会有逗号,所以结果是0,1,2,3,4,
。
- 答案:A
- 解析:冒泡排序的基本思想是比较相邻元素,如果顺序不对则交换,每一趟排序会将最大的元素“浮”到末尾。原始列表
l = [7, 2, 9, 6, 4, 5]
,第一趟排序后:[2, 7, 6, 4, 5, 9]
;第二趟排序后:[2, 6, 4, 5, 7, 9]
;第三趟排序后:[2, 4, 5, 6, 7, 9]
。
- 答案:D
- 解析:选择排序的基本思想是在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。原始列表
l = [7, 6, 3, 8, 4, 1]
,第一趟排序后:[1, 6, 3, 8, 4, 7]
;第二趟排序后:[1, 3, 6, 8, 4, 7]
;第三趟排序后:[1, 3, 4, 8, 6, 7]
。
二、判断题
- 答案:正确
- 解析:在Python中,以
0x
开头的数字表示十六进制数,0x100010
是十六进制数的正确表示。
- 解析:在Python中,以
- 答案:正确
- 解析:这段代码首先以只读方式打开
score.csv
文件,然后使用read
方法读取文件内容,strip
方法去除字符串两端的换行符,split
方法以逗号为分隔符将字符串分割成列表,最后关闭文件,实现了将文件中的数据读取到列表中的功能。
- 解析:这段代码首先以只读方式打开
- 答案:错误
- 解析:
open('name.csv', 'r')
的作用是以只读方式打开文件名为name.csv
的文件,而不是可写入的方式。r
表示只读,w
表示只写(会覆盖原有内容),a
表示追加写等。
- 解析:
- 答案:错误
- 解析:
print(abs(8 - 12) * 3)
先计算abs(8 - 12) = 4
,再乘以3得到12,所以输出结果为12,而不是 - 12。
- 解析:
- 答案:错误
- 解析:
divmod(98, 8)
的结果是(12, 2)
,表示98除以8商为12余数为2,而不是(2, 12)
。
- 解析:
- 答案:正确
- 解析:
ord('a')
返回小写字母a
的ASCII码值,小写字母的ASCII码值比大写字母大32,所以ord('a') - 32
得到大写字母A
的ASCII码值,再用chr
函数将其转换为大写字母A
,即chr(ord('a') - 32)
可以将小写字母a
转换为大写字母A
。
- 解析:
- 答案:错误
- 解析:
sorted
函数会返回一个新的排好序的列表,原列表的内容不会改变,所以排序后原列表中数据的位置不会发生变化。如果要对原列表进行排序,可以使用列表的sort
方法。
- 解析:
- 答案:错误
- 解析:
bin
函数可以将十进制数转换成二进制数,在Python交互式编程环境下,执行语句bin(15)
后,显示的运行结果是'0b1111'
,会带有0b
前缀表示是二进制数。
- 解析:
- 答案:正确
- 解析:二维数据可以用二维列表表示,二维列表中的每个子列表对应二维数据的一行,例如
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
可以表示一个3行3列的二维数据。
- 解析:二维数据可以用二维列表表示,二维列表中的每个子列表对应二维数据的一行,例如
- 答案:正确
- 解析:
try...except
结构的异常处理机制就是当try
代码段运行发生异常时,程序会立即跳到对应的except
代码段执行,以处理异常情况,避免程序因异常而终止。
三、编程题
-
小白兔排队
- 思路:首先获取兔子的总只数,然后通过循环获取每只兔子的身高并添加到列表
a
中,接着对列表a
进行排序(可以使用sort
方法),最后循环输出排好队的兔子身高。
- 思路:首先获取兔子的总只数,然后通过循环获取每只兔子的身高并添加到列表
-
开关电灯编程
- 思路:首先获取灯的总数
n
,然后创建一个长度为n + 1
的列表a
(索引从1到n
,对应n
个灯),并初始化为 - 1,表示灯最初是关着的。接着通过两层循环,外层循环控制按动电灯按钮的次数(从1到n
),内层循环根据当前按动按钮的次数(i
),将编号为i
的倍数的灯的状态取反(如果是 - 1变为1,表示灯打开;如果是1变为 - 1,表示灯关闭)。最后统计列表a
中值为1的元素个数,即为亮着的灯的数量并输出。
- 思路:首先获取灯的总数
-
文件读取
- 思路:首先使用
open
函数以只读方式打开IP.txt
文件,然后使用readlines
方法读取文件的所有行,得到一个包含每行内容的列表list
。接着通过循环遍历列表list
,使用strip
方法去除每行末尾的换行符\n
。最后通过逆序循环(从最后一行到第一行)输出文件中的每行IP地址。
- 思路:首先使用