一、選擇題
1、關(guān)于Python語(yǔ)言的特點(diǎn),以下選項(xiàng)描述正確的是( B )。
A.Python語(yǔ)言不支持面向?qū)ο蟆??????????? B.Python語(yǔ)言是解釋型語(yǔ)言。
C.Python語(yǔ)言是編譯型語(yǔ)言。????????????? D.Python語(yǔ)言是非跨平臺(tái)語(yǔ)言。
解析:Python是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類(lèi)型的高級(jí)程序語(yǔ)言,故A錯(cuò)誤,B正確;既然Python是一種解釋型語(yǔ)言,這意味著開(kāi)發(fā)過(guò)程中沒(méi)有了編譯這個(gè)環(huán)節(jié),類(lèi)似于PHP和Perl語(yǔ)言,故C錯(cuò)誤;可移植是Python的特點(diǎn)之一,故D錯(cuò)誤。
2、以下選項(xiàng),( ?D? )不是Python的保留字。
A.del?????? B.pass????? C.in???????? D.string
解析:del,pass,in均為Python的保留字,故D正確。
3、關(guān)于Python語(yǔ)句P = –P,以下選項(xiàng)中描述正確的是(? C?)。
A.P和P的負(fù)數(shù)相等。 ??????????。 B.P和P的絕對(duì)值相等。
C.給P賦值為它的負(fù)數(shù) 。????????? D.P的值為0。
解析:一個(gè)等號(hào)“=”代表賦值,兩個(gè)等號(hào)“==”代表比較,故C正確。
4、關(guān)于Python的列表,描述錯(cuò)誤的選項(xiàng)是(? D ?)。
A.Python列表是包含0個(gè)或者多個(gè)對(duì)象引用的有序序列。
B.Python列表用中括號(hào)[]表示。
C.Python列表是一個(gè)可以修改數(shù)據(jù)項(xiàng)的序列類(lèi)型。
D.Python列表的長(zhǎng)度不可變。
解析:列表、字典、集合為可變類(lèi)型,整形、字符串、元組、布爾為不可變類(lèi)型,故D正確。需要注意的是,對(duì)于集合來(lái)說(shuō),其內(nèi)部的元素必須為不可變類(lèi)型。
Tips:可變與不可變?nèi)Q于當(dāng)該數(shù)據(jù)類(lèi)型的對(duì)應(yīng)變量的值發(fā)生改變時(shí),對(duì)應(yīng)的內(nèi)存地址是否發(fā)生變化,若變化,則為不可變對(duì)象;若改變,則為可變對(duì)象。
5、下面代碼的輸出結(jié)果是(?? ??A???? )。
name = "Python語(yǔ)言程序設(shè)計(jì)"
print(name[2: –2])
A.thon語(yǔ)言程序????????? B.thon語(yǔ)言程序設(shè)
C.ython語(yǔ)言程序???????? D.ython語(yǔ)言程序設(shè)
解析:
6、lst = [1,2,3,4,5,6], 以下關(guān)于循環(huán)結(jié)構(gòu)的描述,錯(cuò)誤的是( ?D? )。
A.表達(dá)式for i in range(len(lst))的循環(huán)次數(shù)跟for i in lst 的循環(huán)次數(shù)是一樣的。
B.表達(dá)式for i in range(len(lst))的循環(huán)次數(shù)跟for i in range(0,len(lst))的循環(huán)次數(shù)是一樣的。
C.表達(dá)式for i in range(len(lst))的循環(huán)次數(shù)跟for i in range(1,len(lst)+1)的循環(huán)次數(shù)是一樣的。
D.表達(dá)式for i in range(len(lst))跟for i in lst 的循環(huán)中,i的值是一樣的。
解析:一個(gè)是遍歷數(shù)字,一個(gè)是遍歷列表,i值不一樣,故D錯(cuò)誤。
7、函數(shù)表達(dá)式 any([0,False,True]) 的結(jié)果是(? D? )。
A.無(wú)輸出????? B.False????? C.出錯(cuò)??????? D.True
解析:any() 函數(shù)用于判斷給定的可迭代參數(shù) iterable 是否全部為 False,則返回 False,如果有一個(gè)為 True,則返回 True。元素除了是 0、空、FALSE 外都算 TRUE。故D正確
8、下列程序運(yùn)行結(jié)果是( ??D?? )。
a = 30;b = 1
if a >= 10:
??? a = 20
elif a >= 20:
??? a = 30
elif a >= 30:
??? b = a
else:
??? b = 0
print('a={}, b={}'.format(a, b))
A.a=30, b=1?????? ????????????????B.a=30, b=30
C.a=20, b=20?????? ???????????????D.a=20, b=1
解析:由于a=30>=10,故a=20,那么剩下的語(yǔ)句就不再執(zhí)行了,只執(zhí)行“a>=10”的if語(yǔ)句,而b的值沒(méi)有受到改變,故a=20,b=1,D正確。
9、實(shí)例方法的第一個(gè)參數(shù)必須是( ?D? )。
A、 cls??? ??B、 init ?????C、 class? ????????D、 self
解析:實(shí)例方法的第一個(gè)參數(shù)是self,當(dāng)然在調(diào)用類(lèi)方法時(shí)可以不寫(xiě)self,因?yàn)?/strong>self會(huì)當(dāng)作默認(rèn)值;而第一個(gè)參數(shù)不一定是self,也可以自己創(chuàng)建參數(shù)。那為啥其他選項(xiàng)不行呢?因?yàn)?/strong>cls、class代表類(lèi),init是結(jié)構(gòu)函數(shù),涉及到方法、類(lèi)名、函數(shù)、關(guān)鍵字等都不可作為參數(shù),故D正確。
10、以下(?? B ??)以只寫(xiě)方式打開(kāi)文件abc.txt。
A、f = open("abc.txt","r")?????? ????B、f = open("abc.txt","w")
C、f = open("abc.txt","r+")????????? D、f = open("abc.txt","w+")
解析:只寫(xiě)方式 — write — w;
????? 只讀方式 – read – r。故B正確。
二、判斷題??
1、(?? T ??)Python使用縮進(jìn)來(lái)體現(xiàn)代碼之間的邏輯關(guān)系。??????????????????????????
2、(?? T ??)可以使用pyinstaller擴(kuò)展庫(kù)把Python源程序打包成為exe文件,從而脫離Python環(huán)境在Windows平臺(tái)上運(yùn)行。
3、(? ?F?? )在Python中可以使用if作為變量名。(if 是關(guān)鍵字!??!)
4、(?? T? ?)加法運(yùn)算符可以用來(lái)連接字符串并生成新字符串。
5、(? F? )Python中集合數(shù)據(jù)類(lèi)型支持使用下標(biāo)訪問(wèn)其中的元素。(集合是無(wú)序的,那么索引將毫無(wú)意義。)
6、(? ?F ??)下面代碼的輸出結(jié)果是['brown','purple','tomato']。??
s=["seashell","gold","pink","brown","purple","tomato"]
print(s[4:])
7、(? ?F?? )下面代碼的輸出結(jié)果是:False。?
listV=list(range(5))
print(2 in listV)
8、(?? F?? )在使用try…except…finally 結(jié)構(gòu)時(shí),將可能發(fā)生異常的語(yǔ)句放在except之后。
9、(?? F?? )使用with語(yǔ)句打開(kāi)文件對(duì)象,文件操作結(jié)束后仍需要使用close()來(lái)關(guān)閉文件。
10、(? ?T?? )定義類(lèi)時(shí)所有實(shí)例方法的第一個(gè)參數(shù)self用來(lái)表示對(duì)象本身。
三、 填空題
1、表達(dá)式(5**2)%10//3的計(jì)算結(jié)果是? ?1?? 。(與數(shù)學(xué)運(yùn)算符的優(yōu)先級(jí)差不多)
2、布爾類(lèi)型的值包括? True ??和? False? 。(布爾類(lèi)型也屬于不可變類(lèi)型)
3、判斷變量num能整除5的表達(dá)式為:?num % 5 == 0???? 。(一般都用if語(yǔ)句進(jìn)行判斷)
4、程序的流程控制有三種結(jié)構(gòu),分別是順序結(jié)構(gòu),? 選擇結(jié)構(gòu)?? ,? 循環(huán)結(jié)構(gòu)?? 。
5、while循環(huán)判斷條件是True,我們可以通過(guò)在循環(huán)體內(nèi)部使用 ?break?? 語(yǔ)句來(lái)跳出循環(huán)。
6、下列程序運(yùn)行的結(jié)果是? abab?? ?。
for i in range( 2 ):
? ??for s in "abcd":
??????? if s=="c":
??????????? break
??????? print (s,end="")??
解析:整體循環(huán)兩次,內(nèi)部循環(huán)輸出“ab”,最后輸出結(jié)果不換行。
7、下列程序運(yùn)行結(jié)果是 ??[81, 8, 9, 5, 36]?? 。
lst = [9,8,3,5,6]
for i in range(len(lst)):
??? if lst[i] %3 ==0:
???? ???lst[i] = pow(lst[i],2)
print(lst)
解析:這屬于間接訪問(wèn),用i遍歷0~4的整數(shù),也就是列表索引,將列表中能被3整除的元素替換成元素的平方,最后輸出替換后的列表。
8、lst1 = [2,3, 4,2,3],則set(lst1)的結(jié)果是?? {2,3,4}??? 。
解析:set()代表集合,而集合不允許有重復(fù)元素。
9、下列程序的運(yùn)行結(jié)果是 ?3?????? 。
ls=[[1,2,3],[4,5,6],[7,8]]
print(len(ls))
解析:長(zhǎng)度取決于數(shù)據(jù)類(lèi)型的元素個(gè)數(shù)。
10、下列程序運(yùn)行的結(jié)果是?? 29??? 。
f=lambda x,y:x*x+2*y
print(f(5,2))
解析:就相當(dāng)于把5和2代入x和y中,求x**2+2*y的值。
11、導(dǎo)入random模塊的寫(xiě)法是 import random 。
12、exec("for i in range(6):print(i,end ='? ') ")的運(yùn)行結(jié)果是 0? 1? 2? 3? 4? 5 。
解析:exec 執(zhí)行儲(chǔ)存在字符串或文件中的 Python 語(yǔ)句,相比于 eval,exec可以執(zhí)行更復(fù)雜的 Python 代碼。相當(dāng)于執(zhí)行引號(hào)內(nèi)的表達(dá)式。
13、print(list(map(abs,[1,2,-5,-6]))) 的運(yùn)行結(jié)果是 [1,2,5,6]? 。
解析:map()會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射。第一個(gè)參數(shù) function 以參數(shù)序列中的每一個(gè)元素調(diào)用 function 函數(shù),返回包含每次 function 函數(shù)返回值的新列表。在這里相當(dāng)于用abs取絕對(duì)值的函數(shù),去對(duì)列表[1,2,-5,-6]中元素逐一進(jìn)行操作。
14、Python 文件操作中,read ()可以讀取 ? ?文件中的所有數(shù)據(jù)? ??,readline()讀取? 文件中某一行的內(nèi)容? ??,readlines()讀取? 文件的所有行? ??。
解析:readlines所讀取的文件內(nèi)容會(huì)被放進(jìn)一個(gè)列表中,每行的內(nèi)容會(huì)作為列表中的元素,包括空格與換行符。
15、面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)基本特征是? 繼承? ??、? 多態(tài)? ??、封裝。
四、閱讀下列程序,并按要求解答
1、(1)輸入為:defg 時(shí),寫(xiě)出程序的輸出。(已知a的ASCII碼為97)
(2)描述此程序的運(yùn)行過(guò)程。
s = input("請(qǐng)輸入一個(gè)字符串")
s2 = []
for i in s:
?? ?s2.append(ord(i))
print(s2)
運(yùn)行過(guò)程:
- 創(chuàng)建變量s,輸入字符串,并創(chuàng)建空列表s2;
- 用變量i遍歷字符串s;
- 將i值轉(zhuǎn)換為ASCII碼,追加到空列表s2中;
- 最后輸出列表s2,結(jié)果為
2、寫(xiě)出下列程序的運(yùn)行結(jié)果。
d = { 1:'Mon',2:'Tues',3:'Wed'}
for key in d:
??? print(key,end= " ")
print()
for key in d:
??? print(d[key],end =" " )
print()
for key ,value in d.items():
??? print((key,value),end= " ")
運(yùn)行結(jié)果為:1 2 3
??????????? Mon Tues Wed
??????????? (1,’Mon’) (2,’Tues’) (3,’Wed’)
3、(1)寫(xiě)出下列程序的運(yùn)行結(jié)果。(2)描述函數(shù)func()的功能。
def func(a, *b):
??? for item in b:
??????? a += item
??? return a
m = 0
print(func(m,? 7, 8, 9, 10))
- 運(yùn)行結(jié)果為:34
- 函數(shù)func()的功能是將m依次與元組變量中的多個(gè)值累加。
4、(1)寫(xiě)出下列程序的運(yùn)行結(jié)果。(2)描述此程序運(yùn)行過(guò)程。
def change(x,y):
??? a = y
??? b = x
??? print(a,b)
a = 4
b = 5
change(a,b)
print(a,b)
- 運(yùn)行結(jié)果為:(5,4) (4,5)
- 運(yùn)行過(guò)程:首先將4、5分別賦值給a、b,調(diào)用自定義函數(shù)change(),
將a、b的值分別賦值給自定義函數(shù)的變量x、y;在函數(shù)體內(nèi),
將x、y的值分別賦值給b、a,隨后輸出a、b的值(5,4);最后輸出函數(shù)體外的a、b的值(4,5).
5、(1)寫(xiě)出程序的運(yùn)行輸入3時(shí)的結(jié)果。(2)描述此程序的運(yùn)行過(guò)程。
n = int(input("請(qǐng)輸入n(>=0):"))
while n<=0:
??? n = int(input("請(qǐng)輸入n(>=0):"))
s2 = 1; i =1
while i<= n:
??? s2 = s2*i
??? i +=1
print("{}!= {}".format(n,s2))
- 結(jié)果為:3! = 6
- 運(yùn)行過(guò)程:
- ?輸入整數(shù)3,將3賦值給n;
- 判斷n是否小于等于0,由于3大于0,故不執(zhí)行while循環(huán)體語(yǔ)句;
- 判斷i是否小于等于n,已知s2=1,i=1,而1小于3,故執(zhí)行while循環(huán)體語(yǔ)句,將s2*i的值賦值給s2,將i+1的值賦值給i,如此循環(huán)下去,直至i的值大于3時(shí),結(jié)束循環(huán),此時(shí)s2的值為6,n的值為3;
- 最后將n和s2的值格式化輸出。
6、(1)寫(xiě)出下列程序后數(shù)據(jù)的存儲(chǔ)情況。(2)解釋writelines()與write()的區(qū)別。
with open('d:\\abc.txt','w') as f:
??? f.write("時(shí)間是個(gè)常數(shù)\n")
??? f.write('但也是個(gè)變數(shù)\n')
f.writelines(["勤奮的人無(wú)窮多\n","懶惰的人無(wú)窮少\n"])
(1)存儲(chǔ)情況:時(shí)間是個(gè)常數(shù)
??????????? 但也是個(gè)變數(shù)
??????????? 勤奮的人無(wú)窮多
??????????? 懶惰的人無(wú)窮少
- writelines()的參數(shù)是序列,作用是依次把列表中的數(shù)據(jù)寫(xiě)入到文件中;
-
而write()的參數(shù)是一個(gè)字符串,作用是將字符串中數(shù)據(jù)寫(xiě)入到文件中。
五、 編程題(本題2小題,每小題10分,共20分)
1、編寫(xiě)程序:根據(jù)用戶輸入的課程成績(jī)(成績(jī)的有效區(qū)間為[0,100]分),輸出相應(yīng)提示語(yǔ),如表1所示。當(dāng)用戶輸入q 或Q,程序運(yùn)行結(jié)束。運(yùn)行效果如圖1所示。 (10分)
表1? 用戶輸入對(duì)應(yīng)的輸出
輸入分?jǐn)?shù) |
輸出 |
[90,100] |
成績(jī)優(yōu)秀。 |
[60,89] |
成績(jī)合格。 |
[0,59] |
繼續(xù)努力。 |
Q 或q |
運(yùn)行結(jié)束 |
圖1? 運(yùn)行效果示意圖
while True:
??? n = input("請(qǐng)輸入課程成績(jī)(Q或q結(jié)束):")
??? if n.upper() == 'Q':
??????? print('運(yùn)行結(jié)束。')
??????? break
??? if 90 <= int(n) <= 100:
??????? print("成績(jī)優(yōu)秀。")
??? elif 60 <= int(n) <= 89:
??????? print("成績(jī)合格。")
??? elif 0 <= int(n) <= 59:
???? ???print("繼續(xù)努力。")
??? elif int(n) < 0 or int(n) > 100:
??????? n = input("請(qǐng)輸入課程成績(jī)(Q或q結(jié)束):")
??????? continue
2、編寫(xiě)程序創(chuàng)建類(lèi)MySquare,計(jì)算正方形的周長(zhǎng)、面積、正方體的體積、正方體的表面積,結(jié)果保留2位小數(shù),正方形的邊長(zhǎng)在運(yùn)行時(shí)由用戶輸入。運(yùn)行效果如圖2所示。 (10分)
圖2? 運(yùn)行效果示意圖文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-793337.html
class MySquare:
??? def __init__(self,x):
??????? self.x = x
??????? self.zfx_tx()
??????? self.zft_tx()
??? def zfx_tx(self):
??????? self.c = 4 * self.x
??????? self.s1 = self.x ** 2
??????? print(f"正方形周長(zhǎng)是:{round(self.c,2)}")
??????? print(f"正方形面積是:{round(self.s1,2)}")
??? def zft_tx(self):
??????? self.v = self.x ** 2
??????? self.s2 = 6 * (self.x ** 2)
??????? print(f"正方體表面積是:{round(self.s2,2)}\n正方體體積是:{round(self.v,2)}")
bc = float(input("請(qǐng)輸入正方形邊長(zhǎng):"))
MySquare(bc)
首次編稿,若有差錯(cuò)請(qǐng)多多指正~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-793337.html
到了這里,關(guān)于hw大一Python模擬題詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!