内容正文:
3.2 Python语言程序设计
一、选择题
1.运行以下Python代码的结果是( )
s=""
for i in range(1,4):
for j in range(1,i+1):
s=s+" "+str(i+j)
print(s)
s="" 空字符串
A.
2
2 4
4 6 8
B.
2
3 4
5 6 7
C.
2
3 4
4 5 6
D.
2
2 3
4 5 6
A.A B.B C.C D.D
2.以下哪个选项不是Python中的逻辑运算符( )
A.and B.or C.not D.xor
3.在编程中,使用分支结构可以有效地处理以下哪种情况( )
A.循环计数 B.条件判断 C.数据存储 D.内存管理
4.以下关于元组的描述,错误的描述是( )
A.元组的元素可以是整数、字符串、列表等Python支持的任何类型
B.与列表一样,元组也有append()、insert()函数
C.元组是不可变序列
D.元组的访问和处理速度比列表快
5.执行以下代码,其结果为( )
n = 10
sum = 0
number = 1
while number <= n:
sum = sum + number
number += 1
print(sum)
A.0 B.45 C.55 D.66
6.下列对count()、index()、find()方法描述正确的是( )
A.count()方法用于统计字符串里某个字符出现的次数
B.find()方法检测字符串中是否包含子字符串str,如果包含子字符串返回开始的索引值,否则会报一个异常
C.index()方法检测字符串中是否包含子字符串str,如果str不存在返回-1
D.以上都错误
7.有如下Python程序段:
s=input()
t = ""
for i in range(len(s)):
a=s[i]
if a>="0" and a<="9":
t=t+a
elif a=="!":
t=""
elif a!="" and t!="":
print(t)
执行该程序段时,输入“12+34=46!=789ok”(不包括双引号),则程序执行后输出的结果是( )
A
B
C
D
12
12
12
12
1234
34
1234
1234
123446
46
789
123446
123446789
789
789
789
A.A B.B C.C D.D
8.有如下Python程序段:
import random
a=[random.randint(2,5)]
i=0
while i<=3:
x=random.randint(1,5)
if x<=a[i]:
a.append(x)
else:
i-=1
i+=1
print(a)
执行该程序段后,列表a中各元素的值可能是( )
A.[6, 3, 1, 1, 1] B.[2, 2, 3, 4, 4] C.[2, 1, 2, 5, 3] D.[5, 2, 2, 2, 1]
9.在Python语言中,下面程序段运行结果是( )
a=1
s=0
for i in range(1,5):
a=a*i
s=s+a
print(s)
A.0 B.15 C.33 D.120
10.在Python语言中,下面程序段运行结果是( )
n=36
s=0
for i in range(2,n):
if n%i==0:
s=s+1
print(s)
A.0 B.7 C.36 D.54
11.已知a=3,b=4,c=5,则下列Python表达式的结果与其他三项不同的是( )
A.a>b or b<c and c>a B.not a%2==b%2
C.int(a*c//b)!=a D.c>=a<=b
12.有如下Python程序段:
x=12.78
y=-37.53
x=int(x)+abs(y)
y=x+y
x=x-y
print(x)
执行上面Python程序段,输出结果是( )
A.49.53 B.37.53 C.12.0 D.87.06
13.象限是平面直角坐标系(笛卡儿坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫作一个象限。象限以原点为中心,x,y轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x.y)来判断该坐标点的位置所在,以下实现该分类的据Python程序段中正确的是( )
A.
if x==0 and y==0:
result="原点"
if x==0 or y==0:
result="数轴"
if x!=0 and y!=0:
result="象限"
B.
if x==0 or y==0:
result="数轴"
elif x==0 and y==0:
result="原点"
else:
result="象限"
C.
if x!=0 and y!=0:
result="象限"
elif x==0 or y==0:
result="数轴"
else:
result="原点"
D.
if x!=0 and y!=0:
result="象限"
if x==0 and y==0:
result="原点"
elif x==0 or y==0:
result="数轴"
A.A B.B C.C D.D
14.运行以下Python程序,结果为( )
for i in range(5):
for j in range(i):
print(“*”,end=“”)
print()
A.
*****
*****
*****
*****
*****
B.
*****
C.
*
*
*
*
*
D.
*
**
***
****
A.A B.B C.C D.D
15.若列表d已经存储10个数据,现采用选择排序对这列数据进行非递增次序排序。其中第一遍加工整理的算法设计如下,填充横线部分,正确的语句是( )
k=1
for i in range(2,11):
if :
k=i
switch(d[k],d[k—1])
A.d[i]>d[k] B.d[i]<d[k] C.k>i D.i>k
16.有如下Python程序段:
matrix=[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]]
k=int(input())
tot=0
for i in range(4):
for j in range(4):
if i+j=k:
tot+=matrix[i][j]
print(tot)
若输入2,则输出为( )
A.12 B.10 C.8 D.6
17.执行以下Python程序后,列表b的值是( )
a=[[4,4,34,37],[3,12,2,6],[5,17,9,11]];b=[]
for i in range(3):
for j in range(4):
if i < j:
b.append(a[i][j])
A.[4,4,34,37,12,2] B.[4,34,37,2,6,11] C.[4,3,12,5,17,9] D.[4,34,37,3,6,11]
二、填空题
18.填空题:在Python中,使用 可以创建一个函数。
19.在Python中,使用 语句可以实现条件判断。
20.用Python编写程序完成横线处求解鸡兔同笼问题,已知有56只头,160只脚,求鸡兔各有多少只?
定义变量i为鸡的只数
for i in range(1,56,1):
:
print(i)
print((160-i∗2)/4)
21.有如下Python程序段:
a=[1,1,2,3]
b=a*2
print(b)
执行后,输出的结果为 。
22.在python中,变量的命名需遵循一定规则:①必须 以或 开头,后面可以是字母,数字或下划线;②区分大小写;③不能使用 。
三、判断题
23.在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。( )
24.如果在函数中有语句 return 3,那么该函数一定会返回整数3。( )
25.已知A和B是两个集合,并且表达式A<B的值为False,那么表达式A>B的值一定为True。( )
26.下列Python程序段运行结束后,赋值语句sum= sum+i 共被执行了9次。( )
sum=0
for i in range(1,20):
if i%2==0:
sum=sum+i
print(sum)
27.Python是解释型语言,翻译一行就执行一行。( )
四、操作题
28.小张使用Python的Flask Web框架编写“校友查询系统”。用户使用浏览器输入http:/192.168.10.88:8000进入系统,在校友姓名处输入校友的姓名,点击“查询”按钮,将从数据库中获取该校友相关信息。查询界面如下图所示:
代码如下:
from flask import Flask,render_template # 导入 Flask 库
app=①
@app.route('/')
def index():
# 显示系统主页相关信息,代码略
@app.route('/cx',method=咱'GET','POST'暂)
def cx():
# 根据输入的校友姓名查询相关信息,代码略
return render_template('xyinfo.html',txt=data)
if __name__=='__main__':
app. run(② ,③ )
(1)为实现上述功能,请完善画线处的代码。
①
②
③
(2)下列有关该系统的描述,正确的是( )
A.将客户端输入的校友姓名传递给服务器,本系统中只采用POST方式
B.查询校友信息的页面的URL地址未知
C.无法通过程序修改该网络应用程序的端口号
D.显示校友信息的模板是xyinfo.html
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查程序设计相关内容。分析程序段,其运行过程如图所示:。故本题答案是C选项。
2.D
【详解】本题Python逻辑运算符。Python中的逻辑运算符包括 and、or 和 not,但不包括 xor。xor 是一种位运算符,而不是逻辑运算符。故选D。
3.B
【详解】本题考查Python基础。
分支结构(如if-else语句)的主要用途是根据条件执行不同的代码块。这种结构非常适合于需要根据不同条件做出不同响应的场景。条件判断可以基于任何可以计算为布尔值(真或假)的表达式,如比较运算符的结果、逻辑运算符的结果等。故正确答案为:选项B。
4.B
【详解】本题考查Python基础。
与列表一样,元组也有append()、insert()函数:这是错误的。元组是不可变的,这意味着一旦创建,就不能更改其内容(即不能添加、删除或更改其中的元素)。因此,元组没有提供如append()、insert()等用于修改序列内容的函数。故正确答案为:选项B。
5.C
【详解】本题考查Python基础。
该程序的功能是累加1到10的和到变量sum,故sum=1+2+3+4+5+6+7+8+9+10=55。正确答案为:选项C。
6.A
【详解】本题考查Python函数的应用。count()方法用于统计字符串里某个字符出现的次数;find()函数可以在字符串中查找指定字符或子串的位置,如果找到则返回该字符或子串在整个字符串中的下标,否则返回-1;index()函数,如果不存在会报异常。故选A。
7.C
【详解】本题考查Python基础。
本题程序的功能是将字符串中的数字拼接在t中,若遇到字符“!”,则清空字符串t,若遇到其他字符且a、t均不为空时,则输出字符串t的内容,因此正确答案为:选项C。
8.D
【详解】本题考查Python基础。
本程序的功能是生成5个随机整数,使得后面生成的随机整数均不大于它前面的数,第1个随机整数的范围为[2,5],后面4个随机整数的范围为[1,5],因此正确答案为:选项D。
9.C
【详解】本题考查Python基础。
该程序功能为:遍历产生1到4的数赋值给变量i,每次累乘i到变量a,累加a到变量s。故s=1+2+6+24=33。故正确答案为:选项C。
10.B
【详解】本题考查Python程序。首先,n被初始化为36,s初始化为0。然后通过for循环从2迭代到35。对于每个i,判断36是否能被i整除,如果能整除,即n%i==0,则s加1。36能被2、3、4、6、9、12、18整除,共7个数,所以s最终的值为7。故答案为:B。
11.C
【详解】本题考查Python表达式。选项A:a>b为假,b<c and c>a为真。逻辑运算中,or只要有一个为真结果就为真,and只有两个都为真结果才为真。所以表达式的结果为真。选项B:a%2==1,b%2==0,所以a%2==b%2为假,not取反后结果为真。选项C:a*c//b=3*5//4=3,int(a*c//b)=3,a=3,所以int(a*c//b)!=a为假。选项D:c>=a为真,a<=b为真,所以c>=a<=b为真。故答案为:C。
12.B
【详解】本题考查Python基础。
int(12.78)=12,abs(-37.53)=37.53,则x=12+37.53=49.53→y=49.53-37.53=12→x=49.53-12=37.53
故正确答案为:选项B。
13.D
【详解】本题考查Python基础。
根据定义,(0,0)是原点,即if x==0 and y==0表示原点;(0,y)或者(x,0)分别表示y轴与x轴,即if x==0 or y==0且x与y不同时为0表示数轴。A选项,x==y==0时,第1个和第2个if均成立。故正确答案为:选项D。
14.D
【详解】本题考查Python基础。
外循环i的取值为0、1、2、3、4。内循环根据i的值输出,功能为第i行输出i个星号。故正确答案为:选项D。
15.A
【详解】本题考查Python程序。k初始值为1,假设d[1]是当前最大元素。遍历从2到10的元素,当d[i]大于d[k]时,说明找到了更大的元素,更新k的值为i,然后交换d[k]和d[k-1]的位置。故答案为:A。
16.D
【详解】本题考查Python程序。程序的功能是计算二维列表matrix中满足条件i+j=k的元素之和,其中k是用户输入的整数。解析如下:给定二维列表matrix,每个子列表都包含相同的四个整数。用户输入一个整数k。初始化变量tot为0,用于累加满足条件的元素之和。使用嵌套循环遍历matrix的每个元素:外层循环i控制行索引。内层循环j控制列索引。判断条件i+j==k,如果成立,则将matrix[i][j]的值加到tot中。最后输出变量tot的值,即满足条件i+j=k的元素之和。若输入2,根据题目的计算,满足条件的元素有(0,2),(1,1),(2,0),它们分别对应的值是1,2,3,因此最终的输出是1+2+3=6。故答案为:D。
17.B
【详解】本题考查Python基础。
该程序功能为:二维列表数据,当i<j时候,追加a[i][j]到空列表b中。(即可理解为二维表中,对角线元素以上的元素追加到空列表b中,因为对角线以上的元素索引的特点为i>j)。故可知正确答案为:选项B。
18.def
【详解】本题考查Python函数的创建。在Python中,使用def关键字可以创建一个函数。函数定义的基本语法是def 函数名(参数):,然后在下一行缩进的代码块中编写函数体。
19.if
【详解】本题考查Python分支结构的描述。在Python中,条件判断可以使用 if 语句来实现。if 语句用于根据条件的真假来执行不同的代码块。可以结合 elif 和 else 语句来处理多种情况。
20.if i ∗ 2+(56-i)∗ 4==160
【详解】本题考查Python程序设计相关内容。本题描述的是鸡兔同笼问题,假设鸡的数量为i,则兔的数量为56-i,两者需要满足i ∗ 2+(56-i)∗ 4==160,才符合题目要求,程序段缺少该条件的判断,故本题答案是:if i ∗ 2+(56-i)∗ 4==160。
21.[1,1,2,3,1,1,2,3]
【详解】
本题考查Python列表相关内容。语句b=a*2将列表a重复2遍赋值给b,列表b为[1,1,2,3,1,1,2,3]。故本题答案是:[1,1,2,3,1,1,2,3]。
22. 字母 下划线 保留字
【详解】本题考查Python变量的命名。在python中,变量的命名需遵循一定规则:①必须字母以或下划线开头,后面可以是字母,数字或下划线;②区分大小写;③不能使用保留字。
23.正确
【详解】本题考查Python基础。
在Python中,定义函数时参数名字前面带有两个*符号(例如,**kwargs)确实表示该函数可以接受任意数量的关键字参数(keyword arguments),并将这些参数存储在一个字典中。这种参数被称为可变关键字参数。这种机制在编写需要高度灵活性的函数时非常有用,因为它允许调用者传递任意数量的关键字参数,而函数内部可以以一种统一的方式处理这些参数。故正确。
24.错误
【详解】本题考查Python基础。
题目中的说法过于绝对。在Python中,如果在这个 return 语句之前遇到另一个 return 语句,那么这个函数不一定会返回整数3。故错误。
25.错误
【详解】本题考查Python集合数据类型的描述。已知A和B是两个集合,并且表达式A<B的值为False,那么表达式A>B的值不一定为True,也有可能A=B。故表述错误。
26.正确
【详解】本题考查Python程序设计相关内容。分析程序段,由条件判断语句i%2==0可知,只有当列表数值为偶数时才执行求和语句,而列表1-19之间的偶数有9个,那么赋值语句 sum= sum+i 共被执行了 9 次。故本题答案是:正确。
27.正确
【详解】本题考查Python语言基础知识。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python程序当运行时,它会逐行执行每个代码行。故本题答案是:正确。
28. Flask(__name__) host='172.168.10.88' port=8000 D
【详解】本题考查Python程序设计相关内容。
(1)①处代码是创建一个Flask应用程序实例,并将其名称设置为当前模块的名称或包的名称,在Flask中,_name_是一个特殊的内置变量,代表当前模块的名称或包的名称,通过将_name_作为参数传递给Flask类,可以确定应用程序的根目录,从而找到静态文件夹和模板文件夹等资源。故此处答案是:Flask(_name_)。由“用户使用浏览器输入http:/192.168.10.88:8000进入系统”知,host='172.168.10.88',port=8000,故②处答案是:host='172.168.10.88',③处答案是:port=8000。
(2)本系统表单通过POST或GET将数据传送给服务器;根据程序可知,校友查询信息页面的URL是http:/192.168.10.88:8000/cx,地址已知;可以通过修改run方法中的port参数值修改默认的Web应用程序的端口号;render_template方法的第一个参数就是网页的模板文件:xyinfo.html。故本题答案是:D。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$