内容正文:
第二节 程序设计语言基础知识
一、选择题
1.若在 Python中运行以下程序时分别输入3和5,则输出的结果是( )
a=float(input("请输入a: "))
b=int(input("请输入b: "))
c=a+b
print(c)
A.a+b B.35 C.3+5 D.8.0
2.小申决定用高级语言进行编程,下列选项都是属于高级语言的是( )
A.汇编语言、机器语言 B.汇编语言、Basic语言
C.C++语言、Python语言 D.机器语言、Python语言
3.语句print("2"*5)的输出结果是( )
A.10 B."2"*5 C.22222 D.32
4.定义如下函数:
def stairs(n):
d={1:1,2:2,3:4}
if n<=3:
return d[n]
else:
return stairs(n-1)+stairs(n-2)+stairs(n-3)
执行语句s= stairs(5),函数stairs被调用的次数是( )
A.4 B.5 C.6 D.7
5.运行如下Python程序,输入文字“吃葡萄不吐葡萄皮”,输出结果为( )
text=input("请输入一段文字:")
for i in text:
if i=="葡":
continue
print(i,end="")
A.葡 B.皮 C.吃 D.吃萄不吐萄皮
6.有如下Python程序段:
n=int(input())
s=" "
while n!=0:
x=n%10
s=s+str(x)
n=n//10
print(s)
若程序运行后输入“20220901”,输出的结果为( )
A.TypeError B.10902202 C.20220901 D.16
7.为实现按表中分数段进行等级划分,以下代码正确的是( )
分数x
x≥90
80≤x<90
x<80
等级level
A
B
C
A.
if x>=90:
level="A"
if x>=80:
level="B"
if x<80:
level="C"
B.
if x<80:
level="C"
elif:
if x>=90:
level="A"
level="B"
C.
level="A"
if x>=80:
level="B"
else:
level="C"
D.
level="C"
if x>=80:
level="B"
if x>=90:
level="A"
A.A B.B C.C D.D
8.输入一个字符串,统计连续出现的字符次数最多有几次,例如输入s=″AABDDD″,字符“A”输出2次,字符“B”输出1次,字符“D”输出3次,故最终输出3。
s=input()
m=1;c=1
for i in range(① ,len(s)):
if s[i]==s[i-1]:
c+=1
if c>m:
②
else:
③
print(m)
程序代码如上所示,其中①、②和③处应填入的代码是( )
A.①1 ②c=m ③c=0 B.①0 ②m=c ③c=0 C.①0 ②c=m ③c=1 D.①1 ②m=c ③c=1
9.有如下 Python 段程序:
a=[6,12,9,20,8,11,4]
for j in range(1,len(a))
if a[j] < a[j-1]:
a[j]=a[j]+a[j-1];a[j-1]=a[j]-a[j-1];a[j]=a[j]-a[j-1]
执行该段程序后,列表 a 的值是( )
A.[4,6,12,9,20,8,11] B.[4,6,8,12,9,20,11] C.[6,9,12,8,11,4,20] D.[6,9,8,11,4,12,20]
10.下列Python表达式的值等于2的是( )
A.2%5 B.2//5 C.(3>4)*2 D.4-3%5**2
11.某Python程序如下:
s="24SXqz"
e=""
for ch in s:
if ch>="0" and ch<="9":
c+=str(9-int(ch))
elif ch>="a" and ch<="z":
c+=chr((ord(ch) -ord("a")+3) %26+ord("a") )
else:
c=ch+c
print(c)
程序运行后,输出的结果是( )
A.XS24tc B.75SXtc C.XS75tc D.24SXtc
12.有如下Python程序段:
a=[99,85,74,68,53,42,34,27,20,13]
key=int(input("请输入一个整数:"));i,j,k,c=0,9,0,"N"
flag=False
while i<=j and flag==False:
m=(i+j+1)//2;k=k+1
if key==a[m]:
c="Y";flag=True
if key>a[m]:
j=m-1
else:
i=m+1
print(c,k)
执行该程序段后,下列说法正确的是( )
A.该程序段既能用于升序序列的查找,也能用于降序序列的查找
B.若输出k的值为2,则c的值一定为Y
C.若输入key的值为74,程序执行后变量i和j的值分别为0和4
D.输入两位任意正整数,k的值介于1和3之间
13.高级语言更接近自然语言,并不特指某种语言,也不依赖于特定的计算机系统,因而更容易掌握和使用,通用性也更好,下列不属于高级语言的是( )
A.Java语言 B.Python语言 C.机器语言 D.C语言
14.下列程序的功能是求1~x之间所有5的倍数之和
x = int(input(″输入数字x:″)
i = 1
s = 0
while i <= x:
if ① :
s = s + i
print(i )
②
print("s=" , s)
则划线处应填入的语句是( )
A.① i%5 ==0 ②i = i + 1 B.① i//5 ==0 ② i = i + 1 C.① i%5 ==0 ②i = i + 2 D.① i%5 ==0 ② i = i + 5
15.某算法流程图如图所示。执行该流程图时,依次输入5、4、6、-8、4、0,下列说法正确的是( )
A.a!=0?执行了4次
B.s=s*x+a执行了5次
C.输出的s值是表达式4*54+6*53-8*52+4*5的值
D.输出的s值是表达式4*53+6*52-8*5+4的值
16.在Python编程中,以下哪个函数用于计算一组数值的平均值( )
A.sum() B.average() C.mean() D.avg()
17.有如下程序段:
以上程序运行后,列表 a 的值可能是( )
A.[2,5,10,10,10,9] B.[3,8,7,13,3,9]
C.[8, 12, 3, 5, 3, 11] D.[6,10,9,7,10,8]
18.输入下列Python程序段,查看输出结果( )
s=[3,15,27,8,42]
s. append(16)
s. sort()
print(s)
A.[3,8,15,16,27,42] B.[3,15,27,8,42,16]
C.[3,15,16,27,8,42] D.[3,15,27,16,8,42]
19.以下Python程序段执行后,输出结果为( )
m=28
if m%3!=0:
print(m,"不能被3整除")
else:
print(m,"能被3整除")
A.m不能被3整除 B.m能被3整除 C.28能被3整除 D.28不能被3整除
二、填空题
20.运行代码print(3+6 == 6),输出的结果是 。
21.在Python中, 函数可以用来实现循环的延迟执行。
22.Python表达式125//3的运算结果是( )
23.input( )函数的返回值的类型是 。
24.某 Python 程序如下:
n = int (input ())
sum = a = 3
res = 0
i=1
while i <= n:
res = res + sum
sum = sum * 10 + a
i = i + 1
print (res)
当输入n值为3时,程序输出结果是 。
三、判断题
25.下列程序的运行结果为123。( )
b=int('123')
print(b)
26.Python语言是高级语言,需要经过翻译才能被计算机执行。( )
27.在使用Python语言编写程序时,注释不会影响程序结果,所以没有必要写。( )
28.Python语言的变量名要区分英文字母的大小写。( )
四、操作题
29.某小组合作开发了“运动有奖”系统,使用智能终端模拟运动手环,实现运动打卡、获取积分的过程,该系统结构示意图如图a所示。该系统采集走路步数,将数据上传至服务器,存储在数据库中。用户可通过浏览器查看各用户运动情况。
图a
请回答下列问题:
(1)搭建信息系统前要明确用户对所搭建系统的目标期待,该过程属于 。
(单选,填字母:A.需求分析/B.开发模式的选择/C.概要设计/D.详细设计)
(2)服务器端程序基于Flask Web框架编写,部分代码如下。某时刻编号为1的用户走路步数为950步,则智能终端提交数据到服务器的URL为:http:// /input?uid=1&stp=950。该数据的传输方式是 (选填:GET/POST)。
# 导入相关模块,代码略
app= Flask(__name__)
@app.route("/input", methods=["GET"])
def add():
userid = int(request.args.get("uid")) # 获取用户编号
steps = int(request.args.get("stp")) # 获取走路步数
# 将数据提交至数据库,代码略
if __name__ == "__main__":
app.run(host= "192.168.10.14", port = 8080)
(3)实现计步功能原理如下:智能终端移动时加速度的波峰峰值大于阈值th,且相邻波峰时间间隔介于阈值dt1和dt2之间,则计为一步。如图b所示,A点的值大于相邻两个点的值,则该点为波峰,图中共有5个波峰,若dt1的值为0.2,dt2的值为1,th的值为11,图中有效波峰为A、B、C,该时间段有效步数为2。
图b
相关Python代码如下,请在程序划线处填入合适的代码。
# 将每隔0.1秒采集加速度数据存入数组d中,代码略
peaks=0 #peaks表示有效波峰数量
p=-1
for i in range(1, len(d)-1 ,1):
if d[i]> th and ① :
if p==-1:
peaks=1
elif dt1 <=0.1*(i-p)<= dt2 :
②
p=i
steps=peaks-1 #steps表示有效步数
(4)系统正常工作一段时间后,组员发现数据库中缺失了智能终端1对应的最新数据,其它正常,请简要说明系统中可能造成上述问题的原因。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查Python语句执行。float函数用于将对象变为浮点型,int函数用于将对象变为整型。因此a=3.0,b=5,c=a+b=8.0。故选D。
2.C
【详解】本题考查计算机程序设计语言相关内容。程序设计语言分为:低级语言(机器语言、汇编语言)、高级语言(C++、JAVA、Python、Basic等)。故本题答案是C选项。
3.C
【详解】本题考查Python程序设计相关内容。在Python中,字符串的乘法运算表示字符串的重复。当一个字符串与一个整数相乘时,该字符串将重复指定次数,形成一个新的字符串。"2"*5即:"22222",输出结果为:22222。故本题答案是C选项。
4.D
【详解】本题考查Python递归函数相关内容。执行语句s=stairs(5)时,调用4次(stairs(5)、stairs(4)、stairs(3)、stairs(2));执行stairs(4)时调用3次(stairs(3)、stairs(2)、stairs(1));一共调用了4+3=7。故本题答案是D选项。
5.B
【详解】本题考查Python程序。程序首先通过input()函数获取用户输入的文本,存储在变量text中。然后程序通过for循环遍历text中的每一个字符,其中i代表当前遍历到的字符。在循环体内部,通过条件判断if i=="葡",如果当前字符是"葡",则执行continue语句,该语句会导致程序跳过当前迭代的剩余部分,直接进入下一次迭代。根据上述解析,程序运行后输出的结果是原始输入文本的最后一个字符,即"皮"。故答案为:B。
6.B
【详解】本题考查Python程序设计相关内容。程序段功能是将输入的数字字符串逆序输出,输入“20220901”,输出的结果为:“10902202”,故本题答案是B选项。
7.D
【详解】本题考查Python程序设计相关内容。A选项,依据程序段,x>=90时,先执行“if x>=90:”,再执行“if x>=80”,level终值为"B",与题干不相符,逻辑错误。B选项,依据程序段,x>=90时,先执行“if x>=90:”,再执行“level="B"”,level终值为"B",与题干不相符,逻辑错误。C选项,依据程序段,x>=90时,level值为"B",与题干不相符,逻辑错误。D选项,程序段能够正确区分分数段并划分等级,选项正确。故本题答案是D选项。
8.D
【详解】本题考查Python程序设计相关内容。初始化c的值为1,假设每个字符至少有一个,故可以排除选项A,B。另外,条件语句中if s[i]==s[i-1]:表示判断相邻的两个字符是否相同,若相同,变量c加1,因此i的初值应该从1开始,否则s[-1]在此无意义。结合以上信息可以排除C。故本题答案是D选项。
9.C
【详解】本题考查的是Python循环语句。阅读程序可知,从索引号1开始依次将列表中的元素与前一个元素比较,如果比前一个小则交换。初始[6,12,9,20,8,11,4],依次比较交换后为:[6,9,12,8,11,4,20],选项C正确。
10.A
【详解】本题考查的是Python表达式。%表示求余,//表示整除,**表示幂乘,*表示乘,2%5=2,2//5=0,(3>4)*2=0,4-3%5**2=1。故选A。
11.C
【详解】本题考查程序分析。程序功能是遍历字符串每个字符,如果是数字字符,执行9减去该字符,转换成字符向后累计拼接到变量c。如果是小写字母字符,则按照26个字母周期向后移动3位,向后累计拼接到变量c。如果是大写字母字符,则向前累计拼接到变量c。故选项C为正确答案。
12.D
【详解】本题考查二分查找。A选项错误,给定的程序段是用于升序序列的二分查找算法,如果要用于降序序列的查找,需要对程序进行修改。B选项错误,如果k的值为2,则意味着循环体执行两次,不一定能找到目标值,因此c的值可能是N。C选项错误,当输入key的值为74时,程序执行后变量i和j的值分别为3和4。D选项正确,由于二分查找算法的复杂度为O(log n),所以k的值介于1和3之间是合理的。故正确答案为选项D。
13.C
【详解】本题考查计算机语言。高级语言更接近自然语言,不特指某种语言,也不依赖于特定的计算机系统,因而更容易掌握和使用,通用性也更好。Java语言、Python语言和C语言都属于高级语言,因为它们都具有高级语言的特点。机器语言是一种低级语言,它直接使用二进制代码表示指令和数据,非常接近计算机硬件的语言。故答案为:C。
14.A
【详解】本题考查的是Python选择和循环语句应用。第一空判断i是不是5的倍数,填i%5==0;求1~x之间所有5的倍效之和,每次i递增1,第二空填i=i+1,故本题选A选项。
15.D
【详解】本题考查流程图分析。
执行过程如下表所示。
a!=0?
s
a
x
初值
0
4
5
是
4
6
5
是
4*5+6
-8
5
是
(4*5+6)*5-8
4
5
是
((4*5+6)*5-8)*5+4
0
5
否
—
—
—
故选择D。
16.C
【详解】本题考查Python函数。在Python中,mean()函数通常用于计算一组数值的平均值。故答案为:C。
17.C
【详解】本题主要考查Python程序的执行与调试。分析程序,a[i]=random. randint(1,5)*2+1,第一个for循环执行完a[0]~a[6]随机生成3、5、7、9、11之间的数,第二个while循环中,前5个元素参与运算,如果相邻元素呈降序,则交换,否则a[i]递增1。选项A中a[0]不可能为2,选项B中a[3]不可能为13,选项D中a[0]不可能为6,故以上程序运行后,列表a的值可能是:[8,12,3,5,3,11],故本题选C选项。
18.A
【详解】本题考查Python程序设计相关内容。程序段中的sort()方法执行的是原地(in place)排序,意味着它会改变列表中元素的位置。默认情况下,sort()方法使用小于运算符对列表元素进行排序。也就是说,更小的元素排在前面,更大的元素排在后面。代码段中,先在s中添加元素16,后对s列表进行升序排序。输出结果为[3,8,15,16,27,42]。故本题答案是A选项。
19.D
【详解】本题考查Python程序设计相关内容。m=28,执行m%3,结果为1,不等于0,输出:28不能被3整除。故选D。
20.False
【详解】本题考查Python运算符与表达式相关内容。3+6==6-->9==6-->False。故本题答案是:False。
21.time.sleep()
【详解】本题考查Python函数的描述。Python中,time.sleep()函数可以用来实现循环的延迟执行。
22.41
【详解】本题考查Python表达式的运算。//是整除运算符,因此125//3=41。
23.字符串型
【详解】本题考查输入函数相关知识。input()函数是输入函数,用于接受一个标准输入数据,函数返回值是“字符串”类型。故本题答案是:字符串型
24.369
【详解】本题考查的是Python循环语句。初始i=1,sum = a = 3,当输入n值为3时。
i<=3成立,res = res+sum=3, sum=sum*10+a=30+3=33,i=i+1=2;
i<=3成立,res = res+sum=36, sum=sum*10+a=330+3=333,i=i+1=3;
i<=3成立,res = res+sum=369, sum=sum*10+a=3330+3=3333,i=i+1=4;
i<=3不成立,故输出res为369。
25.正确
【详解】本题考查Python基础。
程序功能将字符型数字串转换成数值型输出,输出整数123。故正确。
26.正确
【详解】本题考查Python。Python语言是高级编程语言,它不能被计算机直接识别和执行,需要通过解释器或编译器将其翻译成计算机能够理解的机器语言后才能执行。故说法正确。
27.错误
【详解】本题主要考查Python注释语句。在Python程序中,注释语句可以增强程序的可读性,写注释非常有必要。题干说法错误。
28.正确
【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。
29. A 192.168.10.14:8080 GET d[i]>d[i-1] and d[i]>d[i+1] peaks+=1 加速度传感器1故障;智能终端1故障;IOT模块1故障;加速度传感器1和智能终端1连接异常;IOT模块1和Wi-Fi连接异常
【详解】本题考查程序分析。
(1)搭建信息系统前要明确用户对所搭建系统的目标期待,对用户进行调查的这个过程属于需求分析。因此,正确答案为:选项A。
(2)根据Flask框架的路由设置,智能终端提交数据到服务器的URL中,服务器地址(IP)和端口号已经明确为http://192.168.10.14:8080,而路由路径为/input,因此完整的URL为http://192.168.10.14:8080/input?uid=1&stp=950。由于该请求通过URL的查询字符串传递参数,因此数据的传输方式是GET。
(3)在Python代码中,我们需要检测加速度数据中的波峰,并判断是否满足时间间隔和阈值条件以计算有效步数。①处应填入检查当前点是否大于前一个点和后一个点的条件,以确保它是波峰。代码为:d[i] > d[i-1] and d[i] > d[i+1]。②处是在确认当前波峰与前一个波峰的时间间隔满足条件后,增加有效波峰计数。由于已经确认p是前一个波峰的位置,因此直接增加peaks的值即可。代码为:peaks += 1。
(4)智能终端1的网络连接问题:可能由于网络不稳定或中断导致数据未能成功发送到服务器。
智能终端1或加速度传感器故障的硬件故障:例如加速度传感器故障或内存问题,导致无法正确采集或存储数据。
智能终端1和加速度传感器连接异常:两者连接异常无法进行正常的数据传输。
IOT模块1故障:IOT模块可能由于电源不足或不稳定而无法正常工作。模块内部的硬件元件可能损坏,导致功能失效。固件或驱动程序可能出现问题,影响模块的正常运行。
IOT模块1和Wi-Fi连接异常:IOT模块内部的Wi-Fi模块可能损坏或功能失效。IOT模块距离无线路由器过远,或中间有障碍物阻挡,导致信号弱或不稳定。IOT模块的网络配置可能不正确。
服务器处理错误:虽然其他数据正常,但服务器在处理智能终端1的数据时可能发生了特定错误,导致数据丢失。
数据同步问题:如果系统涉及多个数据同步过程(如从智能终端到中间服务器,再到最终数据库),可能存在同步过程中的错误或延迟。
软件bug:智能终端或服务器端的软件可能存在bug,导致在特定情况下数据未能正确处理或存储。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$