第2章 算法与程序实现 2024—2025学年高中信息技术人教/中图版(2019)必修1
|
12页
|
49人阅读
|
0人下载
内容正文:
第2章 算法与程序实现
一、选择题
1.以下不适合使用解析算法求解的问题是( )
A.求正整数n所有约数的和 B.已知圆的半径,求圆面积
C.已知一元二次方程的三个系数,求方程的解 D.已知初速度V0,加速度a,时间t,求末速度Vt
2.以下哪个选项正确描述了算法的可行性( )
A.算法可以在无限时间内完成 B.算法可以在有限时间内完成
C.算法可以在任何计算机上执行 D.算法可以解决所有问题
3.以下哪个算法不是基于贪心策略?( )
A.Kruskal算法 B.Prim算法 C.Dijkstra算法 D.Floyd算法
4.在Python中,continue关键字的作用是( )
A.终止当前循环体 B.跳过当前循环的剩余部分,继续执行下一次循环
C.重复执行当前循环 D.无作用
5.有如下Python程序段:
a=[3,6,12,5,9,20,17,8]
p=0
for i in range (1,len(a)):
if a[i]>a[p]:
p=i
a.pop(p)
则执行程序段后,数组a中的元素为( )
A.3,6,12,5,9,20,17,8 B.3,6,12,5,9,17,8 C.3,6,12,5,9,20,17 D.6,12,5,9,20,17,8
6.数据在网络中传输必须遵守一定的规则和约定,以下选项哪个是超文本传输协议,它的英文缩写是( )
A.HTTP B.FTP C.BBS D.WWW
7.自定义函数delStr(s,m)的功能是删除字符串s中第m位上的字符。程序段如下所示:
def delStr(s,m):
n=len(s)
if m<1 or m >n:
result="wrong input"
elif m==1:
result=s[1:]
elif m < n:
elif m==n:
result=s[:-1]
return result
则程序中划线处应填入的语句是( )
A.result=s[1:m-1]+s[m:] B.result=s[:m-1]+s[m:] C.result=s[:m-1]+s[m+1:] D.result=s[:m]+s[m+1:]
8.以下关于算法特征的表述中,正确的是( )
A.输入:算法在执行时,有可能需要从外界获取数据,因此一个算法中必须有输入操作
B.输出:算法的目的是解决问题,问题的结果应以一定的方式输出,因此算法必须有输出
C.算法可以用无限个步骤来实现
D.设计的算法可以和文字一样存在不确定的结果
9.在Python语言中,已知a=5,b=6,下列运行的结果为False的是( )
A.a<b+2 B.a!=b C.a+2>=b D.a>=b
10.有如下Python程序段:
a=[1,0,2,4]
s=k=0
for i in range(4):
a[i]+=k
s+=a[i]
k=s
print(s)
执行该程序后,输出s的值为( )
A.13 B.14 C.15 D.16
11.有Python程序代码如下:
n=int(input())
s1=0
for i in range(1,n+1,2):
s1+=i
s2=
print(s1,s2)
补全上面代码段并运行,下列能确保变量s1与变量s2输出值相等的是( )
A.(1+n)*(n//2)//2 B.(1+(n-n%2))*(n//2)//2
C.(1+(n-n%2))*((n+1)//2)//2 D.(1+(n-(n+1)%2))*((n+1)//2)//2
12.已知a、b为整型变量,下列表达式的值一定为True的是( )
A.a!=b B.a>=b and b>=a C.a>=b or b>=a D.a<=b
13.下列Python程序的功能是在有序链表中,插入一个新的数,使其仍然有序。
a=[[89,-1],[43, 4],[1,3],[21,5],[49,0],[27,1]]
x=int(input('请输入要插入的数: '))
head=2; p=head
while p!=-1 and a[p] [0]<x:
q=p
p=a[p][1]
if p==head:
a.append([x, head] )
head=len(a)-1
else:
# 输出链表a中所有数据,代码略
方框中的代码由以下三部分组成:①a.append([x,-1]) ②a[q] [1]=len(a)-1 ③a[len(a)-1][1]=p
下列选项中,代码顺序正确的是( )
A.③②① B.③①② C.①③② D.②①③
14.智能停车场收费系统,远距离红外读卡器的有效读卡距离设置为10~20米,时速40公里及以下的车辆可以不停车读卡,用逻辑型变量x标记是否读卡成功,用dis表示车辆距离读卡器的距离,用v表示此时车辆的车速,则下列分支语句不正确的是( )
A.
if v>40 and dis<10 or dis>20:
x=True
else:
x=False
B.
x=False
if 10<=dis<=20 and v<=40:
x=True
C.
if dis<10 or dis>20:
x=False
elif v<=40:
x=True
else:
x=False
D.
if 10<=dis<=20:
if v<=40:
x=True
else:
x=False
else:
x=False
A.A B.B C.C D.D
15.下列有关算法的说法,不正确的是( )
A.输出所有的质数不符合算法的有穷性特征
B.通过伪代码来描述算法可以被计算机理解并执行
C.在一个多分支结构中,必定有一个分支被执行,其他的分支则被忽略
D.用算法解决问题的过程一般需要经过抽象与建模、设计算法、描述算法
16.判断一个正整数是否同时为3和7的倍数,用Python语句表示正确的是( )
A.if i%3==0 and i%7==0: B.if i%3==0 or i%7==0:
C.if i//3==0 and i//7==0: D.if i//3==0 or i//7==0:
17.有如下Python程序段:
dict={1:"p", 2:"y", 3:"t", 4:"h", 5:"o", 6:"n"}
num=[2,6,5,3]
result=""
for i in num:
result=dict[i]+result
执行该程序段后,result的值为( )
A."ynot" B."noty" C."nyto" D."tony"
18.某市规定,用电峰时段为8:00到22:00;谷时段为22:00到次日的8:00。第一档用户峰时段电价是0.568元/千瓦时,谷时段电价是0.288元/千瓦时。用Python代码判断峰谷电电价,变量time和price分别表示时段和电价,正确的是( )
A.
if time>=8 and time<=22:
price=0.568
else:
price=0.288
B.
if time<8 and time>22:
price=0.288
else:
price=0.568
C.
if time>=8 or time<=22:
price=0.568
else:
price=0.288
D.
if 8<=time<=22:
price=0.288
else:
price=0.56
A.A B.B C.C D.D
二、填空题
19.Python表达式abs(int(-4.9))%math.sqrt(4)<2的运算结果是 。
20.在Python中,使用 关键字可以定义一个函数。
21.在Python中,使用 可以进行字典推导。
22.在编程中, 是指程序在运行时能够根据条件选择不同的执行路径。
23.在《数据与计算》中,算法是解决问题的一系列有序步骤,它必须具备有限性、确定性、 、有输入和输出以及可行性等特征,以确保算法能够在有限的步骤内得到正确的结果。
三、判断题
24.使用内置函数open()且以“w”模式打开的文件,文件指针默认指向文件尾。( )
25.Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。( )
26.在程序语言中都规定了运算符的优先级,通常是算术运算符高于关系运算符,关系运算符高于逻辑运算符,在一个表达式中无法通过其他手段改变运算顺序。( )
27.已知Python列表a=['天宫','天和','问天','巡天','天舟'],那么a[2]的值为“问天”。( )
28.实现控制循环的跳转需要用到break和continue两个关键字。其中,break是中断循环,continue是跳出本次循环的执行。( )
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查解析算法。解析算法通常用于解决具有明确公式或步骤的问题。B、C、D三项均可以通过相应的数学公式或算法直接求解:B项通过圆面积公式A=πr²求解,C项通过求解一元二次方程的求根公式求解,D项通过运动学公式Vt=V0+at求解。而A项求正整数n所有约数的和,涉及到遍历和因子分解,不适合直接使用解析算法求解。故答案为:A。
2.B
【详解】本题考查算法相关内容。一个算法应该具有五个重要的特征:(1)有穷性: 一个算法必须保证执行有限步之后结束;(2)确切性:算法的每一步骤必须有确切的定义;(3)输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定义了初始条件;(4)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;(5)可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。故本题答案是B选项。
3.D
【详解】本题考查算法的描述。Kruskal算法、Prim算法和Dijkstra算法都是基于贪心策略的算法。Kruskal算法用于求解最小生成树,Prim算法也是用于求解最小生成树,而Dijkstra算法用于求解单源最短路径问题。Floyd算法则是用于求解所有顶点对之间的最短路径问题,它采用的是动态规划的策略,而不是贪心策略。故选D。
4.B
【详解】本题考查Python循环结构的描述。在Python中,continue关键字的作用是跳过当前循环的剩余部分,直接进入下一次循环的执行。它不会终止整个循环,只是跳过当前的迭代。选项A描述的是break关键字的作用,选项C和D都不正确。故选B。
5.B
【详解】本题考查Python程序。根据“if a[i]>a[p]: p=i”语句可知,此段程序是在数组a中找到最大值,并将其下标赋给p;而a.pop(p)的作用是去掉指定位置p上的元素,数组a最终的元素为“3,6,12,5,9,17,8”。故答案为:B。
6.A
【详解】本题考查计算机网络。
HTTP(HyperText Transfer Protocol):超文本传输协议,是因特网上应用最为广泛的一种网络传输协议。它定义了客户端与服务器之间请求和应答的标准,用于从网络传输超文本到本地浏览器的传输协议。故正确答案为:选项A。
7.B
【详解】本题考查Python基础。
自定义函数delStr(s,m)的功能是删除字符串s中第m位上的字符,分4种情况进行讨论,划线处为删除字符s中间m位置上的字符的情况,需注意的是m是字符串的实际位置(第1个字符的位置为1),对应字符串中的索引位置为m-1,因此答案为B。
8.B
【详解】本题考查算法。
输入:算法在执行时,有可能需要从外界获取数据,因此一个算法中必须有输入操作。在某些情况下,算法可以不需要显式的外部输入。故选项A错误。
算法可以用无限个步骤来实现:这个说法是错误的。算法的一个重要特性是有限性,即算法必须在有限步骤内完成。如果算法需要无限个步骤来执行,那么它就不是一个有效的算法。
设计的算法可以和文字一样存在不确定的结果:这个说法同样是错误的。算法是确定性的,给定相同的输入,算法应总是产生相同的输出。与文字或自然语言不同,算法不包含歧义或不确定性的表达。
故正确答案为:选项B。
9.D
【详解】本题考查Python运算符与表达式相关内容。A选项,a<b+2-->5<8-->True。B选项,a!=b-->5!=6-->True。C选项,a+2>=b-->7>=6-->True。D选项,a>=b-->5>=6-->False。故本题答案是D选项。
10.D
【详解】本题考查Python程序。首先定义列表a=[1,0,2,4],并初始化s=k=0。在循环中,第一次循环,i=0时,a[0]+=k,此时k=0,a[0]变为1,s+=a[0],s变为1,然后k=s,k变为1。第二次循环,i=1时,a[1]+=k,此时k=1,a[1]变为1,s+=a[1],s变为2,k=s,k变为2。第三次循环,i=2时,a[2]+=k,此时k=2,a[2]变为4,s+=a[2],s变为6,k=s,k变为6。第四次循环,i=3时,a[3]+=k,此时k=6,a[3]变为10,s+=a[3],s变为16。最终输出s的值为16。故答案为:D。
11.D
【详解】
本题考查Python程序。可以分奇偶情况进行探讨:①n为奇数,s1=1+2+3+…+n=;②n为偶数,s1=1+2+3+…+n-1=。两者表达式等价于(1+(n-(n+1)%2))*((n+1)//2)//2,当n为奇数时,(n-(n+1)%2)得到的是n-1;当n为偶数时,(n-(n+1)%2)得到的是n,然后乘以((n+1)//2)//2,可以得到从1到n的所有奇数和,与s1相等。故答案为:D。
12.C
【详解】本题考查Python基础。
a和b的关系为有三种可能即大于、小于或等于,选项C表达了这三种关系,故正确答案为:选项C。
13.C
【详解】本题考查Python程序。为了在有序链表中插入一个新的数,使其仍然有序,需要按照正确的顺序修改链表的指针。首先,应将新的节点添加到链表的末尾,即执行①a.append([x,-1]);然后,将新节点的指针指向插入位置的下一个节点,即执行③a[len(a)-1][1]=p;最后,将前一个节点的指针指向新节点,即执行②a[q][1]=len(a)-1。故答案为:C。
14.A
【详解】本题考查分支语句。A选项中,当v>40且dis<10或dis>20时,x被设置为True,这与题目要求不符,应该是当车速v≤40且读卡距离在10到20米之间时读卡成功,即x=True,所以A选项不正确。故答案为:A。
15.B
【详解】本题考查算法。伪代码是一种用来描述算法的工具,但它不能直接被计算机理解并执行,需要转化为计算机语言才能执行。故答案为:B。
16.A
【详解】本题考查Python表达式。
同时为3和7的倍数,故能同时被3和7整除说明余数为0,逻辑运算符为and。故排除选项C、B、D。故正确答案为:选项A。
17.D
【详解】本题考查Python程序。程序段的目的是通过遍历列表num,将字典dict中对应的字符按特定顺序拼接到字符串result中。遍历过程中,字符是加在result的前面,因此字符的顺序是反向的。具体操作如下:初始result为空字符串。遍历num列表:第一次:result=dict[2]+""="y";第二次:result=dict[6]+"y"="ny";第三次:result=dict[5]+"ny"="ony";第四次:result=dict[3]+"ony"="tony"。执行该程序段后,result的值为"tony"。故答案为:D。
18.A
【详解】本题考查Python程序。根据题目描述,峰时段为8:00到22:00,电价为0.568元/千瓦时;谷时段为22:00到次日8:00,电价为0.288元/千瓦时。因此,正确的逻辑判断应该能够准确区分这两个时段。从给出的选项中,选项A使用了逻辑与操作符and来判断是否在峰时段(8到22点),如果是,则电价为0.568;否则,电价为0.288。这符合题目描述的要求。故答案为:A。
19.True
【详解】本题考查Python基础。
int(-4.9):这部分将浮点数 -4.9 转换为整数。结果为-4。
abs(-4):计算 -4 的绝对值,结果为 4。
math.sqrt(4):计算 4 的平方根,结果为 2.0(注意,结果是一个浮点数)。
4 % 2.0:这是求4除以 2.0 的余数为0。
0 < 2:最后,比较 0 是否小于2。显然,这是真的。
故正确答案为:True。
20.def
【详解】本题考查Python。在Python中,使用def关键字来定义一个函数。通过def后跟函数名、参数列表以及函数体,明确了函数的功能和执行逻辑,这是Python中创建自定义函数的标准方式,方便代码的模块化和复用。故答案为:def。
21.dict comprehension
【详解】本题考查Python基础。
在Python中,使用dict comprehension可以进行字典的推导。字典推导提供了一种简洁且高效的方式来创建字典,通常用于从一个已存在的字典、列表、元组或其他可迭代对象中提取数据来创建新的字典。故正确答案为:dict comprehension。
22.条件语句(或分支结构)
【详解】本题考查 条件语句。条件语句(或分支结构)是编程中一种重要的控制结构,允许程序在运行时根据条件选择不同的执行路径。通过条件语句,程序能够根据条件的真假来决定执行哪一段代码或者执行哪个代码块。这种能力使得程序能够根据不同情况采取不同的行动,从而实现更加灵活和智能的行为。故答案为:条件语句(或分支结构)。
23.可行性
【详解】本题考查算法。在《数据与计算》中,算法被描述为解决问题的一系列有序步骤,这些步骤需要满足一些基本的特性以确保算法的有效性和正确性。
有限性:算法必须在有限的时间内完成,即算法必须包含有限个步骤。这意味着算法不能陷入无限循环或其他无限的操作中。
确定性:算法的每个步骤都必须是明确且没有歧义的。也就是说,对于算法中的每个步骤,都必须有确切的定义和明确的操作方式。
可实现性: 算法中的每一个步骤都必须是可行的,也就是说,它们必须能够在某个计算模型(如图灵机)下被精确执行。这包括使用明确定义的操作和数据结构。另外,算法的描述不应有歧义,即不同的人应该能够按照相同的步骤来执行算法。
有输入:算法应该有零个或多个输入,这些输入是算法开始执行前所需要的已知条件或数据。
有输出:算法应该有一个或多个输出,这些输出是算法执行后得到的结果。这些结果应该是算法执行前未知的,或者是从输入数据经过计算后得到的新信息。
可行性:算法中的操作必须是可以在实际环境中执行的,这包括时间可行性和空间可行性。也就是说,算法的执行时间必须是可接受的,并且它所使用的存储空间也必须在可接受的范围内。
故正确答案为可行性。
24.错误
【详解】本题考查Python基础。
这个说法错误。当你使用内置函数open()以“w”模式打开一个文件时,文件指针默认是指向文件的开头,而不是指向文件尾。
25.正确
【详解】本题考查的是Python。Python语言具有面向对象、代码规范、函数库丰富、动态数据类型等特点。说法正确。
26.错误
【详解】本题主要考查程序语言运算符的描述。在程序语言中都规定了运算符的优先级,通常是算术运算符高于关系运算符,关系运算符高于逻辑运算符,在一个表达式中可以通过其他手段改变运算顺序,如用小括号,故表述错误。
27.正确
【详解】本题主要考查Python列表的操作。已知Python列表a=['天宫','天和','问天','巡天','天舟'],列表的索引从0开始,那么a[2]的值为“问天”,故表述正确。
28.正确
【详解】本题主要考查Python关键字。实现控制循环的跳转需要用到break和continue两个关键字。其中,break是中断循环,continue是跳出本次循环的执行,表述正确。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$