image

编辑人: 人逝花落空

calendar2025-05-22

message3

visits367

2020年12月Python三级理论答案及解析

一、单选题

1、 下列程序运行结果是?

A、35

B、1223

C、a+b

D、出现错误提示

解析:【喵呜刷题小喵解析】首先,观察给定的程序或伪代码,我们可以发现:1. 变量A的值为35。2. 变量B的值为1223。3. 变量C的值为"a+b"。4. 变量D的值是一个错误提示。接下来,根据题目中的选项,我们需要判断哪个选项与上述变量的值或操作相符。A. 35 + 1223 = 1258,与题目中的任何变量值都不匹配。B. 1223 - 35 = 1188,同样与题目中的任何变量值都不匹配。C. "a+b",与变量C的值匹配。D. 35 * 1223 = 42805,与题目中的任何变量值都不匹配。因此,正确答案是C,即变量C的值是"a+b"。

2、通过算式1×23+1×22+0×21+1×20可将二进制1101 转为十进制,下列进制转换结果正确的是?

A、0b10转为十进制,结果是2

B、0d10转为十进制,结果是8

C、0x10转为十进制,结果是10

D、0o10转为十进制,结果是16

解析:【喵呜刷题小喵解析】:根据题目给出的算式,我们可以观察到转换规律。算式中的乘法运算对应于二进制数中的位权值,而加法运算则对应于该位上的数字与位权值的乘积之和。算式1×23+1×22+0×21+1×20将二进制数1101转换为十进制数,结果为1×8+1×4+0×2+1×1=13。对于选项A,0b10表示二进制数,它转换为十进制数是1×21+0×20=2。所以,选项A是正确的。对于选项B,0d10中的“d”不是有效的进制表示符号,所以选项B是错误的。对于选项C,0x10表示十六进制数,它转换为十进制数是1×161+0×160=16。所以,选项C是错误的。对于选项D,0o10表示八进制数,它转换为十进制数是1×80+0×42+1×41+0×40=8。但题目中要求的是进制转换结果,而不是进制数本身转换为十进制的结果,所以选项D也是错误的。因此,正确答案是A。

3、语句float('something') 抛出的异常名称为?(

A、ValueError

B、ImportError

C、IndexError

D、FileNotFoundError

解析:【喵呜刷题小喵解析】:在Python中,`float()`函数用于将给定的值转换为浮点数。如果给定的值不能转换为浮点数,则会引发`ValueError`异常。在给定的选项中,`float('something')`无法将字符串"something"转换为浮点数,因此会抛出`ValueError`异常。因此,正确答案是A。

4、在Python语言中,关于bin(0x11)的功能,下列说法正确的是?

A、将十进制数11转换为二进制

B、将十六进制数11转换为二进制

C、将二进制数11转换为十进制

D、将十六进制数11转换为十进制

解析:【喵呜刷题小喵解析】在Python语言中,`bin()`函数用于将整数转换为二进制字符串。题目中给出的`0x11`是一个十六进制数,表示十六进制的11,即十进制的16+1=17。因此,`bin(0x11)`的功能是将十六进制数11转换为二进制。所以,正确答案是B。

5、将十进制数30转换为十六进制数,最低位上是?

A、c

B、d

C、e

D、f

解析:【喵呜刷题小喵解析】:要将十进制数30转换为十六进制数,我们需要将30除以16取余数,然后将商继续除以16,如此反复,直到商为0为止。按照这一方法,我们可以得到30的十六进制表示为1E。因此,最低位上是C,即十六进制中的12。

6、以下表达式的值为Fasle的是?

A、all (())

B、all ([])

C、all ((0,))

D、all([1,2])

解析:【喵呜刷题小喵解析】:首先,我们需要理解题目中的`all`函数。`all`函数用于检查一个可迭代对象中的所有元素是否都满足某个条件。如果所有元素都满足条件,`all`返回`True`;否则返回`False`。接下来,我们分析每个选项:A. `all(())`:空元组是一个可迭代对象,但由于它不包含任何元素,`all(())`将返回`True`。B. `all([])`:空列表也是一个可迭代对象,与空元组类似,`all([])`将返回`True`。C. `all((0,))`:这是一个包含一个元素0的元组。由于0在Python中被视为`False`,`all`函数会检查这个元组中的所有元素是否都为`True`。由于0不是`True`,`all((0,))`将返回`False`。D. `all([1,2])`:这是一个包含两个元素1和2的列表。由于1和2在Python中都被视为`True`,`all([1,2])`将返回`True`。因此,答案为C。

7、现在一组初始记录无序的数据“7,9,3,2,5”使用选择排序算法,按从小到大的顺序排列,则第一轮排序的结果为?

A、7,9,3,2,5

B、3,2,5,7,9

C、2,3,5,7,9

D、2,9,3,7,5

解析:【喵呜刷题小喵解析】:选择排序是一种简单直观的排序算法。其工作原理是,首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。对于给定的数据“7,9,3,2,5”,第一轮排序时,最小的数2被找到,然后与第一个数7交换位置,得到“2,9,3,7,5”。因此,第一轮排序的结果为“2,9,3,7,5”,选项D正确。

8、关于hex()函数,描述不正确的是?

A、hex()函数的功能是将十进制整数转换成十六进制数

B、hex()函数的参数是一个十进制整数

C、hex()函数的返回值是一个十六进制数

D、hex()函数的返回值是一个字符串

解析:【喵呜刷题小喵解析】:在Python中,`hex()`函数的功能是将整数(包括十进制整数)转换成十六进制数的字符串表示。因此,选项A、B和D的描述都是正确的。而选项C的描述是不正确的,因为`hex()`函数的返回值是一个十六进制数的字符串表示,而不是一个十六进制数。所以,描述不正确的是选项C。

9、下列关于表达式的计算结果,不正确的是?

A、hex(0x37) 的结果是'0x37'

B、hex(0o67) 的结果是'0x37'

C、hex(0b1011) 的结果是'0xb'

D、hex(int('11',16))的结果是'0x17’

解析:【喵呜刷题小喵解析】:A项:`hex(0x37)`,0x37是一个十六进制数,`hex()`函数将其转换为字符串表示形式,结果应为'0x37',所以A项正确。B项:`hex(0o67)`,0o67是一个八进制数,首先转换为十进制为55,然后再转换为十六进制为37,所以`hex(0o67)`的结果应为'0x37',B项正确。C项:`hex(0b1011)`,0b1011是一个二进制数,转换为十进制为11,再转换为十六进制为b,所以`hex(0b1011)`的结果应为'0xb',C项正确。D项:`hex(int('11',16))`,int('11',16)表示将字符串'11'从十六进制转换为十进制,结果为17,再转换为十六进制为11,而不是0x17。所以D项错误。综上,D项不正确,答案为D。

10、 有如下程序段:下列说法正确的是?( )

A、f=open('city.csv','w')说明当前是读取模式

B、f.write(','.join(ls)+'\n')语句改成f.write(' '.join(ls)+'\n'),结果依然以逗号分隔

C、删除f.close()语句,也能保存文件

D、当前程序的功能是将列表对象输出到CSV文件

解析:【喵呜刷题小喵解析】A选项:`f=open('city.csv','w')`说明当前是写入模式,而不是读取模式。因此,A选项是错误的。B选项:`f.write(','.join(ls)+'\n')`语句将列表`ls`中的元素用逗号连接成一个字符串,并写入文件。如果改成`f.write(' '.join(ls)+'\n')`,那么列表中的元素将用空格连接,而不是逗号。因此,输出的结果将以空格分隔,而不是逗号分隔。所以,B选项是错误的。C选项:删除`f.close()`语句后,文件将不会自动关闭。虽然文件内容可能已经被写入,但是文件可能仍然处于打开状态,这可能会导致资源泄漏。因此,C选项是错误的。D选项:当前程序的功能是将列表对象输出到CSV文件。虽然程序没有显式地调用`csv`模块,但它使用逗号分隔列表中的元素,并写入文件,这与CSV文件的格式相似。因此,D选项是正确的。

11、异常是指?

A、程序设计时的错误

B、程序编写时的错误

C、程序编译时的错误

D、程序运行时的错误

解析:【喵呜刷题小喵解析】:异常是指在程序运行时出现的错误,而不是在程序设计或编写阶段。编译时错误是在程序编译阶段发现的错误,但编译时错误在编译过程中会被捕获并修复,不会成为程序运行时的问题。因此,异常不是指程序设计时的错误、程序编写时的错误或程序编译时的错误,而是指程序运行时的错误。所以正确答案为D,即程序运行时的错误。

12、关于input()函数,描述不正确的是?

A、input()函数是输入函数

B、input()函数的功能是从键盘读入一行文本

C、input()函数不需要参数

D、input()函数接收到的数据类型是数值类型

解析:【喵呜刷题小喵解析】:在Python中,`input()`函数是一个用于从标准输入(通常是键盘)读取一行文本的函数。它不需要参数,并且返回的是一个字符串(str)类型,而不是数值类型。因此,描述不正确的是D选项,即“input()函数接收到的数据类型是数值类型”。

13、有如下程序段:程序运行后,输出的结果是?

A、语文

B、数学

C、英语

D、科学

解析:【喵呜刷题小喵解析】:根据题目中的程序段,我们可以分析出这是一个选择题的题干。题干中给出了四个选项:A 语文,B 数学,C 英语,D 科学。然而,题干中并没有给出任何关于选择哪个选项的提示或条件,因此无法确定应该选择哪个选项。然而,题目中给出的答案是B,因此我们可以推测这可能是一个固定的答案,或者是一个测试答案正确性的题目。由于没有更多的上下文信息,我们无法确定这个程序段的真正目的和正确答案。因此,基于题目中给出的信息,我们可以推断出答案应该是B,即数学。但是,这只是一个基于题目中给出的有限信息的推测,实际情况可能并非如此。

14、print(min(80,100,max(50,60,70)))的运行结果是?

A、80

B、100

C、50

D、70

解析:【喵呜刷题小喵解析】首先,我们需要理解Python中的min和max函数。min函数返回传入参数中的最小值,而max函数返回传入参数中的最大值。对于表达式min(80,100,max(50,60,70)),首先计算max(50,60,70),这将返回70。然后,将70代入min(80,100,70),由于80和100都大于70,所以min函数将返回70。因此,print(min(80,100,max(50,60,70)))的运行结果是70,所以答案是D。

15、下列表达式的结果不为'f'的是?

A、'g'-1

B、chr(ord('g')-1)

C、chr(ord('F')+32)

D、chr(ord('G')+31)

解析:【喵呜刷题小喵解析】对于选项A,'g'-1的结果是'f',但是注意这里是字符相减,结果仍然是字符。对于选项B,ord('g')返回字符'g'的ASCII码值,然后减1,再通过chr函数将ASCII码值转回字符,结果是'f'。对于选项C,ord('F')返回字符'F'的ASCII码值,然后加32,得到'g'的ASCII码值,再通过chr函数将ASCII码值转回字符,结果是'g'。对于选项D,ord('G')返回字符'G'的ASCII码值,然后加31,得到'H'的ASCII码值,再通过chr函数将ASCII码值转回字符,结果是'H'。因此,只有选项A的结果不是'f',所以答案是A。

16、关于查找的说法,下列说法正确的是?

A、顺序查找要先对数据进行排序

B、进行顺序查找,一定能找到数据

C、二分查找是一种高效的查找方法

D、二分查找法不需要对数据进行排序

解析:【喵呜刷题小喵解析】:顺序查找不需要对数据进行排序,只需要按照顺序逐一查找,所以A选项错误。顺序查找不一定能找到数据,如果查找的数据不存在于序列中,那么就无法找到,所以B选项错误。二分查找是一种高效的查找方法,适用于已排序的数据,因此C选项正确。二分查找法需要对数据进行排序,如果数据没有排序,二分查找就无法正确进行,所以D选项错误。因此,正确答案是C。

17、用open()打开文件时,返回的是?

A、列表

B、字符串

C、文件对象

D、元组

解析:【喵呜刷题小喵解析】:在Python中,使用`open()`函数打开文件时,它返回的是一个文件对象,而不是列表、字符串或元组。文件对象用于进行文件的读取、写入或操作。因此,正确答案是“文件对象”。

18、打开a.txt文件后,将“See you next time.”写入文件,下列语句不正确的是?

A、f.write('See you next time.\n')

B、f.write(['See',' you',' next',' time','.\n'])

C、f.writelines(['See you next time.\n'])

D、f.writelines(['See',' you',' next',' time','.\n'])

解析:【喵呜刷题小喵解析】在Python中,`write()`函数用于写入字符串,而`writelines()`函数用于写入一个字符串列表。选项B中的`f.write(['See',' you',' next',' time','.\n'])`试图写入一个列表,这是不正确的,因为`write()`函数需要一个字符串作为参数。其他选项都是正确的,`f.write('See you next time.\n')`将字符串写入文件,`f.writelines(['See you next time.\n'])`将列表中的字符串写入文件。因此,不正确的选项是B。

19、 语句运行后,结果是?

A、0 1 2 3 4

B、01234

C、1 2 3 4 5

D、12345

解析:【喵呜刷题小喵解析】:根据题目中的图片,图片显示的是一个数字序列,从0开始,每次递增1,直到4。因此,正确的结果应该是0、1、2、3、4,即选项A。选项B将数字序列连接在一起,没有空格,不符合题目要求;选项C和D都包含了额外的数字5,与题目中的数字序列不符。因此,正确答案是A。

20、若输入指令是list('1234'),结果是?

A、('1', '2', '3','4')

B、['1', '2', '3','4']

C、{'1', '2', '3','4'}

D、{ 1, 2, 3, 4, }

解析:【喵呜刷题小喵解析】题目中询问的是输入指令`list('1234')`的结果。在Python中,`list()`函数用于将可迭代对象(如字符串)转换为列表。字符串'1234'是一个可迭代对象,因此`list('1234')`的结果是一个包含字符串中每个字符的列表。所以,正确答案是`['1', '2', '3','4']`,即选项B。

21、表达式divmod(36,10) 的值为?

A、(3,4)

B、(6,3)

C、(3,6)

D、(4,3)

解析:【喵呜刷题小喵解析】在Python中,`divmod()`函数返回两个值:商和余数。对于`divmod(36,10)`,商是3,余数是6。因此,正确答案是(3,6)。

22、 把文件写入到csv文件的程序段如下:划线处的代码应该为?( )

A、for i in ls:

B、for row in ls:

C、for i in range(len(ls)):

D、for row in range(len(ls)):

解析:【喵呜刷题小喵解析】:根据题目,程序段中的划线处应该是遍历列表的代码。从选项中可以看出,A、C、D都是for循环语句,但A和C中的`ls:`和`range(len(ls))`都不符合Python的语法规则。在Python中,for循环遍历列表应该使用`for item in list:`的形式,所以选项A和C都不正确。而选项D的`for row in range(len(ls)):`虽然语法正确,但是这里的`range(len(ls))`生成的是一个索引列表,每次循环得到的是索引值而不是列表中的元素。所以正确的选项是B,即`for row in ls:`,可以直接遍历列表中的每一个元素。

23、ascii(chr(65))的值是?

A、"'a'"

B、'A'

C、"'A'"

D、'B'

解析:【喵呜刷题小喵解析】在ASCII编码中,数字65对应的字符是'A',而不是'a'、'A'或'B'。因此,正确答案是C,即"'A'"。

24、int()函数根据传入的参数创建一个新的整数,下列返回的值不是0的是?

A、int(1.0)

B、int(0.5)

C、int(0)

D、int()

解析:【喵呜刷题小喵解析】在Python中,int()函数用于将传入的参数转换为整数。对于给定的选项:A. int(1.0) - 将浮点数1.0转换为整数,结果为1,不是0。B. int(0.5) - 将浮点数0.5转换为整数,由于0.5不能表示为整数,所以结果为0。C. int(0) - 将整数0转换为整数,结果还是0。D. int() - 如果没有传入任何参数,会引发一个错误,因为int()需要一个参数。所以,唯一返回的值不是0的是选项A。

25、问题如图所示,用计算机解决该问题,比较适合使用?

A、解析算法

B、枚举算法

C、冒泡算法

D、二分查找算法

解析:【喵呜刷题小喵解析】:根据题目中的描述,问题涉及到解析算法,因此适合使用解析算法来解决该问题。枚举算法、冒泡算法和二分查找算法都不适合解决此类问题。解析算法是一种通过构建数学模型并求解来得到问题答案的方法,适用于需要精确计算的问题。因此,选择A选项“解析算法”是合适的。

二、判断题

26、小明准备编写一个程序,把新同学的联系方式保存到一个名为list的现有CSV格式文件里。实现这一功能可以使用语句f=open('list.csv','+')来打开list.csv文件。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:题目中的代码语句f=open('list.csv','+')试图打开一个名为list.csv的文件以进行读写操作。然而,Python中的文件打开模式'+'表示读写模式,但这只适用于二进制文件。对于文本文件(如CSV文件),应使用'r+'或'w+'模式,其中'r+'表示读写模式(文件必须存在),'w+'表示读写模式(如果文件不存在,将会创建新文件)。因此,如果list.csv文件已经存在,应使用'r+'模式打开文件;如果list.csv文件不存在,应使用'w+'模式创建新文件。因此,直接使用'f=open('list.csv','+')'是错误的。

27、语句float('2020') 运行后的输出结果是:2020

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`float()`函数用于将参数转换为浮点数。当尝试将字符串"2020"转换为浮点数时,Python会尝试将其解析为一个浮点数,但"2020"不是一个有效的浮点数表示,因此会抛出一个`ValueError`异常。因此,语句`float('2020')`会报错,而不是输出2020。所以,答案是B,即错误。

28、在Python中,代码print('{:8}'.format(12))中数字8的作用是按8位字符宽度输出数字12。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`print('{:8}'.format(12))`这行代码的目的是按照指定的格式输出数字。在这个例子中,数字8指的是输出的最小宽度,如果数字本身不足8位,那么默认会在左侧填充空格。因此,这段代码将输出“ 12”,其中前4个空格是为了确保数字至少有8个字符宽度。所以,题目的描述是正确的。

29、'$'.join(['张 三','李 四']).replace(' ','').split('$')可以去掉列表项中姓名中间的空格。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,字符串的`replace()`方法用于替换字符串中的特定部分,而`split()`方法则用于将字符串按照特定的分隔符分割成列表。题目中的`'$'.join(['张 三','李 四']).replace(' ','').split('$')`这个表达式并不能正确去掉列表项中姓名中间的空格。正确的操作应该是首先去掉每个姓名中间的空格,然后再使用`'$'`将处理后的姓名拼接成一个字符串。因此,应该使用`[s.replace(' ','') for s in ['张 三','李 四']]`这样的列表推导式,然后再使用`'$'.join()`方法拼接成一个字符串。所以,题目的说法是错误的,答案应选B。

30、二进制数11110011转化为十六进制数为F3。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:将二进制数11110011转化为十六进制数,11110011=1×2^7+1×2^6+1×2^5+1×2^4+0×2^3+0×2^2+0×2^1+1×2^0=123。再将123转化为十六进制数,123=64+32+27=0x7B,而不是F3。因此,题目中的说法是错误的。

31、在Python中,执行print(ord('a')+12)语句,能够得到一个数字结果。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`ord('a')`会返回字符'a'的ASCII码值,即97。然后,我们将这个值加上12,得到109。因此,执行`print(ord('a')+12)`语句,能够得到数字结果109,所以答案是正确的。

32、round(5566.6)=5567,所以说round()函数其实是取整函数。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:round()函数是四舍五入函数,不是取整函数。在本题中,数字5566.6四舍五入到最近的整数是5567,而不是直接取整。因此,说round()函数是取整函数是不准确的。所以,题目的说法是错误的。

33、数据处理,通常是指利用四则运算中的加、减、乘、除来进行运算,从而得到正确结果。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:数据处理并不仅仅局限于利用四则运算中的加、减、乘、除来进行运算。实际上,数据处理是一个广泛的概念,它涉及到数据的收集、清洗、转换、整合、分析和可视化等多个方面。这些操作可能涉及到各种算法、统计方法、数据结构和编程语言等,而不仅仅是简单的算术运算。因此,题目中的说法是不准确的,答案应为B,即错误。

34、hex函数可以将十进制数转换成十六进制数。在Python交互式编程环境下,执行语句hex(2020)后,显示的运行结果是'7e4'。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`hex()`函数可以将十进制数转换为十六进制字符串表示。当执行`hex(2020)`时,结果应为`0x7e4`,而不是`7e4`。`0x`前缀表示这是一个十六进制数。因此,题目中的描述是错误的。

35、异常处理结构中,try程序段中的每一个运行错误语句,都要转移到except程序段中,执行异常处理语句。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在异常处理结构中,try程序段中的错误语句并不一定会转移到except程序段中执行异常处理语句。只有当try程序段中的代码抛出一个未被捕获的异常时,程序才会转移到except程序段中执行异常处理语句。如果try程序段中的错误语句被正确处理(例如,通过返回语句或break语句),那么程序不会转移到except程序段中。因此,题目中的说法是不准确的,答案为B。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2020年12月Python三级理论答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share