内容正文:
第2章 算法与程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1
一、选择题
1.由于计算机运算速度快,我们可以一一列举x、y和z的所有可能值的算法叫( )
A.枚举法 B.二分法 C.递归法 D.迭代法
2.在Python中,执行pi=3.14语句后,变量pi的数据类型是( )
A.int(整型) B.float(浮点型)
C.str(字符串) D.bool(布尔型)
3.以下关于元组的描述,错误的描述是( )
A.元组的元素可以是整数、字符串、列表等Python支持的任何类型
B.与列表一样,元组也有append()、insert()函数
C.元组是不可变序列
D.元组的访问和处理速度比列表快
4.表达式len(range(1,10))的值是( )
A.9 B.b C.1 D.2
5.判断整数x是否奇偶的部分Python程序段如下:
if x % 2 == 0:
res = ″偶数″
else:
res = ″奇数″
下列选项中与上述语句块功能相同的是( )
A.
if x % 2 == 0:
res = ″偶数″
res = ″奇数″
B.
if x % 2 == 0:
res = ″偶数″
else x % 2 ! = 0:
res = ″奇数″
C.
res = ″奇数″
if x % 2 == 0:
res = ″偶数″
D.
if x % 2 == 0:
res = ″奇数″
if x % 2 ! = 0:
res = ″偶数″
A.A B.B C.C D.D
6.已升序排序的列表a有n个整型元素,现要删除a中重复出现的元素,使每个元素只出现一次,并输出去重后的结果。实现该功能的程序段如下:
a = [1,2,2,2,5,5,5,8]
p,q = len(a)-1, len(a)-2
while (1)
if a[p] != a[q]:
(2)
p -= 1
q -= 1
print( (3) ) 上述程序段中方框处可选代码为:
①q >= 0 ② p >= 0 ③ a[p-1] = a[q] ④ a[p] = a[q] ⑤ a[p:] ⑥a[p+1:]
则(1)(2)(3) 处代码依次为( )
A.①③⑥ B.①③⑤ C.②③⑥ D.②④⑤
7.某客户购买的新能源汽车价格为t万元,可享受当地政府购车补贴,补贴标准如下:价格20万元(不含)以下,补贴0.25万元;价格20万元(含)至30万元(不含),补贴0.5万元;价格30万元(含)以上,补贴1万元。在下列选项中,计算实际购车价格p的程序代码正确的是( )
A.
p=t-0.25
if t>=20:
p=t-0.5
elif t>=30:
p=t-1
B.
p=t-1
if t<20:
p=t-0.25
elif t<30:
p=t-0.5
C.
p=t-0.25
if t>=30:
p=t-1
if t>=20:
p=t-0.5
D.
p=t-1
if t>=20:
p=t-0.5
else:
p=t-0.25
A.A B.B C.C D.D
8.某超市部分商品信息用Python存储在列表goods中,goods={"蔬菜":["青菜","土豆","萝卜"],"水产":["鲫鱼","明虾","青蟹"],"水果":["西瓜","苹果","桔子"]},若要将“明虾”改为“河虾”,则正确的语句是( )
A.goods[1]["明虾"]="河虾" B.goods[1][1]="河虾"
C.goods["水产"]["明虾"]="河虾" D.goods["水产"][1]="河虾"
9.以下选项中不符合 Python 语言变量命名规则的是( )
A.am B.3_1 C._AI D.str1
10.在Python语言中,下列赋值语句中正确的是( )
A.a+4=c B.a=2+c C.a+3=c-5 D.a/2=c*3
11.阅读流程图后,找出能取得任意三位自然数的十位数上的表达式的正确选项( )
A.a=x // 100 B.b=x // 10 % 10 C.c=x % 10 D.s=int(input("输入1个三位数"))
12.下列有关算法的描述正确的是( )
A.算法的时间复杂度是指执行算法程序所耗费时间的多少
B.算法必须要有输出
C.算法必须要有输入,否则无法执行
D.一种算法只能用一种计算机程序设计语言实现
13.下列选项中,( )的布尔值不是False。
A.None B.0 C.( ) D.1
14.运行如图所示的Python程序,输出结果是( )
A.3 12 B.3 13 C.4 12 D.4 13
15.有如下Python程序段:
import pandas as pd
s=pd.Series([62,81,57],index=['NO1','NO2','NO3'])
s[2]=73
print(s)
该程序段运行后输出的结果是( )
A. B. C. D.
16.Python编程环境中,17//2 的运行结果是 ( )
A.8.5 B.8 C.19 D.15
二、填空题
17.已知 x = [3, 5, 7] ,那么执行语句 x[1:] = [2] 之后,x 的值为 。
18.在 IDLE编辑器中执行下列程序语句,输出结果为 。
a=356
b=365
a=b
print(a)
19.数据结构是指存在( )的( )的集合,主要有( )( )( )( )四种类型。
20.当a=5,b=2时,表达式a= = b的值为 。
21.测试程序的主要目的是 和 。
22.在穷举法中, 法是一种有效的减少搜索空间的方法。
三、判断题
23.在Python语言中,表达式(2>4)and(8>9)的结果是True。( )
24.执行程序时,程序中的每一条语句至少要运行一次。( )
25.已知列表x = [1, 2],执行语句y = x后,表达式id(x) == id(y)的值为True。( )
26.算术运算符中*、/的运算优先级高于//和%。( )
27.程序设计语言与自然语言完全相同。( )
四、操作题
28.分析完善程序:考拉兹猜想:考拉兹猜想又称为3n+1猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1;如果它是偶数,则对它除以2;……;如此循环,最终都能够得到1;如n=6,根据上述规则,得出6→3→10→5→16→8→4→2→1(共有8个步骤)。以下是验证考拉兹猜想的主要python程序片段,请你补全代码:
n=int(input("n=")) #输入正整数n
cnt=0 #统计步骤数
while n>1:
cnt= cnt+1 #变换次数 cnt 累加
if n%2==0:
n=①
else:
n=②
print(cnt)
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查枚举法。枚举法是对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案的方法。一一列举x、y和z的所有可能值的算法叫枚举法。故选:A。
2.B
【详解】本题主要考查Python数据类型。浮点型在 Python 中用 float表示, 可以理解为浮点数是用来描述小数的。执行pi=3.14语句后,变量pi的数据类型是float(浮点型),故本题选B选项。
3.B
【详解】本题考查Python基础。
与列表一样,元组也有append()、insert()函数:这是错误的。元组是不可变的,这意味着一旦创建,就不能更改其内容(即不能添加、删除或更改其中的元素)。因此,元组没有提供如append()、insert()等用于修改序列内容的函数。故正确答案为:选项B。
4.A
【详解】本题主要考查Python表达式的运算。len()函数返回字符串、列表、字典、元组等长度。range()函数:返回一个递增或递减的数字列表,列表的元素由三个参数决定;range(start,stop,step),故range(1,10)返回[1,2,3,4,5,6,7,8,9],故表达式len(range(1,10))的值是9,故本题选A选项。
5.C
【详解】本题考查的是Python选择语句。选项A在x为偶数y="奇数",与题干给的程序不符;选项B语句格式不对,else后不用写条件表达式;选项Dx为偶数y="奇数",奇数y="偶数",与题干给的程序不符。故本题应选C。
6.B
【详解】本题考查Python程序设计相关内容。分析程序段,其作用是从列表尾部往前遍历,若出现重复元素,则将重复元素之前的一个元素复制到p所指位置之前的位置(p始终指向不重复序列的起始位置),以a = [1,2,2,2,5,5,5,8]为例,从a列表尾部往前遍历,5为重复元素,且重复出现多次,则将最前面5之前的元素2(a[3])复制到p所指位置前的a[5]处,覆盖原数值5,p再指向a[5]处;再往前遍历,2为重复元素,且重复出现多次,则将最前面2之前的元素1复制到p所指位置前的a[4]处,覆盖原数值5;再往前遍历,已无重复元素,操作结束。分别将四个选项代入程序下划线处,只有B选项可以实现题目要求。故本题答案为B选项。
7.B
【详解】本题考查的是Python多分支语句。选项A中,如果价格30万元(含)以上,满足if语句,不会执行elif语句,补贴0.5万元,不符合题意;选项C中,如果价格30万元(含)以上,也满足第二个if语句,补贴0.5万元,不符合题意;选项D中,如果价格30万元(含)以上,满足if语句,补贴0.5万元,不符合题意。故选B。
8.D
【详解】本题考查Python字典和列表数据类型的应用。字典是一种通过名字或者关键字引用的得数据结构,通过字典中的【键】来访问字典中的值,访问的格式如下:字典名[键]。列表的索引从0开始。goods={"蔬菜":["青菜","土豆","萝卜"],"水产":["鲫鱼","明虾","青蟹"],"水果":["西瓜","苹果","桔子"]},goods["水产"]=["鲫鱼","明虾","青蟹"],若要将“明虾”改为“河虾”,则正确的语句是goods["水产"][1]="河虾"。故选D。
9.B
【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。因此不符合 Python 语言变量命名规则的是3_1,故本题选B选项。
10.B
【详解】本题主要考查Python赋值语句。赋值语句是将等号右边的表达式赋给等号左边的变量,故正确的赋值语句是a=2+c,故本题选B选项。
11.B
【详解】本题考查Python表达式。逐一分析选项,A选项x//100得到的是百位上的数字;B选项x//10先得到去掉个位数后的数,再对结果取模10就得到了十位数,该选项正确;C选项x%10得到的是个位数;D选项只是输入一个三位数,并不是取得十位数的表达式。故答案为:B。
12.B
【详解】本题考查算法。
选项A,错误。算法的时间复杂度不是指执行算法程序所耗费时间的多少,而是指执行算法所需要的计算工作量,它通常用大O记法表示,即忽略低阶项和常数项,只关注算法执行时间与数据规模之间的关系。
选项C,错误。算法不一定必须要有输入。有些算法是为了解决特定问题而设计的,它们可能不需要外部输入,而是直接执行一系列操作并输出结果。例如,计算阶乘的算法,当阶数固定时,就不需要外部输入。
选项D,错误。一种算法可以用多种计算机程序设计语言实现。算法是独立于具体编程语言的,它描述的是解决问题的步骤和方法。不同的编程语言只是实现这些步骤和方法的工具。
故正确答案为:选项B。
13.D
【详解】本题考查的是Python数据类型。在Python中,布尔值为False有None、所有的值为零的数、空的字符串、空的字典、空的列表、空的元组。故本题应选D。
14.B
【详解】本题考查Python程序。外层循环执行3次,每次外层循环中,内层循环执行4次。外层循环中变量m每次加1,共加3次,最终m的值为3。内层循环中变量N每次加1,共加3×4=12次,初始值为1,最终N的值为1+12=13。所以输出结果是3 13。故答案为:B。
15.C
【详解】本题考查Python程序段。这个Python程序段首先创建了一个Pandas Series,其中包含了三个数据点,并分别用'NO1'、'NO2'和'NO3'作为索引。然后,程序修改了索引为2的位置(即第三个位置)的值,将其从57修改为73。最后,程序打印出修改后的Series。因此,运行后的输出结果是:NO1 62 NO2 81 NO3 73。故答案为C选项。
16.B
【详解】本题主要考查Python表达式的运算。“//”是整除运算符,故17//2=8,故本题选B选项。
17.[3,2]
【详解】本题主要考查Python列表。x = [3, 5, 7] ,语句 x[1:] = [2] 是将列表x索引1及之后的值赋值为2,即5、7赋值替换为2,故执行语句 x[1:] = [2] 之后,x 的值为[3,2]。
18.365
【详解】本题考查Python语句执行。a=356,b=365,a=b=365,因此输出a的值是365。
19. 特定关系 数据元素 集合结构 线性结构 树结构 图结构(网状结构)
【详解】本题考查的是数据结构。数据结构是指存在特定关系的数据元素的集合,主要有集合结构、线性结构、树结构、图结构(网状结构)。
20.False
【详解】本题考查的是Python表达式。==表示相等,当a=5,b=2时,表达式a= = b的值为False。
21. 发现错误 验证正确性
【详解】本题考查测试程序。测试程序主要是为了发现程序中存在的错误,包括逻辑错误、语法错误、运行时错误等各种可能的问题。同时,通过将实际运行结果与预期结果进行对比,来验证程序的正确性,确保程序能够按照设计的要求准确地执行功能,输出正确的结果。故答案为:发现错误、验证正确性。
22.剪枝
【详解】本题考查算法相关内容。剪枝法是一种优化搜索算法的技术,旨在减少搜索空间,提高搜索效率。它通过在搜索过程中剪掉那些不必要继续搜索的分支,从而减少了搜索的时间和空间复杂度。剪枝法的核心在于通过合理的判断条件来剪掉不必要的搜索分支,以减少搜索时间和空间消耗。这种技术适用于多种算法场景,如回溯法、深度优先搜索和博弈树等问题中。故本题答案是:剪枝。
23.错误
【详解】本题考查Python表达式的运算。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。因此表达式(2>4)and(8>9)的结果是False。故表述错误。
24.错误
【详解】本题考查的是程序相关知识。在选择语句中,有些语句可能没有运行。故题干中说法错误。
25.正确
【详解】本题考查Python基础。
在Python中,当你执行 y = x 这样的语句时,你实际上并没有创建 x 的一个新副本,而是让变量 y 指向了 x 指向的同一个对象。这意味着 x 和 y 都引用了内存中的同一个列表对象,即内存地址相等,故表达式id(x) == id(y)的值为True。故正确。
26.错误
【详解】本题考查的是Python算术符。在Python中算术运算符*、/、//和%运算优先级一样,故题干中的说法是错误的。
27.错误
【详解】本题考查程序设计语言的描述。程序设计语言是用于书写计算机程序的语言,语言的基础是一组记号和一组规则,根据规则由记号构成的记号串的总体就是语言。程序设计语言的发展经历了机器语言、汇编语言、高级语言等过程;高级语言是一种接近于自然语言的编程语言,但不是完全相同。故表述错误。
28. n/2 3*n+1
【详解】本题考查Python程序设计。
①如果它是偶数,则对它除以2;如果它是奇数,则对它乘3再加1。if语句判断,如果n取余2为0,则为偶数需执行对n除以2。故正确答案为:n/2。②else分支表示如果为奇数,则乘3再加1。故正确答案为:3*n+1。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$