python期末考试复习试卷
一、单选题 20 每题四个选项,请在确切答案前用标记 1 执行下列语句后的显示结果是什么 world”world” print “hello” world A helloworld B “hello”world C hello world D 语法错 2 下列标识符中哪个是合法的 A im B _ C 3Q D for 3 执行下列语句后的显示结果是什么 from math import sqrt print sqrt3*sqrt3 3 A 3 B True C False D sqrt3*sqrt3 3 4 设 s ”Happy New Year”, 则 s38的值为 A ppy Ne B py Ne C ppy N D py New 5算法是指 A 数学的计算公式 B 程序设计语言的语句序列 C 对问题的精确描述 D 解决问题的精确步骤 6 type12L*3.14的结果是 A B C D 7 以下何者是不合法的布尔表达式 A x in range6 B 3a C e5 and 4f D x-65 8 若 k 为整形, 下述 while 循环执行的次数为 k1000 while k1 print k k k/2 A 9 B 10 C11 D 1000 9 选出对下列语句不符合语法要求的表达式 for var in print var A range0,10 B ”Hello” C 1,2,3 D 1,2,3,4,5 10 计算思维能力和下述其他方面能力相比,何者更相近 A 阅读、写作和算术 B逻辑推理 C 形象思维 D 技巧体操 二、填空题 10, 每小题 2 分 1Python 中调用 open 函数打开文件,调用 close 函数关闭文件,调用 函数可实现对文件内容的读取。 read or readline or readlines 2. 表达式 1/42.75 的值是 。 2.75 3. 高级程序设计语言必须由 或者 翻译成低级语言。 编译器 解释器 4. 给出 range1,10,3的值 。 1,4,7 5. 请给出计算 2 311 的 Python 表达式 。 231-1 三、是非题 20 请在语句后的 内填写标记或 1 函数 用于数值表达式求值,例如 2*31。 2 执行了 import math 之后即可执行语句 print sinpi/2。 3 Python 可以不加声明就使用变量。 4 Python 可以不对变量如 a 初始化就可在表达式如 ba1 中使用该变量。 5 选择排序算法是一个时间复杂度为nlognnlogn算法。 6 Hanoi 塔的解法体现了分而治之divide-and-conquer方法的典型用途。 7 一个函数中只允许有一条 return 语句。 8 可用 open“file1”,”r”)方式打开文件并进行修改。 9 Python 语言是面向对象的。 10 存在一个程序判别一个 Python 程序的运行是否可以停止。 四、理解题 24 写出下列程序的运行结果 1 def funcs, i, j if i 4 print “dn“ i i 1 break print “dn“ i i 1 i 1 1 3 5 3. def foos if s return s else return foos1 s0 print foo“Happy New Year“ .raeY weN yppaH 4. def funca, n, m if n 0 return 1 else num funca,n/2,m if n2 0 return num * num m else return num * num * a m print func5,6,7 1 5. def foolist,num if num 1 list.append0 elif num 2 foolist,1 list.append1 elif num 2 foolist,num-1 list.appendlist-1list-2 mylist foomylist,10 print mylist 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 6. def funca,b if a ak sortlist,lenlist range10 六、程序设计题 16 , 每小题 8 分 1 编写函数,检测给定的两维数组中是否有重复数据(已知该数组中保存了正整数) check_datamat,如果没有重复,则函数返回真。要求算法的时间复杂度不大于 On。 def expand_listlist,num if lenlist num return for i in rangelenlist,num list.append0 def check_datalist count expand_listcount,10 for line in list for var in line if var lencount expand_listcount,var1 if countvar 0 countvar 1 else return False return True 2 设 有 一 个 背 包 能 承 受 重 量 ss0, 又 有 nn1 件 物 品 , 其 重 量 列 表 为 ww1,w2,.,wn. 要从物品中挑选若干件放入背包, 使得放入的物品重量之和正好 是 s. 试设计递归函数 fw,s,n 当有解时返回 True,并显示所选物品是哪些; 无解时 返回 False。提示递归之处在于 fw,s,n的真假等于 fw,swn,n1 or fw,s,n1 def fw,s,n if s0 return True elif s0 and n1 return False elif fw,s-wn-1,n-1 print wn-1, return True else return fw,s,n-1