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

上海交通大学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 2 False 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 上 海 交 通 大 学 试 卷 A 卷 2010 至 2011 学年 第 2 学期 班级号 学号 姓名 课程名称 程序设计思想和方法 成绩 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 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 表达式 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 math A 卷 总 5 页 第 2 页 a b c raw input Enter a b c s a b c s s 2 0 area 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 bit else print Your input is invalid 将 bit 0 or 1 改成 bit 0 or bit 1 将 else 改成 else 3 下面程序的输出是什么 def f a b c x y 0 for i in range c x x a y y y b return x print f 5 2 10 注意 return x 在 for 的缩进里面 所以最后只有一个数据输出 range 10 其实是从 0 开始计数到 9 再不断迭代即可 40 4 下面程序的输出是什么 def f a b a 4 print a b def main a 5 b 6 print a b f a b print a b A 卷 总 5 页 第 3 页 main 56 46 56 5 下面程序的功能是什么 def f a b if b 0 print a else f b a b a b input Enter two natural numbers print f a 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 等序列的全排列依此类推 下面给出了这个程序的部分代码 在理解上述算法的基础上补足所缺的代码 函数 perm list k m 产生前缀为 list 0 k 后接 list k m 1 的全排列 def perm list k m if k m for i in range m 1 print list i print else for i in range 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 Input a list 1 2 3 perm myList 0 len myList 1 A 卷 总 5 页 第 4 页 2 编写程序 输入一个文件 A A 中每行包含若干数值 生成文件 B B 中每行是 A 中对应行的 数值的平均值 Import string fileA raw input Enter a data file infile open fileA r outfile open B dat w line infile readline while line sum 0 0 count 0 for xStr in string split line sum sum eval xStr count count 1 avg sum count outfile write str avg n line infile readline infile close outfile close A 卷 总 5 页 第 5 页

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值