【正文】
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)【詳解】本題考查的知識(shí)點(diǎn)是Python程序。原理:通常蒙特?卡羅方法通過(guò)構(gòu)造符合一定規(guī)則的隨機(jī)數(shù)來(lái)解決數(shù)學(xué)上的各種問(wèn)題。對(duì)于那些由于計(jì)算過(guò)于復(fù)雜而難以得到解析解或者根本沒(méi)有解析解的問(wèn)題,蒙特?卡羅方法是一種有效的求出數(shù)值解的方法。一般蒙特?卡羅方法在數(shù)學(xué)中最常見(jiàn)的應(yīng)用就是蒙特?卡羅積分。方法:蒙特卡羅方法的解題過(guò)程可以歸結(jié)為三個(gè)主要步驟:構(gòu)造或描述概率過(guò)程;實(shí)現(xiàn)從已知概率分布抽樣;建立各種估計(jì)量。利用蒙特卡洛方法實(shí)現(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.n=input(請(qǐng)輸入一個(gè)正整數(shù): ) n=int(n) For i in range(15,n+1,15)print(i)【詳解】本題考查的是Python循環(huán)語(yǔ)句。range函數(shù),第一個(gè)參數(shù)表示開(kāi)始,第二個(gè)參數(shù)表示停止,第三個(gè)參數(shù)表示步長(zhǎng)。print缺省的話默認(rèn)是換行輸出。33.列表 字典 鍵值對(duì) 3 3 【詳解】本題考查的是python語(yǔ)言的數(shù)據(jù)類(lèi)型,列表和字典。(1)列表是寫(xiě)在方括號(hào)[]之間,用逗號(hào)分隔開(kāi)的元素列表,students=[ 39。小明39。,39。小紅39。,39。小剛39。]就是列表。(2)字典用{}標(biāo)識(shí),它是一個(gè)無(wú)序的“鍵(key):值(value)”對(duì)集合,字典當(dāng)中的元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移存取。scores={ 39。小明39。:95,39。小紅39。:90,39。小剛39。:90}就是一個(gè)字典類(lèi)型。(3)其中“39。小明39。:95”就構(gòu)成了一個(gè)鍵值對(duì)。(4)len() 方法返回列表元素個(gè)數(shù)。students=[ 39。小明39。,39。小紅39。,39。小剛39。],里面有三個(gè)元素,故返回值是3。(5)print(len(scores)),其中scores={ 39。小明39。:95,39。小紅39。:90,39。小剛39。:90}該字典有3個(gè)鍵值對(duì),故輸出結(jié)果是3。34.+*/ b==0 str(c) 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①變量fh用來(lái)接收運(yùn)算符,由代碼“if fh in s”可知,變量s保存加減乘除(+*/)四種運(yùn)算符,故此處填+*/。②變量b保存第二個(gè)數(shù),當(dāng)進(jìn)行除法運(yùn)算時(shí),如果除數(shù)為“0”,提示輸出“除數(shù)不能為0!”,此處是處理b=0的情況,故填b==0。③變量c保存運(yùn)算結(jié)果,此處輸出 c的結(jié)果,故填str(c)。35.max1 arr1[i] max1 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。變量max1用來(lái)保存數(shù)組的最大值,初始值賦值為最小值32768,第一空填max1,通過(guò)for循環(huán)依次比較當(dāng)數(shù)組元素大于max1時(shí),更新max1的值為該元素繼續(xù)循環(huán)直到與所有元素比較完,第二空填arr1[i],最后輸出最大值是max1,故第三空填max1。36.b/(2*a) 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①delta大于0,方程有兩個(gè)不同的解,delta等于0,方程有兩個(gè)相同的解,delta小于0,方程無(wú)解,故第一空填0。②delta=0,則方程有兩個(gè)相同的根,x=b/(2*a),故第二空填b/(2*a)。37.C A B 【詳解】本題主要考查隊(duì)列數(shù)據(jù)結(jié)構(gòu)及Python程序。①隊(duì)列是從隊(duì)頭出隊(duì),隊(duì)尾入隊(duì),使用pop函數(shù)出隊(duì),隊(duì)頭的索引值是0,(0),(0)。②隊(duì)列入隊(duì)使用append方法追加到隊(duì)列尾,(x),故選A選項(xiàng)。③同理,(y),故選B選項(xiàng)。38.l=[]for i in range(2000, 3201): if (i%7==0) and (i%5!=0): (str(i))print (39。,39。.join(l))【詳解】本題主要考查程序設(shè)計(jì)。由題干要求,可以使用Python程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn),可使用for循環(huán)以及列表,可以使用join函數(shù)按逗號(hào)分隔格式打印結(jié)果,join函數(shù)連接字符串?dāng)?shù)組,將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個(gè)新的字符串,具體代碼如下:l=[]for i in range(2000, 3201): if (i%7==0) and (i%5!=0): (str(i))print (39。,39。.join(l))39.sum1=0sum2=0for i in range(1,101): if i%2==0 : sum1+=i else: sum2+=iprint(sum1,sum2)【詳解】本題主要考查程序設(shè)計(jì)。可以使用Python程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)題干要求,通過(guò)if條件分支結(jié)構(gòu)可以實(shí)現(xiàn)分別計(jì)算奇數(shù)的和、偶數(shù)的和,具體代碼如下:sum1=0sum2=0for i in range(1,101): if i%2==0 : sum1+=i else: sum2+=iprint(sum1,sum2)40.0【詳解】本題主要考查Python中While循環(huán)結(jié)構(gòu)。Python 編程中 while 語(yǔ)句用于循環(huán)執(zhí)行程序,即在某條件下,循環(huán)執(zhí)行某段程序,以處理需要重復(fù)處理的相同任務(wù)。題中循環(huán)體內(nèi)含If選擇結(jié)構(gòu),即當(dāng)i%3為0時(shí),執(zhí)行sum變量累加i,輸出i,i自增加1操作,因此本題輸出0后,循環(huán)無(wú)限執(zhí)行下去?!军c(diǎn)睛】