二级Python语言程序设计模拟2.docx
微信关注学链未来 领取更多免费习题 二级Python语言程序设计模拟2 一、单项选择题 1、关于算法的描述,以下选项中错误的是 A.算法是指解题方案的准确而完整的描述 B.算法具有可行性、确定性、有穷性的基本特征 C.算法的复杂度主要包括时间复杂度和数据复杂度 D.算法的基本要素包括数据对象的运算和操作及算法的控制结构 2、关于数据结构的描述,以下选项中正确的是 A.数据结构指相互有关联的数据元素的集合 B.数据的存储结构是指反映数据元素之间逻辑关系的数据结构 C.数据的逻辑结构有顺序、链接、索引等存储方式 D.数据结构不可以直观地用图形表示 3、在深度为7的满二叉树中,结点个数总共是 A.32 B.64 C.127 D.63 4、对长度为n的线性表进行顺序查找,在最坏的情况下所需要的比较次数是 A.n1 B.nn1 C.n-1 D.n 5、关于结构化程序设计方法原则的描述,以下选项中错误的是 A.自顶向下 B.逐步求精 C.多态继承 D.模块化 6、与信息隐蔽的概念直接相关的概念是 A.软件结构定义 B.模块独立性 C.模块类型划分 D.模块耦合度 7、关于软件工程的描述,以下选项中描述正确的是 A.软件工程是应用于计算机软件的定义、开发和维护的一整套方案、工具、文档和实践标准和工序 B.软件工程包括3要素结构化、模块化、面向对象 C.软件工程工具是完成软件工程项目的技术手段 D.软件工程方法支持软件的开发、管理、文档生成 8、在软件工程详细设计阶段,以下选项中不是详细设计工具的是 A.判断表 B.程序流程图 C.CSS D.PAL 9、以下选项中表示关系表中的每一横行的是 A.元组 B.属性 C.列 D.码 10、将E-R图转换为关系模式时,可以表示实体与联系的是 A.属性 B.关系 C.键 D.域 11、以下选项中Python用于异常处理结构中用来捕获特定类型异常的保留字是 A.while B.except C.do D.pass 12、以下选项中符合Python语言变量命名规则的是 A.Templist B.*i C.3_1 D.AI 13、关于赋值语句,以下选项中描述错误的是 A.在Python语言中,“”表示赋值,即将“”右侧的计算结果赋值给左侧变量,包含“”的语句称为赋值语句 B.在Python语言中,有一种赋值语句,可以同时给多个变量赋值 C.设x“alice“;y“kate“,执行“x,yy,x”可以实现变量x和y值的互换 D.设a10;b20,执行“a,ba,ab;printa,b”和“ab;bab;printa,b”之后,得到同样的输出结果10 30 14、关于函数,以下选项中描述错误的是 A.函数的定义为source B.函数的作用是将输入的字符串转为Python语句,并执行该语句 C.如果用户希望输入一个数字,并用程序对这个数字进行计算,可以采用<输入提示字符串>组合 D.执行“Hello“和执行“Hello“得到相同的结果 15、关于Python语言的特点,以下选项中描述错误的是 A.Python语言是脚本语言 B.Python语言是非开源语言 C.Python语言是跨平台语言 D.Python语言是多模型语言 16、关于Python数字类型,以下选项中描述错误的是 A.Python语言提供int、float、complex等数字类型 B.Python整数类型提供了4种进制表示十进制、二进制、八进制和十六进制 C.Python语言要求所有浮点数必须带有小数部分 D.Python语言中,复数类型中实数部分和虚数部分的数值都是浮点类型,复数的虚数部分通过后缀“C”或者“c”来表示 17、关于Python循环结构,以下选项中描述错误的是 A.Python通过for、while等保留字提供遍历循环和无限循环结构 B.遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range函数等 C.break用来跳出最内层for或者while循环,脱离该循环后程序从循环代码后继续执行 D.每个continue语句有能力跳出当前层次的循环 18、关于Python的全局变量和局部变量,以下选项中描述错误的是 A.全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效 B.局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用 C.使用global保留字声明简单数据类型变量后,该变量作为全局变量使用 D.简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放 19、关于Python的lambda函数,以下选项中描述错误的是 A.lambda用于定义简单的、能够在一行内表示的函数 B.可以使用lambda函数定义列表的排序原则 C.flambda x,yxy执行后,f的类型为数字类型 D.lambda函数将函数名作为函数结果返回 20、下面代码实现的功能描述的是 def factn if n0 return 1 else return n*factn-1 num“请输入一个整数“ printfactabsintnum A.接受用户输入的整数n,输出n的阶乘值 B.接受用户输入的整数n,判断n是否是素数并输出结论 C.接受用户输入的整数n,判断n是否是整数并输出结论 D.接受用户输入的整数n,判断n是否是水仙花数 21、执行如下代码 import time printtime.time 以下选项中描述错误的是 A.输出自1970年1月1日000000 AM以来的秒数 B.time库是Python的标准库 C.可使用time.ctime代替time.time,显示为更可读的形式 D.time.sleep5推迟调用线程的运行,单位为毫秒 22、执行后可以查看Python的版本的是 A.import sys printsys.version B.import sys printsys.Version C.import system printsystem.version D.import system printsystem.Version 23、关于Python的组合数据类型,以下选项中描述错误的是 A.Python组合数据类型能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易 B.组合数据类型可以分为3类序列类型、集合类型和映射类型 C.序列类型是二维元素向量,元素之间存在先后关系,通过序号访问 D.Python的str、tuple和list类型都属于序列类型 24、以下选项中,不是Python对文件的读操作方法的是 A.read B.readline C.readlines D.readtext 25、关于Python文件处理,以下选项中描述错误的是 A.Python能处理Excel文件 B.Python能处理JPG图像文件 C.Python不可以处理PDF文件 D.Python能处理CSV文件 26、以下选项中,不是Python对文件的打开模式的是 A.r B.w C.r D.c 27、关于数据组织的维度,以下选项中描述错误的是 A.数据组织存在维度,字典类型用于表示一维和二维数据 B.一维数据采用线性方式组织,对应于数学中的数组和集合等概念 C.二维数据采用表格方式组织,对应于数学中的矩阵 D.高维数据由键值对类型的数据构成,采用对象方式组织 28、Python数据分析方向的第三方库是 A.numpy B.pdfminer C.beautifulsoup4 D.time 29、Python机器学习方向的第三方库是 A.random B.PIL C.PyQt5 D.TensorFlow 30、Python Web开发方向的第三方库是 A.requests B.Django C.scipy D.pandas 31、下面代码的输出结果是 x0b1010 printx A.10 B.16 C.256 D.1024 32、下面代码的输出结果是 x10 y-12j printxy A.92j B.9 C.2j D.11 33、下面代码的输出结果是 x3.1415926 printroundx,2,roundx A.3.14 3 B.3 3.14 C.2 2 D.6.28 3 34、下面代码的输出结果是 for s in “HelloWortd“ if s“W“ break prints,end“ “ A.Helloorld B.Hello C.World D.HelloWorld 35、以下选项中,输出结果是False的是 A.5 is 5 B.5 is not 4 C.54 D.False0 36、下面代码的输出结果是 a1000000 b“-“ print“{0{2}{1},}\n{0{2}>{1},}\n{0{2}<{1},}“.ata,30,b A.----------1.000,000----------- ---------------------1,000,000 1,000,000--------------------- B.1,000,000--------------------- ---------------------1.000,000 ----------1,000.000----------- C.---------------------1,000,000 1,000,000--------------------- ----------1,000,000----------- D.---------------------1,000,000 ----------1,000,000----------- 1,000,000--------------------- 37、下面代码的输出结果是 s[“seashell“,“gold“,“pink“,“brown“,“purple“,“tomato“] prints[4] A.[purple,tomato] B.[purple] C.[seashell,gold,pink,brown] D.[gold,pink,brown,purple,tomato] 38、执行如下代码 import turtle as t def DrawCctCirclen t.penup t.goto0,-n t.pendown t.circlen for i in range20,80,20 DrawCctCirclei t.done 在Python Turtle Graphics中,绘制的图形是 A.太极 B.同切圆 C.同心圆 D.笛卡儿心形 39、给出如下代码 fname“请输入要打开的文件“ foopenfname,“r“ for line in fo.readlines printline fo.close 关于上述代码的描述,以下选项中错误的是 A.用户输入文件路径,以文本文件方式读入文件内容并逐行打印 B.通过fo.readlines方法将文件的全部内容读入一个字典fo C.通过fo.readlines方法将文件的全部内容读入一个列表fo D.上述代码可以优化为 fname“请输入要打开的文件“ foopenfname,“r“ for line in fo printline fo.close 40、能实现将一维数据写入CSV文件中的是 A.fname“请输入要写入的文件“ foopenfname,“w“ ls[“AAA“,“BBB“,“CCC“] fo.writelinesls for line in fo printline fo.close B.foopen“price2016bj.csv“,“w“ ls[AAA,BBB,CCC,DDD] fo.write“,“.joinls“\n“ fo.close C.fropen“price2016.csv“,“w“ ls[] for line in fo lineline.replace“\n“,““ ls.appendline.split“,“ printls fo.close D.foopen“price2016bj.csv“,“r“ ls[AAA,BBB,t CCC,DDD] fo.write“,“.joinls“\n“ fo.close 二、基本编程题 共15分 41、编写Python程序输出一个具有如下风格效果的文本,用作文本进度条样式,部分代码如下,填写空格处。 文本中左侧一段输出N的值,右侧一段根据N的值输出等号,等号个数为N与5的整除商的值,例如,当N等于10时,输出2个等号。 N10 N取值范围是0100,整数 print______ 42、以论语中一句话作为字符串变量s,补充程序,分别输出字符串s中汉字和标点符号的个数。 s“学而时习之,不亦说乎有朋自远方来,不亦乐乎人不知而不愠,不亦君子乎“ n0 汉字个数 m0 标点符号个数 ______在这里补充代码,可以多行 print“字符数为{},标点符号数为{}。“.atn,m 43、使用程序计算整数N到整数N100之间所有奇数的数值和,不包含N100,并将结果输出。整数N由用户给出,代码片段如下,补全代码。不判断输入异常。 N“请输入一个整数“ ______ 可以是多行代码 三、简单应用题 共25分 44、使用turtle库的turtle.fd函数和turtle.left函数绘制一个六边形,边长为200像素,效果如下图所示。 45、经常会有要求用户输入整数的计算需求,但用户未必一定输入整数。为了提高用户体验,编写get函数处理这样的情况。请补充如下代码,如果用户输入整数,则直接输出整数并退出,如果用户输入的不是整数,则要求用户重新输入,直至用户输入整数为止。 detf get ① 可以是多行代码 return ② 只能是单行代码 printgel 四、综合应用题 共20分 考生文件夹 天龙八部是著名作家金庸的代表作之一,历时4年创作完成。该作品气势磅礴,人物众多。这里给出一个天龙八部的网络版本,文件名为“天龙八部-网络版.txt”。 46、问题1请编写程序,对这个天龙八部文本中出现的汉字和标点符号进行统计,字符与出现次数之间用冒号分隔,输出保存到“天龙八部-汉字统计.txt”文件中,该文件要求采用CSV格式存储,参考格式如下注意,不统计空格和回车字符 天 100, 龙 110, 八 109, 部 10 略 47、问题2请编写程序,对天龙八部文本中出现的中文词语进行统计,采用jieba库分词,词语与出现次数之间用冒号分隔,输出保存到“天龙八部-词语统计.txt”文件中。参考格式如下注意,不统计任何标点符号 天龙 100, 八部 10 略 答案 一、单项选择题 1、C [解析] 算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,算法的工作量用其执行的基本运算次数来度量,而算法执行的基本运算次数是问题规模的函数。在同一个问题规模下,用平均性态和最坏情况复杂性来分析。一般情况下,用最坏情况复杂性来分析算法的时间复杂度。算法的空间复杂度是指执行这个算法所需要的内存空间。 2、A [解析] 数据结构指相互有关联的数据元素的集合,是反映数据元素之间关系的数据元素集合的表示,包括逻辑结构和存储结构。数据结构研究的3个方面①数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;②在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;③对各种数据结构进行的运算。 3、C [解析] 所谓满二叉树是指这样的二叉树除最后一层外,每一层上的所有结点都有两个子结点。深度为n的满二叉树有2n-1个结点。 4、D [解析] 顺序查找又称为顺序搜索,一般指在线性表中查找指定的元素,从线性表的第一个元素开始,依次将线性表中的元素与被查元素进行比较,若相等则表示找到即查找成功;若线性表中所有的元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素即查找失败。 5、C [解析] 继承是面向对象方法的一个重要特征,是使用已有的类定义作为基础建立新类的定义技术。继承是指能够直接获得已有的性质和特征,而不必重复定义它们。 6、B [解析] 信息隐蔽与模块独立性直接相关。信息隐蔽是指在一个模块内包含的信息,对于不需要这些信息的其他模块来说是不能访问的。 7、A [解析] 软件工程是应用于计算机软件的定义、开发和维护的一整套方案、工具、文档和实践标准和工序。软件工程包括3个要素,即方法、工具和过程。软件工程工具支撑软件的开发、管理和文档生成。软件工程过程支持软件开发各个环节的控制、管理。 8、C [解析] 在软件工程详细设计阶段中,常见的过程设计工具有程序流程图、N-S、PAD、HIPO、判定表、PDL伪码。CSS层叠样式表是一种用来表现HTML或者XML等文件样式的计算机语言。 9、A [解析] 元组表示关系表中的一行。在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。关系表中的每一行称为一个元组。 10、B [解析] 关系数据库逻辑设计的主要工作是将E-R图转换成指定DBMS中的关系模式。从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。 11、B [解析] except保留字用于异常处理结构中,用来捕获特定类型的异常。try-except语句可以支持多个except语句。 12、A [解析] Python变量名字的首字符不能为数字,变量名中不允许出现特殊符号*及。 13、D [解析] 得到不同的输出结果。执行结果如下 >>>a10 >>>b20 >>>a.ba.ab >>>printa,b 10 30 >>>a10 >>>b20 >>>ab >>>bab >>>printa,b 20 40 14、D [解析] 执行“Hello“获得NameError name Hello is not defined。 执行“Hello“获得Hello字符串。执行过程参考如下 >>>“Hello“ Trackbackmost recent call last File“<pyshell0>“,line 1,in<module> “Hello“ File“<string>“,line 1,in<module> NameErrorname Heltois not defined >>>“Hello“ Hello 15、B [解析] Python语言是开源语言,一定要记住哦 16、D [解析] Python语言中,复数类型中实数部分和虚数部分的数值都是浮点类型,复数的虚数部分通过后缀“J”或者“j”来表示。 17、D [解析] continue语句用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。 18、B [解析] 局部变量指在函数内部使用的变量,当函数退出时,变量将不存在。 19、C [解析] flambda x,Yxy执行后,f的类型为function类型,可使用typef获取。 20、A [解析] 代码定义了递归函数求N,完整功能是接受用户输入的整数N,输出N的阶乘值。 21、D [解析] time.sleep5推迟调用线程的运行,单位为秒。 22、A [解析] sys模块是Python的标准库中自带的一个模块,包含了很多函数方法和变量用来处理Python运行时配置及资源,实现与当前程序之外的系统环境交互。 23、C [解析] 序列类型是一维元素向量。 24、D [解析] readtext不是Python对文件的读操作方法。 25、C [解析] Python有很多第三方库可以操作PDF文件。 26、D [解析] Python对文件的打开模式中没有c这个模式。 27、A [解析] 数据组织存在维度,列表类型用于表示一维和二维数据。 28、A [解析] pdfminer和beautifulsoup4是Python文本处理方向的第三方库,time是标准库。 29、D [解析] PIL库是具有强大图像处理能力的第三方库,PyQt5是用户图形界面的第三方库,random是Python标准随机库。 30、B [解析] requests是网络爬虫方向的第三方库,scipy和pandas是数据分析方向的第三方库。 31、A [解析] 0b是整数类型二进制引导符号。 32、A [解析] 复数类型变量运算遵守复数运算规则。 33、A [解析] roundx[,ndigits]函数对x四舍五入,保留ndigits位小数。 34、B [解析] break结束当前循环,不再判断执行循环的条件。 35、D [解析] 关系表达式False0的结果为False。 36、A [解析] 熟练掌握字符串格式化的at方法的格式控制、槽顺序和参数顺序。、<、>表示居中对齐、左对齐、右对齐。 37、A [解析] 列表支持索引切片操作。 38、C [解析] 代码实现了绘制半径为20、40、60的同心圆。 39、B [解析] 通过fo.readlines方法将文件的全部内容读入一个列表fo。 40、B [解析] 对于Python列表变量保存的一维数据,可以用字符串的jion方法组成逗号分隔形式,再通过文件的write方法存储到CSV文件中,其中“,“.joinls生成一个新的字符串,它由字符“,”分隔列表ls中的元素形成。 二、基本编程题 41、N10 N取值范围是0100,整数 print“{>3}{}“.atN,““*N//5 [解析] 这是一个基本编程题,使用Python程序输出特定格式字符串,需要使用字符串的.at方法,格式输出如下。 N的输出格式是右对齐、3个字符、空格填充,槽模板字符串的设计为{>3}。等号输出与变量N有关,格式是左对齐、20个字符,可以先计算等号字符串,再输出,因此,模板字符串的设计为{},所输出字符串是““*N//5。 综上,该问题参考代码如下 N10N取值范围是0100,整数 print“{>3}{}“.atN,““*N//5 42、s“学而时习之,不亦说乎有朋自远方来,不亦乐乎人不知而不愠,不亦君子乎“ n0 汉字个数 m0 标点符号个数 ms.count,s.count nlens-m print“字符数为{},标点符号数为{}。“.atn,m [解析] 这是一个基本编程题,分别对中文字符及中文标点符号进行统计。由于不涉及单词,不需要分词,只需要统计字符即可。 对于字符串s,统计其中某个出现的字符使用.count方法,s.count,统计标点符号逗号,的个数。鉴于字符串s中只出现了逗号和问号字符,所以,m值是两个字符出现次数的和,即ms.count,s.count。 除去标点符号,其余字符是中文汉字字符,可以用字符串s的总长度减去m值获得字符个数。 综上,该问题参考代码如下 s“学而时习之,不亦说乎有朋自远方来,不亦乐乎人不知而不愠,不亦君子乎“ n0 汉字个数 m0 标点符号个数 ms.count,s.count nlens-m print“字符数为{},标点符号数为{}。“.atn,m 43、N“请输入一个整数“ s0 for i in rangeN,N100 if i21 si prints [解析] 这是一个基本编程题,考核整数求和的过程。 对于整数n,获得整数n到整数n100之间的所有整数可以使用rangen,n100,其中不包含n100。由于不确定n的奇偶性,需要使用i2方式判断。 该题目需要注意,给定程序中N是函数的赋值,实际上为字符串,进行range函数计算时,需要使用N将其变换成整数。 综上,该问题参考代码如下 N“请输入一个整数“ s0 for i in rangeN, N100 if i21 si prints 三、简单应用题 44、import turtle as t for i in range6 t.fd100 t.left60 [解析] 这是一个简单应用题,考核“海龟绘图体系”,绘制简单的六边形。 该问题可以采用两种思路解决第一,逐一绘制每条边,形成六边形;第二,鉴于六边形的规则性,采用循环方式绘制。 turtle库中fd函数绘制直线,left函数用来在当前行进方向上向左转向。对于六边形,每个内角为120,相比之前的边向左转向为60。 这里给出第二种思路的参考代码如下 import turtle as t for i in rang6 t.fd100 t.left60 45、def get try txt“请输入整数“ while txtinttxt txt“请输入整数“ except return get return txt printget [解析] 这是一个简单应用题,用来确保从用户处获得整数输入。 对用户输入合规性判断需要使用异常处理,采用保留字try-except,基本流程是在try部分获得用户输入,并判断用户输入是否为整数,如果不是,循环获取用户输入,如果出现异常,再次调用本函数。 由于函数返回字符串类型,在判断字符串是否为整数时,需要使用函数。鉴于输入可能为任意字符,调用函数可能产生异常。例如,用户输入ahc,函数返回“abe“,经过函数返回abc,则可能报错,需要异常处理。 判断一个字符串txt是否为整数样式字符串,可以采用txtinttxt来实现,采用函数去掉其两侧字符,与通过int函数转换的结果相比,只有txt为整数值字符串时,结果才能一致。 综上,该问题参考代码如下 def get try txt“请输入整数“ while txtinttxt txt“请输入整数“ except return get return txt printget 四、综合应用题 46、答案如下 fiopen“天龙八部-网络版.txt“,“r“,encodingutf-8 foopen“天龙八部-汉字统计.txt“,“w“,encodingutf-8 txtfi.read d{} for c in txt d[c]d.getc,01 del d[“] del d[\n] ls[] for key in d ls.append“{}{}“.atkey,d[key] fo.write“,“.joinls fi.close fo.close [解析] 这是一个综合应用题,考核对文本文件中字符和单词的统计能力。 问题1统计网络下载的“天龙八部-网络版.txt”中各字符出现次数,采用“字符次数”方式表示,以CSV方式存储至“天龙八部-汉字统计.txt”。读写文件分别采用open函数的”r”和”w”模式。 在读入文件时,可以增加参数encoding“utf-8“,指定程序采用utf-8编码打开文件。文件编码过于复杂,在等级考试中并未涉及,这里,建议对编码的理解使用如下两条规则第一,如果一个文本文件从网络获得,增加encoding参数,指定编码方式打开;第二,如果Python程序生成了一个文件,并再次打开,则不需要指定encoding参数。 打开文件后,可以一次性读入文件内容至变量txt中,采用遍历循环逐一遍历txt中每个字符,并利用字典将每个字符的出现次数计入“字符次数”键值对表示中,采用代码如下 d{} for c in txt d[c]d.getc,01 所有字符统计后,去掉空格和回车\n对应统计次数,采用del删除字典d中对应项。再遍历字典d,将其写入列表ls,列表每项为“字符次数”样式字符串。最后,使用字符串.join方法,将列表ls中所有项以逗号分隔形式整合并写入输出文件。 综上,问题1的全部代码含注释如下 fiopen“天龙八部-网络版.txt“,“r“,encodingutf-8 foopen“天龙八部-汉字统计.txt“,“w“,encodingutf-8 txtfi.read d{} for c in txt 遍历循环,统计各出现字符及次数 d[c]d.getc,01 del d[“] 删除空格字符对应的出现次数 del d[\n] 删除回车字符对应的出现次数 ls[] for key in d 遍历字典,将字典各项组织后变成列表的元素 ls.append“{}{}“.atkey,d[key] fo.write“,“.joinls fi.close fo.close 问题2与问题1类似,只不过统计单元由字符变为中文词语,这需要采用