【正文】
(pi)monteCarlo(1000000)【詳解】本題考查的知識點是Python程序。原理:通常蒙特?卡羅方法通過構造符合一定規(guī)則的隨機數(shù)來解決數(shù)學上的各種問題。對于那些由于計算過于復雜而難以得到解析解或者根本沒有解析解的問題,蒙特?卡羅方法是一種有效的求出數(shù)值解的方法。一般蒙特?卡羅方法在數(shù)學中最常見的應用就是蒙特?卡羅積分。方法:蒙特卡羅方法的解題過程可以歸結為三個主要步驟:構造或描述概率過程;實現(xiàn)從已知概率分布抽樣;建立各種估計量。利用蒙特卡洛方法實現(xiàn)求解圓周率!/usr/bin/Python* coding:utf8 *import randomimport mathdef monteCarlo(N): i = 0 count = 0 while i = N: x = () y = () if pow(x, 2) + pow(y, 2) 1: count += 1 i += 1 pi = 4 * count / N print(pi)monteCarlo(1000000)32.是 k%2==0或(k+1)%2==1或(k1)%2==1 ans+code[p] ans 【詳解】本題主要考查Python程序的執(zhí)行與調試。①若接收到的二進制碼為“101011011”,1的個數(shù)有6個,則傳輸過程存在差錯。②變量k統(tǒng)計1的個數(shù),若k是偶數(shù)則表明傳輸錯誤,否則傳輸正確,故此處填k%2==0或(k+1)%2==1或(k1)%2==1。③如果p是1~9之間的數(shù)字,則直接將p拼接到ans中,否則從字典code中取對應的字母,故此處填ans+code[p]。④變量ans保存轉換后的十六進制,故此處填ans。33.+*/ b==0 str(c) 【詳解】本題主要考查Python程序執(zhí)行與調試。①變量fh用來接收運算符,由代碼“if fh in s”可知,變量s保存加減乘除(+*/)四種運算符,故此處填+*/。②變量b保存第二個數(shù),當進行除法運算時,如果除數(shù)為“0”,提示輸出“除數(shù)不能為0!”,此處是處理b=0的情況,故填b==0。③變量c保存運算結果,此處輸出 c的結果,故填str(c)。34.①i =(Len(s)\8)*8 ②a(start + c((i1)Mod 8+1)) ③ss = convert(Asc(b(i))) 【詳解】(1)“A”的ASCII碼值是65,用二進制表示為0100001,m=35,用二進制表示為0010001,位做異或運算,相同為0,相異為1,可得:01100010。(2)①以8個數(shù)據(jù)為一段進行分段處理,個數(shù)等于8的數(shù)據(jù)段需進行位置變換,故需進行位置變換的數(shù)據(jù)段有(Len(s)\8)個,數(shù)據(jù)個數(shù)為i =(Len(s)\8)*8。②位置變換方法:加密后數(shù)據(jù)段的第ⅰ個元素=原數(shù)據(jù)段的第c(i)個元素,其中i=1,2,……,8,i表示段內位置。代碼“Do While i =(Len(s)\8)*8”中的i對應段內位置可為“1+(i1)Mod8”,start表示該數(shù)據(jù)段第一個數(shù)據(jù)的前個位置,故數(shù)組b第i位置元素是來自數(shù)組a第start + c(1+(i*1)Mod 8)位置,故②處代碼為“a(start + c(i1)Mod8+1))”。③位置變換后的數(shù)據(jù)需轉二進制,再按位做異或運算,故③處的代碼是調用自定義函數(shù)convert把b(i)中字符的ASCII碼轉二進制后存入變量ss,故此處代碼為“ss = convert(Asc(b(i))”。35.順序結構 pi= r=float(input(“請輸入半徑r:”)) 整型和實數(shù)型不能直接運算,結果會有誤差 h=float(input(“請輸入高h:”)) 【詳解】本題主要考查Python程序執(zhí)行與調試。①分析程序可知,解決問題的程序用到的控制結構有:順序結構。②圓周率定義為:,故第二空填pi=。③r=float(input(“請輸入半徑r:”)) 整型和實數(shù)型不能直接運算,結果會有誤差 h=float(input(“請輸入高h:”))。36.c 5 【詳解】本題主要考查Python程序執(zhí)行與調試。①第一個人38歲,n標記第幾個人,變量c保存年齡,當n=1時,c=38,故第一空填38。②后面的人都比前一個人小3歲,故當n不等于1時,調用遞歸函數(shù)age, c = age(n 1) 3,最后返回第n個人的年齡c,第二空填c。③此處是返回第5個人的年齡,即age(5),填5。37.for i in range(1,10): for j in range(1,i+1): print(str(j)+*+str(i)+=+str(i*j),end= )print()【詳解】本題主要考查Python程序的執(zhí)行。九九乘法口訣表可以通過嵌套for循環(huán)實現(xiàn),內層循環(huán)完一次,執(zhí)行print()換行,具體代碼如下:for i in range(1,10): for j in range(1,i+1): print(str(j)+*+str(i)+=+str(i*j),end= )print()38.for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10 if i==a*a*a+b*b*b+c*c*c: print(i)【詳解】本題主要考查程序設計??赏ㄟ^Python程序設計實現(xiàn)題干要求,通過for循環(huán)找出水仙花數(shù),依次取出三位數(shù)的每一位數(shù),其中百位a= i//100,十位b= (i//10)%10,個位c=i%10,然后判斷是否是水仙花數(shù),具體代碼如下:for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10 if i==a*a*a+b*b*b+c*c*c: print(i)39.參考答案1:for i in range(2,101): j=2 while j=i: if i%j==0: break j+=1 if ji: continue else: print(i,end= )參考答:2:for i in range(2,101): for j in range(2,i): if(i%j==0): break else:print(i)【詳解】本題考查是Python語言編程解決問題。break 語句可以立即終止當前循環(huán)的執(zhí)行,跳出當前所在的循環(huán)結構。無論是 while 循環(huán)還是 for 循環(huán),只要執(zhí)行 break 語句,就會直接結束當前正在執(zhí)行的循環(huán)體。這就好比在操場上跑步,原計劃跑 10 圈,可是當跑到第 2 圈的時候,突然想起有急事要辦,于是果斷停止跑步并離開操場,這就相當于使用了 break 語句提前終止了循環(huán)。答案中代碼的實現(xiàn)過程見下圖:參考答案1:參考答案2:40.bananaapplemangoa= 3【詳解】本題主要考查Python中For循環(huán)結構。 for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串;len() 方法返回列表元素個數(shù)。因此本題輸出為各列表內容及列表元素個數(shù)?!军c睛】