上海交大2023-2023程序設(shè)計python期末考試題_第1頁
上海交大2023-2023程序設(shè)計python期末考試題_第2頁
上海交大2023-2023程序設(shè)計python期末考試題_第3頁
上海交大2023-2023程序設(shè)計python期末考試題_第4頁
上海交大2023-2023程序設(shè)計python期末考試題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

選擇題:將唯一正確的選項寫在題前括號中〔每題1分,共15分〕【】1.表達(dá)式'%d%%%d'%(3/4,3%4)的值是:A.'0%3'B.'0%%3'C.'3/4%3%4'D.'3/4%%3%4'【】2.下面標(biāo)識符中不是python語言的保存字的是:A.continue B.except C.init D.pass【】3.以下程序的輸出結(jié)果是〔提示:ord〔'a'〕==97〕:lista=[1,2,3,4,5,'a','b','c','d','e']printlista[2]+lista[5]A.100 B.'d'C.d D.TypeEror【】4.下面的循環(huán)體執(zhí)行的次數(shù)與其它不同的是:A.i=0while(i<=100): printi,i=i+1B.foriinrange(100): printi,C.foriinrange(100,0,-1): printi,D.i=100while(i>0): printi, i=i–1【】5.自頂向下逐步求精的程序設(shè)計方法是指:A.將一個大問題簡化為同樣形式的較小問題。B.先設(shè)計類,再實例化為對象。C.解決方案用假設(shè)干個較小問題來表達(dá),直至小問題很容易求解。D.先設(shè)計簡單版本,再逐步增加功能?!尽?.簡單變量作為實參時,它和對應(yīng)的形參之間數(shù)據(jù)傳遞方式是:A.由形參傳給實參B.由實參傳給形參C.由實參傳給形參,再由形參傳給實參D.由用戶指定傳遞方向【】7.以下說法不正確的選項是:A.在不同函數(shù)中可以使用相同名字的變量。B.函數(shù)可以減少代碼的重復(fù),也使得程序可以更加模塊化。C.主調(diào)函數(shù)內(nèi)的局部變量,在被調(diào)函數(shù)內(nèi)不賦值也可以直接讀取。D.函數(shù)體中如果沒有return語句,也會返回一個None值。【】8.關(guān)于list和string以下說法錯誤的選項是:A.list可以存放任意類型。B.list是一個有序集合,沒有固定大小。C.用于統(tǒng)計string中字符串長度的函數(shù)是string.len()。D.string具有不可變性,其創(chuàng)立后值不能改變?!尽?.下面問題屬于計算機(jī)本質(zhì)上不可解問題的是:A.Hanoi塔問題 B.排序問題 C.求階乘 D.Halting問題【】10.python語言定義的class的初始化函數(shù)的函數(shù)名是:A.init B.__init__ C.__init D.init__【】11.x=43,y=False;那么表達(dá)式(x>=yand'A'<'B'andnoty)的值是:A.False B.語法錯C.True D."假"【】12.對n個數(shù)做歸并排序(mergesort),這個算法是:A.nlogn時間的B.線性時間的C.logn時間的D.n2時間的【】13.下面不是計算思維的特征的是:A.概念化 B.?dāng)?shù)學(xué)與工程思維的融合 C.面向所有的人 D.計算機(jī)的思維【】14.執(zhí)行下面操作后,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.2carD.var-name二.概念填空〔每空1分,共10分〕1.表達(dá)式eval("4*2+5%2+4/3")的結(jié)果是。2.print'Thisfloat,%-10.5f,haswidth10andprecision5.'%(3.1415926)的輸出結(jié)果是:3.計算的本質(zhì)是和。4.執(zhí)行print1.3-1==0.3,結(jié)果是False的原因是。5.下面語句的執(zhí)行結(jié)果是。s="bbc"printstring.split(3*s)6.、、是科技創(chuàng)新的三大支柱。7.無窮循環(huán)whileTrue:的循環(huán)體中可用語句退出循環(huán)。三.閱讀程序并答復(fù)以下問題〔每題5分,共40分〕1.當(dāng)輸入是54321時,寫出下面程序的執(zhí)行結(jié)果。defmain():num=input(“請輸入一個整數(shù):〞)whilenum!=0:printnum%10num=num/10main()答案:5答案:54321a=[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]printa3.寫出下面程序的執(zhí)行結(jié)果。defmain():lst=[2,4,6,8,10]lst=2*lstlst[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.寫出下面程序的執(zhí)行結(jié)果。importstringdefmain():s="Ilikepython!"s=string.lower(s)alist=[]countlist=[]count=0foriinrange(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]+=1else:alist.append(s[i])countlist.append(1)count+=1foriinrange(count):printalist[i],"",countlist[i]main()5.閱讀下面程序deffact(n) returnn*fact(n-1)defmain() printfact(5)請問該程序是否正確?如果正確的話,請寫出運(yùn)行結(jié)果;如果不正確,那么修改程序并寫出相應(yīng)運(yùn)行結(jié)果。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.寫出下面程序的功能。假設(shè)文件“original〞內(nèi)容為Upgrcynpmepyk.Writeaprogram.那么文件“savetoo〞內(nèi)存儲的內(nèi)容應(yīng)該是什么?importstringdefmain():print"Thisisaprogram......"infile=open("original",'r')outfile=open("savetoo",'w')msg=""forstrstrininfile.readlines():foricharinstrstr:ifichar>='a'andichar<='z':n=ord(ichar)+2yn=(n-ord('a'))%26ch=chr(ord('a')+yn)elifichar>='A'andichar<='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.修改下面程序使得其能運(yùn)行正常。classBox:#Box類definit(self,l,w,h):self.length=lself.width=wself.height=hdefvolume()://計算Box的體積returnlength*width*heightb=Box(4,5,6)printb.volume()四.程序填空〔每空1分,共15分〕1.以下程序的作用是將輸入的字符串中的每個字符的ASCII碼形成一個列表。例如,輸入為abcde時,輸出為[97,98,99,100,101]。請補(bǔ)充完整。defmain():str=raw_input(“請輸入一個字符串:〞)output=[]foriinrange():num=output.(num)printoutputmain()2.請補(bǔ)充完整mergesort程序。defmerge(lst1,lst2,lst3):i1=i2=i3=0n1,n2=len(lst1),len(lst2)whilei1<n1andi2<n2:iflst1[i1]<lst2[i2]:#copyfromlst1lst3[i3]=lst1[i1]i1=i1+1else:#copyfromlist2lst3[i3]=lst2[i2]i2=i2+1#itemaddedtolst3whilelst3[i3]=lst1[i1]i1=i1+1i3=i3+1whilelst3[i3]=lst2[i2]i2=i2+1i3=i3+1defmergeSort(lst):n=len(lst)ifm=n/2lst1,lst2=mergeSort(lst1)mergeSort(lst2)merge(lst1,lst2,lst)3.下面程序的作用是顯示輸入的三個整數(shù)的最大值和最小值,請補(bǔ)充完整。defmain():x,y,z=input("Pleaseinputthreewholenumbers:")max,min=f(x,y,z)print"Maxvalue:",max,"Minvalue:",mindeff(a,b,c):if(b>max):max=bif(c>max):max=cif(b<min):min=bif(c<min):min=cmain()4.下面程序的作用是打印一個由隨機(jī)字符〔*或者#〕組成的等腰三角形,請補(bǔ)充完整。fromfromstringimport*defmain():lines=input("pleaseinputthelinesoftriangle:")foriinrange(lines):character=''

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論