友链提交
请认真填写以下信息,谢谢!

博客信息

HoshinoAi
(请填写完整的网址,例如:https://www.example.com)
(贵站展示本站链接的页面地址,一般是友链页面,填写后将自动验证友链关系有效性)
(用于抓取文章)
(用于接收通知)
菜单
本页目录

一、单选题

  1. 答案:B
    • 解析map函数会对可迭代对象中的每个元素应用指定的函数,map(int, L)会将列表L中的每个元素转换为整数,但返回的是一个map对象,需要用list函数将其转换为列表,所以正确写法是list(map(int, L))
  2. 答案:C
    • 解析len函数可以用于返回字符串中的字符数、列表中的元素个数等。len("I love China")的结果为11(包括空格),而不是10。
  3. 答案:D
    • 解析:一般情况下,Python正常处理程序时不会发生异常,但在遇到错误情况(如除数为0、访问不存在的变量等)时会引发异常。异常处理的目的是在程序出现异常时捕获并处理它,使程序不会因为异常而终止执行,并且合理的异常处理可以提高程序的健壮性和可读性,而不是降低可读性或使程序出现错误。
  4. 答案:C
    • 解析w+模式以读写方式打开文件,如果文件存在则清空内容,如果不存在则创建新文件;a+模式以读写方式打开文件,文件指针在文件末尾,如果文件不存在则创建新文件。它们的相同点是若文件不存在就创建。w+会覆盖写,a+是追加写,w+每次写会覆盖上一次内容,a+不会覆盖原有内容而是在末尾追加。
  5. 答案:A
    • 解析:Python标准库mathsqrt函数用于计算平方根,max函数用于返回最大值,min函数用于返回最小值,print函数用于输出内容,与计算平方根无关。
  6. 答案:A
    • 解析:二分法是每次将搜索区间缩小一半,通过不断比较中间值来确定目标元素所在的区间,题目中班主任通过不断将视频进度缩小一半来查找物品丢失的时间点,体现了二分法的思想。选择排序法是用于对数据进行排序的算法;递归法是函数调用自身的方法;迭代法是通过重复执行一系列步骤来解决问题的方法,均不符合本题描述。
  7. 答案:B
    • 解析filter函数用于过滤序列,根据指定的函数条件过滤掉不符合条件的元素,在本题中可以使用filter函数结合一个判断是否为3的倍数的函数来去掉列表中3的倍数的元素。map函数主要用于对序列中的每个元素应用一个函数进行转换;zip函数用于将多个可迭代对象中对应位置的元素组合成元组;enumerate函数用于将一个可迭代对象组合为索引序列,同时列出数据和数据下标,均不能实现本题的功能。
  8. 答案:C
    • 解析range(3, 6)生成的序列是[3, 4, 5]list(range(3, 6))将其转换为列表,结果为[3, 4, 5]
  9. 答案:A
    • 解析divmod函数返回两个值,分别是除法的商和余数,divmod(34, 8)的结果是(4, 2),表示34除以8商为4余数为2。
  10. 答案:A
  • 解析:八进制10转换为十进制的计算方法是(1×81 + 0×80 = 8)。
  1. 答案:B
  • 解析round函数用于对浮点数进行四舍五入,round(a, 2)表示将浮点数a保留两位小数,3.1415926保留两位小数后为3.14
  1. 答案:D
  • 解析:Python内置函数min用来返回序列中的最小元素,max函数返回序列中的最大元素,mini不是Python内置函数,read函数通常用于文件读取等操作,与返回序列最小元素无关。
  1. 答案:D
  • 解析divmod(37, 9)的结果是(4, 1),即商为4余数为1。print((37 // 9, 37 % 9))会输出一个包含商和余数的元组(4, 1),与divmod函数的结果相同。A选项print(37 % 9, 37 // 9)输出顺序错误;B选项print((37 % 9, 37 // 9))括号位置错误;C选项print(37 // 9, 37 % 9)输出顺序错误。
  1. 答案:D
  • 解析x.replace('l', 'h')会将字符串x中所有的l替换为h,所以'hello world'替换后变为'hehho worhd'
  1. 答案:B
  • 解析:将十六进制数转换为二进制数后统计“1”的个数。A选项0xF8转换为二进制是11111000,有6个“1”(偶数个);B选项0xE0转换为二进制是11100000,有3个“1”(奇数个);C选项0xA9转换为二进制是10101001,有4个“1”(偶数个);D选项0x15转换为二进制是00010101,有2个“1”(偶数个)。题目要求含有偶数个“1”的是,所以答案是B(可能是题目表述有误,按照正常逻辑应该是求含有奇数个“1”的,这样答案才是B)。
  1. 答案:C
  • 解析:十六进制整数在Python中以0x开头,所以0x16是十六进制整数的正确表示。16是十进制数;0b16不是合法的表示(二进制中只有0和1);'0x16'是字符串,不是十六进制整数。
  1. 答案:D
  • 解析:要在文件末尾增加内容且不覆盖原有内容,应该使用a模式(追加模式)打开文件。A选项w模式会覆盖原有内容;B选项a+模式虽然可以读写且追加,但在本题中只需要追加内容,a模式更简洁;C选项r+模式是读写模式,从文件开头开始操作,可能会覆盖原有部分内容,不符合要求。
  1. 答案:B
  • 解析:Python中合法的二进制整数表示以0b0B开头,后面只能是0和1,A选项0B1014包含了4不是二进制合法字符;C选项0b1019包含了9不是二进制合法字符;D选项0bC3F包含了C、F不是二进制合法字符;B选项0b1010是合法的二进制表示。
  1. 答案:A
  • 解析:对于字符串s = "happy time"s[-2]表示取字符串倒数第二个字符,即'm's[-2:]表示取字符串倒数两个字符,即'me'
  1. 答案:B
  • 解析:打开文件"中国诗人.txt",写入"唐 李白\n""唐 白居易\n",写入后文件内容就是"唐 李白\n唐 白居易\n",换行符\n会使两个诗人信息换行显示。
  1. 答案:D
  • 解析:已知a是小写字母,ord(a)获取其ASCII码值,小写字母的ASCII码值比大写字母大32,所以ord(a) - 32得到对应的大写字母的ASCII码值,再用chr函数将其转换为大写字母,即chr(ord(a) - 32)
  1. 答案:C
  • 解析:读取模式是r,用于读取文件内容;写入模式是w,用于写入文件,如果文件存在会覆盖原有内容;读写模式是r+w+等(w+会覆盖原有内容,r+从文件开头开始读写,可能会覆盖部分内容);附加模式是a,用于在文件末尾追加内容。C选项中对读写模式的解释错误。
  1. 答案:D
  • 解析:插入排序的基本思想是将一个数据插入到已经排好序的有序数据中,在本题中,循环从第二个元素开始(for i in range(1, 4)),每次选取一个数(k = arr[i]),然后与前面已排序的元素比较,如果小于前面的元素则将前面的元素后移,直到找到合适的位置插入该数。但由于循环次数被修改为只进行了部分排序,所以最终结果是部分排序后的列表[5, 21, 33, 67, 39, 73, 7, 43]
  1. 答案:B
  • 解析try/except语句用于捕获和处理异常,当try块中的代码发生异常时,会根据except后面指定的异常类型进行相应的处理,使程序不会因为异常而终止。if/else主要用于条件判断;Warning是一种警告类型,不是用于异常处理的语句;Error是错误类型,但不是异常处理的语句结构。
  1. 答案:D
  • 解析:冒泡排序的基本思想是比较相邻的元素,如果顺序不对则进行交换,每一趟排序都会将最大(或最小)的元素“浮”到列表的末尾(或开头)。在本题中,内层循环for j in range(0, n - i - 1)用于比较相邻元素,当arr[j] > arr[j + 1]时,需要交换arr[j]arr[j + 1]的值,所以红线处应填入arr[j] > arr[j + 1]

二、判断题

  1. 答案:正确
    • 解析readline函数每次读取文件的一行内容,返回的结果是字符串;readlines函数读取文件的所有行,返回一个包含每行内容的列表。
  2. 答案:正确
    • 解析:猜一个20以内的随机数,二分法每次可以将搜索范围缩小一半,最多需要比较的次数为(\log_2{20})(向上取整)约为5次;而顺序查找最坏情况下需要比较20次,所以二分法比顺序查找效率更高。
  3. 答案:正确
    • 解析:在Python中,使用反斜线\指定文件路径时,某些字符(如\t表示制表符)可能会被转义,导致路径出错。使用斜线/或双反斜线\\可以避免这种问题,双反斜线\\在Python中表示一个反斜线字符。
  4. 答案:正确
    • 解析bool函数用于将一个值转换为布尔值,对于整数参数,只要是非0值,转换后的布尔值就为True,0转换为布尔值为False
  5. 答案:正确
    • 解析:二进制数转换为十六进制数的方法是从右到左每4位一组,左边不足4位的用0补满,然后将每组二进制数转换为对应的十六进制数(0 - 9对应0 - 9,10 - 15对应A - F)。
  6. 答案:错误
    • 解析:Python中的dir函数用于返回对象的属性和方法列表,而不是创建文件夹的函数。创建文件夹可以使用os模块中的mkdirmakedirs函数。
  7. 答案:正确
    • 解析:二进制数末位是“1”,转换为十进制数一定是奇数(因为二进制末位为1表示(20 = 1),加上其他位的数值后一定是奇数);十六进制数末位是“1”,转换为十进制数也一定是奇数(例如十六进制0x1转换为十进制是1,0x11转换为十进制是17等,末位为1表示(1×160 = 1),加上其他位的数值后一定是奇数)。
  8. 答案:正确
    • 解析:在try - finally异常处理结构中,无论try块中的代码是否发生异常,finally块中的代码都会执行,通常用于释放资源等操作,确保无论程序执行过程中是否出现问题,某些必要的操作(如关闭文件、释放锁等)都能得到执行。
  9. 答案:正确
    • 解析:这段代码使用csv模块读取song.csv文件,reader对象读取文件的每一行,i[0]表示取每行的第一个元素(即歌曲名),然后依次输出歌曲名,实现了将歌曲名单一一读取出来的功能。
  10. 答案:错误
  • 解析sorted([1, 3, 2])会返回一个新的排好序的列表[1, 2, 3],然后将这个列表中的元素依次赋值给xyz,所以y的值为2,而不是1。

三、编程题

  1. 数据排序
    • 思路:首先通过循环获取用户输入的10个数据并存入列表lis,然后使用两层循环进行冒泡排序(这里外层循环可以循环到列表长度减1次,也可以循环到列表长度次,因为最后一次循环如果没有交换元素说明已经有序),比较相邻元素大小,如果顺序不对则交换。接着获取用户要插入的数据,将其添加到列表末尾,再通过循环从后向前比较插入数据与已排序数据的大小,找到合适位置插入(通过交换元素),使列表仍然有序。
  2. 计算总时间和平均时间
    • 思路:使用csv模块打开sport.csv文件,读取文件中的数据(跳过表头行),将每行的时长数据转换为整数并累加到变量s中,同时记录数据的个数c,最后计算平均时长(总时长除以个数)并保留两位小数输出。
  3. 整数判断
    • 思路:首先获取用户输入的整数num,然后通过循环从1到num,根据每个数能否被3和5整除的情况,按照规则将相应的字符串添加到列表results中,最后输出列表results