内容正文:
3.3 简单算法及其程序实现同步作业2024—2025学年高中信息技术 浙教版(2019)必修1
一、选择题
1.有如下问题:
① 已知圆柱的半径r和高度h,使用公式求出此圆柱的体积。
② 已知班级每位同学的身高h,按照h的值从大到小进行排列。
③ 已知直角三角形两条边的边长,利用勾股定理求出第三条边的长度。
④ 已知“完全平方数”的定义,找出1—1000范围内的所有完全平方数。
用计算机解决上述问题时,适合用解析算法的是( )
A.①② B.①③ C.②③ D.③④
2.某算法的部分流程图如下图所示,执行这部分流程,依次输入整数-2,3,-1,2,0。则输出s的值是( )
A.-3 B.5 C.2 D.0
3.有如下程序段:
以上程序运行后,列表 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]
4.某算法的部分流程图如图所示。执行这部分流程,若输入x的值为21,则输出s和k的值分别为( )
A.4,7 B.-5,11 C.4,9 D.-5,9
5.下列伪代码中体现出来的程序算法结构是( )
A.顺序结构 B.循环结构 C.选择结构 D.三种结构都有
6.数组元素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.②④
7.下面if语句统计满足“性别 (gender) 为男、职称(rank) 为副教授、年龄(age)小于40岁”条件的人数,正确的语句为( )。
A.if(gender=="男" or age<40 and rank=="副教授"): n+=1
B.if(gender=="男" and age<40 and rank=="副教授"): n+=1
C.if(gender=="男" and age<40 or rank=="副教授"): n+=1
D.if(gender=="男" or age<40 or rank=="副教授"): n+=1
8.某算法的部分流程图如图所示,输入a的值为26,若用Python语言描述,则下列正确的是()
A. B.
C. D.
9.计算机在执行高级语言程序时,逐条语句翻译成机器语言并立即执行的程序是( )
A.解释程序 B.编译程序 C.高级程序 D.汇编程序
10.某客户购买的新能源汽车价格为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
11.有如下Python程序段:
a=[4,3,1,2,3]
m=0
s=0
for i in range(1,len(a)):
if a[i] < a[m]:
m=i
s=s+m
print(s)
执行该程序段后,输出的结果是( )
A.10 B.9 C.8 D.7
12.面额为10元、20元和50元的纸币各有10张,求总额恰好为380元取法方案的算法是:设10元取a张、20元取b张、50元取c张,a、b、c都取0到10之间的整数,将a、b、c取值的所有可能组合逐一代入表达式10 * a+20 * b+50 * c =380,判断是否成立,若成立,则输出这一方案。此算法属于( )
A.查找算法 B.枚举算法 C.递归算法 D.排序算法
13.运行Python程序的过程中出现了如下图错误提示,原因是()。
A.变量名51study太长
B.应该写成"chinese" =51study
C.“chinese”应该写成“chinaˈs”
D.变量名51study不符合python语言规范,变量名不能以数字开头
14.有如下 Python程序段:
s=''AB18/31C5/D269/E7''
k=3
sum, j,c=0,0,0
flag=False
for ch in s:
if "0"<=ch<="9":
c=c*10+int(ch)
j+=1
elif ''A''<=ch<=''Z'':
flag=True
else:
if j==k and flag:
sum+=c
flag=False
j=0;c=0
程序运行后,sum的值是( )
A.269 B.330 C.584 D.609
15.购买地铁车票:乘1-4站3元/人;5-9站4元/人;9站以上5元/人。根据输入的站数N,输出应付款M,如需将算法补充完整,最适合的选项是( )
A.N>9 B.N<=9
C.5<=N<=9 D.N>=5 and N<=9
16.有Python程序段如下:
s="I2024!";s1=""
for i in range(len(s)):
c=s[i]
if "A"<=c<="Z":
c=chr(ord(c)-ord("A")+ord("a"))
elif "a"<=c<"2":
c=chr(ord(c)-ord("a")+ord("A"))
sl=c+sl
print(sl)
程序运行后,输出的值是( )
A.!4202Ti B.It2024! C.iT2024! D.4202Ti
17.为完善班级功能建设,班长设计并搭建了班级网站,(网站为:http://mo17733146-7.icoc.bz/),网站拥有成绩查询系统,同学们在登入网站后,输入自己的账号和密码就可以查询自己的成绩。
查询成绩信息的部分代码如下:
@app.route("/col")
def chengji_list():
conn=sqlite3.connect("cj.db")
cur=conn.cursor()
cur.execute("select*from cjcx")
jieguo=cur.fetchall()
cur.close()
conn.close()
return render_template("list.html",jieguo=jieguo)
下列选项中说法正确的是( )
A.查询的数据表名为cj.db
B.连接的数据库文件名是cjcx
C.当前视图函数是chengji_list()
D.查询成绩信息时URL的地址为http://mo17733146-7.icoc.bz/
18.在Python中,已知A=8,则以下代码执行后输出的结果是( )
if A<=5:
print(A-5)
else:
print(A+10)
A.3 B.5 C.10 D.18
19.有如下Python程序段:
s=input("请输入待处理字符串:")
st=""
for i in range(len(s)):
ch=s[i]
if"0"<=ch<="9":
ch=str((int(ch)+3)%10)
st=st+ch
else:
if"A"<=ch<="Z":
ch=ch.lower()
st=st+ch
print(st)
执行程序后,输入字符串"Happy2024!",输出的结果( )
A.7535happy! B.4202Happy! C.!7535yppah D.happy5357!
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查解析算法。解析算法的基本思想,是在“前提条件、所求结果、数学表达式”三大要素的框架下完成问题的求解。题中①、③问题具有明确的解析思想,而②、④问题无法用确定的数学表达式来建立起“条件”与“结果”的关系。故答案为:B。
2.B
【详解】本题考查算法流程图阅读理解能力。由流程图可知,a=0时,循环结束,s变量是正数累加的结果,所以最终s的值是5。故选B。
3.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选项。
4.B
【详解】本题考查流程图分析。
根据题意执行过程如下表所示,则输出s和k的值分别为-5,11。
项目
x
s
k
初值
21
0
1
1
10
-1
3
2
5
2
5
3
2
-3
7
4
1
4
9
5
0
-5
11
故选择B。
5.C
【详解】本题考查程序结构。这段伪代码中,根据年龄的不同情况进行判断,选择执行不同的输出语句,这体现了选择结构(也叫分支结构),而整个过程是依次按条件判断执行,没有循环过程,也不存在先执行后面的语句再回头执行前面语句的情况,所以主要体现的是选择结构,答案选C。
6.D
【详解】本题考查程序分析。if语句判断条件不完整,根据题意该语句要判断当i的前面位置序列长度大于等于i位置上的长度,则i位置上的序列更新为前面位置序列长度加1。故符合条件的选项为D。
7.B
【详解】本题主要考查if条件分支。题目中的条件都是与的关系,所以要用and连接,故本题选B选项。
8.A
【详解】本题考查的是流程图及Python语言。由流程图可知,循环的条件是a!=b,故排除BD,b=b-3这个语句不管a是否大于b都要执行,故排除C。本题应选A。
9.A
【详解】本题主要考查程序执行。解释程序的一般结构可以分为解释模块和运行模块两个主要模块。前者的职能是按源程序动态执行顺序逐个输入语句,并对单个语句进行分析和解释,包括语法和语义的正确性检验、生成等价的中间代码或机器语言代码,以及错误信息提供等处理。后者的职能是运行语句的翻译代码,并输出中间结果或最终结果,故本题选A选项。
10.B
【详解】本题考查的是Python多分支语句。选项A中,如果价格30万元(含)以上,满足if语句,不会执行elif语句,补贴0.5万元,不符合题意;选项C中,如果价格30万元(含)以上,也满足第二个if语句,补贴0.5万元,不符合题意;选项D中,如果价格30万元(含)以上,满足if语句,补贴0.5万元,不符合题意。故选B。
11.D
【详解】本题考查的是Python循环及选择语句。程序执行过程如下表:
i
a[i]
a[m]
m
s
初始
0
0
1
3
4
1
1
2
1
3
2
3
3
2
1
2
5
4
3
1
2
7
结束
故执行该程序段后,输出的结果是7,选D。
12.B
【详解】本题考查算法。此算法是将a、b、c取值的所有可能组合逐一进行尝试,判断是否满足条件,这种将所有可能的情况一一列举出来进行判断的算法属于枚举算法。查找算法是在一组数据中查找特定元素;递归算法是函数在其定义中直接或间接调用自身;排序算法是对一组数据按照特定规则进行排序。而本题是逐个列举所有可能的取值组合,所以是枚举算法。故答案为:B。
13.D
【详解】本题考查的是程序调试。报错内容是“语法错误:无效语法”,变量名51study,数字不能作为变量名的开头,故D项正确。
14.C
【详解】本题考查的是Python程序调试与运行。阅读程序可知,逐个读取字符串中的字符,如果是数字则转换为数值类型;如果是大写字母,则标志位flag为真;如果不是大写字母也不是数字且标志位flag为真同时是三位数字,则将数字累加到sum,标志位flag为假,数字及个数初始为0。s=“AB18/31C5/D269/E7”,
读取到第一个“/”时,由于数字不满足三个标志位flag为假,数字及个数初始为0;
读取到第二个“/”时,由于数字为315满足三个,标志位flag为真(读取大写字母C),则将数字累加到sum=315;
读取到第三个个“/”时,由于数字为269满足三个,标志位flag为真(读取大写字母D),则将数字累加到sum=315+269=584。
后续数字不会满足三个,不会累加sum,故选C。
15.B
【详解】本题考查条件语句。根据题目要求,购买地铁车票:乘1-4站3元/人;5-9站4元/人;9站以上5元/人。故N<=9满足5-9站4元/人,最适合,因此选项B正确。
16.A
【详解】本题考查字符串处理及选择语句应用知识。由代码可知,将大写字母转化为相应的小写字母,而将小写字母转换为相应的大写字母,然后按照逆序进行连接。故可以排除C、D。由于最后的字符“!”未经if语句处理,但该字符也会被逆序连接到sl中。故选A。
17.C
【详解】本题考查程序分析。A选项错误,数据表名为cjcx。B选项错误,连接的数据库文件名是cj.db。D选项错误,http://mo17733146-7.icoc.bz/为网站地址,非查询成绩信息时URL的地址。故正确答案为C选项。
18.D
【详解】本题考查的是Python选择语句。A=8,不满足A<=5,执行 print(A+10),输出8+10=18,故选D。
19.D
【详解】本题考查Python程序分析能力。if语句判断循环遍历的字符串,如果是数字0到9,则数字加3并取余数。如果是大写字母,则转换成小写字母。其它字符不变。以上处理结果逆序存放在st中,最后输出st。故选项D为正确答案。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$