image

编辑人: 桃花下浅酌

calendar2025-05-10

message9

visits134

2023月03月Python三级理论答案及解析

一、单选题

1、十进制数111转换成二进制数是?( )

A、111

B、1111011

C、101111

D、1101111

解析:【喵呜刷题小喵解析】:进制转换是计算机领域的基础知识,进制转换就是将一个数从一种进制数转换成另一种进制数。十进制数转换为二进制数,需要不断地将十进制数除以2,并记录余数,直到商为0,然后将余数从下到上排列,即可得到二进制数。将十进制数111转换为二进制数,计算过程如下:111÷2=55余1,55÷2=27余1,27÷2=13余1,13÷2=6余1,6÷2=3余0,3÷2=1余1,1÷2=0余1,因此,十进制数111转换为二进制数为1101111。故答案为D。

2、某班有36人,王老师想给每位同学分配一个二进制的学号,那么该学号至少需要多少位?( )

A、36

B、5

C、6

D、7

解析:【喵呜刷题小喵解析】二进制数中,每一位(bit)可以表示0或1。因此,要表示一个非负整数,所需的位数至少是这个数的十进制表示中数字的数量再加1。对于整数36,其十进制表示为4位数(即1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36),因此,表示36至少需要5位二进制数。所以,王老师至少需要给每位同学分配一个5位的二进制学号。因此,答案是C。

3、数据的存储形式多种多样,如s1=[[“李亮”,“98”],[“王宁宁”,“95”],[“莫晓珍“,“88”]],s2=[“李亮”,“98”,“王宁宁”,“95”,“莫晓珍“,“88”],有关s1与s2下列说法正确的是?( )

A、都是用列表实现的

B、s1是一维列表

C、s2是二维列表

D、要取出“王宁宁”同学的成绩,方法是一样的,用s1[4]或s2[4]

解析:【喵呜刷题小喵解析】根据题目信息,s1和s2的存储形式是不同的。s1是一个二维列表,每个子列表包含两个元素,分别表示学生的姓名和成绩。而s2是一个一维列表,包含了所有学生的姓名和成绩,但没有分组。因此,A选项“都是用列表实现的”是正确的,因为s1和s2都是用列表实现的,只是存储形式不同。B选项“s1是一维列表”是错误的,因为s1是二维列表。C选项“s2是二维列表”也是错误的,因为s2是一维列表。D选项“要取出“王宁宁”同学的成绩,方法是一样的,用s1[4]或s2[4]”也是错误的,因为s1和s2的存储形式不同,取出“王宁宁”同学的成绩的方法也不同。在s1中,需要通过嵌套列表s1[1][1]来取出“王宁宁”的成绩,而在s2中,需要通过s2[3]来取出“王宁宁”的成绩。因此,正确答案是A。

4、a=["跳绳","跳高","跳远","铅球"] fs=open("sports.csv","w") fs.write(" ".join(a)+'\n') fs.close() 关于上述代码,下列说法正确的是?( )

A、若”sports.csv”文件不存在,则程序出错

B、程序的最后结果是:跳绳 跳高 跳远 铅球

C、程序中的fs.close()代码可有可无

D、“w”参数表示不能修改原csv文件

解析:【喵呜刷题小喵解析】:

A选项:若“sports.csv”文件不存在,则程序出错。实际上,如果“sports.csv”文件不存在,程序会创建这个文件,并不会出错。

B选项:程序的最后结果是:跳绳 跳高 跳远 铅球。这是正确的,因为代码将列表a中的元素用空格连接,然后写入到“sports.csv”文件中。

C选项:程序中的fs.close()代码可有可无。实际上,虽然关闭文件不是强制的,但这是一个好的编程实践,因为它可以释放资源。

D选项:“w”参数表示不能修改原csv文件。这是错误的,“w”参数表示写入模式,如果文件存在,它会被覆盖。如果文件不存在,它会被创建。这与不能修改原csv文件没有直接关系。

因此,B选项是正确的。

5、现有水果价格数据jg=[[‘草莓’,15],[‘梨子’,9],[‘苹果’,10],[‘桔子’,4]],需要将其打印成二维表格数据形式,程序代码如下: jg=[[‘草莓’,15],[‘梨子’,9],[‘苹果’,10],[‘桔子’,4]] for row in range(len(jg)): for col in range(len(jg[row])): print(____________,”\t”) 上述划线处代码是?( )

A、jg[row]

B、jg[col]

C、jg[col][row]

D、jg[row][col]

解析:【喵呜刷题小喵解析】:

在这个问题中,`jg` 是一个二维列表,它包含了水果的名称和价格。我们想要通过打印语句将这个二维列表以表格的形式展示出来。

在给出的循环中,外层循环 `for row in range(len(jg)):` 是用来遍历二维列表的每一行,内层循环 `for col in range(len(jg[row])):` 是用来遍历每一行的元素。

在内层循环中,我们需要打印出每一行的元素。因为 `jg[row]` 返回一个列表,包含两个元素(水果名称和价格),所以我们需要访问这个列表的第二个元素,即价格。

因此,正确的代码应该是 `jg[row][1]`,而不是 `jg[row]`(这将返回整个列表而不是价格),`jg[col]`(这将返回第一列而不是价格),或 `jg[col][row]`(这将导致索引错误,因为 `col` 是行索引,而 `row` 是当前行的索引)。

所以,正确的选项是 D,`jg[row][col]`。但在这个特定的例子中,由于我们只需要打印价格,所以应该使用 `jg[row][1]`。

6、运行下列程序段: try: a=int(input("请输入被除数:")) b=int(input("请输入除数:")) x=a/b print("商是:",x) except: print("输入有错!请检查。") else: print("正确!") finally: print("程序结束。") 若输入a为8,b为4,则输出结果是?( )

A、商是:2正确!

B、商是:2正确!程序结束。

C、商是:2.0程序结束。

D、商是:2.0正确!程序结束。

解析:【喵呜刷题小喵解析】首先,我们根据题目中的代码进行分析。在`try`块中,用户输入被除数`a`和除数`b`,然后进行除法运算得到商`x`。这里`x`的类型是浮点数,因为Python中的除法运算返回的是浮点数结果,即使两个操作数都是整数。

接着,我们看`except`块。这块代码用来捕获可能发生的异常。由于我们的除法运算中没有除以0的情况,所以`except`块在这里不会被执行。

再来看`else`块。这块代码在`try`块成功执行后会被执行。因为`try`块中没有发生异常,所以`else`块会输出"正确!"。

最后,`finally`块中的代码无论`try`块是否发生异常都会被执行。所以,无论输入是否正确,都会输出"程序结束。"。

根据题目中的输入,被除数`a`为8,除数`b`为4,商`x`应该是2.0。所以,正确的输出应该是"商是:2.0正确!程序结束。",对应选项D。

7、已知A的ASCII码值为65, s=”China” k=abs(-4.8) 则表达式ord(min(s))+k的值是?( )

A、71.8

B、63

C、61

D、62

解析:【喵呜刷题小喵解析】
在这个问题中,我们需要理解Python的一些基础概念:字符串、ASCII码值、内置函数和数学运算。

首先,`ord()`函数返回的是字符的ASCII码值。在这个问题中,`min(s)`返回的是字符串`s`中的最小字符,即`'C'`。`'C'`的ASCII码值是67。

其次,`abs(-4.8)`返回的是-4.8的绝对值,即4.8。

最后,`67 + 4.8`的结果是71.8,但题目要求的是整数,所以结果会自动向下取整为71。

所以,`ord(min(s))+k`的值是71,对应选项A。

8、8=71.8。 8.divmod(8,5)的结果是?( )

A、1

B、3

C、(1,3)

D、[1,3]

解析:【喵呜刷题小喵解析】在Python中,`divmod()`函数返回两个值:商和余数。对于给定的表达式`8.divmod(8,5)`,其商为1,余数为3。因此,`8.divmod(8,5)`的结果是`(1,3)`。所以正确答案是C。

9、若有代码: name=[“李明”,“王宁”,“朱倩”] for a,i in enumerate(name): print(a,i) 则显示的结果是?( )

A、0 李明1 王宁2 朱倩

B、李明王宁朱倩

C、李明,王宁,朱倩

D、1 李明2 王宁3 朱倩

解析:【喵呜刷题小喵解析】:在给出的代码中,`enumerate(name)`会返回`name`列表中每个元素的索引和值。`for a, i in enumerate(name):`这行代码表示,`a`是索引,`i`是值。因此,循环会依次输出索引和值,即`0 李明`,`1 王宁`,`2 朱倩`。所以,正确的选项是A。

10、有关于print()语句的运用,下列输出结果有误的是?( )

A、print(“Happy!”)

B、print(李明)

C、print('Happy!’)

D、print(2023)

解析:【喵呜刷题小喵解析】:在Python中,`print()`函数用于输出内容到控制台。对于选项B,`print(李明)`,这里尝试输出一个变量名`李明`,而不是字符串或其他类型的数据。因为变量`李明`并没有被定义,所以输出时会出现错误。选项A、C和D中的`print()`语句都是正确的,可以成功输出相应的内容。因此,输出结果有误的是选项B。

11、若s=”y\nea\tr”,则len(s)的值为?( )

A、8

B、4

C、6

D、5

解析:【喵呜刷题小喵解析】:题目要求计算字符串s的长度,其中s为"y\nea\tr"。

首先,我们需要了解字符串长度的计算方法。在Python中,字符串的长度是其包含的字符数,包括字母、数字、符号等。字符串中的特殊字符,如转义字符,也会被计入长度。

现在我们来分析字符串s中的每个字符:

* "y":一个字母
* "\n":一个换行符
* "e":一个字母
* "a":一个字母
* "\t":一个制表符
* "r":一个字母

所以,字符串s的长度为6。

因此,len(s)的值为6,选项C正确。

12、b=[1,2,3,4,5],则sum(b)的值是?( )

A、10

B、14

C、15

D、12

解析:【喵呜刷题小喵解析】题目中给出了一个列表b,包含5个元素:1,2,3,4,5。根据题目要求,我们需要计算这个列表的和。

首先,我们可以使用Python的内置函数`sum()`来计算列表的和。在Python中,`sum()`函数可以接收一个可迭代对象(如列表)作为参数,并返回该对象所有元素的和。

所以,我们可以写出以下代码来计算列表b的和:


```python
b = [1, 2, 3, 4, 5]
sum_b = sum(b)
print(sum_b)
```
运行这段代码,我们得到的结果是15,所以答案是C选项。

13、某算法的流程图如图所示,则该流程图的结构属于?( )

A、顺序结构

B、分支结构

C、树形结构

D、循环结构

解析:【喵呜刷题小喵解析】:根据流程图,我们可以看到有一个框,框内有一个箭头指向自己,表示该步骤会反复执行,直到满足某个条件才会跳出。这种流程图结构属于循环结构,因此正确答案是D。顺序结构是指一系列步骤按照顺序执行,分支结构是指根据条件选择不同的执行路径,树形结构是指具有树状层次结构的数据结构,与流程图的结构不符。

14、有如下代码: a=[25,37,49,64,73,75,85,91] t=i=0 j=len(a)-1 key=int(input()) while i<=j: m=(i+j)//2 if a[m]==key: break elif a[m]>key: j=m-1 else: i=m+1 ​ t+=1 print(t) 若输入的key值是73,则程序输出的结果是?( )

A、5

B、1

C、2

D、3

解析:【喵呜刷题小喵解析】题目中的代码实现的是二分查找算法,用于在有序列表a中查找指定的key值。代码首先初始化索引i和j,然后进入一个while循环,在循环中,计算中间索引m,然后比较中间元素a[m]和key值。如果a[m]等于key,则退出循环;如果a[m]大于key,则将j更新为m-1;如果a[m]小于key,则将i更新为m+1。同时,每次循环都会使t加1。

对于输入的key值为73,代码的执行过程如下:

1. 初始化i=0,j=7,t=0
2. 第一次循环,计算m=(0+7)//2=3,比较a[3]=49<73,更新i=4
3. 第二次循环,计算m=(4+7)//2=5,比较a[5]=73=73,退出循环

因此,程序输出的结果是t=2。所以正确答案是C。

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

A、"0x7e3"

B、"0x7e6"

C、"0x7e7"

D、"0x7e8"

解析:【喵呜刷题小喵解析】在Python中,`hex()`函数可以将一个十进制数转换为其十六进制表示。当我们执行`hex(2023)`时,Python会将2023转换为十六进制。十六进制中,每一位代表4位二进制数,因此2023在十六进制中表示为7e7。因此,选项C“0x7e7”是正确的结果。

16、int() 函数用于将一个字符串或数字转换为整型。在Python交互式编程环境下执行以下语句,会出现错误的一项是?( )

A、int()

B、int(1.0)

C、int(0x20,16)

D、int('2023',8)

解析:【喵呜刷题小喵解析】在Python中,`int()`函数用于将字符串或数字转换为整型。对于选项A,`int()`函数没有参数,会返回0,不会出错。对于选项B,`int(1.0)`将浮点数1.0转换为整型1,也不会出错。对于选项D,`int('2023',8)`表示将字符串'2023'从八进制转换为十进制,结果为819(2023的八进制表示为343,转换为十进制为819),也不会出错。而选项C,`int(0x20,16)`试图将0x20从十六进制转换为十进制,但`int()`函数只接受一个参数,因此会出现TypeError错误。因此,选项C会出现错误。

17、一维数据可以存储在CSV格式文件中,下列描述正确的是?( )

A、必须采用逗号分隔数据元素

B、必须采用空格来分隔数据元素

C、必须采用分号分隔数据元素

D、允许采用特殊字符来分隔数据元素

解析:【喵呜刷题小喵解析】在一维数据的CSV格式文件中,数据元素之间的分隔符是可以自定义的,并不一定必须使用逗号、空格或分号。因此,选项D“允许采用特殊字符来分隔数据元素”是正确的描述。其他选项A、B、C都是错误的。

18、如果需要使用open函数以可读可写的方式打开一个存储二维数据的CSV文件,则open函数的文件打开模式不能设置成?( )

A、rw

B、r+

C、w+

D、a+

解析:【喵呜刷题小喵解析】:在Python中,`open`函数用于打开文件。对于CSV文件,如果要以可读可写的方式打开,应使用“r+”模式。这意味着文件既可以读取也可以写入。其他选项中,“w+”表示写入模式,会覆盖文件中的现有数据;“a+”表示追加模式,只能在文件末尾写入数据。因此,选项A "rw"不是正确的模式,因为它不是一个有效的模式。所以,正确答案是A。

19、在try....except...else...finally异常处理机制中,如果发生异常则完全不会被执行的代码块是?( )

A、try代码块

B、except代码块

C、else代码块

D、finally代码块

解析:【喵呜刷题小喵解析】:在Python的异常处理机制中,try、except、else和finally的代码块执行顺序如下:

1. 首先执行try代码块中的代码。
2. 如果try代码块中的代码引发异常,那么程序会跳过try代码块中的剩余代码,然后跳转到与异常类型匹配的except代码块执行。
3. 如果try代码块中的代码没有引发异常,那么程序会执行完try代码块中的所有代码,然后检查是否有else代码块。如果有else代码块,则执行else代码块中的代码。
4. 不论try代码块中的代码是否引发异常,finally代码块中的代码都会执行。

因此,在try...except...else...finally异常处理机制中,如果发生异常则完全不会被执行的代码块是else代码块。所以正确答案是C。

20、下列数据对象中,不能使用len()函数获取数据对象长度的是?( )

A、2023

B、[2, 0, 2, 3]

C、["Go", "China!"]

D、("Go", "China!")

解析:【喵呜刷题小喵解析】在Python中,`len()`函数用于获取对象(如列表、元组、字符串等)的长度。对于选项A,2023是一个整数,不是可以获取长度的对象,因此不能使用`len()`函数。选项B是一个列表,可以使用`len()`函数获取其长度。选项C是一个字符串列表,同样可以使用`len()`函数。选项D是一个元组,也可以使用`len()`函数。因此,正确答案是A。

21、在Python交互式编程环境下,输入print(list(range(0,5,2)))语句,执行的结果是?( )

A、存在语法错误,不能执行

B、[0,1]

C、[0, 1,2, 3,4,5]

D、[0, 2, 4]

解析:【喵呜刷题小喵解析】在Python中,`range(start, stop, step)`函数用于生成一个从`start`开始到`stop`结束(不包含`stop`)的整数序列,步长为`step`。在这个例子中,`range(0,5,2)`会生成一个序列:0, 2, 4。然后,`list()`函数将这个序列转换成一个列表。因此,`print(list(range(0,5,2)))`的输出结果是`[0, 2, 4]`,选项D是正确的。

22、在交互式编程环境下,执行all([0,1,2,3])语句后,返回的值是?( )

A、True

B、False

C、1

D、4

解析:【喵呜刷题小喵解析】:在Python中,`all()`函数用于检查可迭代对象中的所有元素是否都为True。如果所有元素都为True,则返回True,否则返回False。在给定的例子中,`all([0,1,2,3])`,由于列表中的第一个元素0是False(在Python中,0被视为False),所以`all()`函数返回False。因此,正确答案是B,即False。

23、在交互式编程环境下,输入float("1")语句,执行的结果是?( )

A、1

B、1.0

C、'1'

D、传入参数错误,不能执行

解析:【喵呜刷题小喵解析】在交互式编程环境下,输入float("1")语句,执行的结果是1.0。这是因为float()函数将字符串"1"转换为浮点数1.0。因此,选项B是正确的。其他选项A、C、D都是错误的。

24、在交互式编程环境下,输入max([(1,2),(2,3),(3,4),(2,6)])语句,执行的结果是?( )

A、6

B、(3, 4)

C、(2,6)

D、(3,6)

解析:【喵呜刷题小喵解析】在交互式编程环境下,输入`max([(1,2),(2,3),(3,4),(2,6)])`语句,执行的结果是`(2, 6)`。这是因为`max()`函数会返回元组中的最大值,而元组的比较是基于元组的第一个元素进行的。在给定的元组列表中,`(2, 6)`的第一个元素最大,因此`max()`函数返回`(2, 6)`。所以,正确答案是`(2, 6)`,即选项B。

25、“鸡兔同笼”是一个古老的数学问题,可以应用枚举法求解,也可以利用二元一次方程进行求解。以下是使用计算机解决“鸡兔同笼”问题的几个步骤: ①编写Python程序,用计算机进行处理。 ②设计“鸡兔同笼”求解算法。 ③验证算法的功能和性能。 ④分析问题,确定解题任务。 使用计算机解决“鸡兔同笼”问题,正确的步骤是?( )

A、②④①③

B、④①②③

C、④②③①

D、④②①③

解析:【喵呜刷题小喵解析】:使用计算机解决“鸡兔同笼”问题,首先需要对问题进行分析,确定解题任务,然后设计求解算法,接着编写Python程序用计算机进行处理,最后验证算法的功能和性能。因此,正确的步骤是④②①③,即选项D。

二、判断题

26、若name为若干元素的列表对象,file为CSV文件,则file.write(‘,’.join(name)+’\n’)语句可确保列表中每个写入CSV文件的数据,在表格软件打开时作为一个单元格存在。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`file.write(‘,’.join(name)+’\n’)`语句将列表`name`中的元素通过逗号连接成一个字符串,并在字符串末尾添加换行符`\n`。当这个字符串被写入CSV文件时,由于逗号`,`是CSV文件的字段分隔符,因此每个元素都会作为一个独立的字段(即单元格)存在。因此,这个语句可以确保列表中每个元素在打开CSV文件时作为一个单元格存在。所以,题目的陈述是正确的。

27、当程序发生异常时,我们可以用try…except…语句进行异常处理。但每个try模块只能有一个except语句块。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,try…except…语句用于异常处理。每个try块可以有一个或多个except块,每个except块用于处理特定类型的异常。因此,题目中的说法“每个try模块只能有一个except语句块”是错误的。实际上,try块可以有多个except块,每个except块可以处理不同类型的异常。

28、float()函数可将整数转换为浮点类型数据,但不能将字符串中的数字转换为浮点类型数据。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`float()`函数不仅可以将整数转换为浮点类型数据,还可以将字符串中的数字转换为浮点类型数据。例如,`float("3.14")`会返回3.14。因此,题目中的说法是不正确的。

29、在执行语句x=input()的过程中,若键盘输入23并按下回车键,则x的值就被赋值为整数23。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`input()`函数用于从标准输入读取一行文本,并将其作为字符串返回。因此,当执行`x=input()`语句时,无论用户输入什么内容(包括数字),x的值都将被赋值为一个字符串。如果用户输入23并按下回车键,x的值将被赋值为字符串"23",而不是整数23。因此,题目的说法是错误的。

30、input()用于接收键盘输入数据,默认为字符串类型,即键盘输入数字23,最终得到的是字符串“23”,若要得到整数23,需用int()进行转换。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`input()`函数确实用于接收键盘输入数据,但默认情况下,它返回的是一个字符串。所以,如果键盘输入的是数字23,`input()`函数返回的是字符串"23",而不是整数23。要得到整数23,确实需要使用`int()`函数进行转换。因此,题目的说法是正确的,但题目中的判断却是错误的。所以,正确答案是B。

31、任何二维数据都可以用二维列表来表示。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:二维数据可以表示为一个列表的列表,即二维列表。例如,一个二维列表可以表示一个表格,其中每个元素都是一个列表,代表表格中的一行,而行中的每个元素代表该行中的一个单元格。因此,任何二维数据都可以用二维列表来表示,所以答案是正确的。

32、执行语句wq=[[0]*19]*19可以创建一个19行及19列的二维表。( )

A 正确

B 错误

解析:【喵呜刷题小u解析】:在Python中,`[[0]*19]*19`这样的代码并不能创建一个19行19列的二维列表。实际上,它创建的是一个列表的列表,其中每个内部列表都引用同一个对象(一个长度为19的零列表)。所以,任何对这个列表的更改都会影响所有内部列表,因为它们是引用同一个对象的。为了创建一个19行19列的二维列表,应该使用列表推导式,如`[[0]*19 for _ in range(19)]`。因此,题目中的说法是错误的。

33、bool()函数用于将给定参数或表达式转换为布尔类型。语句bool(-1)返回的是False值。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`bool()`函数用于将给定参数或表达式转换为布尔类型。对于数字类型,`bool()`函数会将0视为`False`,将非0值视为`True`。因此,语句`bool(-1)`返回的是`True`值,而不是`False`值。所以,题目的陈述是错误的。

34、enumerate()函数用于将列表、元组或字符串等可遍历的数据对象组合为一个索引序列。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:`enumerate()`函数在Python中用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时返回数据和它们的索引。具体来说,`enumerate()`函数返回一个枚举对象,该对象产生索引值以及数据对象中相应位置的值。因此,题目的描述是正确的。

35、十六进制9E的二进制数是8位。( )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:十六进制数9E转换为二进制数后,其位数取决于转换结果。由于9E转换为二进制后得到的数字位数可能超过8位,因此题目中的说法“十六进制9E的二进制数是8位”是不准确的。因此,答案为B,即错误。题目中给出的答案“A”是错误的。

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

创作类型:
原创

本文链接:2023月03月Python三级理论答案及解析

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