安徽省安徽金安区木厂职业中学2023-2024学年高二下学期期末《python程序设计》试卷及答案

标签:
普通文字版
2024-08-03
| 28页
| 150人阅读
| 1人下载

内容正文:

安徽金安区木厂职业中学2024学年期末《python程序设计》试卷及答案 (本题库包括五类题型:一、填空题。二、判断题。三、选择题。四、程序分析题。五程序设计题。) 一、填空题:(每空1分,x小题,共计 分) 1、Python的注释可以用_______ 来做行注释,也可以用___________ 来做文档注释。Key:#,三重双引号 2、使用___________函数可以查看变量的数据类型。(key:type()) 3、若a=99,则type(a)的值=_______________。Key:int。注:写出int即可。 4、与其他编程语言不同的是,python的代码块是以__________来表示的。 Key:缩进 考核知识点:数据类型。 5、当布尔值参与算数运算时,布尔值True会被当做________,False会被当做_________。Key:1,0。 6、通过input()函数获取一个成绩的整数值,语句是score=_____________________。 (int)(input(“请输入成绩值:”))(注:int转义必须要有,input函数中的提示语可随意。) 7、语句print(complex(3,4))的执行结果是:_________________________。Key:(3+4j)注:没写括号也给分 考核知识点:运算符和表达式。 8、若a=3,b=2,则a*b= __________,a**b=___________。Key:6,9。 9、位运算中,8>>2的结果为__________,2<<3的结果为__________。Key:2,16. 难10、若a=10,b=20,c=True,d=False,则a and b的值=_________,a or d的值=_________,c and a的值=_________,d or a的值=_________。Key:20,10,True,False 11、在执行了from random import randint语句后,要随机得到1、2、3、4中的一个数,随机函数应写为:_____________________。Key:randint(1,4),或random.randint(1,4) 12、使用______________方法可以在列表的指定位置添加元素。Key:insert() 13、使用______________、______________或______________方法可以删除列表或列表元素。Key: del,pop,remove 14、若list1=[1,2,3], list2=[4,5,6],则实现结果[1, 2, 3, [4, 5, 6]]所需的语句是:_____________________,实现结果[1, 2, 3,4, 5, 6]所需的语句是:_____________________。Key:list1.append(list2),list1.extend(list2) 15、使用__________________方法可以计算字典中键值对的个数。Key:len 16、在字典的删除操作中,___________方法用于删除字典或元素,___________方法只是单纯的清空字典中数据。Key:del,clear 17、Python的变量作用域共有四种,分别是________、________、________和________。Key:L,E,G,B(或Local,Enclosing,Global,Built_in) 18、按键字________用来在函数或其他局部作用域中使用全局变量,而关键字________可以用来在一个嵌套的函数中修改嵌套作用域中的变量。Key:global,nonlocal 19、以下语句: from functools import reduce func=lambda x,y:x+y result=reduce(func,[1,2,3,4,5]) 执行后的结果是:____________________。Key:15 20、在自定义的方法中,第一个参数永远是__________________。Key:self 21、将数值99定义到只有一个元素的新元组,表示为_____________。Key:(99,)(注:必须有逗号,否则为错,不得分。) 22、面向对象的三大特征是___________、___________和___________。Key:封装、继承、多态 23、父类的_________属性和_________方法是不会被子类继承的,更不能被子类访问。Key:私有,私有 24、类方法用___________修饰器来标识,静态方法用___________修饰器来标识。Key:@classmethod,@staticmethod 25、执行语句import calendar后,用calendar来表示2018年11月的月历,则calendar= ___________ 。key:calendar.month(2018, 11) 26、异常捕获和处理的语句可以检测出________语句块中的错误,并让________语句捕获这些异常信息并进行处理。如果不捕获这些异常,程序将被非正常结束。Key:try,except 27、Python使用________来抛出一个异常,基本上与Java中的throws关键字相同。Key:raise 二、选择题:(每题1分,x题,共计x分) 1.下列选项中,不属于Python语言特点的是 (C) A.简单易学 B.开源 C.面向过程 D.可移植性 2.下列领域中,使用 Python可以实现的是 (ABCD) (多选) A.web开发 B.操作系统管理 C.科学计算 D.游戏 3.下列关于 Python Python3.x 的说法,正确的是 (B) A. Python3.x 使用print语句输出数据。 B.Python3.x 默认使用的编码是UTf-8。 C. Python2.x 和Python3.x使用//进行除法运算的结果不一致 D. Python3.x 版本的异常可以直接被抛出 4.下列关于 Python的说法中,错误的是 (C) A. Python是从ABC发展起来的 B. Python是一门高级的计算机语言 C.Python是一门只面向对象的语言 D.Python是一种代表简单主义思想的语言 5.下列关于 IPython的说法,错误的是 (D) A. IPython集成了交互式 Python的很多优点 B. IPython的性能远远优于标准的Python的 shell C. IPython支持变量自动补全,自动收缩 D.与标准的 Python相比,IPython缺少内置的功能和函数 1. 下列选项中(D)的布尔值不是False。 A. None B. 0 C. () D. 1 2.假设a=9, b=2,那么下列运算中,错误的是(D) A. a+b的值是11 B. a//b的值是4 C. a%b的值是1 D. a**b的值是18 3.下列标识符中,合法的是(AD) A. helloWorld B. 2ndObj C. Hello#world D. _helloworld 4.下列符号中,表示Python中单行注释的是(A) A. # B. // C. <!-- --> D. "“ " 5.下列选项中,符合Python命名规范的标识符是(C) A. user_Passwd B. if C. _name D. setup.exe 6.下列选项中,Python不支持的数据类型有 (B) A. int B. char C. float D. dictionary 7.下列表达式中,返回True的是(B)。 A. a=2 b=2 a=b B. 3>2>1 C. True and False D. 2 !=2 8. 下列语句中,(B)在Python中是非法的。 A. x = y = z=1 B. x = (y = z + 1) C. x, y = y, x D. x += y 9. 下列关于Python中的复数,说法错误的是 (C) A. 表示复数的语法是 real + image j B. 实部和虚部都是浮点数 C. 虚部必须后缀 j,且必须是小写 D. —个复数必须有表示虚部的实数和 j 10. 下列选项中,幂运算的符号为 (D)。 A. * B. ++ C. % D. ** 1.下列选项中,会输出1,2,3三个数字的是 (C) A. for i in range(3): print(i) B for i in range(2): print(i+1) C a_list=[0,1,2] for i in a_list: print(i+1) D i=1 whilei<3: print(i) i=i+1 2.阅读下面的代码: sum=0 for i in range(100): if(i810): continue sum- sum+i print(sum) 上述程序的执行结果是 (C) 0+10+20+30+....+90 A.5050 B.4950 C.450 D.45 3.已知x=10,y=20,z=30;以下语句执行后x,y,z的值是(C) if x<y: z=x x=y y=z A.10,20,30 B.10,20,20 C.20,10,10 D.20,10,30 4.有一个函数关系表如下所示 x y x<0 x-1 x=0 x x>0 x+1 下面程序段中,能正确表示上面关系的是 (C). A y=x+1 if x>=0: if x==0: y=x else: y=x-1; B. y=x-1 if x!=0: if x>0: y=x+1 else: y=x C. if x<=0: if x<0: y=x-1 else: y-x else: y=x+1 D. y=x if x<=0: if x<0: y=x-1 else: y=x+1 5.下列 Python语句正确的是 (D) 诞此用 A. min =x if x<y else y B.max=x>y?x:y C.if(x>y) print x D. while True: pass 1.当需要在字符串中使用特殊字符时, Python使用(A)作为转义字符。 A.\ B./ C.# D.% 2.下列数据中,不属于字符串的是(D) A. ab' B.""perfect"" C."52wo" D.abc 3.使用(B)符号对浮点类型的数据进行格式化。 A.%c B.%f C.%d D.%s 4.字串'HiAndy'中,字符A对应的下标位置为(C)。 A.1 B.2 C.3 D.4 5.下列方法中,能够返回某个子串在字符串中出现次数的是(C) A.length B.index C.count D.find 6.下列方法中,能够让所有单词的首字母变成大写的方法是(B) A. capitalize B. title C.upper D.ljust 7.字符串的 strip方法的作用是(A) A.删除字符串头尾指定的字符 B.删除字符串末尾的指定字符 C.删除字符串头部的指定字符 D.通过指定分隔符对字符串切片 1.关于列表的说法,描述错误的是(D) A.list是一个有序集合,没有固定大小 B.list可以存放任意类型的元素 C.使用list时,其下标可以是负数 D.list是不可变的数据类型 2.以下程序的输出结果是 (B) (提示:ord('a')==97) list_demo=[1,2,3,4,5,'a','b'] print(list_demo[1],list_demo[5]) A.1 5 B.2 a C.1 97 D.2 97 3.执行下面的操作后, list_two的值为(C) list_one=[4,5,6] list_two=list_one list_one[2]=3 A.[4,5,6] B.[4,3,6] C.[4,5,3] D.A,B,C都不正确 4.阅读下面的程序: list_demo=[1,2,1,3] nums=set(list_demo) for i in nums: print(i,end="") 程序执行的结果为 (D) set:集合(元素的唯一性,无序性...) A.1213 B.213 C.321 D.123 5.下列选项中,正确定义了一个字典的是(D) A.a=['a',1,'b',2,'c',3] B.b=('a',1,'b',2,'c',3) C.c={'a',1,'b',2,'c',3} D.d={'a':1,'b':2,'c':3} 6.下列选项中,不能使用下标运算的是(C) 字典也不能 A.列表(list) B.元组(tuple) C.集合(set) D.字符串(str) 7.下列程序执行后输出的结果为(A) x='abc' y=x y=100 print(x) A."abc” B.100 C.97,98,99 D.以上三项均是错误的 8.下列删除列表中最后一个元素的函数是(B) A.del B.pop C.remove D. cut 9.下列函数中,用于返回元组中元素最小值的是(C) A.len B.max C.min D.tuple 1.阅读下面的程序: def func(): print(x) x=100 func() 执行上述语句后,输出的结果为 (C) A.0 B.100 C.程序出现异常 D.程序编译失败 2.下面关于函数的说法,错误的是 (D) A.函数可以减少代码的重复,使得程序更加模块化 B.在不同的函数中可以使用相同名字的变量 C.调用函数时,传入参数的顺序和函数定义时的顺序可以不同 D.函数体中如果没有 return语句,也会返回一个None值 3.下列有关函数的说法中,正确的是 ( C ) A.函数的定义必须在程序的开头 B.函数定义后,其中的程序就可以自动执行 C.函数定义后需要调用才会执行 D.函数体与关键字det必须左对齐 4.下列函数调用使用的参数传递方式是(A) result=sum(numl, num2, num3) A.位置绑定 B.关键字绑定 C.变量类型绑定 D.变量名称绑定 5.使用(C)关键字创建自定义函数。 A.function B.func C.def D. procedure 6.使用(D)关键字声明匿名函数。 A.function B.func C.def D. lambda 1.关于装饰器,下列说法错误的是(B) A.装饰器是一个包裹函数 B.装饰器只能有一个参数 多个参数也可以 C.通过在函数定义的前面加上@符号和装饰器名,使得装饰器函数生效 D.如果装饰器带有参数,则必须在装饰函数的外层再嵌套一层函数。 2.下列函数中,用于使用函数对指定序列进行过滤的是(C) A.map函数 B. select函数 C. filter函数 D. reduce函数 3.下列选项中,不能作为 filter函数参数的是(D) A.列表 B.元组 C.字符串 D.整数 4.阅读下面一段程序: def foo(): a=1 def bar(): a=a+1 return a return bar print(foo()()) 上述程序执行的结果为(A) A.程序出现异常 B.2 C.1 D.没有输出结果 1.打开一个已有文件,然后在文件末尾添加信息,正确的打开方式为 (C)。 A.'r' B.'w' C.'a' D.'w+' 2.假设文件不存在,如果使用open方法打开文件会报错,那么该文件的打开方式是下列哪种模式? (A) A.'r' B.'w' C.'a' D.'w+' 3.假设fle是文本文件对象,下列选项中,哪个用于读取一行内容? (C) A.file.read() B.file.read(200) C.file. readline() D.file. readlines() 4.下列方法中,用于向文件中写内容的是 (B) A.open B.write C.close D.read 5.下列方法中,用于获取当前目录的是 (C) A.open B.write C.Getcwd D.read 6.下列语句打开文件的位置应该在 (D) f=open('itheima.txt','w') A.C盘根目录下 B.D盘根目录下 C.Python安装目录下 D.与源文件在相同的目录下 7.若文本文件abc.txt中的内容如下: abcdef 阅读下面的程序: file=open("abc.txt","r") s=file. readline() s1=list(s) print(s1) 上述程序执行的结果为(C) A. ['abcdef'] B.['abcdefu '] C.['a','b','c','d','e','f'] D.['a','b','c','d','e',' '] 1.下列程序运行以后,会产生如下 (B)异常。 a A. SyntaxError B. NameError C.IndexError D.KeyError 2.下列错误信息中,(A)是异常对象的名字。 Traceback (most recent call last): File"D:/PythonCode/Chapter08/异常.py", line 1, in <module> 1/0 ZeroDivisionError: division by zero A. ZeroDivisionError B.NameError C.IndexError D.KeyError 3.下列选项中,(C)是唯一不在运行时发生的异常。 A. ZeroDivisionError B.NameError C. SyntaxError 语法错误 D.KeyError 4.当try语句中没有任何错误信息时,一定不会执行(D)语句。 A.try B. else C.finally D.except 5.在完整的异常语句中,语句出现的顺序正确的是 (A) A.try→ except→else→finally B.try→else→except→finally C.try→except→finally→else D.try→else→else→except 6.下列选项中,用于触发异常的是 (C) A.try B.catch C.raise D.except 7.关于抛出异常的说法中,描述错误的是(D) A.当 raise指定异常的类名时,会隐式地创建异常类的实例 B.显式地创建异常类实例,可以使用 raise直接引发 C.不带参数的 raise语句,只能引发刚刚发生过的异常 D.使用 raise抛出异常时,无法指定描述信息 1.下列关键字中,用来引入模块的是(C) A. include B.from C. import D.continue 2.关于引入模块的方式,错误的是(D) A. import math C. from math import. B. from fib import fibonacci D. from* import fib 3.关于name的说法,下列描述错误的是 (A) A.它是Python提供的一个方法 B.每个模块内部都有一个__name__属性 C.当它的值为'__main__'时,表示模块自身在运行 D.当它的值不为'__main__'时,表示模块被引用 1.关于面向过程和面向对象,下列说法错误的是 (B)。 A.面向过程和面向对象都是解决问题的一种思路 B.面向过程是基于面向对象的 C.面向过程强调的是解决问题的步骤 D.面向对象强调的是解决问题的对象 2.关于类和对象的关系,下列描述正确的是 (D)。 A.类是面向对象的核心 B.类是现实中事物的个体 C.对象是根据类创建的,并且一个类只能对应一个对象 D.对象描述的是现实的个体,它是类的实例 3.构造方法的作用是 (C)。 A.一般成员方法 B.类的初始化 C.对象的初始化 D.对象的建立 4.构造方法是类的一个特殊方法, Python中它的名称为(C)。 A.与类同名 B._construct C.__init__ D.__init__ 5. Python类中包含一个特殊的变量(A),它表示当前对象自身,可以访问类的成员。 A. self B.me C.this D.与类同名 6.下列选项中,符合类的命名规范的是 (A) A. HolidayResort B. Holiday Resort C. holidayResort D. holidayresort 7. Python中用于释放类占用资源的方法是 (B) A.__init__ B.del C._del D.delete 1. Python中定义私有属性的方法是 (D) A.使用 private关键字 B.使用 public关键字 C.使用__XX__定义属性名 D.使用__XX定义属性名 2.下列选项中,不属于面向对象程序设计的三个特征的是 (A) A.抽象 B.封装 C.继承 D.多态 3.以下C类继承A类和B类的格式中,正确的是(C) A. class C A,B: B. class C(A:B): C. class C(A,B): D. class C A and B: 4.下列选项中,与 class Person等价的是(C) A. class Person(Object) B. class Person(Animal) C. class Person( object) D. class Person:object 5.下列关于类属性和实例属性的说法中,描述正确的是(B) A.类属性既可以显式定义,又能在方法中定义 B.公有类属性可以通过类和类的实例访问 C.通过类可以获取实例属性的值 D.类的实例只能获取实例属性的值 6.下列选项中,用于标识为静态方法的是(C) A. @classmethod B. @instancemethod C. @staticmethod D. @privatemethod 7.下列方法中,不可以使用类名访问的是(A) A.实例方法 B.类方法 C.静态方法 D.以上3项都不符合 三、判断题:(每题1分,x题,共计x分) 1、定义函数时,默认参数也可以接收传入的新值。( )Key:t 2、定义函数时,带有默认值得参数一定要位于参数列表的最后。Key:t 定义函数时,带有默认值得参数必须位于参数列表的第一位。Key:f 3、Python是严格区分大小写的。Key:t Python的标识符不区分大小写。Key:F 4、Python不支持自增(++)和自减(—)运算。Key:t Python不支持左自增(++)和左自减(—)运算,但支持右自增(++)和右自减(—)运算。Key:f 5、Python中可以很方便的使用switch-case语句来实现多分支结构。Key:F 6、与字符串、列表、元组一样,字典也支持使用切片操作。Key:f 7、在Python的序列结构中,元素的索引是从1开始的。Key:f 8、元组与列表的区别不仅仅在于括号的不同,还在于元组的元素是不能修改的。Key:t 9、元组和字典的元素都是可以修改的。Key:f 10、使用list01.sort()方法可将list01列表的元素由小到大排列。Key:t 使用list01.sort(reverse=True)方法可将list01列表的元素由小到大排列。Key:f 11、lambda表达式的冒号后边可以用多个表达式或语句构成模块来执行。Key:false 12、lambda定义的函数中只有一个表达式,通常只返回一个对象或表达式。Key:t 13、定义函数时,可以使用通配符?和??来声明不定长参数。Key:f 定义函数时,可以使用通配符*和**来声明不定长参数。Key:t 14、使用open方法打开文件时若只带一个文件名做参数,则文件会以默认的只读方式打开。Key:t 15、写文件时,若要写入的文件不存在,系统会根据open方法自动创建并写入。Key:t 16、以w模式写文件时,若要写入的文件存在,系统会清空文件原有内容后再写入新数据。Key:t 以w模式写文件时,若要写入的文件存在,系统会在原有内容后接着写入新数据。Key:f 17、readline方法是将文件的内容一次性读取,并返回一个列表。Key:f readlins方法是将文件的内容一行一行的读取。Key:f 18、python的继承和java一样,只允许单继承。Key:f 19、子类重写父类的方法时,方法名和参数列表可以不一样。Key:f 20、子类能够继承父类的一切属性和方法。Key:f 21、类方法和静态方法都可以用类名直接访问。Key:t 四、程序分析题:(x题,共计 分) 阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。 1.代码一: num_one=input("请输入一个整数:") num_two=input("请输入一个整数:") if num_one%num_two ==0: print("验证码正确") 答:不能编译通过。因为num1和num2属于字符串类型,不能执行取余操作。 2.代码二: name=' Steve Jobs' print(name[6]) 答:J 3.代码三: string_example='hello world itheima' index=string_example.index("itheima",0,10) print(index) 答:由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。 4.代码四: string_example = " Hello world " print(string_example.strip()) 答:(去掉了两头空格之后的答案) 5.代码五: string_example="Hello"+'Python' print(string_example) 答:HelloPython 1.代码一: tup=('a','b','c') tup[3]='d' print(tup) 答:元组不能使用下标增加元素 2.代码二: dict_demo={'a':1,'b:2,'a':3} print(dict_demo['a']) 答:3 3.代码三: list_demo=[10,23,66,26,35,1,76,88,58] list_demo. reverse() print(list_demo[3]) list_demo.sort() print(list_demo[3]) 答:1,26 2.代码二: def func(): global x x=200 x=100 func() print(x) 答:200 3.代码三: def func(): x=200 def func2(): print(x) func2() x=100 func() print(x) 答:200, 100 1.代码一: def funx(): x=5 def funY(): nonlocal x +=1 return x return funY a= funX() print(a()) print(a()) print(a()) 答:6,7,8 2.代码二: def funx(): x=5 def funY(): nonlocal x x+=1 return x return funY a=funx print(a()()) print(a()()) print(a()()) 答:6, 6, 6 1.代码一: class Person: def __init__(self,name): self.name=name def __str__(self): return "我的名字是"+self.name person=Person("小明") print(person) 答:能,我的名字是小明 2.代码二: class Person: def del(self): print("--del--") person- Person() del person print("--end--") 答:能,--del-- --end-- 五、程序设计题:(x题,共计 分) 答题说明:在 #注释中间的空白处完成程序。 考核知识点:——选择结构 1、输入任意输入三个数字,按从小到大顺序输出。( 分) # ——在以下空白处完成程序—— # —————————————————— Key: x = input('x=') y = input('y=') z = input('z=') if x > y: x, y = y, x if x > z: x, z = z, x if y > z: y, z = z, y print(x, y, z) 2、输入一个点的坐标x和y,判断该点是否在半径为10 的圆的范围内。(分) from math import sqrt # ——在以下空白处完成程序—— # —————————————————— Key: x=(int)(input("请输入点的横坐标x= ")) y=(int)(input("请输入点的纵坐标y= ")) r0=sqrt(x**2+y**2) if(r0>10): s="点在该圆之外。" elif(r0==10): s="点在该圆边界之上。" else: s="点在该圆之内。" print("点(%s,%d) %s"%(x,y,s)) 2、 输入坐标点的坐标x和y,显示该点在二位坐标系的象限。(分) # ——在以下空白处完成程序—— # —————————————————— Key: x=(int)(input("请输入坐标点的横坐标x: ")) y=(int)(input("请输入坐标点的纵坐标y: ")) if(x>0): if(y>0): s="一" else: s="四" else: if(y>0): s="二" else: s="三" print("点(%d,%d)在二位坐标系的第 %s 象限。"%(x,y,s)) 考核点——多分支结构 3、 根据输入的百分制评分值,计算并输出茶叶的等级。 其中,10级最低,1级最高。(x分) def tea_degree(score): # ——在以下空白处完成程序—— # —————————————————— return deg def tea_degreenum(score): if(score>100 or score <0): deg="分数输入有误,请检查后重新输入。" else: sc=score//10 deg=11-sc return deg tea_d=(int)(input('请输入茶叶的评定分数:')) s1="本次检测茶叶等级为: "+tea_degree(tea_d)+" 级。" s2="本次检测茶叶等级为: "+(str)(tea_degreenum(tea_d))+" 级。" print(s1), print(s2) Key: if(score>100 or score <0): # print("分数输入有误,请检查后重新输入。") deg="分数输入有误,请检查后重新输入。" else: sc=score//10 if(sc==10): deg="一" elif(sc==9):deg="二" elif(sc==8):deg="三" elif(sc==7):deg="四" elif(sc==6):deg="五" elif(sc==5):deg="六" elif(sc==4):deg="七" elif(sc==3):deg="八" elif(sc==2):deg="九" elif(sc==1):deg="十" 考核知识点:——循环结构 4、给出100个随机数,完成其中的最值查找并输出。(x分) from random import randint # ——在以下空白处完成程序—— # —————————————————— Key: n=0 max=0 min=100 print("--------------------------------------") for i in range(100): n=n+1 y=randint(0,1000) print("%2d: %3d; "%(n,y),end="") if n%10==0:print() if y>max: max=y if y<min: min=y print() print("--------------------------------------") print("max=",max) print("min=",min) print("--------------------------------------") 5、输出Fiabonacci数列的前20项。(x分) # ——在以下空白处完成程序—— # —————————————————— Key: a=0 b=1 j=0 print(a) print(b) for i in range(0,21): j=j+1 t=b b=a+b a=t print(j,": ",b) 6、用程序实现百鸡百钱方案的输出。(x分) cock=0 hen=0 chicken=0 total_count=0 # ——在以下空白处完成程序—— # —————————————————— print("共计: %d 种方案。"%(total_count)) Key: for cock in range(100): # 这里的循环控制变量终值有必要这么大吗?理想值是多少呢? for hen in range(100): for chicken in range(100): if(((cock+hen+chicken)==100) and (cock*5+hen*3+chicken/3)==100): total_count=total_count+1 print("方案 %d: 能买鸡公%d 只,鸡母 %d只,鸡雏 %d只。"%(total_count,cock,hen,chicken)) 难7、实现登录的管理,当三次仍未输对用户名和口令则自动退出个给出提示。(x分) # ——在以下空白处完成程序—— # —————————————————— Key: u_name="liubei" u_pass="111" count=0; for i in range(1,4): print("-------------------------------------") s_name=input("请输入用户名:") s_pass=input("请输入密码:") if(s_name==u_name and s_pass==u_pass): print("登录成功!") break else: print('用户名或密码错!') count+=1 if(count==3): print("您不是合法用户,本次拒绝您的登录请求。") exit(0) print("-------------------------------------") 8、实现三位水仙花数的输出。(x分) # ——在以下空白处完成程序—— # —————————————————— Key: print("3位数中的水仙花数是:") for i in range(1,10): for j in range(0,10): for k in range(0,10): tmp=i*100+j*10+k if(tmp==i**3+j**3+k**3): print(tmp,end=' 9、判断一个数是否为素数。(x分) print("本程序判断一个整数是否为素数!") # ——在以下空白处完成程序—— # —————————————————— Key: num=int(input('请输入一个正整数:')) if(num<=0): print("输入数据有误!") exit(0) flag=1 for i in range(2,num): if(num%i==0): flag=0 break if(flag==0): print("{0}不是素数!".format(num)) if(flag==1): print("{0}是素数!".format(num)) 易10、实现区间内能对23整除的数的输出。(x分) print('本程序输出100-300区间内所有能被23整除的数!') # ——在以下空白处完成程序—— # —————————————————— Key: for num in range(100,301): if(num%23!=0): continue print(num,end=';') 考核知识点——列表 11、 查找列表中元素,输出以a或A开头并且以c结尾的所有元素。(x分) # 思路提示:遍历列表,每遍历一个元素,先去除两端的空格,再判断开头和结尾的字符。 name_list=["Alice","Tom","Anna","Mike","Agatha","Alex","Merry","Amnda"] # ——在以下空白处完成程序—— # —————————————————— Key: for name in name_list: get_name=name.strip() if get_name.endswith('a')and get_name.startswith('A'): print(get_name) 12、用字典实现文本中字符出现的次数。假设一段歌词存于字符串sang中。(x分) # ——在以下空白处完成程序—— # —————————————————— Key: for c in sang: if c in char: char[c]=char[c]+1 else: char[c]=1 print(char) print('-'*30) k=0 print("歌词中字符统计情况:") for item in char.items(): print(item) k=k+1 if(k%10==0 and k!=0): print() print('-'*30) 考核知识点:——函数的定义及调用 13、定义判断奇、偶数的函数,实现对一个数进行奇数或偶数的判断。(x分) # ——在以下空白处完成程序—— # —————————————————— def main(): num=get_num() if(is_even(num)): print(num," 是一个偶数.") if(is_odd(num)): print(num," 是一个奇数.") main() Key: def is_even(x): if(x %2==0): return True else: return False def is_odd(x): if(x %2==1): return True else: return False def get_num(): x=(int)(input("请输入操作数:")) return x 14、定义函数,实现对指定的两个数的最值输出。(x分) # ——在以下空白处完成程序—— # —————————————————— n1=(int)(input("操作数1:")) n2=(int)(input("操作数2:")) mx=my_max(n1,n2) mi=my_min(n1,n2) print("%d 和 %d 的最大值是: %d,最小值是 %d。"%(n1,n2,mx,mi)) Key: def my_max(x,y): if(x>=y): myMax=x else: myMax=y return myMax def my_min(x,y): if(x>=y): myMin=y else: myMin=x return myMin 15、定义函数,返回两个数的最大公约数。(x分) # ——在以下空白处完成程序—— # —————————————————— num1 = int(input("输入第一个数: ")) num2 = int(input("输入第二个数: ")) print( num1,"和", num2,"的最大公约数为", hcf(num1, num2)) # hcf(num1, num2)函数调用 Key: def hcf(x, y): # 获取最小值 if x > y: smaller = y else: smaller = x for i in range(1,smaller + 1): if((x % i == 0) and (y % i == 0)): #x,y同时整除i,则i是最大公约数 hcf = i return hcf 难16、用函数实现列表内容的逆序存放。(x分) def reverse(temp_list): # ——在以下空白处完成程序—— # —————————————————— l = [1, 2, 3, 4, 5] reverse(l) print(l) Key: for i in range(0, (int)(len(temp_list)/2)): temp = temp_list[i] temp_list[i] = temp_list[-i-1] temp_list[-i-1] = temp 17、用函数实现统计字符串中大写、小写字母的个数。(x分) def count_uplower(s): # ——在以下空白处完成程序—— # —————————————————— return result #返回列表 s_new="abcdefgHIJKLMNopqrst" print("-"*40) print(s_new,end=" : ") print(count_uplower(s_new)) print("-"*40) Key: result = [0,0] for ch in s: if 'a'<=ch<='z': result[1] += 1 elif 'A'<=ch<='Z': result[0] += 1 17、定义math(x)函数,实现根据x值实现加、减、乘、除的操作。(x分) def math(k): # ——在以下空白处完成程序—— # —————————————————— return lambda x,y : x/y #调用函数 action = math(1) print("10+2=", action(10,2)) action = math(2) print("10-2=",action(10,2)) action = math(3) print("10*2=,=",action(10,2)) action = math(4) print("10/2=,=",action(10,2)) Key: if(k==1): return lambda x,y : x+y if(k==2): return lambda x,y : x-y if(k==3): return lambda x,y : x*y if(k==4): 考核知识点:——文件的读取,循环 难18、在《三国演义》电子书阅读程序中,输入1-81的章回数即显示该回的内容。根据“1:继续阅读,2:退出”的规则进行其他章节的阅读或退出阅读。假设电子书的txt文件位于D:\\ sg_novel文件夹下,文件名格式统一为sg??.txt,其中??为数字。(x分) while(True): # ——在以下空白处完成程序—— # —————————————————— print("本次阅读结束。") Key: path_str="D:\\ sg_novel\\sg" extend_name=".txt" print("-"*30) print('-'*8,'《三国演义》','-'*8) print("-"*30) chart_num=(int)(input('请输入章回名:')) print("-"*30) print() print() print("-"*30) file_path=path_str+(str)(chart_num)+extend_name file_novel=open(file_path,'r') text_novel=file_novel.readlines() print(text_novel) print("-"*30) file_novel.close() print("-"*30) print("1:继续阅读; 2:退出阅读。") k=input("请输入操作数字代号。") if(k=="1"): print("您选择了继续阅读。") continue else: break 19、根据程序的执行内容,完成复数类的定义。(x分) class MyComlex: # ——在以下空白处完成程序—— # —————————————————— def main(): print("-"*30) c1=MyComlex(3,5) print("复数c1=",c1.r,c1.i) c1.showC() print("-"*30) c2=MyComlex(3,-5) print("复数c2=",c2.r,c2.i) c2.showC() print("-"*30) return main() Key: def __init__(self,real,imag): self.r=real self.i=imag return def showC(self): if(self.i>=0): print(self.r,"+",self.i,"i") else: print(self.r,"+(",self.i,"i)") 考核知识点:——面向对象,类的定义、实例化、继承、多态等 20、设计一个Student类,该类有属性name、age、scores(scores属性包含语文、数学、英语三科成绩,每科成绩的类型为整型),还有三个方法:(1)获取姓名的方法:get_name(),返回类型为String;(2)获取年龄的方法get_age(),返回类型为int;(3)返回3门课程中的最高的分数get_course(),返回类型为int。(x分) class Student(object): # 构造方法 def __init__(self, name, age, scores): # ——请在以下空白处完成程序—— # —————————————————— stu = Student('小丸子', 18, [89, 90, 91]) print("姓名:%s"%(stu.get_name())) print("年龄:%s"%(stu.get_age())) print("最高分:%s"%(stu.get_course())) key: self.__name = name # 姓名 self.__age = age # 年龄 self.__scores = scores # 分数 def get_name(self): return self.__name def get_age(self): return self.__age def get_course(self): return max(self.__scores) 21、设计一个表示动物的类Animal,该类包括color属性和call方法;再设计一个表示鱼的类Fish,包括tail和color属性,及call方法。用继承实现。 class Animal(object): # ——请在以下空白处完成程序—— # —————————————————— fish = Fish("蓝色") fish.call() key: def __init__(self, color): self.color = color #颜色 def call(self): print("动物叫") class Fish(Animal): def __init__(self, color): super().__init__(color) self.tail = True def call(self): print("-%s的鱼在吐泡泡-"%self.color) 学科网(北京)股份有限公司 $$

资源预览图

安徽省安徽金安区木厂职业中学2023-2024学年高二下学期期末《python程序设计》试卷及答案
1
安徽省安徽金安区木厂职业中学2023-2024学年高二下学期期末《python程序设计》试卷及答案
2
安徽省安徽金安区木厂职业中学2023-2024学年高二下学期期末《python程序设计》试卷及答案
3
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。