中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

2025屆信息技術一輪復習練習:專題5 函數和模塊(含答案)

資源下載
  1. 二一教育資源

2025屆信息技術一輪復習練習:專題5 函數和模塊(含答案)

資源簡介

專題5 函數和模塊
知識點一 自定義函數
1.使用Python程序編程探究平面上圓與圓的位置(圓心距離等于兩個圓半徑之和)相切的關系,程序代碼如下:
def judge(a,b):
dis=(cir[a][0]-cir[b][0])**2+(cir[a][1]-cir[b][1])**2
if dis==(cir[a][2]+cir[b][2])**2:
  return 1
return 0
cir={'A':[1,1,1],'B':[4,5,4],'C':[0,2,1]}
#cir用于存儲編號為'A'、'B'、'C'的三個圓圓心的x,y坐標及半徑信息
cnt=judge('A','B')+judge('A','C')+judge('B','C')
運行程序后,變量cnt的值是(  )
A.0 B.1
C.2 D.3
2.有如下Python程序:
def count(a,i):
for j in range(i+1,len(a)):
if a[j]     return j-i
return 0
a=[4,2,2,4,1,6]
b=[1]*len(a)
for i in range(len(a)-1):
b[i]=count(a,i)
print(b)
運行該程序,則b[1]的值為(  )
A.0 B.1
C.2 D.3
3.有如下Python加密程序段,以下說法正確的是(  )
def encrypt(code,key):
code_new=''
for s in code:
s1=ord('a')+((ord(s)-ord('a'))+key)%26
code_new+=chr(s1)
return code_new
code=input(″code=″)
print(encrypt(code,2))
A.該加密程序段所用的加密算法是換位密碼法
B.若輸入字符串code為“App”,則輸出的結果為crr
C.若要對數字字符逐個右移進行加密,則只需將加框處語句修改為“(int(s)+key)%10”
D.將加框處語句修改為“ord('a')+((ord(s)-ord('a'))-key)%26”可將加密的密文還原為明文
4.有如下程序段:
def ds(s,i):
if ″a″<=s[i]<=″z″:
s=s[:i]+s[i+1:]
elif ″0″<=s[i]<=″9″:
s=s[:i]+str((int(s[i])+6)%10)+s[i+1:]
return s
s=″Yy23mm4″
i=0
while is=ds(s,i)
i+=1
print(s)
執行上述程序段后,s的值為(  )
A.″Y89m0″ B.″Y29m0″
C.″y23m4″ D.″89mm0″
5.所謂親密數是指如果整數x的全部因子(包括1,不包括x自身)之和等于y,且整數y的全部因子之和等于x,則x和y稱為一對親密數(x與y不相等)。小王想通過Python程序統計1~1000間的親密數對的個數。
def yzh(m):
yz_sum=0
for i in range(2,m//2+1):
if ①________:
     yz_sum+=i
return yz_sum
n=0
for x in range(1,1001):
y=yzh(x)
if ②________:
n=n+1
print(″共有親密數對:″,n)
則代碼中①②處的語句可為(  )
A.①m%i!=0 ②x==yzh(y) and x!=y
B.①m%i==0 ②x==yzh(y) and x!=y
C.①m%i!=0 ②x==yzh(y) or x!=y
D.①m%i==0 ②x==yzh(y) or x!=y
6.有如下Python程序段:
def f(m):
a=m%10
b=m//10%10
c=m//100
if c**3+b**3+a**3==m:
return ″YES″
else:
return ″NO″
m=int(input(″輸入一個三位數:″))
print(f(m))
執行該程序段后,若輸出結果為“YES”,則輸入變量m值可能為(  )
A.121 B.134
C.153 D.142
7.有如下Python程序段:
def sel(a,b,c):
if aa+=b;b=a-b;a=a-b
if at=a;a=c;c=t
print(a,b,c)
sel(1,2,3)
執行該程序段后,輸出的結果是(  )
A.1,2,3 B.3,2,1
C.3,1,2 D.1,3,2
8.回文素數:
(1)素數:指整數在一個大于1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。例如11,它只能被1和11整數,所以11是素數。
(2)回文數:正讀和反讀都是一樣的數字,例如12321,它的正反都是一樣,是回文數字。編寫Python程序,實現如下功能,找出100~n中的所有的回文素數(n為>=100的正整數)。程序代碼如下,請回答下面問題:
(1)如果n=1000在最后添加print(151 in L),該語句的輸出的結果是________。
(2)請在橫線處填入合適的代碼。
import math
def prime(n): #判斷n是否是素數
i=2
k=int(math.sqrt(n))
while i<=k:
if ①________:
     break
i=i+1
return i>k
def rev(n): #倒轉數字
t=0
while ②________:
t=t*10+n%10
n=n//10
return t
n=int(input('請輸入整數 n:'))
L=[]
for i in range(100,n+1):
if ③________:
if prime(i)==True:
    L=L+[i]
print('100到n中的回文素數:',L)
9.數學中,有一些數比較神奇,如數″101″,既是一個質數又是一個回文數(從左到右和從右到左是看一樣的),我們稱這樣的數為“神奇數”。小慈設計算法并編寫程序來找出范圍[a,b]間的所有“神奇數”,運行效果如圖所示(范圍為[100,200])。請回答下列問題。
(1)區間范圍[300,400]中的“神奇數”有________。(寫出任意一個滿足符合區間題描述的“神奇數”)
(2)Python程序實現代碼如下所示,請將劃線處代碼補充完整。
def isprime(k): #判斷k是否為質數
for i in range(2,①________):
if k % i==0:
     return False
return True
def ishw(k):
flag=True
for i in range(len(k)//2+1):
if k[i]!=k[②________]:
     flag=False
     break
③________
a,b=map(int,input().split()) #在同一行中輸入a、b兩個整數
for i in range(a,b+1):
if isprime(i) and ④________:
print(i)
10.小明同學設計了一種加密算法,將自己的一些私密字符串數據(例如他在各個網站和APP注冊的用戶名和密碼等數據信息,這里統稱為明文數據)進行了加密,他設計的加密算法有如下規則:
①將明文數據中的所有大寫字母均轉換為小寫字母,例如A→a,B→b…Z→z
②將明文數據中的所有數字減去2變成另一數字,例如0→8,1→9,2→0…9→7
③明文數據中的其他字符均不轉換
④將加密后的數據倒序輸出,例如“abc→cba”
例如明文數據“aBC+789”加密后的數據為“765+cba”,他根據以上加密規則編寫了下列Python 程序:
def jiami(x):
if ″A″<=x<=″Z″:
y=①________
elif ″0″<=x<=″9″:
y=str((int(x)-2)%10)
else:
y=②________
return y
mingwen=input(″請輸入明文數據:″)
miwen=″″
for i in mingwen:
miwen=③________
print(″加密后的密文為:″,miwen)
(1)根據小明的加密算法,明文字符串“My123”加密后的結果為________。
(2)根據題意,請在劃線①②③處填上合適的語句或表達式。
11.某高速公路全長521公里,含起點與終點共設有15個出入口,編碼為0~14,各站點離起點距離如表所示。該高速公路對于不同類型的車輛,采取不同的收費標準,各類型車輛的收費標準如下,總費用=入口費+總里程*里程費,為方便找零,實際收取的費用做四舍五入處理。
各站點離起點距離表(單位:公里)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 21 56 78 121 163 185 221 257 271 294 314 399 478 521
五類車輛收費標準表
車輛類別 客車 貨車 入口費(元) 里程費(元/公里)
一類 20座(含)以下 2噸(含)以下 5 0.40
二類 20座以上40座 (含)以下 2噸以上5噸(含)以下 10 0.80
三類 40座以上 5噸以上10噸(含)以下 15 1.20
四類 / 10噸以上15噸 (含)以下 20 1.60
五類 / 15噸以上 25 2.00
該高速公路某天各站點車輛的進出情況存儲在“Highway.txt”中,第一項數據為車輛的進出站狀態(0表示進站,1表示出站),第二項數據為車輛類別,第三項數據為站點編號(0~14),第四項數據為車牌號。小張編寫了Python程序,計算高速公路一天的總收入。
(1)某4座小客車從7號站點進入高速,1號站點出高速,應繳費________元。
(2)程序代碼①②③如下所示,請將劃線處代碼補充完整。
def fee(i,o,t):
mileage=①________
price1=t*5
price2=t*0.4*mileage
return price1+price2
f=open(″Highway.txt″,″r″,encoding=″utf-8″)
line=f.readline()
total=0
dic={}
s=[0,21,56,78,121,163,185,221,257,271,294,314,399,478,521]
b={″一類″:1,″二類″:2,″三類″:3,″四類″:4,″五類″:5}
while line!=″″:
line=line.strip() #去除末尾換行符
a=line.split(″,″)
if ②________:
dic[a[3]]=int(a[2])
else:
money=fee(dic[a[3]],int(a[2]),b[a[1]])
total=③________
line=f.readline()
f.close()
print(″該高速公路總收入為:″,total)
知識點二 模塊的導入和應用
1.編寫Python程序,模擬“石頭剪刀布”的游戲,實現電腦隨機輸出“石頭”、“剪刀”、“布”。函數功能表如下:
名稱 含義
random.random() 隨機生成一個[0,1)范圍內的實數
random.randint(a,b) 隨機生成一個[a,b]范圍內的整數
random.sample(seq,k) 從序列中隨機挑選k個元素
random.shuffle(seq) 將序列的所有元素隨機排序
下列代碼段中能夠實現該功能的是(  )

import random a={0:″石頭″,1:″剪刀″,2:″布″} b=int(random.random()*2) print(a[b])

import random a={0:″石頭″,1:″剪刀″,2:″布″} b=random.randint(0,2) print(a[b])

import random a=[″石頭″,″剪刀″,″布″] b=random.sample(a,1) print(b[1])

import random a=[″石頭″,″剪刀″,″布″] random.shuffle(a) print(a[1])
A.①③ B.①④
C.②③ D.②④
2.有如下Python程序段。
import turtle as tt
t=tt.Pen() #導入海龜,定義畫筆t
import random
tt.bgcolor(″white″)
colors=[″red″,″green″,″blue″,″yellow″]
for x in range(100):
t.pencolor(colors[x%random.randint(1,4)]) #設置畫筆的顏色
t.cirle(x) #畫半徑是x像素的圓
t.left(91) #畫筆方向逆時針旋轉91度
關于該程序段,下列說法正確的是(  )
A.程序運行后,繪制了100個同心圓
B.程序運行后,繪制的所有圓的顏色不可能都為紅色
C.程序運行后,最后繪制的一個圓的顏色可能為黃色
D.程序運行后,繪制的各圓沒有交點
3.有Python程序如下:
import random
n=7
a=[0]*n
a[0]=random.randint(60,100)
for i in range(1,n):
a[i]=a[i-1]-random.randint(0,i)
for i in range(1,n,2):
a[i]=a[i]-a[i-1]%2
print(a)
執行上述程序后,輸出的數據可能為(  )
A.[67,65,64,64,61,61,54]
B.[72,71,72,69,67,62,57]
C.[83,81,81,77,75,73,69]
D.[94,94,94,89,89,88,82]
4.有如下程序段:
from random import randint
s=″python″
k=randint(1,4)
for i in range(k):
j=i+1
while js[i]:
j+=1
if js=s[:j]+s[j+1:]
else:
s=s[:len(s)-1]
print(s)
執行該程序段后,s的值不可能是(  )
A.″py″ B.″pyo″
C.″pytn″ D.″pyton″
5.生成一組由數字1~8組成的8位不重復的隨機密碼,Python程序段如下:
from random import*
a=[0]*8
for i in range(8):
a[i]=i+1
k=8;s=''
for i in range(8):
m=randint(0,k-1)
print(s)
方框中的代碼由以下三部分組成:
①k-=1 ②a[m]=a[k-1] ③s+=str(a[m]) 代碼順序正確的選項是(  )
A.①②③ B.②③①
C.②①③ D.③②①
6.有下列Python程序段:
import random
s=input(″請輸入字符串:″)
x=random.randint(3,6)
n=len(s)
if len(s[0:x])r=s[x:n]+s[0:x]
else:
r=s[0:x]+s[x:n]
print(r)
執行該程序段,若輸入“helloworld”(不包含雙引號),則輸出的結果不可能的是(  )
A.loworldhel B.oworldhell
C.helloworld D.worldhello
7.小明用下列Python程序將圖a處理成圖b所示效果
#導入Image、numpy、pyplot庫,代碼略
img=np.array(Image.open('dj.jpg').convert('L'))
row,cols=img.shape
for i in range(row):
for j in range(cols):
if img[i,j]>188: #第7行
     img[i,j]=1 #第8行,1表示白色
else: #第9行
     img[i,j]=0 #第10行,0表示黑色
#輸出圖像,代碼略
發現處理后的圖像不理想,他要想將圖像處理成圖c所示效果,則可做的修改是(  )
A.將第7行中的數字'188'改成'138'
B.將第7行中的數字'188'改成'250'
C.將第7行中的'>'改成'<'
D.將第8行的代碼與第10行的代碼互換
8.現有一幅文件名為“車牌.jpg”的彩色圖像,車牌底色為藍色,如圖a所示,通過Python程序對該圖像進行二值化,即將車牌藍色部分變為白色,其他全部變為黑色,如圖b所示,以凸顯出車牌的輪廓。程序代碼如下,請在劃線處填入合適的代碼。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt #獲取車牌藍色的RGB分量的邊界,紅色rl,r2,綠色gl,g2,藍色 b1,b2。代碼略
img=np.array(Image.open(″①________″))
#打開圖片并將其像素矩陣存入img
rows,cols=img.shape[0],img.shape[1]
imgnew=np.zeros(shape=(rows,cols))
# imgnew用于存儲結果圖像,大小和 img相同
for i in range(rows):
for j in range(cols):
r,g,b=img[i,j] #獲取img當前位置的r,g,b分量
if r1<=r<=r2 and g1<=g<=g2 and b1<=b<=b2:
     imgnew[i,j]=255 #將新矩陣該位置設為白色
else:
     ②________
plt.figure('車牌')
plt.imshow(imgnew,cmap='gray')
plt.axis('off')
plt.show()
9.如圖所示的車牌,經過如下Python程序處理后,
from PIL import Image
f=open(″cp.txt″,″w″) #以寫入模式打卡“cp.txt”文件
im=Image.open(″cp.jpg″)
im=im.convert(″L″)
im=im.resize((90,21)) #將圖片尺寸大小修改為 90*21
pix=im.load() #讀取所有像素點的顏色值
for j in range(im.size[1]):
ans=″″
for i in range(im.size[0]):
if pix[i,j]>=128:
     r=″*″
else:
     r=″ ″
    ans+=r
ans=ans+″\r\n″ #″\r\n″表示回車換行
f.write(ans)
f.close()
“cp.txt”文件得到的效果是(  )
10.答題卡的準考證填涂區域如圖a所示,將該圖以行的方式進行編碼,未填涂的地方用0表示,填涂的地方用1表示,則第1行編碼是:000110000,第2行編碼是:000000001,……,最后1行(第10行)編碼是:100000000。由于每一行的編碼都是9位二進制,所以,將每一行編碼前后連接起來,可以得到一個長度為90的二進制字符串。
在文件codes.txt中,保存了某班所有同學的姓名和準考證的90位長度二進制編碼,請設計算法,解析出每一位同學的準考證號,并將解析結果保存在文件zkzh.txt文件中(注:由于填涂錯誤,可能導致某些同學的編碼無法解析出對應的準考證號)。codes.txt和zkzh.txt文件內容示例如圖b和圖c所示:
實現上述功能的Python代碼如下,請回答下列問題:
def jiexi(code): #將二進制編碼字符串解析為準考證號字符串
n=len(code)
if n!=90:
return 'Error!'
else:
s,t='',0
for i in range(n-1,①________,-1):
     c=0
    for j in range(i,-1,-9):
       if code[j]=='1':
         c+=1
         ②________
    if :
      return 'Error!'
    else:
       s+=str(t)
return s
#主程序
fin=open('codes.txt','r')
fout=open('zkzh.txt','w')
for info in fin:
info=info.strip() #strip()清除字符串末尾的換行標記
info_list=info.split(',')  #split()將字符串分割為字符串列表
fout.write(info_list[0]+',')
fout.write(③________+'\n')  #'\n'表示換行
fin.close()
fout.close()
(1)請在劃線處填入合適代碼。
(2)加框處代碼有誤,請修改為正確代碼。
11.設計一個答題卡填涂識別程序(答題卡樣式如圖a所示,每張答題卡共計5個選擇題)。具體算法思想如下:
①讀取答題卡圖像,根據圖像像素點灰度值(根據RGB值計算得到,若小于設定閾值則表示已填涂),確定單個像素點是否被填涂;然后根據單個選項填涂區域內像素點的填涂比例,確定當前選項是否被填涂。如果填涂比例超過70%,表示選項已涂。
②建立答題卡坐標模型(如圖b),計算每個選項坐標位置;根據坐標位置遍歷每個選項,讀取并存儲選項值。
實現上述功能的Python程序如下,請回答下列問題:
(1)程序運行,讀取圖a答題卡1,輸出結果為“CBDCA”,則識別答題卡2,輸出結果為________。
(2)請根據題目要求,完善程序代碼:
from PIL import Image
x0=39;y0=18 #初始化(x0,y0)像素點坐標
fw=23;fh=13 #初始化選項填涂區寬度和高度
ch=″ABCD″;s=″″
def judge(x,y): #判斷一個選項是否填涂
count=0
for i in range(x,x+fw+1):
for j in range(y,y+fh+1):
       R,G,B=pixels[i,j] #提取填涂區i行j列位置像素點RGB值
    if 0.299*R+0.587*G+0.114*B<132:#設定灰度閾值為 132
       count+=1
return  #選項區域內>=70%像素點填涂表示該選項已填涂
tw=35;th=22
image=Image.open(″答題卡1.bmp″) 
#用Image模塊打開答題卡1圖片
pixels=image.load()
①________#設定答題卡題數
for row in range(num):
flag=False
for col in range(4):
a=x0+tw*col
②________
if judge(a,b)==True:
    ③________
    flag=True
if flag==False:
s+=″#″
print(s)
(3)程序加框處語句有誤,應改為:________。
12.用以下算法記錄圖像的像素點分布,現有圖像如圖a所示,先將像素的顏色值進行調整,使之成為一幅黑白圖像如圖b所示,再將黑白圖像中像素點(0表示黑色,1表示白色)分布以列表形式存儲,如[2310,321,1230……]表示先有231個連續的黑色像素,再接著是32個連續的白色像素,再接著是123個連續的黑色像素……,列表中部分數據如圖c所示。
實現上述功能的Python代碼如下:
#導入庫代碼略
img=np.array(Image.open(″hz.png″).convert(″L″)) #將圖像轉換為二維矩陣
rows,cols=img.shape #圖像尺寸分別賦值,rows表示行數,cols表示列數
for i in range(rows):
for j in range(cols):
if img[i,j]>180: #0~255表示256級灰度值,0表示黑色,255表示白色
     img[i,j]=1
else:
     img[i,j]=0
plt.imshow(img,cmap=″gray″) #顯示灰度圖像
plt.show() #彈出包含了圖片的窗口
c=img[0,0];cnt=0;ys=[]
for i in range(rows):
for j in range(cols):
if img[i,j]==c:
      ________________
else:
     ys.append(cnt*10+c)
     cnt=1
     
ys.append(cnt*10+c)
print(ys)
(1)由程序代碼可知,對圖像的記錄方式采用的方式是________(填字母:A.逐行記錄/B.逐列記錄/C.隨機)。
(2)若得到圖d顏色加深的圖像,則劃波浪線處代碼應修改為________(單選)。
A.img[i,j]>210
B.img[i,j]>140
C.img[i,j]<140
D.img[i,j]<210
(3)在橫線上填上合適的代碼。
(4)程序加框處代碼有錯,請改正。
專題5 函數和模塊
知識點一
1.C [本題考查自定義函數。字典cir初始存儲了三個圓的圓心和半徑信息。judge('A','B')是判斷圓A和圓B是否相切,如果相切,返回值為1,否則為0。當前A、B兩圓,B、C兩圓相切,所以變量cnt的值為2。]
2.D [自定義函數功能是在索引位置i后面找到第1個比該a[i]小的數,返回他們的之間的距離,若后面沒有比較他小的數,返回0。數組b的值依次為[1,3,2,1,0,1]。]
3.D [A選項是移位加密。B選項輸出結果為wrr。]
4.B [如果是小寫字母,則進行刪除操作。若是一個數字,循環向后移3位。i=1時,刪除字符y,s=″Y23mm4″,接著i值為2,3變9,刪除第1個m,接著4變0。]
5.B [本題考查自定義函數及其調用。從程序可得自定義函數的功能為求自然數除本身外的因子和,①后將i累加進入,因此i為質因數,滿足m%i==0,②處for循環的作用為遍歷1-1000所有的書,尋找總共有多少數是滿足條件的,并且輸出,以滿足x所有的質因數之和為y,同時還需要滿足x==yzh(y) and x!=y才能說是親密數,因此答案為B。]
6.C [本題考查自定義函數的應用。a、b、c分別是數m的3個位上的數字,符合立方和等于他本身,因此屬于水仙花數。]
7.C [語句組a+=b;b=a-b;a=a-b和t=a;a=c;c=t的功能均為交換兩個變量的值。]
8.(1)True (2)①n%i==0 ②n>0或n!=0或n>=1 ③rev(i)==i
解析 本題考查自定義函數及枚舉算法(循環結構)。程序實現的效果:找出100~n中的所有的回文素數(n為>=100的正整數)。(1)根據程序可得最終符合條件的所有的數字都在列表L中,151滿足回文素數的條件,因此151 in L的值為True,特別要注意的是首字母必須大寫。(2)①自定義函數prime(n)的功能為判斷n是否是素數,因此當找到2-k范圍內能被n整除的數字時,就可以判斷n為合數,因此①填n%i==0。②自定義函數rev(n)功能為倒轉數字,while循環的作用為對數字n進行倒轉,即取數字n各個位置上的數字進行相應的處理,通過循環體中n=n//10一句可得處理的過程為取后面的數字存儲在t中,再取最后第二位數字,更新t的值……直到n中所有位置上的數字全都取完并且存入t中,因此當n>0時需要一直進去循環,答案為:n>0或n!=0或n>=1。③主程序為尋找100-n之間的所有的回文素數并且存儲在列表L中,for循環完成遍歷所有數據并且判斷數據是否符合條件,將符合條件的數據存儲在列表L中的功能,內置if語句調用函數prime,判斷這個數是否為素數,還需要滿足一個條件即回文,因此③判斷當前數字與其回文數字是否相當:rev(i)==i。
9.(1)313、353、373、383寫出其中任意一個均得分 (2)①k-1或其他等價答案 ②len(k)-1-i或其他等價答案 ③return flag或其他等價答案
④ishw(str(i))或其他等價答案
解析 (1)區間范圍[300,400]的回文數有303,313,323,333,343,353,363,373,383,393,找出其中的素數。(2)自定義函數isprime判斷k是否為質數,質數的條件是不能被除了1和他本身外的數整除,因此i的范圍是2-(k-1)。自定義函數ishw判斷字符串k是否是回文,0和len(k)-1,1和len(k)-2是對稱位置,因此索引位置i和其對稱位置之和為len(k)-1,則索引位置i的對稱位置為可以表達為len(k)-1-i,如果不相等,則flag的值為False,③處將返回函數的值。④處將判斷數i是否為回文,但要注意數據類型。
10.(1)109ym (2)①chr(ord(x)+32) ②x ③jiami(i)+miwen
解析 (1)數字循環左移2位,123變為901,y不變,m小寫,再逆序。(2)①處將大寫轉換成小寫。②x為其他字符,保持不變。③加密后的字符逆序輸出。
11.(1)85 (2)①abs(s[o]-s[i])或abs(s[i]-s[o]) ②a[0]==″0″ ③total+int(money+0.5)
解析 本題考查自定義函數和字典的應用。a[0]值為″0″,表示入口,將車牌號和入口的站點編號保存在字典dic中,車牌號碼作為鍵,站點編號作為值;若讀取的是出口,在字典dic中讀出該車牌的入站編碼,該車牌號碼對應入站、出站編號和車子類型傳遞給自定義函數fee,進行統計該車輛金額。在自定義函數中,參數t對應的值為b[a[1]],即車輛的類型。Mileage應為路程,即出口和出口差的絕對值。
知識點二
1.D [本題考查隨機數、字典和列表的應用。A選項int(random.random()*2)產生的范圍是0或1。C選項在列表a中隨機挑一個,因此b的值應為″石頭″、″剪刀″或″布″,而b[1]是這些字符中第1個字符。]
2.C [本題考查隨機數和海龜模塊應用。一共畫了100個圓,每畫完一個圓,畫筆回到原點,且方向逆時針旋轉91度,因此所有的圓起點是一樣的,因此有交點,但不是同心圓。若x%random.randint(1,4)的值均為0,則可能全部是紅色的。]
3.C [本題考查隨機數。第一個循環的功能是產生一個非增數列,且從a[1]開始,與前面數的差距不得超過1,2,3,4,5,6。第二個循環的功能是對偶數位的數減去a[i-1]%2,即減去0或1。A選項最后一個數54與前一個數的差距為7,超出范圍。B選項71前是偶數,可能是71-0,但后面不可能是72。D選項88前一個數是89,由此該數為89-1=88,而89-82=7,超出范圍。]
4.C [本題主要考查順序查找。隨機產生1-4范圍內的整數,查找字符串s中索引大于i的字符中,第一個在字母表中位于s[i]之前的字符對應的索引位置j。如果查找到j,則剔除字符串s中索引位置為s=s[:j]+s[j+1:]j的字符。否則如果未找到或j超出字符串s的長度,剔除s=s[:len(s)-1]字符串s中最后一個字符。]
5.D [把隨機產生的字符連入s中,將最后一個位置的字符移動到m的位置,同時把長度減小1。]
6.D [本題綜合考查了Random模塊函數的應用及分支結構及字符串的切片。x為采用Random模塊產生的[3,6]之間的隨機整數,按照題意輸入helloworld后n的值為10,帶入if的條件表達式可得,執行第一個分支(將索引值x前面的字符后置)的條件為x<5,推得執行第二個分支(不改變字符順序)的條件為x>=5,通過對選項的處理可知A中hel后置,x的值為3,可行;B選項hell后置,x的值為4,符合條件,可行;C選項不改變順序,x>=5,可行;D選項hello后置,可得x=5,而x=5時應執行第二個分支的語句。]
7.A [在灰度圖像中,從黑到白的值依次為0~255,圖c相對圖b來說,白色的區域更多,因此在二值化時,將閾值改小,將更多的區域設置為白色。]
8.①車牌.jpg ②imgnew[i,j]=0
解析 ①打開圖片車牌.jpg文件。②二值化,大于某個閾值為255,否則為0,黑色的值為0。
9.B [黑色的轉換為″*″,白色寫入空白。]
10.(1)①n-10或80 ②t=j//9 ③jiexi(info_list[1])[::-1] (2)c!=1或者c>1 or c<1
解析 (1)jiexi函數的功能是將二進制編碼code字符串解析為準考證號字符串。答題卡的準考證有9個數字,每一列表示一個數字,但code字符串是行存儲的。①n表示code的長度,在循環for j in range(i,-1,-9)中,可見準考證號碼的每兩個數字之間索引位相差9。外循環i每循環一次,取出準考證號碼的一個數字,因此外循環應循環9次,初值為n-1,可見先取出準考證最后一個數字,索引號n-9為準考證的第1個數字,range是一個左閉右開的區間,結束位置應為n-10。②code字符串索引號0-9為第一行數字,轉換為0;索引號10-17為第2行數字,轉換為1;索引號18-26轉化為2,可以推導出索引整除9即為轉換后的數字。③調用jiexi函數將90個0或1的數字轉換成9位準考證號,變量i的初值為n-1,因此轉換為逆向的準考證號。(2)每10個二進制數中,只有一個被填涂過,因此只有一個1,變量c表示1的個數,當c為0或大于1時,表示不合法的準考證數字。
11.(1)AB#DC (2)①num=5 ②b=y0+th*row ③s+=ch[col] (3)count>=fw*fh*0.7
解析 本題考查Python程序綜合閱讀程序能力。(1)依據題目和程序可知答題卡2中第3題沒有填涂,用“#”代替,因此答題卡2識別結果是AB#DC。(2)①設定答題卡數量,故該處代碼是num=5;第1個for循環row枚舉每個選擇題,col枚舉每個選擇題的列(4個選項),變量a存儲第row行第col列左上角坐標的橫坐標,縱坐標存變量b中,從圖b中可知b的表達式為y0+row*th,故②處代碼是y0+row*th,有了選項ABCD的左上角坐標,可以調用自定義函數judge()判斷該選項是否填涂,③處代碼表示該col列被填涂了,輸出相應的選項“ABCD”,因變量ch存儲常量“ABCD”,同時每題的填涂都要記錄,故該處的代碼是s+=ch[col];(3)加框處代碼是判斷區域是否填涂,依據題目要求是:填涂比例超過70%,故該處代碼應該是count>=fw*fh*0.7。
12.(1)A (2)A (3)cnt+=1 (4)c=1-c或c=abs(c-1)或(c+1)%2或c=img[i,j]
解析 (1)rows表示行數,cols表示列數,在每一行中遍歷每一列,因此是逐行記錄。(2)0表示黑色,255表示白色,當img[i,j]>180時為白色,現黑色部分要增多,因此白色區域范圍更小。(3)cnt表示連續相同的個數,因此應為計數。(4)c的初值為img[0,0],其值為0或1,統計一個連續相同的點,應對c進行0變1或1變0的轉變。

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 芦溪县| 淮阳县| 岑溪市| 泾源县| 汕尾市| 乳山市| 龙胜| 舟曲县| 道孚县| 湄潭县| 资兴市| 如东县| 铜川市| 平乐县| 多伦县| 安多县| 鸡东县| 会同县| 兴和县| 兴业县| 讷河市| 观塘区| 舒城县| 仙桃市| 洛隆县| 军事| 田林县| 仁布县| 长武县| 宣化县| 红桥区| 广宗县| 安达市| 平湖市| 泰来县| 缙云县| 南宁市| 醴陵市| 眉山市| 和平县| 甘泉县|