一、单选题
1、小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行升序排序,于是他编写了“选择排序”程序,
在调试程序的过程,他故意将循环的次数改成了固定值,如下图所示。请问,现在这个程序执行之后print(arr)打印出的结果应该是?( )
A [5, 7, 21, 33, 39, 43, 67, 73]
B [5, 7, 21, 33, 39, 73, 43,67]
C [5, 7, 21, 67, 39, 73, 33, 43]
D [5, 7, 21, 33, 39, 73, 67, 43]
解析:【喵呜刷题小喵解析】:根据题目中的图片,程序使用了选择排序算法,但循环次数被固定为3次。这意味着程序只会对列表中的前3个元素进行排序。因此,经过程序执行后,arr列表的前三个元素5、7、21会被排序,而后面的元素位置不会改变。所以,print(arr)打印出的结果应该是[5, 7, 21, 33, 39, 73, 67, 43]。选项A符合这个结果。
2、异常处理的作用是不想让程序终止,如果出错了需要特殊处理。下列实现异常处理的语句是?( )
A、
if /else
B、 try/except
C、
Warning
D、
Error
解析:【喵呜刷题小喵解析】:异常处理是程序中处理错误或异常情况的机制。在Python中,`try/except`语句用于捕获和处理异常。当`try`块中的代码出现错误时,程序不会终止,而是跳转到相应的`except`块处理错误。而`if/else`语句是条件语句,用于根据条件执行不同的代码块,与异常处理无关。`Warning`和`Error`也不是处理异常的语句,它们可能是与错误相关的关键字,但在这里不是用来处理异常的。因此,实现异常处理的语句是`try/except`。
3、小明编写了一个插入排序的算法,为列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,他在调试时,如下图所示有意修改了循环的次数,请问,现在代码运行后print(arr)打印出的结果是?( )
A [5, 33, 21, 67, 39, 73, 7, 43]
B [5, 21, 33, 67, 39, 43, 7, 73]
C [5, 21, 33, 39, 67, 7, 73, 43]
D [5, 21, 33, 67, 39, 73, 7, 43]
解析:【喵呜刷题小喵解析】:小明编写的插入排序算法应该是按照从小到大的顺序对列表arr进行排序。插入排序的基本思想是,从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;将新元素插入到该位置后;重复步骤2~5。根据题目中给出的选项,可以看出选项B是按照从小到大的顺序排序的,因此正确答案是B。选项A、C、D都不是按照从小到大的顺序排序的,因此都是错误的。
4、关于文件的读写,下列解释表述错误的是?( )
A 读取模式('r')
B 写入模式('w')
C 读写模式('w')
D 附加模式('a')
解析:【喵呜刷题小喵解析】:在Python中,文件的打开模式有多种,其中:
* 'r' 代表读取模式,用于读取文件内容。
* 'w' 代表写入模式,用于写入文件内容。如果文件已存在,它会被覆盖;如果文件不存在,会创建新文件。
* 'a' 代表附加模式,用于在文件末尾追加内容。如果文件不存在,会创建新文件。
从给出的选项中,'w' 模式只代表写入模式,并不表示读写模式。因此,选项C "读写模式('w')" 的表述是错误的。
5、ord()函数可以将一个字符转化成ascii码值,而chr函数则是相反的过程。
已知'a'的ascii码值为97,'A'的ascii码值为65,
则Python完成小写转大写的核心代码为?( )
a=input("请输入一个小写字母:\n")
b=________________
print("转化结果为:"+b)
A chr(ord(a)-31)
B ord(chr(a)-32)
C chr(ord(a)+32)
D chr(ord(a)-32)
解析:【喵呜刷题小喵解析】:
首先,根据题目给出的信息,'a'的ascii码值为97,'A'的ascii码值为65,可以看出小写字母的ascii码值比对应的大写字母大32。
所以,如果我们想将小写字母转换为大写字母,我们需要将其ascii码值减去32。
题目中给出的代码片段,已经通过input函数获取了一个小写字母,我们需要找到对应的ascii码值,然后减去32,最后通过chr函数将ascii码值转换为对应的大写字母。
所以,应该选择的选项是A,即`chr(ord(a)-32)`。
6、filename = "中国诗人.txt"
with open(filename,"w") as file:
file.write("唐 李白\n")
file.write("唐 白居易\n")
以上程序执行程序后,"中国诗人.txt"文件内容为?( )
A 唐 李白 唐 白居易
B 唐 李白
唐 白居易
C、
唐 李白\n 唐 白居易
D、 唐 李白\n 唐 白居易\n
解析:【喵呜刷题小喵解析】:在Python中,`with open(filename, "w") as file:` 这行代码打开了一个名为 "中国诗人.txt" 的文件,并设置模式为写入模式("w")。`file.write("唐 李白\n")` 和 `file.write("唐 白居易\n")` 这两行代码分别向文件中写入两行文本,每行文本后都有一个换行符("\n")。由于 Python 中的换行符会在写入文件时被保留,所以写入文件的两行文本会各自占一行。因此,"中国诗人.txt" 文件的内容应该是两行,每行一个诗人的名字和朝代,中间由换行符分隔。所以正确选项为D。
7、设s="happy time",那么print(s[-2:])的结果是?( )
A me
B happy
C time
D ha
解析:【喵呜刷题小喵解析】:在Python中,字符串的索引是从0开始的。`s[-2:]`表示从字符串`s`的倒数第二个字符开始,取到字符串的结尾。字符串`s="happy time"`,倒数第二个字符是`h`,倒数第一个字符是`a`,所以`s[-2:]`的结果是`ha`。因此,正确答案是D。
8、以下关于二进制整数的定义,正确的是?( )
A 0B1014
B 0b1010
C 0b1019
D 0bC3F
解析:【喵呜刷题小喵解析】:在二进制整数中,数字只能由0和1组成。选项A中的"0B1014"和选项C中的"0b1019"都包含了非二进制数字,因此不正确。选项D中的"0bC3F"显然也包含了非二进制数字,因此也不正确。只有选项B中的"0b1010"是一个合法的二进制整数,因此是正确答案。
9、给已有文件“实验中学学生花名册.txt”增加两名学生,而且不能覆盖原有的内容。
下面代码正确的是?( )
A filename="实验中学学生花名册.txt"
with open(filename,"w") as f:
f.write("黎明\n")
f.write("方芳\n")
B filename="实验中学学生花名册.txt"
with open(filename,"r") as f:
f.write("黎明\n")
f.write("方芳\n")
C filename="实验中学学生花名册.txt"
with open(filename,"r+") as f:
f.write("黎明\n")
f.write("方芳\n")
D filename="实验中学学生花名册.txt"
with open(filename,"a") as f:
f.write("黎明\n")
f.write("方芳\n")
解析:【喵呜刷题小喵解析】:
在给已有文件“实验中学学生花名册.txt”增加两名学生,而且不能覆盖原有的内容的情况下,我们需要以追加模式(append mode)打开文件。这是因为,如果以写入模式(write mode)打开文件,会覆盖原有的内容。
选项A是以写入模式打开文件,所以它会覆盖原有的内容,不正确。
选项B也是以写入模式打开文件,并且是在读取文件后进行的写入,但由于是在写入模式下,它仍然会覆盖原有的内容,不正确。
选项C是以读写模式(read and write mode)打开文件,虽然可以在文件末尾追加内容,但在这个特定的情境下,我们只需要追加内容,所以读写模式不是必要的,也不正确。
选项D是以追加模式(append mode)打开文件,这样就不会覆盖原有的内容,而是在文件末尾追加新的内容,这是正确的。
10、以下表达式是十六进制整数的选项是?( )
A 16
B 0b16
C 0x16
D '0x16'
解析:【喵呜刷题小喵解析】:在选项中,只有选项C是表示十六进制整数的正确形式。在C语言中,十六进制整数通常以0x或0X开头,后面跟着十六进制数字。因此,选项C "0x16" 是正确的十六进制整数表示。其他选项均不符合十六进制整数的表示规则。
11、下列十六进制数中,转换为二进制数后含有偶数个“1”的是?( )
A、
0xF8
B、
0xE0
C、
0xA9
D、 0x15
解析:【喵呜刷题小喵解析】十六进制转二进制时,每位十六进制数转4位二进制数。
0xF8转二进制为:11111000,有3个1;
0xE0转二进制为:11100000,有2个1;
0xA9转二进制为:10101001,有2个1;
0x15转二进制为:00010101,有2个1。
所以,只有0x15转二进制后含有偶数个1。
12、已知输入变量x = 'hello world', 调用函数x.replace('l', 'h')的结果为?( )
A 'hello world'
B 'lello world'
C 'hello worhd'
D 'hehho worhd'
解析:【喵呜刷题小喵解析】在Python中,字符串的`replace()`方法用于替换字符串中的子串。在这个例子中,`x.replace('l', 'h')`会将字符串`x`中所有的'l'替换为'h'。因此,调用`x.replace('l', 'h')`的结果应该是`'hehho worhd'`,但是选项D中的`'hehho worhd'`中第二个'h'的位置错误,正确的结果应该是`'hehho world'`。然而,给出的选项中并没有`'hehho world'`,最接近正确答案的是选项B,即`'lello world'`。虽然这不是完全正确的结果,但在给出的选项中,它是与原始字符串`'hello world'`差异最小的,且只替换了一个'l'。因此,根据题目和选项,最合理的答案是B。
13、下面表达式的运行结果与print(divmod(37,9))运行结果相同的是?( )
A print(37%9,37//9)
B print((37%9,37//9))
C print(37//9,37%9)
D print((37//9,37%9))
解析:【喵呜刷题小喵解析】在Python中,`divmod(a, b)`函数返回两个值,第一个值是`a`除以`b`的商,第二个值是`a`除以`b`的余数。因此,`print(divmod(37,9))`将输出`(4, 1)`。选项D中的`print((37//9,37%9))`会输出`(4, 1)`,与`print(divmod(37,9))`的输出相同。因此,正确答案是D。
14、Python内置函数( )用来返回序列中的最小元素?( )
A mini()
B read()
C max()
D min()
解析:【喵呜刷题小喵解析】:在Python中,min()函数用于返回序列中的最小元素。因此,正确答案是D选项,即min()。而A选项的mini()不是Python的内置函数,B选项的read()函数用于读取文件内容,C选项的max()函数则返回序列中的最大元素,均不符合题意。
15、a=3.1415926
round(a,2)
运行结果是?( )
A 3
B 3.14
C 3.141
D 3.1415926
解析:【喵呜刷题小喵解析】:根据题目,我们需要对变量a进行四舍五入到两位小数。变量a的值为3.1415926,四舍五入到两位小数后,结果为3.14。因此,正确答案是B选项,即3.14。
16、八进制10的十进制值是?( )
A 8
B 10
C 20
D 24
解析:【喵呜刷题小喵解析】:八进制(octal)是一种基数为8的计数系统,由0~7八个数字组成。要将八进制数转换为十进制数,需要将每个八进制数字乘以相应的8的幂次,然后求和。八进制10可以表示为1×8^1 + 0×8^0 = 8。因此,八进制10的十进制值是8,对应选项D。
17、print(divmod(34,8))运行结果是?( )
A 4 2
B 4
C 2
D 2 4
解析:【喵呜刷题小喵解析】:`divmod(34,8)`函数返回两个值,第一个值是商,第二个值是余数。对于34除以8,商是4,余数是2。所以,`print(divmod(34,8))`的运行结果是`(4, 2)`。因此,选项A是正确答案。
18、定义一个列表 num=list(range(3,6))
print(num)
输出的结果是?( )
A [0,1,2,3]
B [0,1,2,3,4,5,6]
C [3,4,5]
D [3,4,5,6]
解析:【喵呜刷题小喵解析】在Python中,`range(3,6)`函数会生成一个从3开始到6结束(不包括6)的整数序列。这个序列包括3, 4, 5这三个数。然后,`list()`函数将这个序列转化为列表。所以,`num`列表的内容是[3, 4, 5]。因此,`print(num)`的输出结果是[3, 4, 5]。选项C是正确的。
19、去掉列表中的部分数据,例如去掉列表[1,2,3,4,5,6,7,8,9]中3的倍数,可以使用哪一函数来实现?( )
A map
B filter
C zip
D enumerate
解析:【喵呜刷题小喵解析】去掉列表中的部分数据,我们需要用到筛选功能,而不是映射、拉链或枚举。在Python中,`filter()`函数可以用于筛选列表中的元素,因此去掉列表中的3的倍数可以使用`filter()`函数来实现。具体实现方式如下:
```python
def is_not_multiple_of_three(n):
return n % 3 != 0
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = list(filter(is_not_multiple_of_three, lst))
print(result) # 输出:[1, 2, 4, 5, 7, 8]
```
其中,`is_not_multiple_of_three()`函数用于判断一个数是否是3的倍数,`filter()`函数则用于筛选列表中的元素。
因此,正确答案是B选项,即`filter()`函数。
20、某同学上完体育课回教室发现丢失了重要的物品,于是他找到班主任求助。班主任打开视频监控,然后把视频进度拖到这节课中间时间点,发现水杯已经丢了,于是判定是前半节课丢的。接着又把视频进度拖到前面一半的一半……重复以上过程,很快就锁定了物品丢失的真相。以上描述,体现出了哪一种算法思想?( )
A 二分法
B 选择排序法
C 递归法
D 迭代法
解析:【喵呜刷题小喵解析】:题目描述了一个同学通过班主任使用视频监控来查找物品丢失的时间点,班主任通过不断地将视频进度减半的方式来缩小查找范围,最终锁定了物品丢失的真相。这种算法思想体现了二分法(Binary Search)的思想。二分法是一种在有序数组中查找特定元素的搜索算法,其基本原理是每次比较数组中间的元素与目标值,如果中间元素正好是要查找的元素,则查找过程结束;如果目标值大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。重复以上过程,直到找到目标值或者查找范围为空。在这个问题中,班主任通过不断地将视频进度减半,缩小查找范围,与二分法的基本思想相符。因此,答案为A。
21、Python标准库math中用来计算平方根的函数是?( )
A sqrt
B max
C min
D print
解析:【喵呜刷题小喵解析】:在Python标准库math中,用来计算平方根的函数是sqrt。sqrt函数可以计算一个数的平方根,参数是一个非负数。因此,选项A是正确答案。选项B、C、D都不是计算平方根的函数。
22、Python文件常用的写入方式有w+和a+,它们的相同点是?( )
A 覆盖写
B 追加写
C 若文件不存在就创建
D 每次写的时候会自动覆盖上一次的内容
解析:【喵呜刷题小喵解析】:Python中文件操作的模式'w+'和'a+'都表示在打开文件时如果文件不存在就创建。所以选项C是正确的。'w+'模式表示写入模式,如果文件存在,会覆盖文件内容;如果文件不存在,会创建文件。'a+'模式表示追加写入模式,如果文件存在,会在文件末尾追加内容;如果文件不存在,会创建文件。这两种模式都允许在文件不存在时创建文件,所以选项C是正确的。选项A、B、D描述的是'w+'和'a+'模式的不同点,而不是它们的相同点。
23、关于Python异常处理的解释,描述正确的是?( )
A 一般情况下,在Python正常处理程序时也会发生一个异常
B 异常处理增加了程序代码长度,降低了可读性
C 在程序中加入异常处理会使程序出现错误
D 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行
解析:【喵呜刷题小喵解析】在Python中,异常处理是当程序出现错误时,能够捕获并处理这些错误,防止程序直接崩溃。异常处理不会在正常处理程序时发生,因此选项A错误。异常处理虽然可能会增加一些代码,但通常是为了提高程序的健壮性和可读性,因此选项B错误。在程序中加入异常处理是为了处理可能出现的错误,而不是让程序出现错误,所以选项C错误。当Python脚本发生异常时,如果我们没有捕获处理它,程序确实会终止执行,因此选项D正确。
24、以下关于len()函数的说法中错误的是?( )
A、
len()函数可以用于返回字符串中的字符数
B、
len()函数可以用于返回列表中的元素个数
C、
len("I love China" )的结果为10
D、 len("I love China" )的结果为12
解析:【喵呜刷题小喵解析】:len()函数用于返回对象(如字符串、列表等)的长度。对于字符串"I love China",其包含9个字符,因此len("I love China")的结果应为9,而不是12。所以,选项D的说法是错误的。选项A和B正确描述了len()函数的一些常见用途。选项C给出了len("I love China")的正确结果,因此也是正确的。
25、使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表L=['1','3','5','7','9']转换为列表[1,3,5,7,9]的函数写法为?( )
A map(int,L)
B list(map(int,L))
C map(L,int)
D list(map(L,int))
解析:【喵呜刷题小喵解析】:在Python中,`map()`函数用于将一个函数应用于一个或多个可迭代对象的元素,并返回一个新的迭代器。`map(int, L)`将`int`函数应用于列表`L`的每个元素,但结果是一个迭代器,而不是列表。为了得到列表,我们需要使用`list()`函数将迭代器转换为列表。因此,正确的写法是`list(map(int, L))`。选项B是正确的。选项A缺少了`list()`函数,选项C和D的参数顺序错误。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!