当前位置:文档之家› 【免费下载】上海交大2011_2012程序设计python期末考试题

【免费下载】上海交大2011_2012程序设计python期末考试题

一.选择题: 将唯一正确的选项写在题前括号中(每题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 = 0while( i <= 100):print i,i = i + 1B.for i in range(100):print i,C.for i in range(100, 0, -1):print i,D.i = 100while(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 = list1list1[2] = 3A.[4,5,6] B.[4,3,6] C.[4,5,3] D.A,B,C都不正确【】15.下列合法的变量名是:A.main( )B.car2C.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 % 10num = num / 10main()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 a3.写出下面程序的执行结果。

def main():lst = [2, 4, 6, 8, 10]lst = 2 * lstlst[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()4.写出下面程序的执行结果。

import stringdef main():s = "I like python!"s = string.lower(s)alist = []countlist = []count=0for i in range( len(s) ):if (ord(s[i]) <= ord('Z') and ord(s[i]) >= ord('A')) \or (ord(s[i]) <= ord('z') and ord(s[i]) >= ord('a')):if (s[i] in alist):sign = alist.index(s[i])countlist[sign] += 1else:alist.append(s[i])countlist.append(1)count += 1for i in range(count):print alist[i], " ", countlist[i]main()5.阅读下面程序def fact(n)return n * fact(n-1)def main()print fact(5)请问该程序是否正确?如果正确的话,请写出运行结果;如果不正确,则修改程序并写出相应运行结果。

6.下面程序是为了在屏幕上显示10个相同形状的长方形。

from graphics import *def main():win = GraphWin(200,200)shape = Rectangle( Point(20,20), Point(30,40) )shape.setOutline("yellow")shape.setFill("red")shape.draw(win)sList = []sList.append(shape)for i in range(1,10):p = win.getMouse()c = sList[i-1].getCenter()dx = p.getX() - c.getX()dy = p.getY() - c.getY()win.getMouse()win.close()main()请问该程序是否正确?如果不正确,请修改程序。

7.写出下面程序的功能。

假设文件“original”内容为Upgrc y npmepyk.Write a program.那么文件“savetoo”内存储的内容应该是什么?import stringdef main():print "This is a program......"infile = open("original", 'r' )outfile = open("savetoo", 'w' )msg = ""for strstr in infile.readlines():for ichar in strstr:if ichar >= 'a' and ichar <= 'z':n = ord(ichar) + 2yn = (n - ord( 'a' ) ) % 26ch=chr( ord( 'a' ) + yn )elif ichar >= 'A' and ichar <= 'Z':n = ord(ichar) + 2yn = ( n - ord( 'A' ) ) % 26ch = chr( ord( 'A' ) + yn )else:ch = icharmsg = msg + choutfile.write(msg)infile.close()outfile.close()main()8.修改下面程序使得其能运行正常。

class Box: #Box类def init(self, l, w, h):self.length = lself.width = wself.height = hdef volume( ): //计算Box的体积return length * width * heightb = Box(4, 5, 6)print b.volume()四. 程序填空(每空1分,共15分)1.下列程序的作用是将输入的字符串中的每个字符的ASCII码形成一个列表。

例如,输入为abcde时,输出为[97, 98, 99, 100, 101]。

请补充完整。

def main():str = raw_input(“请输入一个字符串:”)output = []for i in range( ):num =output. (num)print outputmain()2.请补充完整mergesort程序。

相关主题