搜档网
当前位置:搜档网 › 上海交大2011-2012程序设计python期末考试题

上海交大2011-2012程序设计python期末考试题

上海交大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 语言的保留字的是:

】3.以下程序的输出结果是(提示:

lista = [1 , 2, 3, 4, 5, 'a', 'b',

'c', print lista[2] + lista[5]

D . Typ eEror 】4.下面的循环体执行的次数与其它不同的是:

while( i <= 100): print i, i = i + 1

for i in ran ge(100):

print i,

for i in ran ge(100, 0, -1):

print i,

i = 100

while(i > 0):

print i,

i = i -1

】5.自顶向下逐步求精的程序设计方法是指

A .将一个大问题简化为同样形式的较小问题。

B .先设计类,再实例化为对象。

C .解决方案用若干个较小问题来表达,直至小问题很容易求解。

D .先设计简单版本,再逐步增加功能。

】6.简单变量作为实参时,它和对应的形参之间数据传递方式是:

A .由形参传给实参

C .由实参传给形参,再由形参传给实参 】7.以下说法不正确的是:

A .在不同函数中可以使用相同名字的变量。

B .函数可以减少代码的重复,也使得程序可以更加模块化。

C .主调函数内的局部变量,在被调函数内不赋值也可以直接读取。

D .函数体中如果没有 return 语句,也会返回一个 None 值。

】8关于list 和string 下列说法错误的是:

A . list 可以存放任意类型。

B . list 是一个有序集合,没有固定大小。

C .用于统计string 中字符串长度的函数是 string.len()。

D . string 具有不可变性,其创建后值不能改变。

A . continue

B . except

C . init

D . pass

ord (' a ') ==97): 'd', 'e']

B . 'd' A . 100 B .由实参传给形参 D .由用户指定传递方向

】 9.下面问题属于计算机本质上不可解问题的是: A . Hanoi 塔问题 B .排序问题 C .求阶乘 】10. python 语言定义的 class 的初始化函数的函数名是: A . init D .Halting 问题 】11.已知 B . __in it x = 43, y = False ; C . __init D . in it 则表达式 (x >= y and 'A' < 'B' and not y) 的值是: B .语法错 】 12.对 n 个数做归并排序 ( merge sort) ,这个算法是: A . nlogn 时间的 B .线性时间的 C . logn 时间的 】 13.下面不是计算思维的特征的是:

A .概念化

B .数学与工程思维的融合

】 14.执行下面操作后, list2 的值是:

A . Fals e C . Tru e D . n 2 时间的 C .面向所有的人 D .计算机的思维

list1 =

[4,5,6]

list2 =

list1 list1[2] = 3

A . [4,5,6]

B . [4,3,6]

】 15.下列合法的变量名是: C . [4,5,

3]

D . A,B,C 都不正确 A . main( ) B . car 2 C . 2ca

r

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)的输出结果是: s = "bb c"

print stri ng.s plit(3 * s)

三.阅读程序并回答问题(每题 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 ran ge(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]

s, 2, 4)

for i in ran ge(le n(lst) - 4):

prin t lst[i],""

def s, i nd1, i nd2):

lists[i nd1], lists[i nd2] = lists[i nd2], lists[i nd1] main ()

第3页共9页

3. 4. 5. 计算的本质是 ______________ 和 _______________

执行 print 1.3 - 1 == 0.3,结果是False 的原因是

下面语句的执行结果是 ________________________

6.

7. 无穷循环while True:的循环体中可用 是科技创新的三大支柱。 _____________ 语句退出循

4.写出下面程序的执行结果。 import string

def main():

s = "I like python!" s = string.lower(s) alist = [] countlist = [] count=0

for 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] += 1 else:

alist.append(s[i])

countlist.append(1) count += 1

for i in range(count):

print alist[i], " ", countlist[i] main() 5.阅读下面程序

def fact(n)

return n * fact(n-1) def main()

print fact(5) 请问该程序是否正确?如果正确的话, 请写出运行结果; 如果不正确, 则修改程序并写出相 应运行结果。

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()

请问该程序是否正确?如果不正确,请修改程序。

>=

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

7.写出下面程序的功能。假设文件“original ”内容为

Upgrc y npmepyk.

Write a program.

那么文件"savetoo”内存储的内容应该是什么?

import string

def main():

print "This is a program . "

infile = open("original", 'r' ) outfile = open("savetoo", 'w' ) msg = ""

for strstr in in():

for ichar in strstr:

if ichar >= 'a' and ichar <= 'z':

n = ord(ichar) + 2

yn = (n - ord( 'a' ) ) % 26 ch=chr( ord( 'a' ) + yn ) elif ichar >= 'A' and ichar <= 'Z':

n = ord(ichar) + 2

yn = ( n - ord( 'A' ) ) % 26

ch = chr( ord( 'A' ) + yn ) else:

ch = ichar

msg = msg + ch out(msg) in() out()

main()

8.修改下面程序使得其能运行正常。class Box: #Box 类

def init(self, l, w, h): self.length = l self.width = w self.height = h

def volume( ): //计算Box 的体积

return length * width * height

b = Box(4, 5, 6) print b.volume()

四.程序填空(每空1分,共15分)

1.下列程序的作用是将输入的字符串中的每个字符的ASCII码形成一个列表。例如,输入为abcde时,输出为[97, 98, 99, 100, 101]。请补充完整。

def main():

str = raw_input(请输入一个字符串:”) out

put =[]

for i in ran ge( )

num =

out put.

print out

put

(num)

main ()

2.请补充完整mergesort程序。

def merge(lst1, Ist2, Ist3):

i1 = i2 = i3 = 0

n1, n2 = len( Ist1), le

n(ls t2) while i1 < n1

and i2 < n2:

if Ist1[i1] <

Ist2[i2]:

Ist3[i3] =

Ist1[i1]

i1 = i1 + 1 # copy from Ist1

else : # copy from Iist2

while Ist3[i3] =

Ist2[i2]

i2 = i2 + 1

# item added to

Ist3

Ist3[i3] =

lst1[i1]

i1 = i1 + 1

i3 = i3 + 1

while _______

Ist3[i3] =

Ist2[i2]

i2 = i2 + 1

i3 = i3 +

1

def mergeSort(Ist):

n = len( 1st)

if ________

m = n / 2

Ist1, Ist2 =______

mergeSort(lst1)

mergeSort(lst2)

merge(lst1, Ist2,

Ist)

3 .下面程序的作用是显示输入的三个整数的最大值和最小值,

请补充完整。

def main():

x,y,z = inpu t(" PI ease input three whole nu mbers:") max,min = f(x,y,z)

prin t "Max value: ", max, "Min value: ", min def f(a,b,c):

if (b>max): max = b if (c>max): max = c if (b< min): min = b if (c< min): min = c mai n()

4.下面程序的作用是打印一个由随机字符( *或者#)组成的等腰三角形,请补充完整。from _____________________________________

from stri ng import *

def main():

lin es=inpu t(" pl ease input the lines of tria ngle:")

for i in ran ge(l in es):

character=" for j _

if

mark='*'

else:

mark='#'

print sp ace+character

mai n()

相关主题