Python测试题5
单项选择题
点击选项选择正确答案,每题有且仅有一个正确答案
1.关于二叉树的遍历,以下选项中描述错误的是
A.二叉树的遍历是指不重复地访问二叉树中的所有结点
B.后序遍历二叉树的过程是一个递归的过程
C.前序遍历是先遍历左子树,然后访问根结点,最后遍历右子树
D.二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历
2.关于二叉树的描述,以下选项中错误的是
A.二叉树是一种非线性结构
B.二叉树具有两个特点:非空二叉树只有一个根结点;每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树
C.在任意一棵二叉树中,度为0的结点(叶子结点)比度为2的结点多一个
D.深度为m的二叉树最多有2的m次幂个结点
3.关于查找技术的描述,以下选项中错误的是
A.查找是指在一个给定的数据结构中查找某个特定的元素
B.二分查找只适用于顺序存储的有序表
C.如果采用链式存储结构的有序线性表,只能用顺序查找
D.顺序查找的效率很高
4.关于排序技术的描述,以下选项中错误的是
A.选择排序法在最坏的情况下需要比较n(n–1)/2次
B.简单插入排序在最坏的情况下需要比较n的1.5幂 次
C.冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序
D.快速排序法比冒泡排序法的速度快
5. 关于面向对象的程序设计,以下选项中描述错误的是
A.面向对象方法与人类习惯的思维方法一致
B.Python 3.x 解释器内部采用完全面向对象的方式实现
C.面向对象方法可重用性好
D.用面向对象方法开发的软件不容易理解
6. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是
A.概要设计
B.可行性分析
C.详细设计
D.需求设计
7. 以下选项中,用于检测软件产品是否符合需求定义的是
A.验证测试
B.确认测试
C.集成测试
D.系统测试
8.在PFD图中用箭头表示
A.组成关系
B.数据流
C.控制流
D.调用关系
9.关于软件调试方法,以下选项中描述错误的是
A.软件调试的关键在于推断程序内部的错误位置及原因
B.软件调试的主要方法有强行排错法、回溯法、原因排除法等
C.软件调试的目的是发现错误
D.软件调试可以分为静态调试和动态调试
10. 关于数据库设计,以下选项中描述错误的是
A.数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境设计出数据模式
B.数据库设计可以采用生命周期法
C.数据库设计的四个阶段按顺序为概念设计、需求分析、逻辑设计、物理设计
D.数据库设计是数据库应用的核心
11. 以下选项中值为False的是
A.'abcd' <'ad'
B. 'abc' <'abcd'
C.'Hello' >'hello'
D.' ' <'a'
12. Python语言中用来定义函数的关键字是
A.define
B.return
C.def
D.function
13. 以下选项中,对文件的描述错误的是
A.文件是一个存储在辅助存储器上的数据序列
B.文件中可以包含任何数据内容
C.文本文件不能用二进制文件方式读入
D.文本文件和二进制文件都是文件
14. ls = [3.5, "Python", [10, "LIST"], 3.6],ls[2][ –1][1]的运行结果是
A.I
B.L
C.Y
D.P
15.以下用于绘制弧形的函数是
A.turtle.fd()
B.turtle.circle()
C.turtle.seth()
D.turtle.right()
16. 对于turtle绘图中颜色值的表示,以下选项中错误的是
A.“grey”
B.BEBEBE
C.#BEBEBE
D.(190, 190, 190)
17.以下选项中不属于组合数据类型的是
A.序列类型
B.映射类型
C.变体类型
D字典类型
18.关于random库,以下选项中描述错误的是
A.设定相同种子,每次调用随机函数生成的随机数相同
B.生成随机数之前必须要指定随机数种子
C.通过import random可以引入random随机库
D.通过from random import *可以引入random随机库
19.关于函数的可变参数,可变参数*args传入函数时存储的类型是
A.dict
B.tuple
C.list
D.set
20. 关于局部变量和全局变量,以下选项中描述错误的是
A.函数运算结束后,局部变量不会被释放
B.局部变量是函数内部的占位符,与全局变量可能重名但不同
C.局部变量为组合数据类型且未创建,等同于全局变量
D.局部变量和全局变量是不同的变量,但可以使用global保留字在函数内部使用全局变量
21.下面代码的输出结果是
ls = ["F","f"] def fun(a): ls.append(a) return fun("C") print(ls)
A.['C']
B.出错
C.['F', 'f', 'C']
D.['F', 'f']
22.关于函数作用的描述,以下选项中错误的是
A.降低编程复杂度
B.增强代码的可读性
C.复用代码
D.提高代码执行速度
23. 假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是
A.参数是list类型时,改变原参数的值
B.参数是int类型时,不改变原参数的值
C.参数的值是否改变与函数中对变量的操作有关,与参数类型无关
D.参数是组合类型(可变对象)时,改变原参数的值
24. 关于形参和实参的描述,以下选项中正确的是
A.参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参
B.函数定义中参数列表里面的参数是实际参数,简称实参
C.程序在调用时,将形参复制给函数的实参
D.函数调用时,实参默认采用按照位置顺序的方式传递给函数,Python也提供了按照形参名称输入实参的方式
25.以下选项中,正确地描述了浮点数0.0和整数0相同性的是
A.它们具有相同的数据类型
B.它们使用相同的计算机指令处理方法
C.它们使用相同的硬件执行单元
D.它们具有相同的值
26.关于random.uniform(a,b)的作用描述,以下选项中正确的是
A.生成一个(a, b)之间的随机数
B.生成一个[a, b]之间的随机小数
C.生成一个均值为a,方差为b的正态分布
D.生成一个[a, b]之间的随机整数
27. 关于Python语句P = –P,以下选项中描述正确的是
A.P和P的绝对值相等
B..P的值为0
C.P和P的负数相等
D.给P赋值为它的负数
28. 以下选项中,用于文本处理方向的第三方库是
A.matplotlib
B.pdfminer
C.mayavi
D.TVTK
29. 以下选项中,用于机器学习方向的第三方库是
A.TensorFlow
B.SnowNLP
C.loso
D.jieba
30. 以下选项中,用于Web开发方向的第三方库是
A.Django
B.Pygame
C.Panda3D
D.cocos2d
31.下面代码的输出结果是
x = 0x0101 print(x)
A.65
B.101
C.5
D.257
32.下面代码的输出结果是
sum = 1.0 for num in range(1,4): sum+=num print(sum)
A.7
B.7.0
C.1.0
D.6
33.下面代码的输出结果是
a = 4.2e–1 b = 1.3e2 print(a+b)
A.5.5e3
B.130.042
C.130.42
D.5.5e31
34.下面代码的输出结果是
name = "Python语言程序设计" print(name[2: –2])
A.thon语言程序
B.ython语言程序设
C.thon语言程序设
D.ython语言程序
35.下面代码的输出结果是
weekstr = "星期一星期二星期三星期四星期五星期六星期日" weekid = 3 print(weekstr[weekid*3: weekid*3+3])
A.星期四
B.星期二
C.星期一
D.星期三
36.下面代码的输出结果是
a = [5,1,3,4] print(sorted(a,reverse = True))
A.[4, 3, 1, 5]
B.[5, 1, 3, 4]
C.[5, 4, 3, 1]
D.[1, 3, 4, 5]
37.下面代码的输出结果是
for s in "abc": for i in range(3): print (s,end="") if s=="c": break
A.aaabbbccc
B.aaabbbc
C.aaabccc
D.abbbccc
38.下面代码的输出结果是
for i in range(10): if i%2==0: continue else: print(i, end=",")
A.2,4,6,8,
B.1,3,5,7,9,
C.0,2,4,6,8,10,
D.0,2,4,6,8,
39.下面代码的输出结果是
ls = list(range(1,4)) print(ls)
A.[0,1,2,3]
B.[1,2,3]
C.{0,1,2,3}
D.{1,2,3}
40.下面代码的输出结果是
def change(a,b): a = 10 b += a a = 4 b = 5 change(a,b) print(a,b)
A.4 15
B.4 5
C.10 15
D.10 5
基本操作题
1.编写程序,从键盘上获得用户连续输入且用逗号分隔的若干个数字(不必以逗号结尾),计算所有输入数字的和并输出,给出代码提示如下。
n = input() nums = ____①____ s = 0 for i in nums: ____②____ print(s)
输入输出示例
输入 输出 1,2,3,4 10
2.编写程序,获得用户输入的数值 M 和 N,求 M 和 N 的最大公约数。提示代码如下。
def GreatCommonDivisor(a,b): if b > a: a,b = b,a r = 1 while r != 0: ____①____ a = b b = r return a m = eval(input()) n = eval(input()) print(____②____)
3.time 是Python的标准库,能够进行计时的功能。使用time.time()能够获取当前的时间戳,是一个浮点数,例如下面的代码:
import time t = time.time() print(t)
就能输出一个如下格式的浮点数,表示自从1970年1月1日0点0分0秒起到现在的秒数:
1567698237.9764822
请填写编程模板里的代码中的空行,使得程序输出一段循环代码的执行时间。
import ___(1)____ s = 0 t1 = time.time() for i in range(100000): s += i t2 = ____(2)___ print('the time cost is {:.2f} second'.format(____(3)___))
简单应用题
4.使用 turtle 库的 turtle.circle() 函数、turtle.seth() 函数绘制一个四瓣花图形,效果如下图所示。请结合程序整体框架,补充横线处代码,从左上角花瓣开始,逆时针作画。
import turtle as t for i in range(____①____): t.seth(____②____) t.circle(200, 90) t.seth(____③____) t.circle(200, 90)
5.编写程序,实现将列表 ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141] 中的素数去除,并输出去除素数后列表 ls 的元素个数。请结合程序整体框架,补充横线处代码。
def is_prime(n): ____①____ #此处可为多行函数定义代码 ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141] for i in ls.copy(): if is_prime(i) == True: ____②____ #此处为一行代码 print(len(ls))
综合应用题
6.二千多年前希腊的天文学家希巴克斯命名十二星座,它们是水瓶座、双鱼座、白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座。给出一个CSV文件(PY301-SunSign.csv),内容示例如下:
序号,星座,开始月日,结束月日,Unicode 1,水瓶座,120,218,9810 2,双鱼座,219,320,9811 3,白羊座,321,419,9800 4,金牛座,420,520,9801 5,双子座,521,621,9802 …(略)
以第1行为例,120表示1月20日,218表示2月18日,9810是Unicode码。
问题:在P301-1.py文件中修改代码,读入CSV文件中数据,获得用户输入。根据用户输入的星座名称,输出此星座的出生日期范围。
参考输入和输出示例格式如下:
请输入星座中文名称(例如, 双子座): 双子座 双子座的生日位于521-621之间
CSV文件及python文件下载地址: 链接: https://pan.baidu.com/s/1n_ssdd7LfOXn9dIMIOOi7g 提取码: seiu