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

博客信息

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

一、单选题

  1. 答案:C
    • 解析:将二进制数转换为十六进制数,可以从右到左每4位一组,不足4位在左边补0,然后将每组二进制数转换为对应的十六进制数。二进制数101100111可分为0001 0110 0111,对应的十六进制数为167
  2. 答案:D
    • 解析:Python中合法的八进制整数表示以0o0O开头,后面只能是0 - 7的数字。A选项0o129中包含了9不是八进制合法数字;B选项0o12A中包含了A不是八进制合法数字;C选项0O1708中包含了8不是八进制合法数字;D选项0O1207是合法的八进制表示。
  3. 答案:B
    • 解析int('10', 16)表示将十六进制字符串'10'转换为十进制整数,转换结果为16。A选项描述的是将十进制数转换为十六进制数的操作;C选项将字符串'10'转换为二进制整数的说法错误;D选项将字符串'10'转换为十六进制整数的操作错误,这里是将其转换为十进制整数。
  4. 答案:C
    • 解析:八进制7转换为十进制为(7×80 = 7),十六进制7转换为十进制为(7×160 = 7),它们相加的十进制结果为(7 + 7 = 14)。
  5. 答案:C
    • 解析:在f = open('c:/abc.csv', 'r')中,f是变量名用于表示打开的文件对象;'r'表示以只读方式打开文件;如果文件abc.csv不存在,使用'r'模式打开会报错,而不是创建文件;'c:/abc.csv'代表c盘中名为abc.csv的文件。
  6. 答案:C
    • 解析:A选项"r"是正确的文件打开模式;B选项lines.strip("\n")用于去除每行字符串两端的换行符,是正确的操作;C选项split("\"")"是字符串的分隔符,这里使用错误,应该是split(",")(假设文件中的数据是以逗号分隔的);D选项f.close()用于关闭文件,是正确的操作。
  7. 答案:B
    • 解析len函数用于返回序列(如列表)的长度,对于列表[2, 3, 4, 5, [7, 8], (9, 10)],其中包含6个元素(4个整数、1个列表、1个元组),所以a的值为6。
  8. 答案:D
    • 解析read方法每次读取整个文件内容,返回一个字符串,A、B选项正确;readline方法每次读取文件的一行,C选项正确;readlines方法每次按行读取整个文件内容,将读取到的内容放到一个列表中,每个元素是文件中的一行字符串,而不是一个字符串,D选项错误。
  9. 答案:B
    • 解析:A选项f = open('city.csv', 'w')确实表示当前是写入模式,正确;B选项f.write(','.join(add) + '\n')是将列表add中的元素用逗号连接后写入文件并换行,如果改成f.write(' '.join(add) + '\n'),则是用空格连接元素,程序运行效果不同,错误;C选项删除f.close()语句,文件可能无法正确保存(取决于文件对象的垃圾回收机制等,但通常情况下不关闭文件是不好的编程习惯且可能导致数据丢失或不完整保存),正确;D选项当前程序的功能是将列表对象输出到CSV文件(虽然这里没有严格按照CSV格式要求添加标题行等,但主要功能是将列表内容写入文件),正确。
  10. 答案:A
  • 解析:当发生异常时,通常需要捕获异常并进行相应的处理,将可能发生错误的语句放在try模块里,处理异常的语句放在except模块里,一个try模块可以对应多个except模块用于捕获不同类型的异常,所以A选项正确,B、C、D选项描述不准确。
  1. 答案:D
  • 解析:用户输入"2"eval函数会将字符串"2"转换为整数2,然后赋值给a,最后输出a的值为2。
  1. 答案:D
  • 解析a = "3"b = "3"c = int(a + b)会将字符串"33"转换为整数33,然后输出c的值为33,而不是5或"5"或5.0。
  1. 答案:C
  • 解析sorted((1, 3, 2))会返回一个新的排好序的元组(1, 2, 3),然后将这个元组中的元素依次赋值给abc,所以b的值为2。
  1. 答案:C
  • 解析min('5678')返回字符串'5678'中的最小字符'5'。A选项print(max(float('5'), 7, 6)),先将'5'转换为浮点数5,然后求5、7、6中的最大值,语法正确;B选项print(max(ord('5'), 7, 6))ord('5')返回字符'5'的ASCII码值53,然后求53、7、6中的最大值,语法正确;C选项print(max(bin('5'), 7, 6))bin函数用于将整数转换为二进制字符串,bin('5')会报错,语法错误;D选项print(max(int('5'), 7, 6)),先将'5'转换为整数5,然后求5、7、6中的最大值,语法正确。
  1. 答案:D
  • 解析:A选项all(()),空元组中没有元素,all函数对于空可迭代对象返回True;B选项any(['0']),列表中包含非空字符串'0'any函数返回True;C选项any((0,)),元组中包含0,any函数返回True;D选项bool(range(0))range(0)返回一个空的可迭代对象,bool函数对于空可迭代对象返回False
  1. 答案:C
  • 解析:A选项bool([]),空列表[]的布尔值为False;B选项bool(None)None的布尔值为False;C选项bool("False"),非空字符串的布尔值为True;D选项bool(2 * 3 - 6),计算结果为0,0的布尔值为False
  1. 答案:D
  • 解析divmod函数返回两个值,分别是除法的商和余数,divmod(22, 7)的结果是(3, 1),表示22除以7商为3余数为1。
  1. 答案:A
  • 解析:A选项abs(-3.4)的结果是3.4;B选项round(abs(-3.4))先计算abs(-3.4)为3.4,再round取整为3;C选项abs(round(-3.4))round(-3.4)取整为 - 3,再取绝对值为3;D选项min(round(3.4), round(3.8))round(3.4)取整为3,round(3.8)取整为4,min函数返回较小值为3,A选项结果与其他三项不同。
  1. 答案:B
  • 解析ascii函数返回一个表示对象的可打印字符串,而不是返回对象的ASCII码的值,A、C、D选项描述正确,B选项错误。
  1. 答案:D
  • 解析:A选项bool(2 * 3 - 0)计算结果为6,布尔值为True;B选项bool(2 * 3 - 2)计算结果为4,布尔值为True;C选项bool(2 * 3 - 3)计算结果为3,布尔值为True;D选项bool(2 * 3 - 6)计算结果为0,布尔值为False
  1. 答案:D
  • 解析:A选项print(1 + 2 + 3 = 6)是错误的语法,不能这样直接在print函数中写表达式和等号;B选项print(1 + 2 + 3, '=6')会输出6 =6,中间有空格;C选项print(1, 2, 3, sep='+', '=6')是错误的语法,sepend参数不能这样混合使用;D选项print(1, 2, 3, sep='+', end='=6')会输出1+2+3=6,符合要求。
  1. 答案:B
  • 解析sorted函数用于对可迭代对象进行排序,返回一个新的排好序的列表,但它本身不是创建新列表的函数;list函数可以创建一个新的列表,例如list()创建一个空列表,list([1, 2, 3])将其他可迭代对象转换为列表;dict函数用于创建字典;set函数用于创建集合。
  1. 答案:D
  • 解析:A选项采用顺序查找算法,如果数据不存在则不能找到数据;B选项算法可以没有输入但必须有输出(输入可以为0个,输出至少为1个);C选项对分查找算法要求数据必须有序;D选项顺序查找算法不需要对数据进行排序,直接逐个查找元素,正确。
  1. 答案:C
  • 解析:冒泡排序的基本思想是比较相邻元素,如果顺序不对则交换,每一趟排序会将最大的元素“浮”到末尾。原始列表a = [8, 7, 9, 6, 3, 8],第一趟排序后:[7, 8, 6, 3, 8, 9];第二趟排序后:[7, 6, 3, 8, 8, 9]
  1. 答案:B
  • 解析:选择排序的基本思想是在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。原始列表a = [8, 7, 9, 6, 3, 8],第一趟排序后:[3, 7, 9, 6, 8, 8];第二趟排序后:[3, 6, 9, 7, 8, 8]

二、判断题

  1. 答案:错误
    • 解析:十六进制数0x10010转换为十进制数的计算方法是(1×164 + 0×163 + 0×162 + 1×161 + 0×16^0 = 65552),而不是18。
  2. 答案:错误
    • 解析int('12', 16)将十六进制字符串'12'转换为十进制整数,结果为18,然后hex(18)的结果是'0x12',而不是'0x18'
  3. 答案:正确
    • 解析:这段代码首先以只读方式打开city.csv文件,然后使用read方法读取文件内容,strip方法去除字符串两端的换行符,split方法以;为分隔符将字符串分割成列表(假设文件中的数据是以;分隔的),最后关闭文件,实现了将文件中的数据读取到列表中的功能。
  4. 答案:正确
    • 解析open('city.csv', 'r')的作用是以只读方式打开文件名为city.csv的文件,这里r表示只读模式,用于读取文件内容。
  5. 答案:正确
    • 解析:在向CSV文件写入数据时,如果数据是一个列表,使用','.join(name)可以将列表中的元素用逗号连接成一个字符串,然后再加上换行符'\n',就可以将一行数据写入文件,f.write用于将字符串写入文件对象f中。
  6. 答案:正确
    • 解析:在try - except - else - finally异常处理结构中,无论try程序段中的语句有没有错误,finally程序段中的语句都会得到执行,通常用于释放资源等操作,确保程序在任何情况下都能执行一些必要的清理工作。
  7. 答案:错误
    • 解析ord('A')返回大写字母A的ASCII码值65,ord('A') + 12 = 77ascii(77)会返回'77',是一个字符串,而不是打印一个整型数值结果。
  8. 答案:正确
    • 解析sorted函数会返回一个新的排好序的列表,原列表的内容不会改变,所以排序后原列表中数据的位置不会发生变化。如果要对原列表进行排序,可以使用列表的sort方法。
  9. 答案:错误
    • 解析divmod(26, 10)的结果是(2, 6),表示26除以10商为2余数为6,而不是(3, - 4)
  10. 答案:正确
  • 解析ord("b")返回小写字母b的ASCII码值,小写字母的ASCII码值比大写字母大32,所以ord("b") - 32得到大写字母B的ASCII码值,再用chr函数将其转换为大写字母B,即chr(ord("b") - 32)可以将小写字母b转换为大写字母B

三、编程题

  1. 寻找“水仙花数”

    • 思路:通过循环遍历100到999的所有三位数,对于每个数,分别获取其个位、十位和百位数字(通过取余和整除运算),然后计算各位数字的立方和,如果等于该数本身,则是水仙花数,将其输出并统计个数。
  2. 查找“支撑数”

    • 思路:首先获取用户输入的字符串,将其按空格分割成列表,然后将列表中的每个元素转换为整数并存入新列表a。接着通过循环遍历列表a(除了第一个和最后一个元素),判断当前元素是否大于其左右相邻元素,如果是则将其添加到支撑数列表b中,并记录其位置编号到列表c中。最后循环输出支撑数及其位置编号。
  3. 读取成绩数据

    • 思路:首先使用open函数以只读方式打开score.txt文件,然后使用readlines方法读取文件的所有行,得到一个包含每行成绩字符串的列表list。接着通过循环遍历列表list,使用strip方法去除每行末尾的换行符,并将字符串转换为整数(因为成绩是整数类型)。最后对列表list进行排序(使用sort方法),然后输出排序后的成绩列表。