内容正文:
第三单元 算法和程序设计
一、选择题
1.在算法设计中,确保算法能够在有限步骤后终止的特性称为( )
A.可行性 B.确切性 C.有穷性 D.输入性
2.流程图描述的算法输出的是( )种图形。
A. B. C. D.
3.如图所示算法,分别输入学生成绩score和等级grade:57和“C”,70和“C+”时,输出结果分别是( )
A.57、70 B.“请努力”、“请努力” C.57、“请努力” D.“请努力”、70
4.列表a的初值如表所示,流程图描述算法执行结果是( )
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
-10
0
1
3
4
9
6
10
A.8 B.6 C.1 D.9
5.流程图描述算法的功能是( )
A.求1+4+7+…+100的值 B.求1*4*7*…*100的值 C.求1+4+7+…+97的值 D.求1*4*7*…*97的值
6.已知列表L=[2,4,6,8,10],则元素L[2]的值是( )
A.2 B.4 C.6 D.10
7.小王同学写了Python程序,来判断一行诗是否为回文诗句,代码如下:
s=input("请输入一句古诗:")
if :
print(s,"是回文诗!")
else:
print(s,"不是回文诗!")
加框处代码可替换为以下哪个选项,以实现相同功能( )
A.s==s[len(s)-1:0:-1] B.s==s[-1:-len(s)+1:-1]
C.s[:len(s)//2]==s[-1:(len(s)-1)//2] D.s[:len(s)//2]==s[-1:-(len(s)//2)-1:-1]
8.变量是在程序运行过程中值允许改变的量。以下可以用作python变量名的是( )
A.import B.Student 5 C.3dmax D.abc#123
9.数组元素a[0]至a[n-1]依次存放着n个不重复的正整数。现要在数组a中按顺序找出一组升序子序列,可以是不连续,但要求长度最长(若有多个长度相等的最长子序列时,输出第一个)。
例如:数组a的值为[2,11,4,13,5,17],其中最长的升序子序列是[2,11,13,17]。实现该功能的程序段如下。
a=[2,11,4,13,5,7]
n=len(a);ans=[]
d=[[1,-1]for i in range(n)]
#d[i]包含2个数据项,d[i][0]记录i位置结尾的最长升序子序列的长度
#d[i][1]记录i结尾的最长升序子序列前一数据的索引位置
for i in range(1,n):
for j in range(i):
if a[j]< a[i]and :
d[i][1]=j
maxlen=0;k=-1
for i in range(n):
if d[i][0]>maxlen:
maxlen=d[i][0]
k=i
while k!=-1:
ans.append(a[k])
k=d[k][1]
print(ans[::-1])
①d[i][0]<d[j][0] ②d[j][0]>=d[i][0] ③d[i][0]=d[i][0]+1 ④d[i][0]=d[j][0]+1
划线处应填的合适代码依次为( )
A.①③ B.①④ C.②③ D.②④
10.下列代码的运行结果为( )
a=0
for i in range(1,10):
a=a+i
print(a)
A.55 B.45 C.40 D.35
11.在 Python 语言中,a=2,b=6下列表达式返回值为True的是( )
A.a!=b-4 and a==b-3 B.a>=b-5 or a+b>9
C.b<a+3 and a>=b+2 D.not a<b-1 or b>a+5
12.有如下Python程序段:
x,y,z=5,3,4
s=0
if x>y:
s=x
elif y>z:
s+=z
s-=5
print(s)
上述程序段运行之后s的值是( )
A.0 B.-5 C.-1 D.5
13.如下是计算圆的周长与面积的算法,其描述方式是( )
①输入半径r ②求周长c=2πr ③求面积s≡πr2 ④输出周长和面积
A.流程图 B.自然语言 C.程序代码 D.项目式
14.算法每个步骤的运算都有明确定义,且计算结果是唯一的。这体现算法的特征是( )
A.可读性 B.可行性 C.确定性 D.有穷性
15.有如下 Python 程序段:
import random
n=6;a=[0]*n;i=0
while i<n:
k=random.randint(1,10)
if k%5==0:
i-=1
elif k%3==0:
a[n-1]=k
n=n-1;i+=1
else:
a[i]=k
i=i+1
执行该程序段后,列表a中的各元素可能的是( )
A.[8,0,0,3,1,6] B.[0,0,5,8,1,3]
C.[1,4,0,0,6,7] D.[8,0,0,8,1,9]
16.有如下Python程序:
a=[""]*10
s=input("请输入字符串:")
a[0]=s[0]
t=0
for i in range(1,len(s)):
if t>=0 and s[i]==a[t]:
t=t-1
else:
t=t+1
a[t]=s[i]
运行程序段,输入以下字符串,运行后变量t的值变化过程与其它三项不同的是( )
A.BAABA B.AAABA C.AABAB D.BBABA
二、填空题
17.在Python中, 可以用来实现代码的复用。
18.如图所示算法,输入k是3,该算法输出结果是 。
19.Python语句list(range(1,10,3))执行结果为 。
20.已知a=5,那么(a>2)*a*2的值是( )
21.已知足球场长度105.16米,宽度68.16米,请使用Python编写一段程序,计算出足球场的面积多少平方米?
下面是部分程序代码,请将程序补充完整并确保程序能正确运行。
a=105.16
b=68.16
print(a,b,s)
三、判断题
22.已知A和B是两个集合,并且表达式A<B的值为False,那么表达式A>B的值一定为True。( )
23.Python字典中的“键”可以是列表、元组、数字、字符串( )
24.列表对象的extend()方法属于原地操作,调用前后列表对象的地址不变。( )
25.网络爬虫是种程序或脚本,通过它可以将非结构化数据从网页中抽取出来,并以结构化的方式存储为本地数据文件。( )
26.程序是用某种程序设计语言编写的,可以被计算机执行的指令序列。( )
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查算法相关内容。算法被描述为解决问题的一系列有序步骤,这些步骤需要满足一些基本的特性以确保算法的有效性和正确性。有限性:算法必须在有限的时间内完成,即算法必须包含有限个步骤。这意味着算法不能陷入无限循环或其他无限的操作中。确定性:算法的每个步骤都必须是明确且没有歧义的。也就是说,对于算法中的每个步骤,都必须有确切的定义和明确的操作方式。可实现性: 算法中的每一个步骤都必须是可行的,也就是说,它们必须能够在某个计算模型(如图灵机)下被精确执行。这包括使用明确定义的操作和数据结构。另外,算法的描述不应有歧义,即不同的人应该能够按照相同的步骤来执行算法。有输入:算法应该有零个或多个输入,这些输入是算法开始执行前所需要的已知条件或数据。有输出:算法应该有一个或多个输出,这些输出是算法执行后得到的结果。这些结果应该是算法执行前未知的,或者是从输入数据经过计算后得到的新信息。可行性:算法中的操作必须是可以在实际环境中执行的,这包括时间可行性和空间可行性。也就是说,算法的执行时间必须是可接受的,并且它所使用的存储空间也必须在可接受的范围内。确保算法能够在有限步骤后终止的特性称为有穷性。故本题答案是C选项。
2.A
【详解】本题考查算法分析。
该算法功能为外循环i=1控制行,i<=5控制5行输出。内循环k=1控制列,k>10控制输出10列,当k为奇数时,输出白五星,否则输出黑五星。故正确答案为:选项A。
3.D
【详解】本题考查算法流程图相关内容。分析流程图,学生成绩score和等级grade:57和“C”,判断条件成立,执行输出“请努力”操作;学生成绩score和等级grade:70和“C+”,判断条件不成立,执行输出成绩score操作,即:70。故本题答案是D选项。
4.B
【详解】本题考查流程图。程序运行过程如下。最终输出i的值为6。故答案为:B。
t
i
0
1
0
2
0
3
0
4
0
5
0
6
1
6
5.D
【详解】本题考查流程图。流程图中,通过循环从1开始,每次增加3,当值超过97时停止循环。在循环中进行累乘操作。所以该流程图是求1*4*7*…*97的值。故答案为:D。
6.C
【详解】本题考查列表。给定列表L=[2,4,6,8,10],要找出索引为2的元素的值。列表的索引从0开始计数,所以:L[0]对应的元素是2;L[1]对应的元素是4;L[2]对应的元素是6。因此,元素L[2]的值是6。故答案为:C。
7.D
【详解】本题考查Python程序。要判断一个字符串是否为回文,需要比较字符串的前半部分和后半部分的逆序是否相等。我们分析各选项的含义:s==s[len(s)-1:0:-1]:这段代码从倒数第二个字符开始逆序到第一个字符,少比较了第一个字符和最后一个字符,错误。s==s[-1:-len(s)+1:-1]:这段代码从最后一个字符逆序到第二个字符,少比较了第一个字符,错误。s[:len(s)//2]==s[-1:(len(s)-1)//2]:这段代码将字符串前半部分和后半部分进行比较,但后半部分的索引不正确,错误。s[:len(s)//2]==s[-1:-(len(s)//2)-1:-1]:这段代码将字符串前半部分与后半部分的逆序进行比较,正确。因此,加框处代码可替换为D选项。故答案为:D。
8.B
【详解】本题考查变量。import是系统保留字不能用作变量名;3dmax,第一位只能用字母或下划线;abc#123,符号可用作变量名的只有下划线,不能包含“#”。故答案为:B。
9.D
【详解】本题考查程序分析。if语句判断条件不完整,根据题意该语句要判断当i的前面位置序列长度大于等于i位置上的长度,则i位置上的序列更新为前面位置序列长度加1。故符合条件的选项为D。
10.B
【详解】本题考查Python程序设计相关内容。range函数用于生成一个整数序列,其语法是range(start, stop[, step])。其中start是序列的起始值,stop是序列的结束值(不包括),step是步长,默认为1,即序列中相邻两个数的差。分析程序段,i的取值范围是[1,9],程序段作用是1--9计算的和,结果为45,故本题答案是B选项。
11.B
【详解】本题考查Python运算符与表达式相关内容。A选项,a!=b-4 and a==b-3-->2!=2 and 2==3-->False。B选项,a>=b-5 or a+b>9-->2>=1 or 8>9-->True。C选项,b<a+3 and a>=b+2-->6<5 and 2>=8-->False。D选项,not a<b-1 or b>a+5-->not 2<5 or 6>7->False。故本题答案是B选项。
12.A
【详解】本题考查Python程序。x>y成立,故s的值是5,条件语句结束后,s=s-5,因此s=0。故答案为:A。
13.B
【详解】本题考查算法的描述方法。算法的描述方法有:自然语言、程序代码、伪代码以及流程图。自然语言(Natural language)通常是指一种自然地随文化演化的语言。从题中可知,所用的算法描述方法是自然语言。故选:B。
14.C
【详解】本题考查算法相关内容。算法是指为解决某个特定问题而采取的方法和步骤。这里所说的算法一般是指用计算机解决问题的方法和步骤,即计算机算法。一个算法的设计具备如下特点:(1)有穷性。它包含两个方面:一方面是指一个算法应在有限的操作步骤内完成;另一方面是指算法操作应在有限的时间范围内完成;(2)确定性。算法中的每一个步骤都是确定的,即不能有二义性,这样才能确保对于同一个算法,相同的输入必然得出相同的执行结果;(3)有零个或多个输入。输入是指算法所需要的外部信息。在计算机上实现的算法,是用来处理数据对象的,在大多数情况下这些数据对象需要通过输入来得到;(4)有一个或多个输出。算法是有目的的操作,算法的目的是为了求解,这些解只有通过输出才能得到。没有输出的算法是没有意义的;(5)有效性。算法中的每一个步骤都应当能有效地执行,并得到确定的结果。算法每个步骤的运算都有明确定义,且计算结果是唯一的。这体现算法的特征是确定性。故本题答案是C选项。
15.D
【详解】本题考查Python随机数、程序设计等相关内容。通过分析代码段,可知:当k=5或10时,a列表元素值不会出现5或10,B选项错误;当k=3、6、9时,a[5]元素值为对应的3、6、9,C选项错误;当列表元素前有两个0(未被修改)出现时,其列表最后的两个元素值应该是3、6、9中的一个,A选项错误。故本题正确答案是D选项。
16.A
【详解】本题考查的是Python程序设计相关内容。t初始值为0,a(t)为第一个字符,从第2个字符开始判断,如果与a(t)相同而且t>=0,则t=t-1,否则t=t+1,a(t)更新为新字符。输入:BAABA,t值变化过程为:1、0、1、2;输入:AAABA,t值变化过程为:-1、0、1、2;输入:AABAB,t值变化过程为:-1、0、1、2;输入:BBABA,t值变化过程为:-1、0、1、2。故本题答案为A。
17.函数和模块
【详解】本题考查Python函数的描述。在Python中,函数和模块是实现代码复用的主要方式。函数通过定义可重复使用的代码块来实现复用,而模块通过将相关的函数、类和变量组织在一起,方便在不同的程序中导入和使用。
18.24
【详解】本题考查算法分析。
该程序功能累加从3开始到10之间的所有奇数的和给变量S。即S=3+5+7+9=24。故正确答案为:24。
19.[1,4,7]
【详解】本题考查Python。range函数的语法是range(start,stop,step),它生成一个从start开始、到stop(不包括stop)结束、步长为step的整数序列。对于list(range(1,10,3)),参数为1(起始值)、10(终止值,不包括)、3(步长),生成的序列为1,4,7。因此,执行该语句的结果是[1,4,7]。故答案为:[1,4,7]。
20.10
【详解】本题考查Python表达式的运算。在Python中,布尔值可以被转化为数值,True是1,False是0。已知a=5,a>2值为True,即为1,因此(a>2)*a*2的值是10。
21.s=a*b
【详解】本题考查的是Python顺序结构。面积=长*宽,由print(a,b,s)面积存储在s中,故划线处代码为:s=a*b。
22.错误
【详解】本题考查Python集合数据类型的描述。已知A和B是两个集合,并且表达式A<B的值为False,那么表达式A>B的值不一定为True,也有可能A=B。故表述错误。
23.错误
【详解】本题考查Python基础。
列表(list)由于是可变的(可以添加、删除或更改其中的元素),因此不能用作字典的键。故错误。
24.正确
【详解】本题考查Python基础。
在Python中,列表(list)对象的extend()方法是一个原地操作,意味着它直接在原列表上添加元素,而不是创建并返回一个新的列表。因此,调用extend()方法前后,列表对象的内存地址保持不变。故正确。
25.正确
【详解】本题考查网络爬虫。网络爬虫就是一种能够按照一定的规则,自动地抓取万维网信息的程序或者脚本。它能够从网页中提取出所需的非结构化数据,并将其整理成结构化的形式,存储为本地的数据文件,以便后续的分析和处理。故说法正确。
26.正确
【详解】本题考查计算机程序。编写程序时,程序员需要选择适当的程序设计语言,并使用该语言的语法和规则来编写指令。然后,这些指令被编译器或解释器转换为计算机可以直接执行的机器代码。程序在计算机上运行时,会按照程序员编写的指令序列逐步执行,从而完成特定的任务或解决特定的问题。故题干说法正确。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$