内容正文:
2.2 做出判断的分支
一、选择题
1.有如下Python程序,
n=0;s=[1,1,2,2,2,3,1,1,3,3]
for i in range(0,len(s)-1):
if s[i]==s[i+1]:
n+=1
else:
n-=1
print(n)
执行以上程序后,变量n的值为( )
A.0 B.1 C.-1 D.2
2.下列标识符中合法的是( )。
A.i'm B._ C.3Q D.for
3.假定选拔空军飞行学员时,只有符合身高(T)在165-178cm(含165cm和178cm)、体重(W)在52kg(含52kg)以上条件的学生才有资格报考,则表示该条件的逻辑表达式是( )
A.T>=165 or T<=178 or W>=52
B.T>=165 & T<=178 or W>=52
C.T>=165 and T<=178 or W>=52
D.T>=165 and T<=178 and W>=52
4.有如下Python自定义函数:
def fun(x, i):
if x<i:
return i
elif x%i==0:
return x
else:
return fun(x-i, i+1)
执行语句k=fun(37, 3)后,k的值为( )
A.5 B.6 C.30 D.34
5.完全数是指真因子(即除了自身以外的约数)之和等于它本身的自然数。
def per_num(x):
sum=1#①
for i in range(2,x):#②
if x % i == 0:#③
sum = sum + i#④
return x == sum
print(per_num(6))
则下列说法正确的是( )
A.上述程序段有误,应将①处语句更改为“sum=0”
B.②处语句可以更改为“for i in range(x,2,-1)”
C.③处语句的执行次数比④处语句的执行次数多
D.函数返回值为False
6.用python程序处理图像文件“chenchen.jpg”,该图像颜色位深度为24bit,图像如图所示:
程序代码如下:
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=np.array(Image.open("chenchen.jpg").convert("L"))
rows,cols=img.shape
for i in range(rows):
for j in range(cols):
if():
img[i,j]=1
else:
img[i,j]=0
plt.imshow(img,cmap="gray")
plt.show()
下列说法正确的是( )
A.待处理图像的文件名为“chenchen”
B.处理后的图像像素数将增加
C.将加框处语句中的“>”改为“<=”,则处理后的图像中黑白色将互换
D.将加框处语句中128改为188,则处理后图像中的黑色部分将减少
7.有如下 Python 程序段:
import random
a=[0]*6
for i in range(6):
x=int(random.random()*10)+1
if i%2==1:
a[i]=2*x+1
elif x%2==0:
a[i]=x//2
else:
a[i]=x-1
print(a)
执行该程序段后,列表 a 中的值可能是 ( )
A.3,11,4,19,2,13 B.3,11,7,9,2,3
C.9,3,1,23,4,17 D.3,3,9,0,19,8
8.请判断如图所示的程序代码,是将三个数( )
A.从大到小排序 B.都变成最大的数 C.都变成最小的数 D.从小到大排序
9.有如下python程序段:
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 i<len(s):
s=ds(s, i)
i+=1
print(s)
执行上述程序段后,s的值为( )
A."89mm0" B."Y89m0" C."Y29m0" D."y23m4"
10.在Python中,描述x、y中存在一个小于z的正确的表达式是()
A.x<z and y<z B.x<z or y<z C.x+y<z D.x<y<z
11.小美制作了一个简单的Flask程序,其中编写路由和视图的函数如下所示:
@app.route(‘/user/<name>’) #动态路由
def user(name):
return render_template(‘user.html’,name=name)
其中网页文件user.html的部分代码如下:
<body>
{%if name == ‘admin’%}
<hl>Hello,Boss!</hl>
{%else%}
<hl>Hello,{{name|capitalize}}!</hl>
{%endif%}
</body>
运行程序后,在浏览器输入如下网址:http://127.0.0.1:5000/user/admin,则网页显示的内容是( )
A.Hello,admin! B.Hello,Boss! C.Hello,Admin! D.Hello,boss!
12.下列python代码运行的结果是( )
def bin(n):
if n==0:
return
else:
bin(n//2)
print(n%2,end='')
bin(13)
A.31 B.1101 C.1011 D.4
13.有如下python程序段:
a=[4,5,3,6,7,8,2,9,1]
m ,c=1, 1
for i in range(1, len(a)):
if a[i]>=a[i-1]:
c+=1
m=max(m, c)
else:
c=1
print (c, m)
则程序执行后,c和m的值分别是( )
A.1和1 B.1和4 C.2和4 D.3和4
14.列表lista中存储了若干个人的体重(单位:kg),下列Python程序段的功能是:输入体重key,统计体重不超过key的人数,最后输出统计结果。
lista=[65,55,41,46,55,49,19,45,62,76]
count=0
key=int(input("please input key:"))
for i in range(0,len(lista)):
if :
count+=1
print("体重不超过",key,"的人数为:",count)
则程序中划线处的代码应为( )
A.lista[i]>count B.lista[i]>=key
C.lista[i]<key D.lista[i]<=key
15.如下程序的输出结果为( )
A.0 B.1 C.True D.False
16.某二分查找算法的Python程序段如下:
list1=["Carrot","Celery","Garlic","Lettuce","Mooli","Onion","Potato","Tomato"]
key=list1[2]
left,right=0,len(list1)-1
c=0
while left<=right:
m=(left+right)//2
c=c+1
if list1[m]>key:
right=m-1
else:
left=m+1
print(list1[left])
程序执行后,下列说法正确的是( )
A.变量c的值为4 B.程序输出的结果为Lettuce
C.变量left的值为2 D.变量right的值为3
17.下列Python程序段的运行结果是( )
a=123
b=100
if a>b:
a=a+b
else:
b=a-b
c=a+b
print(c)
A.323 B.223 C.77 D.-23
18.小明制订了每周英语单词学习计划,本周单词保存在“word.txt”文件中,所有单词如图所示。
他编写了一个 Python 程序,检测学习情况,代码如下:
f=open("word.txt","r")
line=f.readline()
word=[]
while line:
temp=line.split() #将字符串以空格为分隔符号进行分割, 并存储在列表中
for i in temp:
if i[0]=='c' and 'e' in i:
word.append(i)
line=f.readline()
print(word)
执行该程序段后,输出的英语单词个数为( )
A.3 B.4 C.6 D.8
19.现有如下python程序段:
for i in range( 6 ):
p.append( int( random() * 10 ) + 1 )
for i in range( 2, 6 ):
if i % 2 == 1 and p[ i ] % 2 == 0:
p[ i ] += p[ i - 1]
elif i % 2 == 0 and p[ i ] % 2 == 1:
p[ i ] -= p[ i - 1]
执行该程序段后,在下列选项中,列表p中的元素值不可能的是()
A.1, 2, 3, 4, 7, 2
B.1, 2, 14, -9, -5, 8
C.6, 8, 1, 4, 6, 10
D.6, 4, 14, -7, 3, 8
20..运行以下程序,输出的结果是( )
a=3;b=5
if(a>b) :
t=a
a=b
b=t
print(a, b)
A.3 B.5 C.3 5 D.5 3
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题主要考查Python程序的执行。分析程序可知,如果相邻的两个数相等则n递增1,如果不相等则n递减1,s=[1,1,2,2,2,3,1,1,3,3],n初值为0,故n=0+1-1+1+1-1-1+1-1+1=1,故本题选B选项。
2.B
【详解】本题考查标识符命名规则相关的知识点
标识符是由字母、下划线、数字组成,但不能以数字开头,且不能是关键字,不能含有特殊符号。故本题选B选项
3.D
【详解】本题主要考查Python逻辑表达式。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。只有符合身高(T)在165-178cm(含168cm和178cm)、体重(W)在52kg(含52kg)以上条件的学生才有资格报考,可知逻辑关系是“且”(即and)的关系,故本题选D选项。
4.C
【详解】本题考查Python程序执行与调试。fun(37,3)满足else分支条件,返回fun(34,4);函数fun(34,4)满足else分支条件,返回fun(30,5);函数fun(30,5)满足elif条件,返回x的值是30。故执行语句k=fun(37,3)后,k的值为30。故选C。
5.C
【详解】本题考查Python程序的调试。完全数是指真因子(即除了自身以外的约数)之和等于它本身的自然数。i初值为2,因此①处代码不用更改;“for i in range(x,2,-1)”,i会取到x本身,因此不能将②处语句更改为“for i in range(x,2,-1)”;③处语句每次循环都要判断,因此③处语句的执行次数比④处语句的执行次数多;1+2+3=6,因此函数返回值为True。故选C。
6.C
【详解】本题考查Python程序进行图像处理。待处理图像的文件名为“chenchen.jpg”;处理后的图像像素数不变;将加框处语句中的“>”改为“<=”,则处理后的图像中黑白色将互换;颜色灰度值的范围是0-255,如果 img[i,j]>188,则将188以上像素处理成白色,反之处理成黑色,以188为分界线,而黑色就会偏多,因此将加框处语句中128改为188,则处理后图像中的黑色部分将增多。故选C。
7.A
【详解】本题主要考查Python程序的调试。random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0, x=int(random.random()*10)+1,则x随机生成1~10之间的整数。如果i是奇数,则 a[i]=2*x+1也是奇数,排除选项D;如果i和x是偶数,则a[i]=x//2可能是奇数也可能是偶数;如果i是偶数,x是奇数,则a[i]=x-1是偶数,选项C中a[0]=9不符合题意,选项B中a[2]=7不符合题意,均排除。故本题选A选项。
8.D
【详解】本题主要考查Python分支结构。分析程序可知,该程序实现将三个数进行从小到大排序,故本题选D选项。
9.C
【详解】本题考查Python程序的执行。分析程序,ds函数中,当字符s[i]是小写字母时,则在字符串s中跳过该字母,即删除该字符;当s[i]是数字时,该数字变为int(s[i])+6)%10,即循环后移6个单位。s="Yy23mm4",当i=0时,s=ds(s, i)="Yy23mm4";当i=1时,s=ds(s, i)="Y23mm4";当i=2时,s=ds(s, i)="Y29mm4";当i=3时,s=ds(s, i)="Y23m4";当i=4时,s=ds(s, i)="Y23m0",循环结束。因此执行上述程序段后,s的值为"Y29m0"。故选C。
10.B
【详解】本题主要考查Python表达式。在Python中,描述x、y中存在(用或“or”逻辑连接词)一个小于z的正确的表达式是x<z or y<z,故本题选B选项。
11.B
【详解】本题主要考查Python网络编程。由程序代码可知,在浏览器输入如下网址:http://127.0.0.1:5000/user/admin,满足if条件,故网页显示的内容是Hello,Boss!,故本题选B选项。
12.B
【详解】本题主要考查Python程序的执行。分析程序可知,bin(n)函数实现将十进制数n通过“除权取余、逆序排列”的方法转换为二进制数,因此bin(13)=1101,故本题选B选项。
13.B
【详解】本题主要考查Python程序的执行。m=1,c=1,当i=1时,5>4,c+=1=2,m=max(m, c)=2;当i=2时,3<5,c=1;当i=3时,6>3,c+=1=2,m=max(m, c)=2;当i=4时,7>6,c+=1=3,m=max(m, c)=3;当i=5,8>7,c+=1=4,m=max(m, c)=4;当i=6时,2<8,c=1;当i=7时,9>2,c+=1=2,m=max(m, c)=4;当i=8时,1<9,c=1,循环结束,c和m的值分别是1和4,故本题选B选项。
14.D
【详解】本题主要考查Python程序的执行与调试。体重存储在列表lista中,要统计体重不超过key的人数,则if条件为lista[i]<=key,故选项D正确。
15.D
【详解】本题主要考查Python程序的执行。分析程序可知,isOdd(n)用于判断n的奇偶性,如果是偶数返回True,如果是奇数则返回False。5是奇数,故输出结果是False,故本题选D选项。
16.B
【详解】本题主要考查二分查找算法及Python程序实现。已知left=0,right=7,key="Garlleftc",第一次查找m=(left+right) //2=3,c=c+1=1,a (3) ="Lettuce",判断list1[m] > key成立,执行right=m-1=2;第二次查找m= (left+right) //2=1, c=c+1=2, a (2)= "Garlleftc",判断list1[m] > key不成立,执行left=m+1=2;第三次查找m= (left+right) //2=2,c=c+1=3,a (2) ="Garlleftc",判断list1[m] > key不成立,执行left=m+1=3;此时left=3,right=2不在满足循环条件,输出list1[3]= "Lettuce",c的值为3,left=3,right=2,故本题选B选项。
17.A
【详解】本题主要考查Python程序的执行。a=123,b=100,满足a>b,执行a=a+b=223,再执行c=a+b=223+100=323,故本题选A选项。
18.A
【详解】本题主要考查Python程序的综合应用。分析程序可知,每个单词以“c”开头且该单词中含有字母“e”,则执行word.append(i),满足条件的单词有:creative、cypress、committee,故本题选A选项。
19.BD
【详解】本题主要考查Python程序执行。第一个for循环生成列表p,值是[1,10]之间随机整数,第二个for循环处理后4个元素,当i是奇数且生成的p[i]是偶数,则将前一个值累加到p[i],若i是偶数且生成的p[i]是奇数,则p[i]减去前一个值,分析选项B、D第三个元素14,此时i=2,如果p[2]原来生成的是奇数,则需要执行 p[ i ] -= p[ i - 1],否则不变,即p[2]不会大于10,故执行该程序段后,列表p中的元素值不可能是1, 2, 14, -9, -5, 8或6,4, 14, -7, 3, 8,故本题选BD选项。
20.C
【详解】本题主要考查Python分支结构的应用。a=3,b=5,不满足if判断条件,直接输出a和b的值,即3 5,故本题选C选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$