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

博客信息

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

一、单选题

  1. 答案:C
    • 解析c是一个包含多个子列表的列表,c[1]表示第二个子列表[['钱二', 20, '男', '西安']]c[1][3]表示该子列表中的第四个元素,即'西安'
  2. 答案:C
    • 解析:要读取文件的全部内容,应该使用'r'(只读)模式打开文件。'w'模式用于写入文件,如果文件存在会覆盖原有内容;'a'模式用于追加写入文件;'a+'模式用于读写文件,且文件指针在文件末尾,追加写入内容。
  3. 答案:D
    • 解析:代码首先以utf - 8编码打开书目.csv文件,然后逐行读取文件内容,对于每一行,将其按逗号分割成列表a。当a[0](即书名)为"水浒传"时,输出a[1],即该书的价格,从文件中可以看到水浒传的价格为70
  4. 答案:B
    • 解析a = [['a', 'b', 'c']]b = [1, 2, 3]c = [b, a]c[1][0]表示c中的第二个元素(即a)中的第一个元素,也就是'a'
  5. 答案:A
    • 解析:要使每个字段之间相隔一个TAB键的距离,在格式化输出时应该使用'\t'作为分隔符。'\n'是换行符;'\a'是响铃符;'\r'是回车符,均不符合要求。
  6. 答案:B
    • 解析:在Python异常处理结构中,如果程序执行没有遇到异常,try块中的代码正常执行,然后会跳过except块(因为没有异常可捕获),执行else块(如果有else块),最后执行finally块。所以不会执行except关键字后面的语句体。
  7. 答案:D
    • 解析:用户输入168a = int(input())将输入转换为整数16,b = int(input())将输入转换为整数8,r = a // b计算16除以8的整数商为2,输出商是: 2。因为程序没有异常,所以执行else块输出正确,最后执行finally块输出结束,最终结果为商是: 2.0 正确 结束(注意这里商虽然是整数2,但在Python 3中,整数除法结果默认是浮点数,所以显示为2.0)。
  8. 答案:C
    • 解析bin函数用于将十进制数转换为二进制字符串;int函数用于将其他类型转换为整数(这里不是将十进制转换为八进制的正确函数);oct函数用于将十进制数转换为八进制字符串,所以将十进制20转化成八进制可以使用oct(20)hex函数用于将十进制数转换为十六进制字符串。
  9. 答案:A
    • 解析:十六进制0x14转换为十进制的计算方法是(1×161 + 4×160 = 20),A选项正确,C选项错误。十进制20转化成八进制为0o24,B、D选项错误(八进制转换方法是用十进制数除以8取余数,从下往上排列,20除以8商2余4,所以八进制为0o24)。
  10. 答案:D
  • 解析:十六进制转化为十进制,是用每个数位上的数字乘以16的相应位数次幂(幂次从0开始,从右向左计数),然后将结果相加,而不是除16求余数的方法,A、C选项错误;二进制转化为十进制,是用每个数位上的数字乘以2的相应位数次幂(幂次从0开始,从右向左计数),然后将结果相加,也不是除2求余数的方法,B选项错误;n位二进制能表示的最大十进制数是(2^n - 1),D选项正确。
  1. 答案:D
  • 解析bin函数用于将十进制数转换为二进制字符串;int函数用于将其他类型转换为整数(不是将十进制转换为十六进制的函数);oct函数用于将十进制数转换为八进制字符串;hex函数用于将十进制数转换为十六进制字符串,所以将十进制2022转化成十六进制可以使用hex(2022)
  1. 答案:A
  • 解析abs函数用于求绝对值,abs(-4.8)的结果是4.8。
  1. 答案:B
  • 解析ord函数的参数是字符串类型(单个字符),它返回该字符的ASCII码值(整数);chr函数的参数是整数,它返回对应的字符。所以B选项正确,A、C、D选项错误。
  1. 答案:D
  • 解析a = [34, 7, 8, 23]max(a)返回列表a中的最大值34,abs(-5)返回5,两者相加结果为39。
  1. 答案:C
  • 解析set('小明你好')会将字符串中的字符去重后组成一个集合,集合中的元素是无序的,结果为{'好', '你', '明', '小'}(文字顺序不固定)。
  1. 答案:A
  • 解析:代码中for i in a遍历列表a中的每个元素,print(i, " ", bin(i))会输出每个元素及其对应的二进制数,所以功能是分别输出5, 10, 32, 7的二进制数。
  1. 答案:C
  • 解析:A选项len([1, 2, 3, 4, 5, 789])返回列表的长度为6;B选项max([78, 6, 5, 67])返回列表中的最大值78;C选项abs(-90)返回90;D选项round(38.4)返回38。所以值最大的是C选项。
  1. 答案:C
  • 解析divmod函数返回两个值,分别是除法的商和余数,divmod(6, 2)的结果是(3, 0),表示6除以2商为3余数为0。
  1. 答案:A
  • 解析type函数用于查看对象的数据类型,返回对象的类型信息;dir函数用于返回对象的属性和方法列表;set函数用于创建集合;help函数用于查看函数或模块的帮助文档,但不是直接查看数据类型的函数。
  1. 答案:B
  • 解析x = 7eval("x + 4")会计算字符串中的表达式,将x的值代入计算,结果为11,然后输出11。
  1. 答案:B
  • 解析enumerate函数是Python内置函数,可将一个可遍历对象组合为索引序列,通常用在for循环中,返回一个内部由一个个元组组成的列表,每个元组包含索引和对应元素,但它不能用于判断数据类型是否是数值类型,B选项错误。
  1. 答案:C
  • 解析enumerate('7890')会将字符串组合为索引序列,循环中i依次为0, 1, 2, 3,j依次为'7''8''9''0',输出结果为0 7 1 8 2 9 3 0
  1. 答案:A
  • 解析:算法描述的三种基本结构是顺序结构、选择结构、循环结构。B选项if选择结构、for循环、while循环是具体的语句实现;C选项处理框、判断框、流程线是流程图中的元素;D选项自然语言、流程图、程序设计语言是算法描述的方式,而不是基本结构。
  1. 答案:D
  • 解析:使用计算机解决问题的一般步骤是:首先分析问题,确定解题任务;然后设计求解算法;接着编写程序,用计算机进行处理;最后验证算法的功能和性能。所以正确顺序是④②①③。
  1. 答案:B
  • 解析:解析算法是用数学公式或表达式来描述问题的解法,通过计算来得到结果。小明模拟绘制物体自由落体运动的抛物线轨迹,是根据自由落体运动的数学公式来计算轨迹上的点,属于解析算法。枚举算法是通过列举所有可能情况来求解问题;排序算法用于对数据进行排序;对分查找算法用于在有序数据中查找特定元素,均不符合本题情况。

二、判断题

  1. 答案:错误
    • 解析:代码一直接打印读取到的每一行数据(去除换行符并按逗号分割后的列表),代码二则是将所有行的数据收集到一个列表a中,最后打印整个列表a,两者结果不同。代码一输出的是逐个处理后的行数据,代码二输出的是包含所有行数据的列表。
  2. 答案:错误
    • 解析'a'模式是追加模式,当使用seek(0, 0)将文件指针移动到文件开头后,写入的数据会覆盖文件开头的原有内容,而不是插入数据。要在文件开头插入数据,应该使用'r+'模式(读写模式),先读取文件内容,然后将指针移动到文件开头,写入新数据,再写入原文件内容(或者使用其他更合适的方法来实现插入操作)。
  3. 答案:错误
    • 解析:当try里面的程序出现数据类型输入错误时,应该执行except后面指定类型为ValueError(或更具体的类型,如果适用)的语句块;当出现除数为零的错误时,应该执行except后面指定类型为ZeroDivisionError的语句块,而不是像题目中那样错误的对应。
  4. 答案:正确
    • 解析:八进制数0o10转换为十进制为(1×81 + 0×80 = 8),十进制数8转换为十六进制为0x8,所以八进制数0o10转化成十六进制数为0x8
  5. 答案:正确
    • 解析0x20是十六进制数,在Python中它是整数类型的一种表示,type(0x20)会返回<class 'int'>,表示其数据类型为整数。
  6. 答案:正确
    • 解析divmod函数执行结果是返回一个包含商和余数的元组,例如divmod(10, 3)返回(3, 1),其中3是商,1是余数。
  7. 答案:错误
    • 解析all函数用于判断给定的可迭代参数中的所有元素是否都为True(或可转换为True的值),若是返回True,否则返回False。如果可迭代对象为空,all函数也返回True
  8. 答案:错误
    • 解析any函数用于判断给定的可迭代参数中是否至少有一个元素为True(或可转换为True的值),若是返回True,否则返回False。如果可迭代对象为空,any函数返回False
  9. 答案:正确
    • 解析help函数可以用于查看函数或模块的说明文档,例如help(print)可以查看print函数的详细说明,包括函数的功能、参数、返回值等信息。
  10. 答案:正确
  • 解析list1[1:: - 4]list1[1::4]在这个列表中结果是相同的,因为list1[1:: - 4]从第二个元素开始,以步长 - 4(倒序,每次向前移动4个位置)取值,得到['钱', '周', '郑']list1[1::4]从第二个元素开始,以步长4(正序,每次向后移动4个位置)取值,也得到['钱', '周', '郑']。但需要注意的是,如果列表长度或元素位置不同,这两种切片方式的结果可能不同。

三、编程题

  1. 补充代码(冒泡排序)

    • 思路:冒泡排序的基本思想是比较相邻的元素,如果顺序不对则进行交换,每一趟排序会将最大(或最小)的元素“浮”到末尾(或开头)。这里是升序排序,所以当a[j] > a[j + 1]时交换元素。外层循环控制排序的趟数,内层循环控制每趟比较的次数。
  2. 统计单词个数

    • 思路:首先统计列表a中单词的总个数n(减1是因为索引从0开始)。然后通过循环,选择一个基准元素(这里是a[0]),将列表中比基准小的元素移到基准前面,比基准大的元素移到基准后面,这个过程称为一趟快速排序(这里只是利用了快速排序的思想来对单词进行分组,而不是完整的排序)。接着通过循环统计与基准元素相同的单词个数ans。最后根据统计结果输出每个单词及其出现的次数。
  3. 体质测试

    • 思路:首先使用csv模块打开jcsv文件,读取文件中的数据(使用csv.reader读取并转换为列表rows)。然后循环遍历rows(从第二行开始,跳过标题行),判断每个学生的体质测试成绩是否大于等于85分,如果是,则输出该学生的姓名并计数。最后输出体质测试考核为A的学生数量。