上海交大程序的设计python期末考试题.docx

上传人:b****5 文档编号:3564789 上传时间:2022-11-23 格式:DOCX 页数:10 大小:18.94KB
下载 相关 举报
上海交大程序的设计python期末考试题.docx_第1页
第1页 / 共10页
上海交大程序的设计python期末考试题.docx_第2页
第2页 / 共10页
上海交大程序的设计python期末考试题.docx_第3页
第3页 / 共10页
上海交大程序的设计python期末考试题.docx_第4页
第4页 / 共10页
上海交大程序的设计python期末考试题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

上海交大程序的设计python期末考试题.docx

《上海交大程序的设计python期末考试题.docx》由会员分享,可在线阅读,更多相关《上海交大程序的设计python期末考试题.docx(10页珍藏版)》请在冰豆网上搜索。

上海交大程序的设计python期末考试题.docx

上海交大程序的设计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.continueB.exceptC.initD.pass

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

ord('a')==97):

lista=[1,2,3,4,5,'a','b','c','d','e']

printlista[2]+lista[5]

A.100B.'d'C.dD.TypeEror

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

A.i=0

while(i<=100):

printi,

i=i+1

B.foriinrange(100):

printi,

C.foriinrange(100,0,-1):

printi,

D.i=100

while(i>0):

printi,

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.initB.__init__C.__initD.init__

【】11.已知x=43,y=False;则表达式(x>=yand'A'<'B'andnoty)的值是:

A.FalseB.语法错C.TrueD."假"

【】12.对n个数做归并排序(mergesort),这个算法是:

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.car2C.2carD.var-name

二.概念填空(每空1分,共10分)

1.表达式eval("4*2+5%2+4/3")的结果是。

2.print'Thisfloat,%-10.5f,haswidth10andprecision5.'%(3.1415926)的输出结果是:

3.计算的本质是和。

4.执行print1.3-1==0.3,结果是False的原因是。

5.下面语句的执行结果是。

s="bbc"

printstring.split(3*s)

6.、、是科技创新的三大支柱。

7.无穷循环whileTrue:

的循环体中可用语句退出循环。

三.阅读程序并回答问题(每题5分,共40分)

1.当输入是54321时,写出下面程序的执行结果。

defmain():

num=input(“请输入一个整数:

”)

whilenum!

=0:

printnum%10

num=num/10

main()

答案:

5

4

3

2

1

2.写出下面程序的执行结果。

a=[1,20,32,14,5,62,78,38,9,10]

foriinrange(9):

if(a[i]>a[i+1]):

a[i],a[i+1]=a[i+1],a[i]

printa

3.写出下面程序的执行结果。

defmain():

lst=[2,4,6,8,10]

lst=2*lst

lst[1],lst[3]=lst[3],lst[1]

swap(lst,2,4)

foriinrange(len(lst)-4):

printlst[i],""

defswap(lists,ind1,ind2):

lists[ind1],lists[ind2]=lists[ind2],lists[ind1]

main()

 

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

importstring

defmain():

s="Ilikepython!

"

s=string.lower(s)

alist=[]

countlist=[]

count=0

foriinrange(len(s)):

if(ord(s[i])<=ord('Z')andord(s[i])>=ord('A'))\

or(ord(s[i])<=ord('z')andord(s[i])>=ord('a')):

if(s[i]inalist):

sign=alist.index(s[i])

countlist[sign]+=1

else:

alist.append(s[i])

countlist.append

(1)

count+=1

foriinrange(count):

printalist[i],"",countlist[i]

main()

5.阅读下面程序

deffact(n)

returnn*fact(n-1)

defmain()

printfact(5)

请问该程序是否正确?

如果正确的话,请写出运行结果;如果不正确,则修改程序并写出相应运行结果。

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

fromgraphicsimport*

defmain():

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)

foriinrange(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”内容为

Upgrcynpmepyk.

Writeaprogram.

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

importstring

defmain():

print"Thisisaprogram......"

infile=open("original",'r')

outfile=open("savetoo",'w')

msg=""

forstrstrininfile.readlines():

foricharinstrstr:

ifichar>='a'andichar<='z':

n=ord(ichar)+2

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

ch=chr(ord('a')+yn)

elifichar>='A'andichar<='Z':

n=ord(ichar)+2

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

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

else:

ch=ichar

msg=msg+ch

outfile.write(msg)

infile.close()

outfile.close()

main()

8.修改下面程序使得其能运行正常。

classBox:

#Box类

definit(self,l,w,h):

self.length=l

self.width=w

self.height=h

defvolume():

//计算Box的体积

returnlength*width*height

b=Box(4,5,6)

printb.volume()

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

1.下列程序的作用是将输入的字符串中的每个字符的ASCII码形成一个列表。

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

请补充完整。

defmain():

str=raw_input(“请输入一个字符串:

”)

output=[]

foriinrange():

num=

output.(num)

printoutput

main()

2.请补充完整mergesort程序。

defmerge(lst1,lst2,lst3):

i1=i2=i3=0

n1,n2=len(lst1),len(lst2)

whilei1

iflst1[i1]

#copyfromlst1

lst3[i3]=lst1[i1]

i1=i1+1

else:

#copyfromlist2

lst3[i3]=lst2[i2]

i2=i2+1

#itemaddedtolst3

while

lst3[i3]=lst1[i1]

i1=i1+1

i3=i3+1

while

lst3[i3]=lst2[i2]

i2=i2+1

i3=i3+1

defmergeSort(lst):

n=len(lst)

if

m=n/2

lst1,lst2=

mergeSort(lst1)

mergeSort(lst2)

merge(lst1,lst2,lst)

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

defmain():

x,y,z=input("Pleaseinputthreewholenumbers:

")

max,min=f(x,y,z)

print"Maxvalue:

",max,"Minvalue:

",min

deff(a,b,c):

if(b>max):

max=b

if(c>max):

max=c

if(b

min=b

if(c

min=c

main()

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

from

fromstringimport*

defmain():

lines=input("pleaseinputthelinesoftriangle:

")

foriinrange(lines):

character=''

forj:

if:

mark='*'

else:

mark='#'

printspace+character

main()

 

五.程序设计(共20分)

1.计算1-1/2+1/3-1/4…+1/99-1/100+…直到最后一项的绝对值小于10-4为止。

(5分)

 

2.编程模拟一个与计算机扔骰子猜大小的游戏。

每次游戏采用三局两胜,计算机扔一个骰子,其中1,2,3算为小,4,5,6算为大。

用户每次可以猜大或者猜小,猜中则用户赢,否则计算机赢。

如程序的一次运行情况如下:

Pleaseinputyourguess(big/small):

small

Youarewrong.

Pleaseinputyourguess(big/small):

dfdfd

Pleaseinputyourguess(big/small):

big

Youareright.

Pleaseinputyourguess(big/small):

big

Youarewrong.

Youlostthisround

Playagain?

(y/n):

ddd

Playagain?

(y/n):

n

Youplayed1rounds,andyouwon0rounds

要求:

尽可能用到模块化程序设计的思想。

(15分)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1