笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案


目录

  • 第一章
    • 一、选择题
    • 二、填空题
  • 第二章
    • 一、选择题
    • 二、填空题
  • 第三章
    • 一、选择题
    • 二、填空题
  • 第四章
    • 一、选择题
    • 二、填空题
  • 第五章
    • 一、选择题
    • 二、填空题
  • 第八章
    • 一、选择题
    • 二、填空题

第一章 一、选择题
  1. Python语言属于 C
    A.机器语言
    B.汇编语言
    C.高级语言
    D.以上都不是
  2. 在下列选项中,不属于Python特点的是 B
    C.可移植性
    D.免费和开源
    A.面向对象
    B.运行效率高
  3. 在下列选项中,A 是最信用的Pyton版本,也称之为Casiseyrhoip
    A. CPython
    B. Jython
    C. IronPython
    D. PyPy
  4. Python内置的集成开发工具是 D
    A. PythonWin
    B. Pydev
    C. IDE
    D. IDLE
  5. Python解释器的提示符为 C
    A. >
    B. >>
    C. >>>
    D. #
  6. 在Python解释器环境中,用于表示上一次运算结果的特殊变量为 B
    A. :
    B. _
    C. >
    D. #
  7. A 是Python官方的扩展库索引,所有人都可以下载第三方库或上传自己开发的库到其中。
    A. PyPI
    B. PyPy
    C. Pydev
    D. pip
二、填空题
  1. Pyhon语言是一种解释型 、面向对象的计算 机程序设计语言
  2. 用户编写的Python程序(避免使用依善干系统的特性),无须修改就可以在任何支持Python的平台上运行,这是Python的可移植性
  3. 在Python3.4以后的版本中,pip用于安装管理Python扩展包,setuptools库用于发布Python包
  4. 如果要关闭Python解释器,可以使用quit()命令或者按 ctrl+z组合键
  5. 在Python内置的集成开发环境IDLE中可以使用F5 键运行当前打开的源代码
  6. Python注释以符号#开始,到行尾结束
  7. 在Pyrhon程序中导入sys模块后,可以通过列表sys.argv访问命令行参数,
    argv[0]表示Python脚本名;argv[1]表示第1个参数。
  8. 在Python解释器中,使用help()函数可以进入帮助系统:输入quit()可以退出系统
第二章 一、选择题
  1. 在Python中,以下标识符合法的是 A
    A. _
    B.3C
    C. it’s
    D. str
    B选项数字不能在开头,C选项’
  2. 在Python表达式中可以使用 A控制运算的优先顺序
    A.圆括号()
    B.方括号[ ]
    C.花括号{}
    D.尖括号<>
  3. 在下列Pyho语句中非法的是 B
    A.x=y=1
    B.x=(y=1)
    C.x,y = y,x
    D.x=1; y=1
  4. 以下Python注释代码不正确的是 D
    A. # Python注释代码
    B. # Python注释代码1 #Python注释代码2
    C.""" Python文档注释""”
    D. // Python注释代码
    D选项为C,C++,Java的注释方式
  5. 数学关系式2 B
    A. 2 B. 2 C. 2 D. x>2 or x<= 10
  6. 在Python中,以下赋值语句正确的是 C
    A. x+y=10
    B. x=2y
    C. x=y= 30
    D. 3y=x+1
  7. 为了给整型变量x.y、z赋初值10,下面Python赋值语句正确的是
    C
    A. xyz=10
    B. x=10 y=10 z=10
    C. x=y=z=10
    D. x=10,y=10,z= 10
  8. 为了给整型变量 x y z赋初值5,下面Python赋值语句正确的是
    A
    A. x=5; y=5; z=5
    B. xyz=5
    C. x,y,z=5
    D.x=5, y=5, z=5
  9. 已知x=2并且y=3,复合赋值语句x =y + 5执行后x变量中的值是 B
    A.11
    B.16
    C.13
    D. 26
    x = x
    (y+5) = 2*8 =16
  10. 在整型变量x中存放了一个两位数,如果要将该两位数的个位数字和十位数字交换位置, 例如将13变成31,以下Python表达式正确的是 A
    A. (x % 10) * 10 + x // 10
    B.(x % 10) // 10 + x // 10
    C.(x / 10) % 10 + x // 10
    D. (x % 10) * 10 + x % 10
  11. 下列与数学表达式 (cd)/(2ab) 对应的Python表达式不正确的是
    C
    A. c* d / (2 * a * b)
    B. c / 2 * d / a / b
    C. c * d / 2 * a * b
    D. c * d / 2 / a / b
    C = abcd/2
二、填空题
  1. Python 语句分为 简单语句和复合语句
  2. Python使用缩进格式划分语句块
  3. 在Python中如果语句太长,可以使用 \ 作为续行符
  4. 在Python中一行书写两条语句时,语句之间可以使用 ; 作为分隔符。
  5. Python使用符号 #标示注释。
  6. 在Python中要表示一个空的代码块,可以使用空语句 pass
  7. 计算2^32 - 1的Python表达式可以书写为 2**32 - 1
  8. Python 表达式 4.5/2 4.5//2 和 4. 5%2的值分别为 2.25 2.0 0.5
  9. Python表达式12/4 - 2 + 5 * 8 / 4 % 5 / 2的值为 1.0
    3.0 - 2 + 0 = 1.0
  10. Python 中的大部分对象均为不可变对象,例如 int str string tuple等, list dict等则为可变对象
  11. Python提供了两个对象身份比较运算符的 is is not来测试两个变量是否指向同一个对象; 通过内置函数 type来测试对象的类型; 通过 == 运算符判断两个变量指向的对象的值是否相同。
  12. Python 语句序列“a,b=3,4; a,b = b,a; print(a,b)”的执行结果是 4 3
第三章 一、选择题
  1. 下面的Pyrhon循环体的执行次数与其他不同的是 A
    A. i=0
    ~~~~while(i <= 10):
    ~~~~~~~~~~print(i)
    ~~~~~~~~~~i = i + 1
    B.i = 10
    ~~~~while(i>0):
    ~~~~~~~~~~print(i)
    ~~~~~~~~~~i=i-1
    C. for i in range(10):
    ~~~~~~~~~~print(i)
    D. for i in rarge(10, 0, -1):
    ~~~~~~~~~~print(i)
    A 11次 B 10次 C 10次 D10次
  2. 执行下列Python语句将产生的结果是 A
    x=2; y=2.0
    if(x==y): print(“Equal”)
    else: print(“Not Equal”)
    A. Equal
    B. Not Equal
    C.编译错误
    D.运行时错误
  3. 执行下列Python语句将产生的结果是 B
    i = 1
    if (i): print(True)
    else: print(False)
    A.输出1
    B.输出True
    C.输出False
    D.编译错误
  4. 用if语句表示如下分段函数f(x),下面程序不正确的是 A
    f(x) = (2x+ 1) x≥1
    ~~~~~~= 3x/(x一1) x< 1
    A. if(x>=1):f=2 * x+1
    f=3 * x/(x- 1)
    B. if (x>=1): f=2 * x+1
    if (x<1): f=3 * x/(x-1)
    C. f = 2 * x+ 1
    if (x<1): f=3 * x/(x-1)
    D. if (x<1): f=3 * x/(x-1)
    else: f= 2 * x+1
    找个数代入就可以

  5. 下面的if语句统计满足“性别(gender)为男、职称(rank)为教授、年龄(age)小于40岁”条件的人数,正确的语句为 B
    A. if (gender == “男" orage<40 and rank == “教授”): n+=1
    B. if (gender == “男” and age<40 and rank ==“教授"): n+=1
    C. if (gender == “男” and age<40 or rank ==“教授”); n+=1
    D. if (gender == “男” or age<40 or rank == “教授”): n+=1
  6. 下面的程序段求x和y两个数中的大数, D是不正确的
    A. maxMum= x if x > y else y
    B.maxNum = math.max(x,y)
    C.if (x>y): maxNum = x
    else: maxNum = y
    D.if (y>=x): maxNum=y
    maxNum=x
  7. 下面的if语句统计”成绩(score)优秀的男生以及不及格的男生的人数,正确的语句为 C
    A. (gender= = “男” and score<60 or score>=90): n+=1
    B. if(gender == “男” and score<60 and score>=90): n+=1
    C. if (gender ==“男” and (score<60 or score>=90)): n+=1
    D. if (gender = = “男” or score<60 or score>=90): n+=1
  8. 用 if 语句表示如下分段函数:
    y = x^2-2x+3 x<1
    = sqrt(x-1) x≥1
    下面程序段不正确的是 B
    A. if(x<1):y=x * x- 2 * x + 3
    else:y=math.sqrt(x-1)
    B. if(x≤1):y = x * x- 2 * x + 3
    y = math. sqrt(x-1)
    C. y = x * x - 2 * x + 3
    if(x>= 1):y= math.sqrt(x-1)
    D. if(x<1): y = x * x - 2 * x + 3
    if(x>=1):y = math. sqrt(x-1)
  9. 在以下语句结构中,A不能完成1~10的累加功能 A
    A. for i in range(10,0): total += i
    B. for i in range(1,11): total += i
    C. for i in range(10,0,-1): total += i
    D. for i in (10,9,8,7,6,5,4,3,2,1): total+=i
二、填空题
  1. 迭代器是一个对象,表示可迭代的数据集合,包括方法 iter() 和 next(),可实现迭代功能
  2. 在Python无穷循环whileTrue:的循环体中可以使用 break语句退出循环
  3. Python 语句“for i in range(1,21,5): print(i, end=’ ')”的输出结果为 1 6 11 16
  4. Python 语句“for iin range(10,1,-2): print(i, end=’ ')”的输出结果为 10 8 6 4 2
  5. 循环语句for i in range(-3,21,4)的循环次数为 6
  6. 要使语句for i in range(_,-4,-2)循环执行15次,则循环变量i的初值应当为 25或26
  7. 执行下列Python语句后的输出结果是 1,循环执行了 1
    i = -1;
    while(i<0): i * = i
    print(i)
第四章 一、选择题
  1. 在下列数据类型中,Python不支持的是 A
    A. char
    B. int
    C. float
    D. list
  2. Python 语句print(type(1J))的输出结果是 A
    A. < class ‘complex’>
    B. < class ‘int’>
    C. < class ‘float’>
    D. < class ‘dict’>
    complex复数
  3. Python 语句print(type(1/2))的输出结果是 C
    A. < class ‘int’>
    B. < class ‘number’>
    C. < class ‘float’>
    D. < class ‘double’>
  4. Python语句print(type(1//2))的输出结果是 A
    A. < class ‘int’>
    B. < class ‘number’>
    C. < class 'float ‘>
    D. < class ’ double’>
  5. Python 语句序列“a=121+ 1.21; print(type(a))”的输出结果是 B
    A. < class ‘int’>
    B. < class ‘float’>
    C, < class ‘double’>
    D. < class ‘long’>
  6. Python 语句print(0xA + 0xB)的输出结果是 D
    A.0xA + 0xB
    B.A+B
    C.0xA0xB
    D.21
    0xA十六进制 等于十进制的10
    0xB十六进制 等于十进制的11
  7. Python语句序列“x= ‘car’; y=2; print(x+y)”的输出结果是 A
    A.语法错
    B. 2
    C.‘car2’
    D.‘carcar’
  8. Python 表达式sqrt(4) * sqrt(9)的值为 D
    C.13. 0
    D.6.0
    A.36.0
    B.1296. 0
  9. 关于Pyhon中的复数,下列说法错误的是 C
    A.表示复数的语法是real+ image j
    B.实部和虚部都是浮点数
    C.虚部必须后缀为j,且必须是小写
    D.方法conjugate()返回复数的共轭复数
  10. Python语句print(chr(65))的运行结果是 D
    A.65
    B.6
    C.5
    D.A
    ord()函数主要用来返回对应字符的ascii码
    chr()主要用来表示ascii码对应的字符他的输入时数字,可以用十进制,也可以用十六进制
  11. 关于Python字符串,下列说法错误的是 B
    A.字符即长度为1的字符串
    B.字符串以\0标识字符串的结束
    C.用户既可以用单引号,也可以用双引号创建字符串
    D.在三引号字符串中可以包含换行回车等特殊字符
二、填空题
  1. Python中内置的4种数值类型为 int float complex bool
  2. Python 内置的序列数据类型包括 list tuple
  3. Python表达式10+5//3-True+False的值为 10
    True=1 False=0
  4. Python表达式3 ** 2 ** 3的值为 6651
    3 ** 8, 从右向左
  5. Python表达式17.0 / 3 ** 2的值为 1.88888888888888888
    17.0 / 9
  6. Python表达式 0 and 1 or not 2 < True的值为 True 笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片

    同时 < 优先级高于 not and or
    笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片

    0 and 1 or not False
    0 or True
    True
  7. Python语句print(pow( -3, 2),round(18.67,1), round(18.67, -1))的输出结果是 9.0 18.7 20.0
    笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片

    n>0,四舍五入到指定的小数位
    n=0, 四舍五入到最接近的整数
    n<0 ,在小数点左侧进行四舍五入
  8. Python语句print(round(123.84,0), round(123.84,-2), floor(15.5))的输出结果 124.0 100.0 15
  9. Python语句print(int(‘20’,16),int(‘101’, 2))的输出结果是 32 5
    十六进制的20转十进制 2 * 16=32
    二进制的101转十进制 1 * 2^2+1=5
  10. Python语句print(hex(16),bin(10))的输出结果是 0x10 0b1010
    十进制的16转十六进制 0x10
    十进制的10转二进制 0b1010
  11. Python语句print(2.5, as_integer_ratio())的输出结果是 (5, 2)
  12. Python语句print(float,as_integer_ratio(1.5))的输出结果是 (3, 2)
  13. Python语句print(gcd(12, 16), divmod(7,3))的输出结果 4 (2, 1)
    gcd 最大公约数
    divmod(7,3) 7/3 7%3
  14. Python语句print((2-3j).conjugate() * complex(2,3))的输出结果是-5+12j
    (2+3j)* (2+3j) = 4 - 9 +12j = -5+12j
  15. Python语句print(sum((1,2,3)), sum((1,2,3), 10) )的输出结果是6 16
  16. Python语句print(abs(-3.2), abs(1-2j))的输出结果 3.2 2.23606797749979
    1-2j的绝对值其实就是这个向量的长度根号5
  17. Python的标准随机数生成器模块是 random
  18. 数学表达式
    math库
    以下为部分
    笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片
  19. 数学表达式
  20. Python的内置字典数据类型为 dict
  21. Python语句序列“x=True; y=False; z=False; print(x or y and z); "的运行结果是 True
  22. Python语句序列”x=0; y=True; print(x>=y and ‘A’<‘B’)“的运算结果是 False
  23. 在直角坐标系中,(x,y)是坐标系中任意点的位置,用x和y表示第一象限或者第二象限的Python表达式为 y>0 and x != 0
  24. 判断整数i能否同时被3和5整除的Python表法达式为 3 % i == 0 and 5 % i == 0
  25. 已知”a=3; b=5; c=6; d=True“, 则表达式not d or a >= 0 and a+c > b+3的值True
    False or True and True
    False or True
    True
  26. Python表达式 16 - 2 * 5 > 7 * 8 / 2 or “XYZ” != “xyz” and not(10-6> 18 / 2)的值为
    False or True and True
    False or True
    True
  27. 执行下列Pthon语句产生的结果是 True False
    m = True; n = False; p=True
    b1 = m | n ^ p
    b2 = n | m ^ p
    print(b1,b2)
    异或优先级比或高笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片
  28. Python语句print(chr(ord(‘B’)))的执行结果是 B
  29. Python语句print(“hello” ‘world’)的执行结果是 helloworld
第五章 一、选择题
  1. Python语句print(type([1, 2, 3,4))的运行结果是 D
    A. < class ‘tuple’>
    B. < class ‘dict’>
    C.
    D.
  2. Python 语句pintye((1,2, 3, 4))的运行结果是 A
    A. < class ‘tuple’>
    B. < class ‘dict’>
    C.
    D.
  3. Python 语句print(type({1, 2, 3, 4))的运行结果是 C
    A. < class ‘tuple’>
    B. < class ‘dict’>
    C.
    D. < class 'list>
  4. Pyhon 语句序列“a = (1,2,3, None,(),[],); print(len(a))的运行结果
    C
    A.4
    B.5
    C.6
    D.7
  5. Python 语句序列“nums=set([1,2,2,3,3,3,4]); print(len( nums))"的运行结果 C
    A.1
    B.2
    C.4
    D.7
  6. Python 语句序列“s= ‘hello’; print(s[1:3])"的运行结果是 D
    A.hel
    B.he
    C.ell
    D.el
  7. Python语句序列“s1=[4,5.6]; s2=s1; s1[1]=0; print(s2)”的运行结果是 C
    A. [4,5,6]
    B. [0,5,6]
    C. [4,0,6]
    D.以上都不能
  8. Pyhon语句序列"d=(1: ‘a’,2: ‘b’, c:‘3’); print(len(d))"的运行结果是 C
    A.0
    B.1
    C.3
    D.6
  9. Python语句序列“a = [1,2,3,None,(),[],]; print(len(a))"的运行结果是
    D
    A.语法错
    B.4
    C.5
    D.6
  10. Python语句prin( ‘\x48\x41!’)的运行结果是 D
    A. ‘\x48\x41!’
    B. 4841!
    C.4841
    D. HA!
    十六进制48 转为 十进制 4*16 + 8 = 72 即H
    同理41即A
  11. Python语句序列“s= {‘a’,l,‘b’,2); print(s[‘b’])”的运行结果是 A
    A.语法错
    B.‘b’
    C.1
    D.2
  12. Python 语句print(r"\nGood")的运行结果是 C
    A.新行和字符串Good
    B. r"\nGood"
    C. \nGood
    D.字符r、新行和字符串Good
二、填空题
  1. Python 语句序列"fruits = [‘apple’,‘banana’, ‘pear’]; print(fruits[-1][-1])”的运行结果是 r
  2. Python 语句序列“fruits =[‘apple’,‘banana’,‘pear’]; print(fruits.index('apple))"运行结果是 0
  3. Python语句序列"fruits=[ ‘apple’ ,‘banana’, ‘pear’]; print( ‘Apple’ in fruits)”的运行结果是 False
  4. Python语句print(sum(range(10)))的运行结果是 45
  5. Python 语句print(’%d%%%d’ % (3/2, 3%2)的运行结果是 1%1
    笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片
    必须是两个%
  6. Python语句序列”s1=[1,2,3,4]; s.append([5,6]); print(len(s))"的运行结果是 5
    [5,6] 一个元素
    s1=[1,2,3,4,[5,6]]
  7. Python语句序列"s1=[1,2,3,4]; s2 =[5,6,7]; print(len(s1+s2))"的运行结果是 7
  8. Python 语句序列"print(tuple(range(2)), list(range(2)))"的运行结果是(0,1) [0,1]
  9. Python 语句序列"print(tuple([1,2,3]), list([1,2,3]))"的运行结果是(1, 2, 3) [1, 2, 3]
  10. Python列表解析表达式[i for i in range(5) if i%2 != 0] 和 [i**2 for i in range(3)]的值分别为[1,3] [0,1,4]
  11. Python 语句"first, * middles, last = range(6)" 执行后,middles的值为[1,2,3,4]
    语句"first, second, third, * lasts = range(6)" 执行后,lasts的值为[3, 4, 5]
    语句“*firsts, last3, last2, last1 = range(6)" 执行后firsts的值为[0, 1, 2]
    以上结果均为list
    语句“first, *middles, last= sorted([86, 85, 99, 88,60, 95, 96])"执行后sum(middles)/len(middles)的值为90.0
    注意与可变参数区分
    用在变量的前面
    向函数传递参数,将变量中可迭代对象的元素拆解出来,作为独立的参数第传给函数

    笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片
  12. 在Python中设有 s = (‘a’,‘b’,‘c’,‘d’,‘e’)
    s[2]的值为 ‘c’
    s[2:4]的值为(‘c’,‘d’)
    s[:3]的值为(‘a’,‘b’,‘c’)
    s[1: :2]的值为(‘b’,‘d’)
    s[-2]的值为(‘d’)
    s[::-1]的值为(‘e’,‘d’,‘c’,‘b’,‘a’)
    s[-2:-1]的值为(‘d’,)
    s[-2:]的值为(‘d’,‘e’)
    s[-99:-5]的值为()
    s[-99:-3]的值为(‘a’,‘b’)
    s[::]的值为(‘a’,‘b’,‘c’,‘d’,‘e’)
    s[1:-1]的值为(‘b’,‘c’,‘d’)
  13. 在Python 中设有s=[1,2,3,4,5,6]
    max(s)值为 6
    min(s)值为 1
    语句序列“s[: 1]=[]; s[: 2]=‘a’; s[2: ]=‘b’; s[2:3]=[‘x’, ‘y’]; del s[: 1]"执行后,s值为[4, ‘x’, ‘y’]
    笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片
  14. 在Python中设有s=[‘a’, ‘b’],则语句序列“s. append([1,2]); s.extend(‘34’); s.extend([5,6]); s.insert(1,7); s. insert(10,8); s. pop(); s.remove(‘b’); s[3: ]=[]; s.reverse()"执行后,s 值为[[1, 2], 7, ‘a’]
    笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案
    文章图片
第八章 一、选择题
  1. Pytbon语句print(type(lambda:None))的输出结果是D
    A.
    B. < class ‘tuple’>
    C.
    D.
  2. Python语句序列“f = lambdax,y : x * y; f(12, 34)”的运行结果是D
    A.12
    B.22
    C.56
    D.408
  3. Pyhon语句序列"f1 = lambda x : x*2; f2 = lambda x: x** 2;
    print( f1(f((2)))的运行结果是D
    A. 2
    B.4
    C.6
    D.8
  4. 在Python中,若有def f1(p, ** p2): print(type(p2)),则f1(1, a=2)的运行结果是C
    A.
    B.
    C. < class ‘dict’>
    D. < class ‘list’>
    函数声明时,通过带*的参数向函数传递可变数量的实参
    *后的所有参数被收集为一个tuple
    **后的所有参数被收集为一个dict
  5. 【笔记|《Python程序设计与算法基础教程(第二版)》江红 余青松 课后选择题 课后填空题答案】在Pyhon中,若有def f1(a,b,c); print(a+b),则语句序列“nums=(1,2,3); f1(*nums)”的运行结果是C
    A.语法错
    B. 6
    C.3
    D. 1
二、填空题
  1. Python表达式eval(“5/2 + 5%2 + 5//2”) 的结果是 5.5
    eval() 函数用来执行一个字符串表达式,并返回表达式的值
    2.5 + 1 + 2
  2. 如果要为定义在函数外的全局变量赋值,可以使用global语句,表明变量是在外面定义的全局变量
  3. 变量按其作用域大致可以分为局部变量、全局变量和类成员变量
  4. 在Python的sys模块中,函数getrecursionlimit()setrecursionlimit()分别用于获取和设置最大递归次数
  5. 在Python中,使用内置函数locals()globals()可以查看并输出局部变量和全局变量列表

    推荐阅读