【正文】
解】本題主要考查算法流程圖知識(shí)點(diǎn)。程序代碼中有雙分支語句if –else。所以選B繪制有分支流程圖,故本題選B選項(xiàng)。解析:B【詳解】本題主要考查算法流程圖知識(shí)點(diǎn)。程序代碼中有雙分支語句if –else。所以選B繪制有分支流程圖,故本題選B選項(xiàng)。二、程序填空16.n*f(n1) range(1,n+1) s+f(i) 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①此處是定義遞歸函數(shù)f(n),由題干,當(dāng)n=0時(shí),返回1,否則返回n*f(n1),故此處填n*f(n1)。②用遞歸算法求1!+2!+……+n!,故變量i的范圍應(yīng)是1—n,for i in range(1,n+1)表示i的范圍是[1,n],故此處填range(1,n+1)。③循環(huán)體實(shí)現(xiàn)累加,將每一項(xiàng)階乘f(i)加到s中,故此處填s+f(i)。17.s=0n=eval(input( 請(qǐng)輸入一個(gè)數(shù):))for i in range(0,n): f=1 for j in range(1,i): f=f*j s+=fprint(s%1000000)【詳解】本題主要考查Python程序設(shè)計(jì)??梢酝ㄟ^嵌套for循環(huán)實(shí)現(xiàn)題干要求,外層循環(huán)進(jìn)行求和,內(nèi)層循環(huán)實(shí)現(xiàn)階乘,具體代碼如下:s=0n=eval(input( 請(qǐng)輸入一個(gè)數(shù):))for i in range(0,n): f=1 for j in range(1,i): f=f*j s+=fprint(s%1000000)18.s=1for i in range(9): s=(s+1)*2print(s)【詳解】本題主要考查Python程序設(shè)計(jì)。第10天,只剩下一個(gè)桃子s=1,由題干每天早上都吃了前一天剩下的一半零一個(gè),則第9天剩下的桃子為(s+1)*2,可以通過for循環(huán)求得第一天共摘了多少個(gè)桃子,具體代碼如下:s=1for i in range(9): s=(s+1)*2print(s)19.n/(2*n1)或n/(n*21) i/(2*i1) 或 i/(i*21) 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①分析數(shù)列可知,分子第n項(xiàng)是n,分母第n項(xiàng)是2*n1,故該數(shù)列的通項(xiàng)公式f(n)=n/(2*n1)或n/(n*21)。②此處是對(duì)前n項(xiàng)進(jìn)行求和,變量是i,使用語句s=s+i/(2*i1) 或s=s+ i/(i*21),故此處填i/(2*i1) 或 i/(i*21)。20.s+i 【詳解】本題主要考查Python循環(huán)結(jié)構(gòu)。題目要求計(jì)算11.. 101等差數(shù)列之和,其中公差為5,因此①為5;s變量用于記錄等差數(shù)列之和,需進(jìn)行累加計(jì)算,因此②為s+i?!军c(diǎn)睛】21.n r n 【詳解】本題考查的是Python循環(huán)語句。輾轉(zhuǎn)相除法:用較大數(shù)除以較小數(shù),再用出現(xiàn)的余數(shù)(第一余數(shù))去除除數(shù),再用出現(xiàn)的余數(shù)(第二余數(shù))去除第一余數(shù),如此反復(fù),直到最后余數(shù)是0為止。如果是求兩個(gè)數(shù)的最大公約數(shù),那么最后的除數(shù)就是這兩個(gè)數(shù)的最大公約數(shù)。 由n = min(x,y) 可知最小值為n,故①處為n,由r = m%n 可知余數(shù)為r,故②處為r,最后的除數(shù)是n(即最大公約數(shù)為n),故③處為n。