内容正文:
《信息技术 必修1 数据与计算》(华东师大版2019)
第二章 算法与程序实现 单元检测练习试卷
出题人: 审题人:教务处
题号装 订 线
班级_____________________姓名______________________学号_____________________
总分
一
二
三
四
一、选择题
1.在Python中,表达式120%8**2-6的运行结果为( )
A.24 B.50 C.26 D.6
2.下列属于全部是计算机编程语言的有( )
①Python ②Pascal ③Java ④C++ ⑤pool
A.①②④⑤ B.②③④⑤ C.①②③④ D.①②④
3.有如下Python程序段:
s=input("输入字符串:")
s1=""; flag=False
for i in range(1, len(s)):
if ord(s[i-1])+1==ord(s[i]) and not flag:
s1=s1+s[i-1]+"-"
flag=True
elif ord(s[i-1])+1!=ord(s[i]):
s1=s1+s[i-1]
flag=False
s1=s1+s[i]
print(s1)
程序运行时,若输入“234ac5mnoq”,则输出结果是( )
A.2-4a-c5m-q B.2-4ac5m-oq C.2-3-4ac5m-n-oq D.2-3-4a-c5m-n-oq
4.运行以下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
5.我国使用的手机号码为11位,其结构为:运营商编号(第1~3位)-地区编号(第4~7位)-用户编号(第8~11位)。某公司日常业务需要快速判断手机号码的运营商归属、地区编号。另外,因周年庆典需要筛选出一批幸运客户。判断用户手机号码运营商归属的Python程序段如下:
'''用DX、YDLT分别存储电信、移动和联通的运营商编号,结构如DX=[133,153,……],代码略'''
num=int(input('请输入手机号码前三位:'))
dic={'电信':DX,'联通':LT,'移动':YD}
for info in dic: #通过变量info遍历dic中的键
if________:
print('该号码的运营商是'+info)
为实现上述功能,划线处应当填入的代码是( )
A.num in dic B.num in info C.num in dic[info] D.num in dic{info}
6.计算机能直接识别和执行的语言是( )
A.汇编语言 B.机器语言 C.高级语言 D.C++语言
7.数组元素a[0]至 a[n-1]依次存放着n个数据,现需要将下标为 x(0≤x≤n-1)元素在逻辑上删除,例如:n为5,数组a为[1,3,5,7,9] ,x为2,删除操作后输出[1,3,7,9]。实现该功能的程序段如下,横线中应填入的正确代码为( )
a=[1,3,5,7,9]
n=len(a)
x=2
for i in range(① ):
②
print(a[:-1])
A.①x,n ②a[i-1]=a[i] B.①n-x ②a[i-1]=a[i] C.①x,n ②a[i]=a[i+1] D.①x-n,-1 ②a[i]=a[i+1]
8.下列关于算法的描述不正确的是( )
A.算法是在有限步骤内解决某一问题所使用的方法
B.算法中的每一个步骤都是可以被执行的
C.评价一个算法的好坏,主要指标是:正确性、可读性、高效性
D.算法就是数学中的算式
9.某奶茶店推出“小幸运月”活动,优惠条件如下:
①当月出生的客户可以打8折;
②身份证中包含数字6或8的可以打7折;
③同时满足条件①②的客户可以打6折;
字符串s存储身份证号,x=True表示满足条件①,y=True表示满足条件②(注:身份证长度为18位,编码含义如下图所示)
下列获取月份的Python表达式为( )
A.s[11:12] B.s[11:13] C.s[10:11] D.s[10:12]
10.有Python程序代码如下:
a=[3,0,8,0]
a.sort()
m1=a[3]*1000+a[2]*100+a[1]*10+a[0]
i=0
while i<=3:
if a[i]>0:
a[0],a[i]=a[i],a[0]
break
i=i+1
m2=a[0]*1000+a[1]*100+a[2]*10+a[3]
print(m1,m2)
运行上面Python程序代码段,输出结果为( )
A.8300 3008 B.8300 38 C.8003 3008 D.8300 3800
11.下列关于Flask框架的描述,正确的是( )
A.Flask框架可直接使用,无须导入
B.Flask框架中客户端提交数据只能用POST方式提交给服务器
C.表单是网站与访问者进行互动的界面,接收输入的数据,并将其发送给Web服务器
D.Flask框架中启用一个App的默认端口号不能更改
12.使用计算机程序设计语言编写的一系列指令代码的集合称为( )
A.算法 B.源程序 C.编译程序 D.可执行文件
13.下列运算结果值最大的是( )
A.len(“123”) B.2**3 C.int(7.8) D.3%7
14.以下Python表达式的值为5的是( )
A.abs(int(-4.91)) B.len("3+2<=5") C.round(4.521) D.ord("5")
15.用算法解决问题的一般过程包括( )
A.抽象与建模、设计算法、描述算法 B.提出问题、描述算法、得到答案
C.设计算法、描述算法、得到答案 D.提出问题、设计算法、描述算法
16.某算法的部分流程图如图所示。执行这部分流程,若输入n的值为100,则输出s的值为( )
A.14 B.15 C.100 D.116
17.在结构化编程中,哪种结构不是基本的控制结构( )
A.顺序结构 B.选择结构 C.循环结构 D.并发结构
18.有如下Python程序段:
import random
q = [0] * 5
head = tail = 0
for i in range(5):
if random.randint(0,1)== 0:
q[tail] = random.randint(1,9)
tail += 1
elif head != tail and q[tail - 1] < q[head]:
q[tail] = q[head]
head += 1
tail += 1
执行该程序段后,q的值不可能是( )
A.[0, 0, 0, 0, 0] B.[5, 4, 3, 2, 1]
C.[5, 8, 3, 0, 0] D.[0, 5, 6, 0, 0]
19.在Python中,设x=1234,能正确得到其百位数字“2”的表达式是( )
A.x%100 B.x%100//10 C.x//10%10 D.x//100%10
20.在Python中,以下叙述正确的是( )
A.运用某函数将字符串“123”转换为整数123,属于将变量转换为常量
B.赋值语句的一般格式为:变量名=表达式
C.变量不需要遵循“先定义,后使用”的原则
D.变量名可以随意取
二、填空题
21.如图所示算法,若a,b为正整数,则输出结果为a与b的乘积,完成横线处流程图 。
22.为Python程序文件python3.py补充语句,实现将a与b的积赋值给c。
python3.py文件内容为:
a = 8
b = 5
c =
print(c)
23.在计算机编程中, 是一种用于处理数据集合的编程范式,它允许程序员以声明方式处理数据。
24.如图所示算法,有一串数从第3项开始,每一项都是前两项的和,如1、1、2、3、5、8…求第20项的值,则在流程图的横线处用a、b、c组成表达式,应填 。
25.计算机能直接执行的程序语言是 。
26.可以用来创建空集合的函数是 。
27.在数字逻辑中,逻辑与运算通常用符号 表示。
28.在Python中,使用 可以一次性迭代字典中的键和值。
29.在Python程序语言中,可以用关系运算符来比较两个数据之间的关系,其中用来表示不等于的关系运算符是 。
30.Python表达式125%100的运算结果是 。
31.在Python中, 函数用于实现循环结构。
32.下面代码段的运行结果为 。
for i in range(2,20,2):
print i
33. 循环是在每次执行循环体之前检查循环条件的循环结构。
34.已知a=5,那么(a>2)*a*2的值是 。
35.若运行时依次输入4、-7、0、87、-34,以下流程图的运行结果是 。
三、判断题
36.对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。( )
37.计算机能直接识别、理解执行的语言是机器语言。( )
38.流程图中,表示条件判断的基本图形是平行四边形。( )
39.“大事化小、小事化了”体现出的问题求解的思想是迭代。( )
40.图中的程序,赋值语句s=s+i被重复执行了4次。( )
41.计算机程序设计的本质是算法与数据结构的设计。( )
42.执行语句x=y= z="pumpkin"后,变量x,y,z的值都是字符串“pumpkin”。( )
43.在Python中,变量命名的时候可以使用特殊字符。( )
44.在Python中abs(x)是绝对值函数。( )
45.在Python中,变量命名的时候可以用数字开头,例如,1a就是一个合法的变量。( )
四、简答题
46.简述Python中的循环结构有哪些,并说明它们的使用场景。
试题第2页,共4页
试题第3页,共4页
学科网(北京)股份有限公司
$$
参考答案:
题号
1
2
3
4
5
6
7
8
9
10
答案
B
C
B
C
C
B
D
D
D
A
题号
11
12
13
14
15
16
17
18
19
20
答案
C
B
B
C
A
A
D
D
D
B
1.B
【详解】本题考查Python表达式运算相关内容。120%8**2-6-->120%64-6-->56-6-->50。故本题答案是B选项。
2.C
【详解】本题主要考查计算机编程语言。Python、Pascal、C++、Java均是计算机编程语言,故本题选C选项。
3.B
【详解】本题考查的是Python的循环及选择语句。阅读程序可知,如果读取的字符跟前面字符差1,同时flag为假,则将前面字符与“-”连接到s1中,并将flag为真,否则如果读取的字符跟前面字符不相差1,则将前面字符连接到s1中,并将flag为真,其它情况不处理。若输入“234ac5mnoq”。
字符2和3差1,同时flag为假,故将2与“-”连接到s1中,并将flag为真,s1为:2-;
字符3和4差1,同时flag为真,不处理;
字符4和a差不为1,故将4连接到s1中,并将flag为假,s1为:2-4;
字符a和c差不为1,故将a连接到s1中,并将flag为假,s1为:2-4a;
字符c和5差不为1,故将c连接到s1中,并将flag为假,s1为:2-4ac;
字符5和m差不为1,故将5连接到s1中,并将flag为假,s1为:2-4ac5;
字符m和n差1,同时flag为假,故将m与“-”连接到s1中,并将flag为假,s1为:2-4ac5m-;
字符n和o差为1,同时flag为真,不处理;
字符o和q差不为1,故将o连接到s1中,并将flag为假,s1为:2-4ac5m-o;
循环结束,将最后一个字符连接到sl,s1为:2-4ac5m-oq,故选B。
4.C
【详解】本题考查程序设计相关内容。分析程序段,其运行过程如图所示:。故本题答案是C选项。
5.C
【详解】本题考查程序设计。
为了实现上述功能,我们需要检查用户输入的手机号码前三位(即num)是否存在于字典dic中某个键对应的列表中。由于dic的键是运营商名称,而对应的值是存储了运营商编号的列表(如DX、LT、YD),我们需要遍历这些列表来查找num。
但是,由于我们直接遍历字典的键(即运营商名称),我们不需要在每次迭代中检查num是否在这些键中(因为键是字符串,不是我们要查找的数字)。相反,我们应该检查num是否在当前迭代到的键对应的列表中。
故正确答案为选项C。
6.B
【详解】本题考查的是计算机语言。计算机语言有:机器语言、汇编语言、高级语言。机器语言能被计算机直接识别和执行。汇编语言、高级语言需要翻译成机器语言才能执行。故选B。
7.D
【详解】本题考查程序分析。需要指定range的参数,确定遍历的下标。range的参数可是使用负数索引,故从x-n到-1。每次遍历后一个数覆盖前一个数,实现删除,故a[i]=a[i+1]。正确答案为选项D。
8.D
【详解】本题考查算法。算法是解决问题的一种方法,是具体步骤的有序集合;而算式通常指数学中的表达式或方程式,描述的是数学运算的符号表示。故答案为:D。
9.D
【详解】本题考查Python基础。
在Python中,字符串切片是左闭右开的,即s[start:end]表示从索引start(包含)到索引end(不包含)的子字符串。因此,为了获取第11位和第12位数字,我们应该使用s[10:12]作为切片表达式,因为索引是从0开始的。故正确答案为:选项D。
10.A
【详解】本题考查Python程序。初始时,列表a的内容为[3,0,8,0],升序排序后为[0,0,3,8],因此变量m1的值为8300。变量m2是列表a中首先按从左到右次序找到第一个非零位置和a[0]交换所得,结果为[3,0,0,8],因此变量m2的值为3008。故答案为:A。
11.C
【详解】本题考查Flask框架。Flask是第三方库,需要导入才能使用;Flask框架中,客户端可以用POST或GET等方式提交数据给服务器;Flask框架启用App的端口号可以更改。故选C。
12.B
【详解】本题考查程序设计概念。使用计算机程序设计语言编写的一系列指令代码的集合称为源程序。编译程序将源程序翻译为机器语言的指令序列,生成可执行文件。算法是解决问题的一系列步骤和规则的描述。故选择B。
13.B
【详解】本题考查的是Python表达式。len()返回字符串的长度,**表示幂乘,int()返回整数,%表示求余。len("123")=3,2**3=8,int(7.8)=7,3%7=3,故选B。
14.C
【详解】本题考查Python表达式相关内容。A选项,abs(int(-4.91))-->abs(-4)-->4。B选项,len("3+2<=5")-->6。C选项,round(4.521)-->5。D选项,ord("5")-->53。故本题答案是C选项。
15.A
【详解】本题考查算法。
用算法解决问题的一般过程,首先需要从实际问题中抽象出关键信息,并建立数学模型(或称为“抽象与建模”),这是解决问题的第一步,它帮助我们将实际问题转化为计算机可处理的形式。接下来是“设计算法”,即根据已经建立的模型,设计出一套解决问题的步骤或规则。这一步是算法设计的核心,需要考虑到算法的效率、正确性、可读性等多个方面。然后是“描述算法”,即将设计好的算法用自然语言、流程图、伪代码或编程语言等方式清晰地描述出来。这一步是为了让其他人(或未来的自己)能够理解并复用该算法。故正确答案为:选项A。
16.A
【详解】本题考查算法流程图相关内容。经题意分析可知,该流程图所求的是对n的所有除1和它本身的因数求和。故100=1*2*2*5*5,所以2+2+5+5=14。
s
n
k
0
100
2
1
2
50
2
4
25
3
3
4
4
5
25
5
6
9
5
7
14
1
故本题答案是A选项。
17.D
【详解】本题主要考查程序控制结构。程序的基本结构有顺序结构、选择结构和循环结构。故选D。
18.D
【详解】本题考查Python程序设计相关内容。这段代码初始化了一个长度为5的列表q,并将所有元素设置为0。然后使用for循环遍历5的范围,并检查在0和1之间随机生成的整数是否等于0。如果等于0,则生成另一个1到9之间的随机整数,并将其分配给列表q的索引tail处的元素。如果不等于0,则检查列表q的索引tail-1处的元素是否小于列表q的索引head处的元素。如果小于索引头处的元素,则将列表q的索引头处的元素分配给列表q的索引尾处的元素,将头部增加1并将尾部增加1。列表q的最终值取决于随机生成的整数,但是其第一项一定会执行一次进队,所以D选项的第一项的值为0是不可能的。故本题答案是D选项。
19.D
【详解】本题考查Python运算符与表达式相关内容。由于x是四位数,因此取得百位数,可以先获取“12”,即x//100,然后再在这个基础上通过取余去掉前面的“1”即可,所以x//100%10=2。故本题答案是D选项。
20.B
【详解】本题考查Python基础。
运用某函数将字符串123转换为整数123,属于将变量转换为常量:这个说法不正确。将字符串转换为整数是数据类型的转换,而不是将变量转换为常量。
变量不需要遵循先定义,后使用的原则:这个说法不正确。在 Python 中,变量必须在使用之前定义,否则会引发 NameError。
变量名可以随意取:这个说法不正确。虽然变量名可以有一定的灵活性,但它们必须遵循命名规则(如不能以数字开头,不能使用Python的保留字等)。
故正确答案为:选项B。
21.s=s+b
【详解】本题考查算法分析。
输出a与b的乘积,可以转换成加法运算,循环a次,累加b到变量s。s的结果就是a与b的乘积。故正确答案为:s=s+b。
22.a*b
【详解】本题考查的是Python表达式。*表示乘,实现将a与b的积赋值给c,即c =a*b。
23.函数式编程
【详解】本题考查计算机编程。函数式编程是一种编程范式,在处理数据集合时,强调使用函数进行计算和操作,避免可变状态和副作用,让程序员以声明式的方式描述对数据的处理逻辑,而不是通过一系列的指令步骤来实现。它注重函数的组合和纯函数的使用,使代码更具可读性、可维护性和可测试性。故答案为:函数式编程。
24.c=a+b
【详解】本题考查算法分析。
流程图中表示前两项分别是a、b,那么第三项是前两项的和,即c=a+b。故正确答案为:c=a+b。
25.机器语言
【详解】本题考查程序设计语言的描述。计算机能直接执行的程序语言是机器语言,即二进制0和1。
26.set()
【详解】本题考查Python函数相关内容。Python提供了一个内置函数set(),它可以用于创建一个空集合,只需要调用set()函数,不传入任何参数即可。故本题答案是:set()。
27.∧
【详解】本题考查运算符。逻辑与运算通常用符号 ∧ 表示。它是一种二元逻辑运算,当两个操作数都为真时,结果才为真。故答案为:∧。
28.items()
【详解】本题考查Python基础。
在Python中,你可以使用items()方法一次性迭代字典中的键和值。items()方法返回一个包含字典中所有(键,值)对的视图对象。然后,你可以使用for循环遍历这个视图对象,从而在每次迭代中获取到一个键和对应的值。故正确答案为:items()。
29.!=
【详解】本题考查Python关系运算符相关内容。用来表示不等于的符号是“!=”,“= =”表示等于,“>=”表示大于等于,“<=”表示小于等于,故本题答案是:!=。
30.25
【详解】本题考查Python运算符与表达式。在Python中,%代表求模运算,因此表达式125%100的运算结果是25。
31.for
【详解】本题考查Python循环结构。在Python中,函数用于封装代码块以实现特定功能,而循环结构通常是通过for循环或while循环来实现的。
32.2,4,6,8,10,12,14,16,18
【详解】本题考查Python程序设计相关内容。range函数用于生成一个整数序列,其语法是range(start, stop[, step])。其中start是序列的起始值,stop是序列的结束值(不包括),step是步长,默认为1,即序列中相邻两个数的差。分析程序段,i初始值为2,步长为2,20是序列的结束值(不包括),则输出结果为:2,4,6,8,10,12,14,16,18。
33.while
【详解】本题考查程序结构。while循环在执行循环体之前先检查循环条件,如果条件满足则执行循环体。故答案为:while。
34.10
【详解】本题考查Python表达式的运算。在Python中,布尔值可以被转化为数值,True是1,False是0。已知a=5,a>2值为True,即为1,因此(a>2)*a*2的值是10。
35.50
【详解】本题考查流程图。程序运行过程如下。因此,最终的运行结果为50。故答案为:50。
sum
i
mark[i]
0
1
4
4
2
-7
-3
3
0
-3
4
87
84
5
-34
50
6
36.正确
【详解】本题考查Python基础。
在Python中,for循环和while循环都可以带有else子句。这个else子句的作用是在循环正常完成(即没有因为break语句而提前退出)后执行。如果循环因为循环条件不再满足(对于while循环)或者迭代对象被完全遍历(对于for循环)而自然结束,那么就会执行else子句中的代码。故正确。
37.正确
【详解】本题考查计算机语言。器语言是由二进制代码(0和1)组成的,是计算机能够直接识别、理解和执行的语言。其他高级编程语言需要通过编译或解释转换为机器语言后,计算机才能执行。故说法正确。
38.错误
【详解】本题考查流程图。在流程图中,表示条件判断的基本图形是菱形,平行四边形一般不用于表示条件判断。故说法错误。
39.错误
【详解】本题主要考查分治算法思想。分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,求出子问题的解,就可得到原问题解。大事化小、小事化了, 体现出的问题求解的思想是分治法,故表述错误。
40.正确
【详解】本题考查Python的range函数相关内容。range(start, stop [,step]):start指的是计数起始值,默认是0;stop 指的是计数结束值,但不包括 stop ;step是步长,默认为1,不可以为0。range()函数生成一段左闭右开的整数范围。range(3,10,2)生成的列表为[3,5,7,9],即赋值语句s=s+i被重复执行了4次。故本题答案是:正确。
41.正确
【详解】本题考查程序设计。瑞士计算机科学家沃斯提出了“算法+数据结构=程序”,形象地阐明了计算机程序设计的本质是算法与数据结构的设计。故说法正确。
42.正确
【详解】本题考查Python程序设计相关内容。“=”是Python中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量。Python可以进行连续赋值,可以使用连续赋值方式将多个变量设置为相同的值。故本题答案是:正确。
43.错误
【详解】本题考查Python变量相关内容。在Python中变量名是由字母、数字、下划线组成,只能以字母或下划线开头,不能包含特殊符号,不能是关键字。故本题答案是:错误。
44.正确
【详解】本题主要考查Python标准函数。在Python中,返回x的绝对值的函数是abs(x)。故表述正确。
45.错误
【详解】本题考查Python变量相关内容。在Python中变量名是由字母、数字、下划线组成,只能以字母或下划线开头,不能包含特殊符号,不能是关键字。故本题答案是:错误。
46.Python中的循环结构主要有for循环和while循环。for循环通常用于遍历序列或迭代某个范围,while循环则根据条件持续执行,直到条件不再满足。
【详解】本题考查Python循环结构。Python中的循环结构主要有for循环和while循环。for循环的特点是结构清晰,易于理解和使用。它通常用于明确知道循环次数或者需要遍历一个可迭代对象(如列表、元组、字符串等)的情况。例如,计算列表中所有元素的和,或者打印字符串中的每个字符。while循环的优势在于只要条件为真就会一直执行,更适用于无法提前确定循环次数,而取决于某个条件是否满足的情况。比如,用户不断输入数据,直到输入特定的结束标志才停止处理。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$境考填诗标记
信息技木答孤卡
静等过可
名
能周:
■■■
士配脑冬通性用口桌米型色笔填写
■
1.不得春开什榨内相写,除律
。保转丰周的精,缓折叠,不要被
回
■
回
回
回
■
博箱峰■研议峰回同口刀)
■■▣
▣▣
■▣
■■■■
这样题40分
■▣口四四■可衣▣口四四9可卫四可a▣■可■四■可7▣可四可
1■▣四■▣6▣▣四D6可▣圆口M0四■▣M可▣圈■四
3画■四■四下■■D四■四H可可可司仿J■B四四传口口围■四
4■▣■四■四■口8口口▣四?■▣口通口6口四g■可特口口■则口D
空题日0分制
3
3
四,算答厘0冷
运.10什)
有在各意日容超内域内荐.道由的摩的梦家天第绵)气(人
语在各量植首萝道以城为行栋:里他止门养实无效第天(其2期
A