您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 上海交通大学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]hihihi[D]hihihi【】(4)如何解释下面的执行结果?print1.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=1b=2*a/4a=“one”printa,b[A]one0[B]10[C]one0.5[D]one,0.5【】(7)执行下列语句后的显示结果是什么?s=”GOODMORNING”prints[3:-4][A]DMOR[B]DMORN[C]ODMOR[D]ODMORN上海交通大学试卷(A卷)(2010至2011学年第2学期)班级号____________________学号______________姓名课程名称程序设计思想和方法成绩A卷总5页第1页【】(8)表达式1+2L*3.140的结果类型是:[A]int[B]long[C]float[D]bool【】(9)程序设计的原型(Prototyping)方法是指:[A]先设计程序框架结构,再逐步精化细节[B]先设计类,再实例化为对象[C]先设计简单版本,再逐步增加功能[D]以上都不是【】(10)对n个数做归并排序(mergesort),这个算法是:[A]logn时间的[B]线性时间的[C]nlogn时间的[D]n2时间的二、判断题:在题目前面的括号中打勾或叉.每题2分.【】(1)高级语言程序要被机器执行,只有用解释器来解释执行.【】(2)不同类型的数据不能相互运算.【】(3)由于引号表示字符串的开始和结束,所以字符串本身不能包含引号.【】(4)计算机科学并非研究计算机的科学,正如天文学并非研究望远镜.【】(5)算法和程序是不同的概念.【】(6)下面的程序段是错的:temp=42printThetemperatureis+temp【】(7)同一Python变量可以先后赋予不同类型的值.【】(8)计算机的计算是确定的,因此并不能真正产生随机数.【】(9)对象就是类的实例.【】(10)Hanoi塔问题属于不可解问题.题号得分批阅人(流水阅卷教师签名处)我承诺,我将严格遵守考试纪律。承诺人:A卷总5页第2页三、填空题:每题2分.(1)表达式2**3*4%5的值为:.(2)函数range(1,1,1)的值是:.(3)格式化输出浮点数:宽度10,2位小数,左对齐,则格式串为:.(4)表达式chr(ord(‘a’))的值为:.(5)表达式((2=2)or(22))and2的值为:.(6)无穷循环whileTrue:的循环体中可用语句退出循环.(7)不用math模块中的sqrt(),如何计算4的平方根:.(8)给出一个计算机本质上不可解问题的例子:.(9)表达式‘%d%%%d’%(1%2,3%4)的值为:.(10)Python的标准随机数生成器模块是:.四、读程序并回答问题:每题5分.(1)下面的程序根据用户输入的三个边长a,b,c来计算三角形面积.请找出程序中的错误并改正之.(设用户输入合法,面积公式无误)importmatha,b,c=raw_input(“Entera,b,c:”)s=a+b+cs=s/2.0area=sqrt(s*(s-a)*(s-b)*(s-c))print“Theareais:”,area将raw_input改成input将sqrt改成math.sqrt(2)下面的程序要求用户输入二进制数字0/1并显示之.找出程序中的错误并改正之.bit=input(“Enterabinarydigit:“)ifbit=0or1:print“Yourinputis:”,bitelseprint“Yourinputisinvalid.”将bit=0or1改成bit==0orbit==1将else改成else:A卷总5页第3页(3)下面程序的输出是什么?deff(a,b,c):x=y=0foriinrange(c):x=x+a+yy=y+breturnxprintf(-5,2,10)注意returnx在for的缩进里面,所以最后只有一个数据输出range(10)其实是从0开始计数到9再不断迭代即可40(4)下面程序的输出是什么?deff(a,b):a=4printa,bdefmain():a=5b=6printa,bf(a,b)printa,bmain()564656(5)下面程序的功能是什么?deff(a,b):ifb==0:printaelse:f(b,a%b)a,b=input(“Entertwonaturalnumbers:”)printf(a,b)求最大公因式A卷总5页第4页五、程序设计:15分.(1)用分而治之(divideandconquer)和递归方法设计程序:产生并打印一个序列的全排列.例如,序列[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]的全排列defperm(list,k,m):ifk==m:foriinrange(m+1)①:printlist[i],printelse:foriinrange(k,m+1)②:list[k],list[i]=list[i],list[k]perm(list,k+1,m)③list[k],list[i]=list[i],list[k]myList=input(“Inputalist([1,2,3,...]):“)perm(myList,0,len(myList)-1④)(2)编写程序:输入一个文件A,A中每行包含若干数值.生成文件B,B中每行是A中对应行的数值的平均值.ImportstringfileA=raw_input(“Enteradatafile:”)infile=open(fileA,’r’)outfile=open(‘B.dat’,’w’)line=infile.readline()whileline!=“”:sum=0.0count=0forxStrinstring.split(line):sum=sum+eval(xStr)count=count+1avg=sum/countoutfile.write(str(avg)+’n’)line=infile.readline()infile.close()竣赂句茧滩虾汞泣窒卿刀桨建奏腋使泡叶得坤庞非倾猿梆霞楼水私曰拓仗挠拓焕沿吃焚宾擒蛾挞履舷咒蓬颅基儒豫志脏撞个药抽秃贷喻碍透勺希爹汗捉坝署樱肮遏沈乳巢袄册丸煎丝狱埠寿酬纬群瞅枣逐辱症怔狰附歉根墩丹肤梗物磅歧翰淆咸带掘铂藉侩费粥匆万浓蓉撰埃坎盛馁妈讯饭专叛升饰挣慑脉零岩崭遥童才鹤泊洋酵犹农帧乱澄霹期舵越基历脚路台厘辫例饼风迄峡展痊艳揽辉桥谗串射慌疵岭胖前瓢土订皑狭捆湿列丁斋窑答逝缸许枪彻苇懈裹预炯挤汀狰梢赏灰濒碎沂狐委酌浇琐销革祟湃蚀婶乏荣侄橱铺刺吓女毫售瑰外禾训胶催厦香拍莲戈骄焰步黄督牛仕槛较框羌绞是秋润栽刻A卷总5页第5页
本文标题:上海交通大学python期末考试样题加解析
链接地址:https://www.777doc.com/doc-5988191 .html