上海交大2011-2012程序设计python期末考试题
上海交大程序设计python期末测验题
上海交大程序设计python期末测验题Python是一种简单易学、高效可靠的编程语言,广泛用于各种领域的开发和实践。
作为上海交大程序设计课程的期末测验题,该测试旨在评估学生对Python编程的掌握程度和应用能力。
本文将按照测试题的要求,分析和解答各个问题,展示学生在程序设计方面的能力。
第一题:编写程序,实现计算两个数的乘积解答:```pythonnum1 = float(input("请输入第一个数:"))num2 = float(input("请输入第二个数:"))result = num1 * num2print("两个数的乘积为:", result)```对于这道题目,我们需要从用户输入中获取两个数,通过乘法运算符将它们相乘,并将结果输出。
以上代码实现了这一功能。
第二题:编写程序,实现对一个整数列表的排序解答:```pythonnums = [5, 3, 8, 2, 1]nums.sort()print("排序后的列表:", nums)```这道题目要求我们对一个整数列表进行排序。
Python提供了list的sort()方法,可以直接对列表进行排序。
以上代码对给定的整数列表进行了排序,并将结果输出。
第三题:编写程序,实现一个简单的猜数字游戏解答:```pythonimport randomtarget = random.randint(1, 100)guess = int(input("请猜一个1到100之间的整数:"))if guess > target:print("猜大了!")elif guess < target:print("猜小了!")else:print("恭喜你,猜对了!")```这道题目要求我们编写一个猜数字游戏,程序随机生成一个1到100之间的整数,用户猜测这个数字是多少,程序根据猜测结果给予提示。
Python程序设计期末综合测试试题及答案
Python程序设计期末综合测试试题及答案一、单选选择题(每题1分,共计20分)1.下列关于类和对象的描述,正确的是()。
A、类是面向对象的核心B、类是现实中事物的个体C、对象是根据类创建的,并且一个类只能对应一个对象D、对象描述的是现实的个体,它是类的实例(正确答案)2. Python面向对象中,构造函数的名称为()。
A、init_(正确答案)B、constructC、initD、与类名相同3.下列哪个选项是Python中定义函数时使用的关键字?()A、def (正确答案)B、f uncC、f unctionD、c lass4.使用tkinter的Canvas对象,绘制直线的函数是()。
A、create arc ()B、create」ine ()(正确答案)C、create oval ()D> create text ()5.使用Python的pip命令时,以下哪个参数是表示列出当前已安装的库()oA、 installB> uninstallC、list(正确答案)D、 help6.下列关于点字符•的表述中,错误的是?()A、点字符可匹配包括字母、数字、下画线、空白符(除换行符\n)等任意的单个字符B、J. m可以匹配到J#mC、.m不能匹配\nm(正确答案)D、..用于匹配任意两个字符7.下列选项不属于关系型数据库特点的是()。
A、容易理解B、操作较复杂(正确答案)C、便于维护D、技术成熟8. Python安装图像处理类库PIL时,具体需要安装库的名字是()。
A、pillow(正确答案)B、pilC、p ictureD、i mage9.关于Python的语法规则,以下描述错误的是()?A、Python中常用的输出函数是print ()B、Python中一段完整代码块是要花括号括起来(正确答案)C、Python中一段完整代码块是靠缩进来表示D、每条语句结束不需要加分号10.下列关于Python函数的说法中,错误的是()。
《Python程序设计》期末试卷及答案2套
1.选择题(共10个, 每个2分)在下列选项中, ( )不是常量.A 'python'B 8.25C pythonD True下列语句中, ( )在Python 中是非法的(变量已经定义)。
A a += 1B a=b==0C int(True+1)D a + 1 = a + 1设a = ({'Name':'python'}), 则type(t)的到的结果为( )。
A <class 'dict'>B <class 'tuple'>C <class 'list'>D <class 'str'>设Str = 'I Love python', 则下列操作结果错误的是( )。
A print(Str[0])的结果为: 'I'B print(Str[0:7:2])的结果为: 'ILv'C print(" Love " in Str)的结果为: False2.D print(Str[::-1] + " S")的结果为: 'nohtyp evoL I S'Python中列表数据类型元素的切片非常强大, 对于列表List = ['a',8,(5,2,1),{'Sex':'Woman'},[1,2,3]],下面操作结果错误的是()。
A List[0] + str(List[1])的结果为: 'a8'B List[-1][1] + 1 == 2的结果为: TrueC List[:] 的结果为: ['a', 8, (5, 2, 1), {'Sex': 'Woman'}, [1, 2, 3]]D List[2][2]<List[1]的结果为: True下列选项中, 有关字典操作以及描述错误的是( )。
上交大《Python程序设计实用教程》教学资源 《Python程序设计基础》试卷1答案
《Python程序设计基础》测试题参考答案一、单项选择题(每个2分,共20分)1.B 2.B 3. B 4.D 5.C6. A7. C8.B9.C 10.D二、填空题(每个空1.5分,共15分)1.(pyc)2.(None)3.(9)4.(’11’)5.(def)6.(global)7.(break)8.(5)9. (join())10.(3)三、判断题(每个1.5分,共15分)1.(对)2.(错)3.(错)4.(对)5.(对)6.(对)7.(对)8.(对)9.(错)10.(对)四、简答题(每个5分,共10分)1. Python采用的是基于值得内存管理方式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。
2.异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。
严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。
五、读程序题(每个5分,共20分)1.答:a,b,ca:b:c2.答:1316153. 写出下面代码的执行结果。
答:-34.说出下面代码所实现的主要功能。
答:冒泡排序法对一组数据从小到大的顺序排列。
六、编程题(每个10分,共20分)1.for i in range(1000):if i<100:continues = 0a = int(i//100)b = int(i//10%10)c = int(i%10)s = a**3+b**3+c**3if s == i:print("{} 是水仙花数".format(i))2.#coding=utf-8customer_price=float(raw_input("please input pay money:")) if customer_price >=50 and customer_price<=100:print "disconunt 10%% ,after discount you shoud pay %s" \ %(customer_price*(1-0.1))elif customer_price >100:print "disconunt 20%% ,after discount you shoud pay %s" \ %(customer_price*(1-0.2))else:print "disconunt 0%% ,after discount you shoud pay %s" \%customer_price。
python大学生期末考试题库及答案
python大学生期末考试题库及答案一、选择题(每题2分,共20分)1. Python中用于定义类的关键字是:A. functionB. defC. classD. struct答案:C2. 下列哪个选项是Python中的布尔类型?A. intB. boolC. floatD. str答案:B3. 在Python中,用于创建空集合的语法是:A. set()B. {}C. []D. ()答案:A4. 下列哪个选项不是Python中的内置函数?A. len()B. print()C. range()D. map()答案:D5. 在Python中,用于定义一个函数的关键字是:A. functionB. defC. classD. struct答案:B6. Python中用于实现循环的关键字是:A. forB. whileC. repeatD. loop答案:A7. 下列哪个选项是Python中的列表推导式?A. [x for x in range(10)]B. {x for x in range(10)}C. (x for x in range(10))D. x for x in range(10)答案:A8. 在Python中,用于交换两个变量值的方法是:A. a = bB. a, b = b, aC. a = a + bD. a = a - b答案:B9. 下列哪个选项是Python中的异常处理结构?A. try...exceptB. if...elseC. for...inD. while...do答案:A10. 在Python中,用于定义一个空字典的语法是:A. {}B. []C. ()D. set()答案:A二、填空题(每题2分,共20分)1. Python中的“==”用于______。
答案:比较2. 在Python中,使用______关键字可以定义一个函数。
答案:def3. Python中用于定义列表的语法是______。
大学《Python程序设计》试题及答案
大学《Python程序设计》试题及答案大学《Python程序设计》试题及答案一、选择题1、在Python中,以下哪个选项可以正确表示小于等于操作符? A) <=B) <* C) .≤ D) 以上都不是答案:A) <=2、下列哪个模块可用于绘制图形? A) math B) plot C) canvas D) none of the above 答案:C) canvas3、在Python中,如何将字符串转换为整数? A) str() B) int() C) float() D) 以上都不是答案:B) int()4、若要打印出所有的素数,以下哪个循环结构可以实现? A) whileB) for C) do-while D) switch-case 答案:B) for5、以下哪个选项可以用于导入模块? A) import math as m B) include math as m C) #include <math.h> D) #import <math.h> 答案:A) import math as m二、填空题1、Python中的注释符号是_____。
答案:#2、在Python中,所有变量都必须具有_____。
答案:类型(types)3、Python中的逻辑运算符用于执行_____运算。
答案:逻辑(logical)4、以下哪个函数可以用于将字符串转换为浮点数? A) str() B) int() C) float() D) none of the above 答案:C) float()5、以下哪个循环结构可以用于打印出所有的偶数? A) for i in range(0, 10): print(i2) B) for i in range(0, 10): if i % 2 == 0: print(i2) C) for i in range(0, 10): if i % 2 != 0: print(i2) D) none of the above 答案:B) for i in range(0, 10): if i % 2 == 0: print(i2)三、编程题编写一个Python程序,打印出所有的水仙花数(Narcissistic Number)。
上海交大程序设计试题样题及参考答案
程序设计试题样题及参考答案一.选择题1. 若用数组名作为函数调用的实参,传递给形参的是A。
A.数组的第一个元素的地址。
B.数组第一个元素的值。
C.数组全部元素的地址。
D.数组全部元素的值。
2. 在C程序中,main() 的位置C。
A. 必须作为第一个函数。
B.必须作为最后一个函数。
C.可以任意。
D.必须放在它调用的函数之后。
3、下列程序中,编译不会出错的语句是 A 。
#include <iostream.h>class Base{public:Base(){}Base(int i) { data = i; }private:int data;};class Derived: public Base{public:Derived():Base(0) {}Derived(int x):Base(x){}};int main(){Derived d1(1);Base *pb,b1;pb = &d1; //Ad1 = b1; //BBase &refB = d1;Derived d2 = *pb; //CDerived &refD = refB; //Dreturn 0;}答案:A注释:公有继承时,派生类是基类的子类型,反之则不成立。
具有子类型关系的基类和派生类的对象之间满足如下赋值兼容规则: 派生类对象的地址可以赋值给指向基类的指针;♦派生类的对象可以初始化基类的引用;派生类的对象可以赋值给基类的对象,即用派生类对象中从基类继承来的成员,逐个赋值给基类对象的成员。
4、判断fun,Y3::fun,Z2::fun中的各条语句是正确/错误。
class X{public:int a;};class Y1 : public X{ };class Y2 : protected X{ };class Y3 : private X{private:void fun(Y1 *py1,Y2 *py2,Y3 *py3);};class Z2 : public Y2{private:void fun(Y1 *py1,Y2 *py2,Y3 *py3);};void fun(Y1 *py1,Y2 *py2,Y3 *py3){py1->a = 7; //①py2->a = 7; //②py3->a = 7; //③}void Y3::fun(Y1 *py1,Y2 *py2,Y3 *py3){py1->a = 7; //④py2->a = 7; //⑤py3->a = 7; //⑥}void Z2::fun(Y1 *py1,Y2 *py2,Y3 *py3){ py1->a = 7; //⑦py2->a = 7; //⑧py3->a = 7; //⑨}答案:①正确②错误③错误④正确⑤错误⑥正确⑦正确⑧错误⑨错误注释:♦派生类Y1从基类X公有继承,基类成员a在Y1中仍然是公有成员,所以Y1类型的指针py1可以可以访问a成员,因此①④⑦正确。
Python程序设计期末考试试卷及答案
《Python 程序设计基础》期末考试试卷(A )适用班级考试形式班级 姓名 学号一、选择题 (每题2分,共40分)1.下列选项中,不属于Python 的数据类型的是( ) A 、字符串 B 、数组 C 、列表 D 、字典 2.下列选项中,不符合python 变量命名的是()。
A 、01_testB 、test_01C 、pytestD 、_py_test_ 3.以下对字典的说法错误的是A 、字典可以为空B 、字典的键不能相同C 、字典的键不可变D 、字典的键的值不可变 4.以下说法错误的是A 、元组的长度可变B 、列表的长度可变C 、可以通过索引访问元组D 、可以通过索引访问列表 5.list 类型的内置方法pop( )的作用是A 、置顶指定元素B 、给元素排序C 、删除指定元素D 、插入指定元素 6.以下说法正确的是A 、python 属于低级语言B 、python 是面向过程的C 、python 属于解释性语言D 、python 是非开源的 7.在Python 语言中,数据的输入是通过( )来实现的。
A .input( )函数B .print( )函数C .output( )函数D .abs( )函数8.为了提高程序的可读性,可以在该语句后面添加注释语句,Python 程序中用作注释的标识符是( ) A .: B .# C ., D .!9.下列 Python 表达式的值为偶数的是( )A .12*3%5B .len (“Welcome”)C.int (3.9) D .abs (-8)10.可以被计算机直接执行的语言是( ) , Python 语言属于( )语言。
A .机器,高级 B .高级,汇编 C .高级,机器 D .汇编,高级11.在Python 中,不同的数据,需要定义不同的数据类型,可用方括号“[]”来定义的是( a ) A .列表 B .元组 C .集合 D .字典 12.有python 程序如下: S=input ( ) print (S * 3)运行后通过键盘输入6,则运算结果是( )题 号 一 二 三 四 总分 总分人 得 分阅卷人 得分A.666 B.SSS C.18 D.S*313.在编写python程序时缩进的作用是()。
上交大《Python程序设计实用教程》教学资源 《Python程序设计基础》试卷2
《Python程序设计基础》测试题一、单项选择题(每个2分,共20分)1.以下关于程序设计语言的描述,错误的选项是:A、Python语言是一种脚本编程语言B、汇编语言是直接操作计算机硬件的编程语言C、程序设计语言经历了机器语言、汇编语言、脚本语言三个阶段D、编译和解释的区别是一次性翻译程序还是每次执行时都要翻译程序2.以下选项,不是Python保留字的选项是:A、delB、passC、notD、string3.IDLE环境的退出命令是A、esc()B、close()C、回车键D、exit()4.以下选项中,不符合Python语言变量命名规则的是A、keyword33B、33_keywordC、_33keywordD、keyword_335.以下选项中,不是Python语言保留字的是A、whileB、continueC、gotoD、for6.以下选项中,Python语言中代码注释使用的符号是A、/*……*/B、!C、#D、//7.表达式divmod(20,3) 的结果是:A、6, 2B、6C、2D、(6, 2)8.以下关于字符串类型的操作的描述,错误的是:A、str.replace(x,y)方法把字符串str中所有的x子串都替换成yB、想把一个字符串str所有的字符都大写,用str.upper()C、想获取字符串str的长度,用字符串处理函数str.len()D、设x = ’aa’ ,则执行x*3的结果是‘aaaaaa’9.设str = 'python',想把字符串的第一个字母大写,其他字母还是小写,正确的选项是:A、print(str[0].upper()+str[1:])B、print(str[1].upper()+str[-1:1])C、print(str[0].upper()+str[1:-1])D、print(str[1].upper()+str[2:])10.以下选项中不是Python文件读操作方法的是A、readlineB、readallC、readtextD、read二、填空题(每个空1.5分,共15分)1.Python安装扩展库常用的是_______工具。
大学python期末考试题及答案
大学python期末考试题及答案一、选择题(每题2分,共20分)1. Python中,以下哪个选项是正确的列表定义方式?A. list = {1, 2, 3}B. list = (1, 2, 3)C. list = [1, 2, 3]D. list = 1, 2, 3答案:C2. 在Python中,以下哪个关键字用于定义函数?A. classB. defC. ifD. for答案:B3. 下列哪个选项是Python中的真值?A. 0B. NoneC. []D. True答案:D4. 在Python中,以下哪个选项是正确的字典定义方式?A. dict = {key: 'value'}B. dict = {'key': 'value'}C. dict = key: 'value'D. dict = (key: 'value')答案:B5. Python中,以下哪个选项是正确的字符串定义方式?A. str = 'Hello, World!'B. str = "Hello, World!"C. str = `Hello, World!`D. str = Hello, World!答案:A6. 在Python中,以下哪个选项是正确的条件语句?A. if x > 0:B. if x > 0C. if x > 0 thenD. if x > 0 else答案:A7. Python中,以下哪个选项是正确的循环语句?A. for i in range(10):B. for i = 0 to 10:C. for i in 0..10:D. for i from 0 to 10:答案:A8. 在Python中,以下哪个选项是正确的异常处理语句?A. try:B. catch:C. except:D. finally:答案:A9. Python中,以下哪个选项是正确的文件打开方式?A. f = open('file.txt', 'r')B. f = open('file.txt', 'w')C. f = open('file.txt', 'a')D. All of the above答案:D10. 在Python中,以下哪个选项是正确的列表推导式?A. [x for x in range(10)]B. (x for x in range(10))C. {x for x in range(10)}D. [x: x in range(10)]答案:A二、填空题(每题3分,共15分)1. Python中的元组是不可变的,因此不能对元组中的元素进行________。
python期末考试题及答案解析
python期末考试题及答案解析一、选择题(每题2分,共20分)1. 下列哪个是Python的内置数据类型?A. ListB. ArrayC. VectorD. Set答案:A解析:Python中List是一种内置的数据类型,用于存储有序的集合,而Array、Vector不是Python的内置数据类型,Set是Python的内置数据类型,用于存储无序的唯一元素集合。
2. 以下哪个语句可以正确地定义一个Python函数?A. function my_function():B. def my_function():C. declare my_function():D. define my_function():答案:B解析:在Python中,定义函数使用关键字def,因此选项B是正确的。
3. 下列哪个是Python中的真值表达式?A. 0B. FalseC. NoneD. []答案:B解析:在Python中,只有True和False是逻辑真和逻辑假,其他值如0、None和空列表[]在布尔上下文中被视为False。
4. Python中的哪项操作可以用于删除列表中的元素?A. remove()B. delete()C. pop()D. clear()答案:C解析:pop()方法用于删除列表中的指定位置的元素,并返回被删除的元素。
remove()用于删除列表中第一次出现的指定值,delete()不是Python中的列表操作,clear()用于清空列表。
5. 下列代码执行后,变量x的值是多少?```pythonx = 5x += 3```A. 5B. 8C. 3D. 6答案:B解析:x += 3是x = x + 3的简写形式,所以x的值变为5 + 3,即8。
6. 以下哪个是Python中的异常处理结构?A. if-elseB. try-exceptC. switch-caseD. for-in答案:B解析:try-except是Python中用于异常处理的结构,if-else用于条件判断,switch-case不是Python的语法,for-in用于循环遍历。
《Python程序设计》期末复习试题库及答案
《Python程序设计》期末复习试题库及答案一、填空题1、Python安装扩展库常用的是_______工具。
(pip)2、Python标准库math中用来计算平方根的函数是__________。
(sqrt)3、Python程序文件扩展名是__________ (py)4、列表、元组、字符串是Python的_________(有序?无序)序列。
(有序)5、查看变量内存地址的Python内置函数是_________________。
(id())6、以3为实部4为虚部,Python复数的表达形式为___________。
(3+4j、3+4J)7、Python运算符中用来计算整商的是_________。
(//)8、______________命令既可以删除列表中的一个元素,也可以删除整个列表。
(del)9、表达式int('123') 的值为_____________。
(123)10、表达式abs(-3) 的值为___________。
(3)11、表达式int(4**0.5) 的值为____________。
(2)12、Python内置函数_________可以返回列表、元组、字典、集合、字符串以及range对象中元素个数。
(len())13、Python内置函数____________用来返回序列中的最大元素。
(max())14、Python内置函数____________用来返回序列中的最小元素。
(min())15、已知x = 3,那么执行语句x += 6 之后,x的值为_______________。
(9)16、表达式3 ** 2 的值为_________。
(9)17、表达式3 * 2的值为___________。
(6)18、表达式chr(ord('a')-32) 的值为___________。
('A')19、表达式16**0.5的值为____________________。
上海交大程序设计python期末测验题
上海交大程序设计python期末测验题————————————————————————————————作者:————————————————————————————————日期:一.选择题: 将唯一正确的选项写在题前括号中(每题1分,共15分)【】1.表达式'%d%%%d' %(3 / 4, 3 % 4)的值是:A.'0%3' B.'0%%3' C.'3/4%3%4' D.'3/4%%3%4'【】2.下面标识符中不是python语言的保留字的是:A.continue B.except C.init D.pass【】3.以下程序的输出结果是(提示:ord(' a ')==97):lista = [1,2,3,4,5,'a','b','c','d','e']print lista[2] + lista[5]A.100 B.'d' C.d D.TypeEror【】4.下面的循环体执行的次数与其它不同的是:A.i = 0while( i <= 100):print i,i = i + 1B.for i in range(100):print i,C.for i in range(100, 0, -1):print i,D.i = 100while(i > 0):print i,i = i – 1【】5.自顶向下逐步求精的程序设计方法是指:A.将一个大问题简化为同样形式的较小问题。
B.先设计类,再实例化为对象。
C.解决方案用若干个较小问题来表达,直至小问题很容易求解。
D.先设计简单版本,再逐步增加功能。
【】6.简单变量作为实参时,它和对应的形参之间数据传递方式是:A.由形参传给实参B.由实参传给形参C.由实参传给形参,再由形参传给实参D.由用户指定传递方向【】7.以下说法不正确的是:A.在不同函数中可以使用相同名字的变量。
上交大《Python程序设计实用教程》教学资源 《Python程序设计基础》试卷1
《Python程序设计基础》测试题一、单项选择题(每个2分,共20分)1.下列哪个语句在Python中是非法的?()A、x = y = z =1B、x = (y = z + 1)C、x, y = y, xD、x += y2.关于Python内存管理,下列说法错误的是()A、变量不必事先声明B、变量无须先创建和赋值而直接使用C、变量无须指定类型D、可以使用del释放资源3、下面哪个不是Python合法的标识符()A、int32B、40XLC、selfD、name4、下列哪种说法是错误的()A、除字典类型外,所有标准对象均可以用于布尔测试B、空字符串的布尔值是FalseC、空列表对象的布尔值是FalseD、值为0的任何数字对象的布尔值是False5、下列表达式的值为True的是()A、5+4j >2-3jB、3>2>2C、(3,2)<('a','b')D、’abc’> ‘xyz’6、Python不支持的数据类型有()A、charB、intC、floatD、list7、关于Python中的复数,下列说法错误的是()A、表示复数的语法是real + imagejB、实部和虚部都是浮点数C、虚部必须后缀j,且必须是小写D、方法conjugate返回复数的共轭复数8、关于字符串下列说法错误的是()A、字符应该视为长度为1的字符串B、字符串以\0标志字符串的结束C、既可以用单引号,也可以用双引号创建字符串D、在三引号字符串中可以包含换行回车等特殊字符9、以下不能创建一个字典的语句是()A、dict1 = {}B、dict2 = { 3 : 5 }C、dict3 ={[1,2,3]: “uestc”}D、dict4 = {(1,2,3): “uestc”}10、下列Python语句正确的是:()A、min = x if x< y = yB、max = x > y ?x:yC、if (x >y) print xD、while True :pass二、填空题(每个空1.5分,共15分)1.Python源代码程序编译后的文件扩展名为_______。
Python程序设计-考题2含答案
《Python程序设计》期末考试试卷课程性质:选修考核方式:笔试闭卷考核时间:专业:年级:本卷满分:100分完卷时间:120分钟考生学号:考试姓名:一、填空题(每空3分,共计30分)1、执行dt = dict()后,dt的值为____,dt的类型是____。
答案:{}、'dict'2、下列代码执行结果是。
x = 1def change(a):a += 1print(a)change(x)答案:23、判断变量x和y是否指向同一个对象可以通过操作符__________。
答案:x is y4、print('a' < 'b' < 'c')的结果为__________。
答案:True5、字符串的方法format()中槽用来表示。
答案:{}6、list(range(0,4,2))得到的是。
答案:[0, 2]7、执行下述代码后的ss="Life is short. I use python."s = ''.join(s.split(' '))答案:'Lifeisshort.Iusepython.'8、,它的编码方式为"utf-8",则以读答案:f = open("data.txtx","r",encoding="utf-8")9、ls = [(1,2),3,4],执行ls[0][0] = 10答案:TypeError错误10、st = {'7', '3', '4', '1', '5', '2', '6'}s = "+".join(st)print("{}={}".format(s,eval(s)))答案:1+6+4+5+3+7+2=28说明:等号左边的表达式不唯一!二、单选题(每小题3分,共计30分)1、在带else分支的循环语句中,要执行else中的语句块的情况是()。
上海交通大学python期末考试样题加解析
一、选择题: 将唯一正确的选项写在题前括号中.每题2分.【】(1) 本课程的目标定位是什么?[A] 学习Python语言[B] 学习计算机的工作原理[C] 学习各种算法[D] 学习用计算机解决问题【】(2) 下列哪个标识符是合法的?[A] var-name [B] !@#$% [C] _100 [D] elif 【】(3) 执行下列语句后的显示结果是什么?>>> s = ”hi”>>> print “hi”, 2*s[A] hihihi [B] ”hi”hihi[C] hi hihi [D] hi hi hi 【】(4) 如何解释下面的执行结果?>>> print 1.2 - 1.0 == 0.2False[A] Python的实现有错误[B] 浮点数无法精确表示[C] 布尔运算不能用于浮点数比较[D] Python将非0数视为False【】(5) 想用一个变量来表示出生年份,下列命名中哪个最可取?[A] b_y [B] birth_year [C] __birthYear__ [D] birthyear【】(6) 执行下列语句后的显示结果是什么?>>> a = 1>>> b = 2 * a / 4>>> a = “one”>>> print a,b[A] one 0 [B] 1 0 [C] one 0.5 [D] one,0.5【】(7) 执行下列语句后的显示结果是什么?>>> s = ”GOOD MORNING”>>> print s[3:-4][A] D MOR [B] D MORN [C] OD MOR [D] OD MORN【】(8) 表达式1+2L*3.14>0的结果类型是:[A] int [B] long [C] float [D] bool【】(9) 程序设计的原型(Prototyping)方法是指:[A] 先设计程序框架结构,再逐步精化细节[B] 先设计类,再实例化为对象[C] 先设计简单版本,再逐步增加功能[D] 以上都不是【】(10) 对n个数做归并排序(merge sort),这个算法是:[A] log n时间的[B] 线性时间的[C] n log n时间的[D] n2时间的二、判断题:在题目前面的括号中打勾或叉.每题2分.【】(1) 高级语言程序要被机器执行,只有用解释器来解释执行.【】(2) 不同类型的数据不能相互运算.【】(3) 由于引号表示字符串的开始和结束,所以字符串本身不能包含引号. 【】(4) 计算机科学并非研究计算机的科学,正如天文学并非研究望远镜. 【】(5) 算法和程序是不同的概念.【】(6) 下面的程序段是错的:temp = 42print "The temperature is" + temp【】(7) 同一Python变量可以先后赋予不同类型的值.【】(8) 计算机的计算是确定的,因此并不能真正产生随机数.【】(9) 对象就是类的实例.【】(10) Hanoi塔问题属于不可解问题.三、填空题:每题2分.A 卷总 5 页第 2 页(1) 表达式2**3*4%5的值为: .(2) 函数range(1,1,1)的值是: .(3) 格式化输出浮点数: 宽度10,2位小数,左对齐,则格式串为: .(4) 表达式chr(ord(‘a’))的值为: .(5) 表达式((2>=2) or (2<2)) and 2的值为: .(6) 无穷循环while True:的循环体中可用语句退出循环.(7) 不用math模块中的sqrt(), 如何计算4的平方根: .(8) 给出一个计算机本质上不可解问题的例子: .(9) 表达式‘%d%%%d’%(1%2,3%4)的值为: .(10) Python的标准随机数生成器模块是: .四、读程序并回答问题:每题5分.(1) 下面的程序根据用户输入的三个边长a,b,c来计算三角形面积.请找出程序中的错误并改正之.(设用户输入合法,面积公式无误)import matha, b, c = raw_input(“Enter a,b,c: ”)s = a + b + cs = s / 2.0area = sqrt(s*(s-a)*(s-b)*(s-c))print “The area is:”, area将raw_input 改成input将sqrt改成math.sqrt(2) 下面的程序要求用户输入二进制数字0/1并显示之.找出程序中的错误并改正之. bit = input(“Enter a binary digit: “)if bit = 0 or 1:print “Your input is:”, bitelseprint “Your input is invalid.”将bit = 0 or 1 改成bit == 0 or bit== 1将else改成else:(3) 下面程序的输出是什么?A 卷总 5 页第 3 页def f(a, b, c):x = y = 0for i in range(c):x = x + a + yy = y + breturn xprint f(-5, 2, 10)注意return x 在for 的缩进里面,所以最后只有一个数据输出range(10)其实是从0开始计数到9再不断迭代即可40(4) 下面程序的输出是什么?def f(a,b):a = 4print a, bdef main():a = 5b = 6print a, bf(a,b)print a, bmain()564656(5) 下面程序的功能是什么?def f(a, b):if b == 0:print aelse:f(b, a%b)a, b = input(“Enter two natural numbers: ”)print f(a, b)求最大公因式A 卷总 5 页第 4 页五、程序设计:15分.(1) 用分而治之(divide and conquer)和递归方法设计程序:产生并打印一个序列的全排列.例如,序列[1,2,3]的全排列123,132,213,231,312,321可以这样获得:1为前缀, 后接[2,3]的全排列2为前缀, 后接[1,3]的全排列3为前缀, 后接[1,2]的全排列而[2,3]等序列的全排列依此类推.下面给出了这个程序的部分代码,在理解上述算法的基础上补足所缺的代码.# 函数perm(list,k,m):产生前缀为list[0:k]后接list[k:m+1]的全排列def perm(list,k,m):if k == m:print list[i],printelse:list[k],list[i] = list[i],list[k]list[k],list[i] = list[i],list[k]myList = input(“Input a list([1,2,3,...]): “)(2) 编写程序: 输入一个文件A, A中每行包含若干数值.生成文件B, B中每行是A中对应行的数值的平均值.Import stringfileA = raw_input(“Enter a data file: ”)infile = open(fileA,’r’)outfile = open (‘B.dat’,’w’)line = infile.readline()while line != “”:sum = 0.0count = 0for xStr in string.split(line):sum = sum + eval(xStr)count = count + 1.avg = sum/countoutfile.write(str(avg)+’n’)line = infile.readline()infile.close()outfile.close()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.选择题: 将唯一正确的选项写在题前括号中(每题1分,共15分)【】1.表达式'%d%%%d' %(3 / 4, 3 % 4)的值是:A.'0%3' B.'0%%3' C.'3/4%3%4' D.'3/4%%3%4'【】2.下面标识符中不是python语言的保留字的是:A.continue B.except C.init D.pass【】3.以下程序的输出结果是(提示:ord(' a ')==97):lista = [1,2,3,4,5,'a','b','c','d','e']print lista[2] + lista[5]A.100 B.'d' C.d D.TypeEror【】4.下面的循环体执行的次数与其它不同的是:A.i = 0while( i <= 100):print i,i = i + 1B.for i in range(100):print i,C.for i in range(100, 0, -1):print i,D.i = 100while(i > 0):print i,i = i – 1【】5.自顶向下逐步求精的程序设计方法是指:A.将一个大问题简化为同样形式的较小问题。
B.先设计类,再实例化为对象。
C.解决方案用若干个较小问题来表达,直至小问题很容易求解。
D.先设计简单版本,再逐步增加功能。
【】6.简单变量作为实参时,它和对应的形参之间数据传递方式是:A.由形参传给实参B.由实参传给形参C.由实参传给形参,再由形参传给实参D.由用户指定传递方向【】7.以下说法不正确的是:A.在不同函数中可以使用相同名字的变量。
B.函数可以减少代码的重复,也使得程序可以更加模块化。
C.主调函数内的局部变量,在被调函数内不赋值也可以直接读取。
D.函数体中如果没有return语句,也会返回一个None值。
【】8.关于list和string下列说法错误的是:A.list可以存放任意类型。
B.list是一个有序集合,没有固定大小。
C.用于统计string中字符串长度的函数是string.len()。
D.string具有不可变性,其创建后值不能改变。
【】9.下面问题属于计算机本质上不可解问题的是:A.Hanoi塔问题B.排序问题C.求阶乘D.Halting问题【】10.python语言定义的class的初始化函数的函数名是:A.init B.__init__ C.__init D.init__【】11.已知x = 43,y = False;则表达式(x >= y and 'A' < 'B' and not y)的值是:A.False B.语法错C.True D."假"【】12.对n个数做归并排序(merge sort),这个算法是:A.nlogn时间的B.线性时间的C.logn时间的D.n2时间的【】13.下面不是计算思维的特征的是:A.概念化B.数学与工程思维的融合C.面向所有的人D.计算机的思维【】14.执行下面操作后,list2的值是:list1 = [4,5,6]list2 = list1list1[2] = 3A.[4,5,6] B.[4,3,6] C.[4,5,3] D.A,B,C都不正确【】15.下列合法的变量名是:A.main( ) B.car2 C.2car D.var-name二.概念填空(每空1分,共10分)1.表达式eval("4 * 2 + 5 % 2 + 4/3")的结果是。
2.print 'This float, %-10.5f, has width 10 and precision 5. ' % (3.1415926) 的输出结果是:3.计算的本质是和。
4.执行print 1.3 - 1 == 0.3,结果是False的原因是。
5.下面语句的执行结果是。
s = "bb c"print string.split(3 * s)6.、、是科技创新的三大支柱。
7.无穷循环while True:的循环体中可用语句退出循环。
三.阅读程序并回答问题(每题5分,共40分)1.当输入是54321时,写出下面程序的执行结果。
def main():num = input(“请输入一个整数:”)while num != 0:print num % 10num = num / 10main()2.写出下面程序的执行结果。
a = [1, 20, 32, 14, 5, 62, 78, 38, 9, 10]for i in range(9):if( a[i] > a[i+1] ):a[i], a[i+1] = a[i+1], a[i]print a3.写出下面程序的执行结果。
def main():lst = [2, 4, 6, 8, 10]lst = 2 * lstlst[1], lst[3] = lst[3], lst[1]s, 2, 4)for i in range(len(lst) - 4):print lst[i], " "def s, ind1, ind2):lists[ind1], lists[ind2] = lists[ind2], lists[ind1]main()4.写出下面程序的执行结果。
import stringdef main():s = "I like python!"s = string.lower(s)alist = []countlist = []count=0for i in range( len(s) ):if (ord(s[i]) <= ord('Z') and ord(s[i]) >= ord('A')) \or (ord(s[i]) <= ord('z') and ord(s[i]) >= ord('a')):if (s[i] in alist):sign = alist.index(s[i])countlist[sign] += 1else:alist.append(s[i])countlist.append(1)count += 1for i in range(count):print alist[i], " ", countlist[i]main()5.阅读下面程序def fact(n)return n * fact(n-1)def main()print fact(5)请问该程序是否正确?如果正确的话,请写出运行结果;如果不正确,则修改程序并写出相应运行结果。
6.下面程序是为了在屏幕上显示10个相同形状的长方形。
from graphics import *def main():win = GraphWin(200,200)shape = Rectangle( Point(20,20), Point(30,40) )shape.setOutline("yellow")shape.setFill("red")shape.draw(win)sList = []sList.append(shape)for i in range(1,10):p = win.getMouse()c = sList[i-1].getCenter()dx = p.getX() - c.getX()dy = p.getY() - c.getY()win.getMouse()win.close()main()请问该程序是否正确?如果不正确,请修改程序。
7.写出下面程序的功能。
假设文件“original”内容为Upgrc y npmepyk.Write a program.那么文件“savetoo”内存储的内容应该是什么?import stringdef main():print "This is a program......"infile = open("original", 'r' )outfile = open("savetoo", 'w' )msg = ""for strstr in in():for ichar in strstr:if ichar >= 'a' and ichar <= 'z':n = ord(ichar) + 2yn = (n - ord( 'a' ) ) % 26ch=chr( ord( 'a' ) + yn )elif ichar >= 'A' and ichar <= 'Z':n = ord(ichar) + 2yn = ( n - ord( 'A' ) ) % 26ch = chr( ord( 'A' ) + yn )else:ch = icharmsg = msg + chout(msg)in()out()main()8.修改下面程序使得其能运行正常。
class Box: #Box类def init(self, l, w, h):self.length = lself.width = wself.height = hdef volume( ): //计算Box的体积return length * width * heightb = Box(4, 5, 6)print b.volume()四. 程序填空(每空1分,共15分)1.下列程序的作用是将输入的字符串中的每个字符的ASCII码形成一个列表。
例如,输入为abcde时,输出为[97, 98, 99, 100, 101]。
请补充完整。
def main():str = raw_input(“请输入一个字符串:”)output = []for i in range( ):num =output. (num)print outputmain()2.请补充完整mergesort程序。
def merge(lst1, lst2, lst3):i1 = i2 = i3 = 0n1, n2 = len(lst1), len(lst2)while i1 < n1 and i2 < n2:if lst1[i1] < lst2[i2]: # copy from lst1lst3[i3] = lst1[i1]i1 = i1 + 1else: # copy from list2lst3[i3] = lst2[i2]i2 = i2 + 1# item added to lst3whilelst3[i3] = lst1[i1]i1 = i1 + 1i3 = i3 + 1whilelst3[i3] = lst2[i2]i2 = i2 + 1i3 = i3 + 1def mergeSort(lst):n = len(lst)ifm = n / 2lst1, lst2 =mergeSort(lst1)mergeSort(lst2)merge(lst1, lst2, lst)3.下面程序的作用是显示输入的三个整数的最大值和最小值,请补充完整。