内容正文:
3.3 简单算法及其程序实现同步作业2024—2025学年高中信息技术 浙教版(2019)必修1
一、选择题
1.关于python语句功能描述正确的( )
A.ord(chr(x)+26) #若字符变量x是大写字母即变成小写字母
B.str(x)+str(y) #求两数之和
C."abcd"[2:4] #运行结果为"bcd"
D.2**3*2/2 % 5 #结果3
2.为完善班级功能建设,班长设计并搭建了班级网站,(网站为: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/
3.以下程序的输出结果是( )
a=1
if a>0:
a=a+1
else:
a=a-1
print(a)
A.0 B.1 C.2 D.3
4.什么是贪心算法( )
A.一种总是选择局部最优解的算法 B.一种总是选择全局最优解的算法
C.一种随机选择解的算法 D.一种不使用递归的算法
5.有如下Python程序段,可以实现从班级学生中随机抽取五名学生参与班会活动。
名称
含义
random.randint(a,b)
随机生成一个[a,b]范围内的整数
random.random()
随机生成一个[0,1)范围内的实数
random.choice(seq)
从序列seq的元素中随机挑选一个元素
import random#random模块中的常用函数如上表所示
#导入学生名单到列表a中,a=["张*","李*",...,丁*"]
name_list=[] #列表name list存放随机生成的学生名单
for i in range(5):
t=①
②
a.pop(t) #从列表a中删除已被抽取的学生,避免重复抽取
上述程序段中划线处依次可填入的语句是( )
A.①random.randint(0,len(a)-1) ②name_list+=a[t] B.①int(random.random()*len(a)) ②name_list+=a[t]
C.①random.randint(0,len(a)) ②name_list.append(a[t]) D.①random.randint(0,len(a)-1) ②name_list.append(a[t])
6.解析法在解决最优化问题时通常使用( )
A.线性规划 B.动态规划 C.贪心算法 D.A和C
7.有如下问题:
① 已知圆柱的半径r和高度h,使用公式求出此圆柱的体积。
② 已知班级每位同学的身高h,按照h的值从大到小进行排列。
③ 已知直角三角形两条边的边长,利用勾股定理求出第三条边的长度。
④ 已知“完全平方数”的定义,找出1—1000范围内的所有完全平方数。
用计算机解决上述问题时,适合用解析算法的是( )
A.①② B.①③ C.②③ D.③④
8.有下面一段程序,运行该程序后s的值为( )
A.3 B.5 C.8 D.10
9.某算法的部分流程图如图所示,输入a的值为26,若用Python语言描述,则下列正确的是()
A. B.
C. D.
10.某算法的部分流程图如下图所示,执行这部分流程,依次输入整数-2,3,-1,2,0。则输出s的值是( )
A.-3 B.5 C.2 D.0
11.用高级语言编写的程序必须经过( )翻译成机器语言程序,计算机才能执行。
A.低级语言 B.汇编程序 C.汇编语言 D.编译程序
12.某算法的部分流程图如图所示。执行这部分流程,若输入n的值为3241,则输出s的值为( )
A.2341 B.1423 C.1432 D.2413
13.穷举法在数学建模中的应用主要体现在?( )
A.数据拟合 B.图论模型 C.优化问题 D.所有以上
14.有如下Python程序:
score=int(input())
if score>=90:
grade='A'
elif score>=60:
grade='B'
else:
grade='C'
print(score,grade)
运行程序,输入“78”后回车,程序的输出结果是( )
A.78 B B.78 A C.B 78 D.78 C
15.有如下Python程序,程序执行,输入数据k之后输出的结果不正确的是( )
A.k=8输出:[8,4] B.k=9输出:[8,9,4,9]
C.k=10输出:[8,10,9,4,9,10] D.k=13输出:[8,10,9,13,4,9,13]
16.在Python中,下列程序段执行后,变量s的值是( )
w=2
h=5
if h>8:
s=w*2
else:
s=w+1
A.1 B.2 C.3 D.4
17.已知有这样一种对冒泡排序的优化方法:在每一遍“加工”过程中,记录在这遍“加工”中是否进行过数据交换。若在一遍“加工”过程中没有进行过数据交换,则数据已经有序,可以直接退出循环结束排序。则下列说法错误的是 ( )
A.对有n个数据的数组进行优化后的冒泡排序,最小比较次数为n-1。
B.对有n个数据的数组进行冒泡排序,无论是否优化,最大比较次数相同。
C.对冒泡排序算法进行优化,能够较大提高其效率,符合算法设计的一般原则。
D.若待排序数组中的数据依次为23,17,46,58,34,11,对其使用优化后的冒泡排序进行升序排序,比较次数为9。
18.有如下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
19.—位顾客去超市购买了苹果xkg、香蕉ykg、西瓜ykg,其中苹果3.98元/kg、香蕉3.58 元/kg、西瓜2.98元/kg。计算该顾客消费总价的算法如下:
①输入三种水果的重量x,y,z ②用公式计算总价s=3.98x +3.58y +2.98z ③输出总价s ④结束
上述算法属于( )
A.枚举算法 B.查找算法 C.递归算法 D.解析算法
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查表达式的运算。A选项,会导致类型错误。B选项,字符拼接,非求和。C选项,结果为“cd”。D选项正确,结果为3。故正确答案为选项D。
2.C
【详解】本题考查程序分析。A选项错误,数据表名为cjcx。B选项错误,连接的数据库文件名是cj.db。D选项错误,http://mo17733146-7.icoc.bz/为网站地址,非查询成绩信息时URL的地址。故正确答案为C选项。
3.C
【详解】本题考查的是Python选择语句。a=1,满足 a>0,执行a=a+1=2,故程序的输出结果是2,选项C正确。
4.A
【详解】本题考查贪心算法。贪心算法在每个步骤中都选择当前状态下的最优解(局部最优解),希望通过这种方式找到全局最优解。故答案为:A。
5.D
【详解】本题考查的是列表综合应用。列表索引从0开始,故随机数应为0~len(a)-1的整数,列表元素添加用append。故本题应选D。
6.D
【详解】本题考查解析法。解析法在解决最优化问题时,常常使用线性规划和贪心算法。线性规划通过建立目标函数和约束条件的数学模型来求解最优解。例如,在资源分配问题中,可以通过建立线性规划模型来确定最优的资源分配方案。贪心算法则是在每一步都做出当前看起来最优的选择。比如在找零钱问题中,每次都优先选择面值较大的货币进行找零。而动态规划虽然也是解决优化问题的一种方法,但在解析法中不常使用。故答案为:D。
7.B
【详解】本题考查解析算法。解析算法的基本思想,是在“前提条件、所求结果、数学表达式”三大要素的框架下完成问题的求解。题中①、③问题具有明确的解析思想,而②、④问题无法用确定的数学表达式来建立起“条件”与“结果”的关系。故答案为:B。
8.B
【详解】本题主要考查Python程序的执行。当list[i]>0且i<=n时,s递增,i递增,否则退出循环。当list[5]=-9<0,退出循环。故s=0+1+1+1+1+1=5,故运行程序后s的值为5,故本题选B选项。
9.A
【详解】本题考查的是流程图及Python语言。由流程图可知,循环的条件是a!=b,故排除BD,b=b-3这个语句不管a是否大于b都要执行,故排除C。本题应选A。
10.B
【详解】本题考查算法流程图阅读理解能力。由流程图可知,a=0时,循环结束,s变量是正数累加的结果,所以最终s的值是5。故选B。
11.D
【详解】本题主要考查程序设计语言的描述。用高级语言编写的程序也不能直接被计算机识别和执行,必须经过编译程序或解释程序将其翻译成机器语言。故选D。
12.B
【详解】本题考查流程图。根据流程图可知:输入n,输出的是n的逆序数。所以输入3241,输出1423。故选B。
13.D
【详解】本题考查算法相关内容。穷举法,也称为枚举法,是一种基于问题的直接描述去解决问题的方法。其基本原理是:根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕。若某个情况验证符合题目的全部条件,则为本问题的一个解;若全部情况验证后都不符合题目的全部条件,则本题无解。穷举法在数学建模中有多种应用,包括数据拟合、图论模型和优化问题等。故本题答案是D选项。
14.A
【详解】本题主要考查Python多分支结构。输入78后回车,满足elif score>=60部分grade='B',故程序的输出结果是78 B。选A。
15.C
【详解】本题考查的是Python循环语句。阅读程序可知,保留列表L中不大于输入的数,并输出。k=10时,列表保留的是[8,10,9,4,9],故本题应选C。
【点睛】
16.C
【详解】本题考查的是Python选择语句。初始w=2,h=5。不满足h>8,执行s=w+1=2+1=3。故本题应选C。
17.D
【详解】本题考查对冒泡排序的理解。根据题干描述,对于数据23,17,46,58,34,11,进行7次比较即可确定排序顺序。故选项D符合题意。
18.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。
19.D
【详解】本题考查算法。上述算法是根据已知的价格和购买的重量,通过明确的数学公式来计算总价,这种通过数学表达式来解决问题的算法属于解析算法。枚举算法是一一列举所有可能的情况来求解问题;查找算法是在一组数据中查找特定元素;递归算法是函数在其定义中直接或间接调用自身。而本题中是利用数学公式直接计算得出结果,所以属于解析算法。故答案为:D。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$