内容正文:
2.3 程序设计基本知识
一、选择题
1.在Python语言中,计算变量x中元素总和的函数是( )
A.int(x) B.float(x) C.sum(x) D.abs(x)
2.在Python中,若a=1,b=2,要使输出结果为a+b=3,则应使用的输出语句是( )
A.print("a+b=a+b") B.print("a+b=",a+b)
C.print(a+b,"=a+b") D.print("a+b","=a+b")
3.在Python中,执行以下代码后,输出的结果是( )
x=3==3
print(x)
A.True B.False C.3 D.6
4.以下Python程序段用于求100以内所有奇数之和,其中无法实现该功能的是( )
A.
s=0
for i in range(1,100):
s+=i
i=i+2
print(s)
B.
s=0
for i in range(1,101,2):
s+=i
print(s)
C.
s=0;i=1
while i<100:
s=s+i
i=i+2
print(s)
D.
s=1;i=1
while i<99:
i=i+2
s=s+i
print(s)
A.-1 B.0 C.1 D.2
5.有如下程序段
p ="Tel-114"
c=""
for ch in p:
if ch>= "0" and ch<= "9":
c+=str(9-int(ch))
elif ch>= "a" and ch<= "z":
ch= chr(ord(ch) - 32)
if ch>= "A" and ch<= "Z":
c=ch+c
print(c)
执行程序后,输出的结果为( )
A.LET885 B.TEL885 C.elT114 D.LET-114
6.阅读下列Python访问mdb数据库语句,下列说法错误的是( )
import win32com.client
conn = win32com.client.Dispatch(r"ADODB.Connection")
DSN = 'PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA SOURCE = 旅行小助手.mdb'
conn.Open(DSN)
rs = win32com.client.Dispatch(r'ADODB.Recordset')
tablename = '旅行线路表'
rs.Open('[' + tablename + ']', conn, 1, 3)
while not rs.EOF:
for i in range(rs.Fields.Count):
print(rs.Fields[i].Name, ":", rs.Fields[i].Value)
print(end='
')
rs.MoveNext()
print('该表有'+str(rs.Fields.Count)+'个字段')
print('该表有'+str(rs.RecordCount)+'条记录')
conn.Close()
A.conn.Open(DSN)用于连接数据文件“旅行小助手.mdb”,rs.Open('[' + tablename + ']', conn, 1, 3)语句用于打开数据文件中的表“旅行线路表”
B.for i in range(rs.Fields.Count)用于循环访问打开表中一条记录中的所有字段,print(rs.Fields[i].Name, ":", rs.Fields[i].Value) 用于打印字段名称,字段的数据
C.conn.Close()用于关闭访问,这个语句可以不需要
D.rs.MoveNext()用于移动到下一条记录
7.下列Python表达式中,值为True的是( )
A."TZ" in "TaiZhou" B.12//3**2==16 C."3123"<"761" D.2024%100!=1243//10%100
8.以下不是机器语言特点的是( )
A.接近自然语言 B.移植性差 C.能直接运行 D.难以编写和阅读
9.以下属于算术运算符的是( )
A.!= B.== C.> D.%
10.下列伪代码中体现出来的程序算法结构是( )
A.顺序结构 B.循环结构 C.选择结构 D.三种结构都有
11.以下关于函数说法正确的是( )
A.函数的实际参数和形式参数必须同名
B.函数的形式参数既可以是变量也可以是常量
C.函数的实际参数不可以是表达式
D.函数的实际参数可以是其他函数的调用
12.运行如下Python程序段,若输入“B”,则变量cnt的值为( )
a=[ 'A ','B ','C ','D ','E ','F ','G ']
ch=input(“输入A-G之间的字母:”)
cnt=0
for key in a:
i,j=0,len(a)-1
while i<=j:
m=(i+j)//2
if a[m]==ch:
cnt+=1
break#终止while循环
if a[m]==key:
break
elif a[m]<key:
i=m+1
else:
j=m-1
A.1 B.2 C.3 D.7
13.在 Python语言中,能正确表示条件“x小于-4或大于等于6”的表达式是( )
A.x>-4 and x<=6 B.x<=4 and x>=6 C.x>-4 or x<=6 D.x<-4 or x>=6
14.18位二代身份证号的编码规则为“六位地址码+八位出生日期+三位数字顺序码和一位数字校验码”,如330425198002160052,下列选项中,能正确从身份证号中获取出生日期信息的是( )
A.s[7:14] B.s[7:15] C.s[6:13] D.s[6:14]
15.以下程序属于那一种结构( )
a,b,c=2,10,7
c=a
a=b
b=c
print(a,b,c)
A.循环结构 B.分支结构 C.顺序结构 D.双分支结构
16.python表达式5%3+4//2**2的运算结果为( )
A.2 B.4 C.3 D.7
17.在Python中,0、1、2等整数的数据类型是( )
A.int(整型) B.float(浮点型) C.str(字符串) D.bool(布尔型)
18.下列选项中,属于列表的是( )
A.[1,2,3,4] B.1,2,3,4 C.{1,2,3,4} D.(1,2,3,4)
二、填空题
19.分析完善程序:已知包含25项的数列:1,2/3,3/5,…,24/47,25/49。
问题1:写出该数列的通项公式f(n)=①
问题2:以下是计算s=1+2/3+3/5……24/47+25/49的程序,请补全代码:
s=0
for i in range(1,26):
s=s+ ②
print("s",s)
20.如下Python程序段
x=0
while x<50:
x=(x+2)*(x+3)
运行后,x 的值为 。
21.在Java中,System类的currentTimeMillis()方法返回的是自 以来的毫秒数。
22.在Python中,使用 可以一次性迭代字典中的键和值。
23.在计算机编程中, 指的是程序中预先定义的特定功能的代码片段,可以被重复调用。
24.判断变量a是否能被4整除,书写成Python语言表达式为 。
三、判断题
25.定义类时,在一个方法前面使用@staticmethod进行修饰,则该方法属于静态方法。( )
26.创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,)。( )
27.在Python3.x语言中,input()函数的返回值类型是字符串。( )
28.在程序中,x=y与y=x是不一样的。( )
29.2021年7月19日-20日,河南郑州经历了百年罕见的特大暴雨,城市受灾严重,一段众人合力破窗救出一位外婆和外孙、外孙女的视频惊心动魄。
原来60多岁外婆开车接外补和外孙女放学途中,遭遇车辆被大水围困。外婆立即给较远位置的女儿打电话求助,报出她附近店铺名字:一家便利店:一家酒店和一家面馆。女儿第一反应是报警,但当时所有报警电话都占线:于是女儿通过外卖平台和点评软件搜索便利店、面馆、酒店的名字:确定外婆的位置,并查询到这些店铺的联系电话,三家店铺均打通电话,但便利店老板在较远位置救援,店内无人;面馆只有一人,立刻赶去现场;酒店有数人也赶去救援。于此同时,无法赶赴现场的女儿在安全知识平台查询呛水、溺水抢救措施,以备急用。
大家想尽办法,利用有限的工具,最终在大水即将漫过车顶时救出被困三人至安全处。众人喜极而泣,对女儿冷静、睿智地正确“远程求救”纷纷表示赞赏。
请阅读以上材料,分析女儿危急关头处理事件的方法与流程,完成下列各题。
整个救援过程是通过B方向实施的,其中只用到了分支结构。
30.print(1+"2")的输出结果是"3"( )
四、操作题
31.某旅游城市推出24小时不间断环岛观光车服务,现从购票系统中导出了观光车开始运营以来乘客数据(按发车时间升序排序),包括每辆观光车发车时间以及每位游客来自的省份。
发车时间(分钟)
乘客来源
不同省份
1
"云南省","云南省","陕西省","浙江省"
3
60
"上海市","上海市","浙江省","浙江省","广东省"
5
75
"广东省","广东省","江苏省","江苏省"
6
…
…
…
了解乘客来源可以提供更加个性化的服务和改进路线规划,请分析观光车发车时间为止的24小时内观光车累计接待了来自多少个不同省份的游客。
(1)若第4辆观光车在第1445分钟(提示:24小时=1440分钟)发车,车内共有6名乘客,分别来自"上海市","上海市","浙江省","浙江省","浙江省","山东省",则此时24小时内观光车累计接待游客来自 个不同省份。
(2)自定义函数update(loc,flag,ans),实现对省份统计数据进行更新,loc表示省份列表,flag为True表示loc属于24小时内数据,纳入统计范围,flag为False表示超过24小时不再统计loc内的省份数据,最后更新ans并返回,请在划线处填入合适的代码。
def update(loc, flag, ans):
if flag==True:
for i in loc:
if i in info:
info[i]+=1
else:
info[i]=1
①
else:
for i in loc:
info[i]-=1
if ② :
ans-=1
return ans
(3)实现上述功能的主程序如下,请在划线处填入合适的代码
#读取观光车发车时间,乘客来源分别存入列表t,prov中,代码略
#如t=[1,60,75,…], prov=[["云南省","云南省","陕西省","浙江省"],["上海市","上海市","浙江省","浙江省","广东省"],["广东省","广东省","江苏省","江苏省"],…]
info={}
①
ans, start=0,0
for i in range(n):
for k in range(start,i):
if (t[i]-t[k]<1440):
②
break
ans=update(prov[k], False, ans)
ans=update(prov[i], True, ans)
print("观光车最近24小时内累计接待来自",ans,"个不同省份的游客")
32.用Python编辑器打开“Y:\389”文件夹中的文件“tk8.py”,进行以下操作并保存。
(1)删除<1>、<2>、<3>,在该处填写代码,完善程序,实现“求9~90所有能被9整除的数的和”(请不要更改、删除其他代码);
(2)编写完成后保存文件并关闭应用软件。
#求9~90所有能被9整除的数的和,在<1>、<2>、<3>处填入正确代码,不要修改其它代码
s = <1> #删除语句中的"<1>",并在此处填入正确代码
for i in range(9,91,<2>): #删除语句中的"<2>",并在此处填入正确代码
s = s + <3> #删除语句中的"<3>",并在此处填入正确代码
print ("9~90所有能被9整除的数的和为",s)
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查Python函数。A选项int(x)函数用于将x转换为整数类型;B选项float(x)函数用于将x转换为浮点数类型;C选项sum(x)函数用于计算x中元素的总和;D选项abs(x)函数用于返回x的绝对值。故答案为:C。
2.B
【详解】本题考查Python基础。print函数显示字符,需要用双引号括起来,变量与显示字符使用逗号分隔。故选择B。
3.A
【详解】本题考查Python表达式的运算。==是关系运算符,用于判断是否相等,3==3值为True,因此x值为True。故选A。
4.A
【详解】本题考查Python程序编写。选项A中range(1,1000)生成1到99数字,依次赋值给i。程序中i=i+2试图改变i的取值,但是for循环时,将i的值又改回到遍历中的数字,故该程序功能计算1累加到99的结果,故无法实现功能,正确答案为A选项。
5.A
【详解】本题考查Python程序设计相关内容。分析程序可知,该程序将输入的字符串p中的数字变为9减去该数字后,再转换为字符,插入到字符串序列尾部;如为小写字母,则将其变为大写字母,并将其插入到字符串序列的前面;其余字符不连接到字符串中。p="Tel-114",则"Tel"转换为"LET";"-"不加入新字符串;"114"转换为"885",形成的新字符串c为"LET885",程序运行后,输出的结果是"LET885",故本题答案是A选项。
6.C
【详解】本题考查数据库操作。数据库访问结束后,一定要调用close方法关闭连接,否则会占用系统资源,不利于数据库的安全。C选项,conn.Close()用于关闭访问,这个语句可以不需要,说法错误。其他选项说法正确,故正确答案为选项C。
7.C
【详解】本题考查的是Python表达式。"TZ" in "TaiZhou"、12//3**2==16、2024%100!=1243//10%100值为False,"3123"<"761"值为True。故选C。
8.A
【详解】本题考查机器语言的特点。高级语言是一种符号化语言,接近于自然语言;程序的可移植性较好;编写程序的效率高;不能被计算机直接识别和执行。机器语言特点是:移植性差、能直接运行、难以编写和阅读等。故选A。
9.D
【详解】本题考查Python运算符相关内容。!=、==、>属于关系运算符,%属于算术运算符。故本题答案是D选项。
10.C
【详解】本题考查程序结构。这段伪代码中,根据年龄的不同情况进行判断,选择执行不同的输出语句,这体现了选择结构(也叫分支结构),而整个过程是依次按条件判断执行,没有循环过程,也不存在先执行后面的语句再回头执行前面语句的情况,所以主要体现的是选择结构,答案选C。
11.D
【详解】本题考查程序设计函数相关内容。A选项,函数的实际参数和形式参数不需要同名,选项错误。B选项,函数的形式参数必须是变量,选项错误。C选项,函数的实际参数可以是表达式,选项错误。D选项,函数的实际参数可以是其他函数的调用,选项正确。故本题答案是D选项。
12.C
【详解】本题考查Python程序设计相关内容。分析程序段,其运行过程如图所示:。运行结束,变量cnt的值为3,故本题答案是C选项。
13.D
【详解】本题主要考查Python表达式的运算。and是“且”关系,or是“或”关系,故能正确表示条件“x小于-4或大于等于6”的表达式是x<-4 or x>=6,故本题选D选项。
14.D
【详解】本题考查数据类型。身份证号中第7~14位表示出生日期,在字符串中的索引值为6~13,字符串切片操作时,只能取到终点位置的前一个,因此要获取出生日期信息的正确表示为s[6:14],故答案为D。
15.C
【详解】本题考查程序控制结构。分析程序可知,该程序属于顺序结构,即自上而下依次执行。故选C。
16.C
【详解】本题考查Python表达式的运算。%是取余运算符,**是幂运算符,5%3+4//2**2=2+4//4=3,故选C。
17.A
【详解】本题主要考查Python数据类型。在Python中,0、1、2等整数的数据类型是int(整型),故本题选A选项。
18.A
【详解】本题主要考查列表数据结构。 list 列表定义使用中括号 [ ],元素之间用逗号分隔,因此属于列表的是[1,2,3,4],选A选项。
19. n/(2*n-1)或n/(n*2-1) i/(2*i-1)或i/(i*2-1)
【详解】本题考查程序分析。
①第n项,规律为分母为奇数2*n-1,分子为n,故通项公式为n/(2*n-1)或n/(n*2-1)。
②for循环遍历数字1到25,循序变量为i,累加每项的值到变量s,根据通项公式可知:i/(2*i-1)或i/(i*2-1)。
20.72
【详解】本题考查Python基础。初始化x=0,执行循环。
第一次运行:x=(0+2)*(0+3)=6
第二次运行:x=(6+2)*(6+3)=72
故正确答案为:72。
21.1970年1月1日00:00:00 GMT
【详解】本题考查计算机编程。System类的currentTimeMillis()方法返回的是自1970年1月1日00:00:00 GMT(即Unix纪元)以来的毫秒数。这个时间戳可以用于测量时间间隔、创建时间戳或进行时间相关的计算。理解这一点对于编写涉及时间操作的Java程序非常重要,有助于进行准确的时间测量和处理。故答案为:1970年1月1日00:00:00 GMT。
22.items()
【详解】本题考查Python基础。
在Python中,你可以使用items()方法一次性迭代字典中的键和值。items()方法返回一个包含字典中所有(键,值)对的视图对象。然后,你可以使用for循环遍历这个视图对象,从而在每次迭代中获取到一个键和对应的值。故正确答案为:items()。
23.函数
【详解】本题考查函数。程序中预先定义的特定功能的代码片段,可以被重复调用的部分称为函数或方法。它们使得代码更加模块化和可重用。故答案为:函数。
24.a%4==0
【详解】本题考查的是Python表达式。a是否能被4整除,即a除以4的余数为0,故判断变量a是否能被4整除的Python语言表达式为:a%4==0。
25.正确
【详解】本题考查Python基础。
在Python中,当我们在类定义中使用@staticmethod装饰器来修饰一个方法时,这个方法就被定义为静态方法。静态方法不同于实例方法和类方法,它不接受类或实例的隐式第一个参数(在实例方法中通常是self,在类方法中通常是cls)。这意味着静态方法可以被调用而无需创建类的实例,但它也无法直接访问类的属性或方法(除非它们被显式地传递为参数)。
26.正确
【详解】本题考查Python基础。
在Python中,要创建一个只包含一个元素的元组,确实需要在该元素后面加上一个逗号。这是因为在Python中,圆括号()通常用于定义元组(tuple)或者作为函数调用的一部分,但如果没有逗号来明确指示这是一个元组,Python解释器可能会将圆括号内的内容解释为表达式或仅仅是一个普通的值,而不是元组。故正确。
27.正确
【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。
28.正确
【详解】本题考查程序设计中赋值语句的理解。在Python程序中,x=y是将y的值赋给x,y=x是将x的值赋给y,因此,x=y与y=x是不一样的。故正确。
29.错误
【详解】本题考查的是程序结构。B方向流程用到了分支结构和循环结构,故题干中说法错误。
30.错误
【详解】本题考查数据类型相关内容。1为int类型,"2"为字符串类型,两者类型不一致,不能进行加法运算。故本题答案是错误。
31. 5 ans+=1 info[i]==0 或 info[i]==0 and ans!= 0 n=len(t) 或 n=len(prov) start=k
【详解】本题考查程序分析。
(1)首先,我们需要累计所有在24小时内的观光车乘客来源省份。根据题目,前3辆观光车的发车时间分别为1分钟、60分钟和75分钟,第4辆观光车在第1445分钟发车。因此,前2辆观光车的乘客数据都需要纳入统计。前2辆观光车的乘客来源省份有浙江省、上海市、广东省、江苏省,共计4个不同省份。第4辆观光车的乘客来源省份有上海市、浙江省、山东省,但上海市和浙江省之前已经统计过,所以只需要新增山东省。因此,此时24小时内观光车累计接待游客来自5个不同省份。故正确答案为5。
(2)对于自定义函数update(loc, flag, ans),我们需要根据flag的值来更新省份统计数据和不同省份的数量。如果flag为True,表示loc属于24小时内数据,需要纳入统计范围;如果flag为False,表示超过24小时,不再统计loc内的省份数据。在纳入统计范围时,如果省份是首次出现,需要将不同省份的数量ans加1。在移除统计范围时,如果某个省份的计数变为0,需要将不同省份的数量ans减1。因此,①处应填入ans += 1,②处应填入info[i] == 0或 info[i]==0 and ans!= 0。
(3)在主程序中,我们需要遍历每一辆观光车,更新24小时内的省份统计数据。故需要取到遍历的长度因此,①处应初始化n=len(t) 或 n=len(prov);对于每一辆观光车,我们首先需要移除超过24小时的观光车乘客来源省份数据,删除后k值要继续遍历,下次遍历时,需要从更新后的k值开始,故start值需要更新为k值。②处start=k。
32.<1> 0 ;<2> 9 ;<3> i
【详解】本题考查Python程序综合应用。<1> 处应填入 0,用于初始化累加器 s。<2> 处应填入 9,这是 range() 函数的步长参数,表示每次循环 i 增加的值。因为我们想要找到所有能被9整除的数,所以步长应该设为9。<3> 处应填入 i,表示将当前循环变量 i(即能被9整除的数)累加到 s 中。故答案为:<1> 0; <2> 9 ;<3> i。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$