上海交大2011_2012程序设计python期末考试题
- 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 = 0
while( i <= 100):
print i,
i = i + 1
B.for i in range(100):
print i,
C.for i in range(100, 0, -1):
print i,
D.i = 100
while(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 = list1
list1[2] = 3
A.[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 % 10
num = num / 10
main()
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 a
3.写出下面程序的执行结果。
def main():
lst = [2, 4, 6, 8, 10]
lst = 2 * lst
lst[1], lst[3] = lst[3], lst[1]
swap(lst, 2, 4)
for i in range(len(lst) - 4):
print lst[i], " "
def swap(lists, ind1, ind2):
lists[ind1], lists[ind2] = lists[ind2], lists[ind1]
main()