大学python期末考试_上海交通大学python期末考试样题加解析

s.gif上海交通大学python期末考试样题加解析

一、选择题 将唯一正确的选项写在题前括号中.每题 2 分.【 】1 本课程的目标定位是什么 A 学习 Python 语言B 学习计算机的工作原理C 学习各种算法D 学习用计算机解决问题【 】2 下列哪个标识符是合法的 A var-name B C _100 D elif【 】3 执行下列语句后的显示结果是什么 s ”hi” print “hi”, 2*sA hihihi B ”hi”hihi C hi hihi D hi hi hi【 】4 如何解释下面的执行结果 print 1.2 - 1.0 0.2FalseA 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,bA one 0 B 1 0 C one 0.5 D one,0.5上 海 交 通 大 学 试 卷(A 卷)( 2010 至 2011 学年 第 2 学期 )班级号 学号 姓名 课程名称 程序设计思想和方法 成绩 【 】7 执行下列语句后的显示结果是什么 s ”GOOD MORNING” print s3-4A D MOR B D MORN C OD MOR D OD MORN【 】8 表达式 12L*3.140 的结果类型是 A int B long C float D bool【 】9 程序设计的原型 Prototyping方法是指 A 先设计程序框架结构,再逐步精化细节B 先设计类,再实例化为对象C 先设计简单版本,再逐步增加功能D 以上都不是【 】10 对 n 个数做归并排序merge sort,这个算法是 A logn 时间的 B 线性时间的 C nlogn 时间的 D n2时间的二、判断题 在题目前面的括号中打勾或叉.每题 2 分 .【 】1 高级语言程序要被机器执行 ,只有用解释器来解释执行. 【 】2 不同类型的数据不能相互运算 . 【 】3 由于引号表示字符串的开始和结束 ,所以字符串本身不能包含引号. 【 】4 计算机科学并非研究计算机的科学 ,正如天文学并非研究望远镜. 【 】5 算法和程序是不同的概念 . 题号得分批阅人流水阅卷教师签名处我承诺,我将严格遵守考试纪律。承诺人 A 卷 总 5 页 第 1 页【 】6 下面的程序段是错的 temp 42 print The temperature is temp【 】7 同一 Python 变量可以先后赋予不同类型的值. 【 】8 计算机的计算是确定的 ,因此并不能真正产生随机数. 【 】9 对象就是类的实例 . 【 】10 Hanoi 塔问题属于不可解问题 . 三、填空题 每题 2 分.1 表达式 23*45 的值为 .2 函数 range1,1,1的值是 .3 格式化输出浮点数 宽度 10,2 位小数,左对齐,则格式串为 .4 表达式 chrorda的值为 .5 表达式22 or 22 and 2 的值为 .6 无穷循环 while True的循环体中可用 语句退出循环.7 不用 math 模块中的 sqrt, 如何计算 4 的平方根 .8 给出一个计算机本质上不可解问题的例子 .9 表达式dd12,34 的值为 .10 Python 的标准随机数生成器模块是 .四、读程序并回答问题每题 5 分.1 下面的程序根据用户输入的三个边长 a,b,c 来计算三角形面积 .请找出程序中的错误并改正之.设用户输入合法, 面积公式无误import mathA 卷 总 5 页 第 2 页a, b, c raw_“Enter a,b,c ”s a b cs s / 2.0area sqrts*s-a*s-b*s-cprint “The area is”, area将 raw_ 改成 将 sqrt 改成 math.sqrt2 下面的程序要求用户输入二进制数字 0/1 并显示之 .找出程序中的错误并改正之.bit “Enter a binary digit “if bit 0 or 1print “Your is”, bitelseprint “Your is invalid.”将 bit 0 or 1 改成 bit 0 or bit 1将 else 改成 else3 下面程序的输出是什么def fa, b, cx y 0for i in rangecx x a yy y breturn xprint f-5, 2, 10注意 return x 在 for 的缩进里面,所以最后只有一个数据输出range10其实是从 0 开始计数到 9再不断迭代即可404 下面程序的输出是什么def fa,ba 4print a, bdef maina 5b 6print a, bfa,bprint a, bA 卷 总 5 页 第 3 页main5646565 下面程序的功能是什么def fa, bif b 0print aelsefb, aba, b “Enter two natural numbers ”print fa, b求最大公因式五、程序设计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等序列的全排列依此类推.下面给出了这个程序的部分代码,在理解上述算法的基础上补足所缺的代码. 函数 permlist,k,m产生前缀为 list0k后接 listkm1的全排列def permlist,k,mif k m for i in rangem1 print listi,printelsefor i in rangek,m1 listk,listi listi,listkpermlist,k1,m listk,listi listi,listk myList “ a list1,2,3,. “permmyList,0, lenmyList-1 A 卷 总 5 页 第 4 页2 编写程序 输入一个文件 A, A 中每行包含若干数值 .生成文件 B, B 中每行是 A 中对应行的数值的平均值.Import stringfileA raw_“Enter a data file ”infile openfileA,routfile open B.dat,wline infile.readlinewhile line “”sum 0.0count 0for xStr in string.splitlinesum sum xStrcount count 1avg sum/countoutfile.writestravgnline infile.readlineinfile.closeoutfile.closeA 卷 总 5 页 第 5 页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值