2023-2024学年浙江省宁波市余姚重点中学高二(上)月考信息技术试卷(含解析)
2024-01-14 18:00:24 学考宝 作者:佚名
Word文档版
学考宝(xuekaobao.com)友情提示:html格式不完整,如有需要请根据文末提示下载并进行二次校对Word文档。
2023-2024学年浙江省宁波市余姚重点中学高二(上)月考信息技术试卷
一、选择题:本大题共12小题,共24分。
1.下列关于数据、信息与知识的说法,正确的是( )
A. 数据是对信息加工后获取到的 B. 知识表现为一种卓越的判断力
C. 传感器的普及加速了数据的传输与处理 D. 信息是用来消除随机不确定性的东西
2.下列关于人工智能的说法,不正确的是( )
A. ChatGPT是使用海量数据训练出来的实现“人机对话”系统,这属于符号主义人工智能
B. 在购物时智能客服和人工客服一起合作来回答顾客的问题,这是混合增强智能的一种应用
C. 家用扫地机器人可以自动完成清扫工作,说明人工智能可以改善人类的生活
D. 人工智能技术的发展提高社会生产力、促进经济发展,但不能解决所有问题
3.杭州亚运会吉祥物组合“江南忆”如图所示,这是一副未经压缩的1100*1024 像素的 BMP 图像文件,其存储容量约为1.07MB 则该图像每个像素色彩编码的位数为( )
A. 24
B. 16
C. 8
D. 4
4.下列关于数据与大数据的说法,不正确的是( )
A. 大数据中各种结构化、半结构化和非结构化的数据共存
B. 大数据不必追求数据的精确性,不必保证每个数据都准确无误
C. 大数据不一定强调事物的因果关系,而是更注重他们的相关性
D. 数据量大的一定是大数据,因为大数据的数据体量大
5.定义如下函数:
执行语句f(6),则f(3)被调用的次数为( )
A. 1次 B. 2次 C. 3次 D. 4次
6.有如下Python程序段:
执行该程序段后,数组f中值为True的元素个数是( )
A. 1 B. 2 C. 3 D. 4
7.数组a已有9个数据,分别存储于a[0]~a[8],需在第j个位置(1≤j≤9)插入数据k。利用Python语言编写代码,模拟数据插入过程,可选代码如下:
①a[i]=k
②a[i-1]=k
③a[i+1]=a[i]
④a[i]=a[i-1]
⑤for i in range(j,9)
⑥for i in range(8,j-2,-1)
划线处所需代码依次为( )
A. ⑥③① B. ⑤③② C. ⑥④① D. ⑤③①
8.下列有关迭代算法和递归算法的描述,不正确的是( )
A. 在使用递归算法时,必须有一个明确的递归结束条件,称为递归出口
B. 一般来说,迭代算法效率较低,而递归算法效率较高
C. 递归中一定有迭代,但迭代中不一定有递归
D. 通常情况下,迭代算法和递归算法可以相互转换
9.有如下程序段:
执行语句k=cal(5),k的值为( )
A. 6 B. 7 C. 10 D. 11
10.若某算法的总执行次数T(N)=T(N/2)+1(N为大于2的正整数),令T(1)=1。则该算法的时间复杂度为( )
A. O(N) B. O(log2N) C. O(Nlog2N) D. O(N2)
11.有如下程序段,则该程序段的时间复杂度为( )
A. O(log2N) B. O(N) C. O(Nlog2N) D. O(N2)
12.有如下Python程序:
若输入的s值为”8561324”,则执行该程序,输出s的值不可能为( )
A. 51324 B. 124 C. 132 D. 1324
二、非选择题:本大题共3小题,共26分。
13.有n(n>=3)级台阶,从底端向上爬到顶端,每次只能爬2级或者3级台阶,求从底端爬到顶端的方案数。
(1) 当n=5时,方案数为 ______ 。
(2) 用迭代法计算爬n级台阶的方案数,python程序如下:
则划线处的代码为 ______ 。该段代码使用了 ______ (填:递归或迭代)算法。
14.分组冒泡排序。分别对数组a的奇数和偶数位置的元素进行冒泡排序,即采用“跳跃式冒泡”的方法,每次跳跃的步长为2,将数组分成2个子序列,分别对这2个子序列进行排序。例如,对数组a=[6,3,5,4,1,2,8,7]进行分组跳跃式升序冒泡排序,排序后的数组a=[1,2,5,3,6,4,8,7]。
(1) 对数组a=[4,5,2,9,6,7,10,3,8,1]进行分组跳跃式升序冒泡排序,则排序后的数组a= ______ 。
(2) 实现上述功能的Python程序如下,请在划线处填入合适的代码。
(3) 将分组跳跃式冒泡排序推广到每次跳跃的步长为m的情形,例如对数组a=[6,3,5,4,1,2,8,7]进行分组跳跃式升序冒泡排序,当m=3时,排序后的数组a=[4,1,2,6,3,5,6,7]。
相关代码如下,请在划线处填入合适的代码。
15.大部分社交软件都有好友推荐的功能,当用户A和用户B的共同好友数量超过阀值p时,由系统向用户A推荐用户B。其中共同好友判定方法为:用户A和用户B不是好友,用户C分别是用户A和用户B的好友,则共同好友数量加1。编写Python程序,实现好友推荐功能。运行程序,首先从文件中读取用户id及好友列表后,处理后显示用户之间的关系;再输入推荐目标用户id和阈值p;最后显示向目标用户推荐的好友列表。
(1) 根据如图所示数据,若输入推荐目标用户id为“1”,输入阈值为“4”,则推荐好友为: ______ 。
(2) 主程序,读取“数据.txt“文件,进行处理后显示用户关系二维表,再输入推荐目标用户id和阈值p,显示向目标用户推荐的好友列表,请在划线处填入合适的代码。
(3) 编写整理数据函数zhengli,根据好友列表,生产关系二维表,请在划线处填入合适的代码。
(4) 编写函数fenxi,根据输入推荐目标用户id和阈值p,显示向目标用户推荐的好友列表,请在划线处填入合适的代码。
答案和解析
1.【答案】D
【解析】解:信息,泛指人类社会传播的一切内容,信息是加工了的数据;知识是人们运用大脑对所获取或积累的信息进行的提炼、研究和分析的结果,能够精确的反应事物的本质;智慧是为了达到预定目标而运用知识解决问题的创新思维能力;传感器的普及加速了数据的采集;信息是用来消除随机不确定性的东西,选项D符合题意。
故选:D。
本题考查数据、信息、知识、智慧的概念。数据经过加工,可表达某种意义,则转变为信息;信息经过加工,可用于指导实践,则转变为知识;智慧是人类基于已有的知识,针对物质世界运动过程中产生的问题根据获得的信息进行分析,对比,演绎找出解决方案的能力。
熟练掌握数据、信息与知识之间的关系。
2.【答案】A
【解析】解:ChatGPT可以被归类为连接主义学派的代表。连接主义学派强调模拟人脑神经元之间的连接与通信,构建大规模的人工神经网络。ChatGPT基于Transformer架构,通过自注意力机制在大规模语料库上进行训练,使其能够理解和生成自然语言。连接主义学派的突出特点是其在处理自然语言理解和生成任务中表现出色,所以选项A说法错误。
故选:A。
本题考查的是人工智能的相关知识。人工智能主要分三大学派,分别是符号主义学派、连接主义学派和行为主义学派。”符号主义是一种基于逻辑推理的智能模拟方法,又称为逻辑主义、心理学派或计算机学派,联结主义学派把人的智能归结为人脑的高层活动,强调智能的产生是由大量简单的单元通过复杂的相互联结和并行运行的结果。行为主义,是一种基于“感知——行动”的行为智能模拟方法。
熟练掌握人工智能的分类及各自的应用。
3.【答案】C
【解析】解:根据图像文件的容量公式得:1100*1024*颜色位数/8/1024/1024=1.07MB,求得颜色位数是8。
故选:C。
本题主要考查图像文件容量计算。未经压缩图像文件容量=像素*颜色位数/8。
熟练掌握图像文件的容量公式及单位换算。
4.【答案】D
【解析】解:数据量的大小只是大数据的一个方面,而不是其唯一特点。大数据强调的是数据的多样性,包括结构化、半结构化和非结构化数据,以及数据的高速生成和处理等特征。数据量大不一定意味着数据就是大数据。D选项错误。
故选:D。
本题考查大数据。
数学大数据的特征
5.【答案】D
【解析】解:分析程序,在f(6)中for循环中会执行f(5)、f(4)、f(3);而在f(5)中for循环中又会执行f(4)、f(3)、f(2);而在f(4)中for循环中又会执行f(3)、f(2)、f(1),因为有两个f(4),因此f(3)被调用的次数为1+1+2=4次。
故选:D。
本题主要考查Python程序调试。
熟练掌握递归循环的基本用法。
6.【答案】B
【解析】解:阅读程序,在外部的 while 循环中,i 从 0 开始递增,f[i]表示第 i 次循环中是否发生了交换。只要 i 小于 4 并且 f[i]为 False,就会继续循环。内部的 for 循环执行了冒泡排序的比较和交换操作,然后根据是否有交换操作来更新 f[i]的值。执行程序后,对数组 a 进行排序。程序中的外部循环 i 执行了 2 次,因为在第二次循环中不再有交换操作,所以 f[0]和 f[1]都为 True。这表示在第一个和第二次循环中都发生了交换。因此,数组 f 中值为 True 的元素个数为 2,所以答案是 2。
故选:B。
本题考查Python程序。这个程序段对数组 a 执行了一种冒泡排序的变种。它使用了一个布尔数组 f 来表示每次内循环是否有交换操作,如果没有则为 False,有则置为 True。
熟练掌握嵌套循环语句的基本结构及结果的求解。
7.【答案】A
【解析】解:算法的思想是:通过循环先将索引j-2~8的元素依次后移一位,再将k放到a[i]以实现k的插入。代码依次是for i in range(8,j-2,-1)、a[i+1]=a[i]、a[i]=k,选项A符合题意。
故选:A。
本题主要考查Python程序执行与调试。程序实现的是列表中元素的插入过程。
熟练掌握python列表的基本操作方法和过程。
8.【答案】B
【解析】解:迭代算法通常效率较高,而递归算法可能效率较低。这是因为递归算法在递归调用时需要保存上下文,包括局部变量和返回地址,而这可能导致开销较大。此外,递归算法在递归深度较深时可能引起栈溢出,因此需要小心处理递归深度。所以选项B符合题意。
故选:B。
本题考查迭代和递归算法。递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。迭代法也被称为辗转法,是一种不断用变量的旧值递推新值的过程,在解决问题时总是重复利用一种方法。
熟练掌握常用算法的概念及特征。
9.【答案】B
【解析】解:当n=5时,执行1+cal(4);当n=4时,执行2*cal(3)即为1+2*cal(3);当n=3时,1+2*(1+cal(2));当n=2时,1+2*(1+2*cal(1))=1+2*3=7,所以选项B符合题意。
故选:B。
本题考查的是递归函数的相关知识。在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
熟练掌握递归函数的定义及运算过程。
10.【答案】B
【解析】解:阅读题干给定递推关系式 T(N)=T(N/2)+1,其中 N 大于 2,并且初始条件 T(1)=1。可以使用递归树或者递归展开法来解决这个问题。在这种情况下,递归算法的执行次数是对输入大小 N 的对数。这是因为在每一次递归调用中,问题的大小都会减少一半(N/2),同时伴随着一个常数操作(+1)。所以,递归树的深度是 log2(N),这表示算法的时间复杂度是 O(log2(N))。
故选:B。
本题考查时间复杂度。这是一个递归算法的时间复杂度问题。递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。
熟练掌握各算法的时间复杂度的计算方法。
11.【答案】D
【解析】解:这个程序段计算并填充了一个二维数组 a,其中 a[i][j]的值等于 a[i-1][j-1]+a[i-1][j],在给定一个整数 n 的情况下。首先,程序创建了一个大小为 (n+1)x (n+1)的二维数组 a,并初始化了一些元素。然后,它使用两个嵌套的循环来填充数组。外层循环迭代 i 从 1 到 n,而内层循环迭代 j 从 1 到 i。分析时间复杂度:外层循环的迭代次数是 n,内层循环的迭代次数随 i 增加而不断变化。内层循环的迭代次数最多达到 n,当 i 等于 n 时。因此,总的迭代次数可以表示为 1+2+3+...+n,这是一个等差数列求和。等差数列求和公式为 n(n+1)/2,因此总的迭代次数为 O(n(n+1)/2),也可以表示为 O(n^2)。
故选:D。
本题考查时间复杂度。时间复杂度是指:当问题的规模以某种单位由1增加到n时,依据求解该问题的算法所编制的程序运行时所消耗的时间也以某种单位由1增加到Ctf(n),Ct为常数,f(n)是问题规模的函数。
熟练掌握时间复杂度的计算方法。
12.【答案】C
【解析】解:import random
s=input( )#键盘输入s
k=random.randint(1,len(s)-1)#k为[1,len(s)-1]闭区间中的随机一个整数
i=0#i为0
while k>0 and i<len(s)-1:#当条件 k>0 和i<len(s)-1同时满足时执行以下循环
if s[i]>s[i+1]:#如果条件s[i]>s[i+1]满足时执行k=k-1,s=s[:i]+s[i+1:]
if i>0:#如果条件s[i]>s[i+1]满足并且i>0时i=i-1 i-=1
else:#如果条件s[i]>s[i+1]不能满足时,执行i=i+1 i+=1
if k>0:#如果条件k>0满足时执行s=s[:len(s)-k]#可增加此语句输出s
故选:C。
在Python中,randint( )函数是random模块下的一个函数。其基本语法如下:random.randint(a,b)其中,a和b是两个整数,表示一个闭区间[a,b]。函数的作用是生成一个位于这个闭区间内的随机整数,返回值为生成的随机整数。randint( )函数的返回值是一个整数,该整数位于闭区间[a,b]之间,包括a和b。while循环是条件循环,只有当循环条件成立时,才执行循环体。while 关系表达式:语句或语句组。当程序中需要根据不同的条件判断来决定程序执行的走向时,可以使用if分支语句实现。其基本格式如下:if 条件:语句或语句组Aelse:语句或语句组B=为赋值符号,将右边赋值给左边变量。i+=1 相当于i=i+1,i-=1相当于 i=i-1。
本题考查python中while循环、条件语句、随机函数和程序的执行。
13.【答案】【小题1】2
【小题2】f3=f0+f1,迭代
【解析】(1)当 n=5 时,爬楼梯的方案数是 2,因为可以选择以下两种方式爬到顶端:先爬 2 级,然后再爬 3 级,总共 2 步。直接爬 3 级,然后再爬 2 级,总共 2 步。故答案为:2。
(2)这段代码的目的是计算爬 n 级台阶的方案数,其中 f0 表示爬到第 n-3 级的方案数,f1 表示爬到第 n-2 级的方案数,而 f3 表示爬到第 n 级的方案数。由于每次只能爬 2 级或 3 级,所以爬到第 n 级的方案数等于爬到第 n-2 级和第 n-3 级的方案数之和。故答案为:f3=f0+f1。这段代码使用了迭代算法,它使用循环来计算爬 n 级台阶的方案数。故答案为:迭代。
本题考查Python程序。迭代法 迭代法也被称为辗转法,是一种不断用变量的旧值递推新值的过程,在解决问题时总是重复利用一种方法。
这类题目难度较大,首先需要读懂题干所给提示信息的意思,然后根据所给程序段中上下文的意思来填写关键变量的表达式或者是变量的取值范围等等关键语句。
14.【答案】【小题1】2
【小题2】
【小题3】
【解析】解:(1)由题可知分组跳跃式升序冒泡排序,初始化步长为2,设置两个子序列:奇数位置的元素和偶数位置的元素。对奇数位置上和偶数位置上的元素分别进行冒泡排序,每次比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置,每次比较时跳跃2个位置,直到数组完全有序为止。对数组 a=[4,5,2,9,6,7,10,3,8,1]第一轮排序变为[2,5,4,7,6,3,8,1,10,9],第二轮排序变为[2,3,4,1,6,5,8,7,10,9],第三轮排序变为[2,1,4,3,6,5,8,7,10,9],则排序后的数组a=[2,1,4,3,6,5,8,7,10,9]。
(2)range( )函数的语法规则 range(start,stop,[step]),n是数组中元素的个数,外层循环控制比较多少轮,跳跃步长为2,则 for i in range(0,n,2);内层循环用于比较元素大小(奇数位置和偶数位置分开比较),从最后一个元素(对应位置为n-1)与前面开始比较,如果当前元素比它前面的元素小,则进行交换,将较小的数向左移动,则for j in range(n-1,i+1,-1);
(3)由题知步长为m,则for i in range(0,n,m),for j in range(n-1,i+m-1,-1)。
本题考查的是Python综合应用。
这类题目难度较大,首先需要读懂题干所给提示信息的意思,然后根据所给程序段中上下文的意思来填写关键变量的表达式或者是变量的取值范围等等关键语句。
15.【答案】【小题1】8
【小题2】
【小题3】
【小题4】
【解析】解:(1)根据如图所示数据,若输入推荐目标用户id为“1”,输入阈值为“4”,则推荐好友为1,2,5,6,7,8,9,10共有8位好友;(2)该处填写的是调用函数进行好友推荐,结合下面的语句可知变量为tj,所以输入tj=fenxi(id,p);(3)该处填写的是对角位置同样设置为1,所以表达式为r[int(j)-1][i]=1或 r[int(j)-1][i]=r[i][int(j)-1];(4)变量c表示好友的数量,如果满足“用户A和用户B不是好友,用户C分别是用户A和用户B的好友,则共同好友数量加1”,所以表达式是zj[id-1][j]==1 andzj[i][j]==1 and zj[id-1][i]==0;如果满足c>p,那么执行res.append(i+1),所以填写为c>p。
故答案为:(1)8
(2)tj=fenxi(id,p)
(3)r[int(j)-1][i]=1或 r[int(j)-1][i]=r[i][int(j)-1]
(4)zj[id-1][j]==1 andzj[i][j]==1 and zj[id-1][i]==0;c>p
本题考查的是python程序的调试与运行。程序实现的是从文件中读取用户id及好友列表后,处理后显示用户之间的关系;再输入推荐目标用户id和阈值p;最后显示向目标用户推荐的好友列表,详细解析如下。
这类题目难度较大,首先需要读懂题干所给提示信息的意思,然后根据所给程序段中上下文的意思来填写关键变量的表达式或者是变量的取值范围等等关键语句。
第1页,共1页