内容正文:
高二技术科目考试(2025.10)
第一部分信息技术(共50分)
考生注意:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须使用黑色字迹的签字笔或钢笔描黑。
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. “华为云”提供了一系列云计算服务,用户可以将文本、图片、视频等多种数据上传云端。用户使用端(移动终端)、芯(芯片)、云(云计算)协同架构且融合AI的鸿蒙原生智能,借助AI技术实现包括影像搜索、翻译等功能,并逐步扩展到全场景。如:根据人脸特征搜索照片;语音助手识别图片中的文章,并朗读;多平台用户信息共享等。下列关于华为“端、芯、云”中的数据描述,不正确的是( )
A. “云”处理的大数据都是结构化数据
B. “芯”处理的照片、视频、文字等都是数字化的
C. “端”中的数据具有价值,且随着时间迁移会发生变化
D. “云”是信息的载体,提供了信息存储、共享、协作等功能
【答案】A
【解析】
【详解】本题考查数据和信息。
“云”处理的大数据都是结构化数据:结构化数据通常指的是具有预定义格式和类型的数据,如数据库中的表格。然而,大数据不仅包括结构化数据,还包括半结构化(如日志文件)和非结构化数据(如文本、图片、音频和视频)。云计算平台确实可以处理结构化数据,但同样也能处理非结构化数据。因此,这个选项是不正确的。其它选项表述均正确,故正确答案为:选项A。
2. “华为云”提供了一系列云计算服务,用户可以将文本、图片、视频等多种数据上传云端。用户使用端(移动终端)、芯(芯片)、云(云计算)协同架构且融合AI的鸿蒙原生智能,借助AI技术实现包括影像搜索、翻译等功能,并逐步扩展到全场景。如:根据人脸特征搜索照片;语音助手识别图片中的文章,并朗读;多平台用户信息共享等。下列关于华为人工智能(AI)技术的应用描述,不合理的是( )
A. 鸿蒙原生智能的应用扩展体现了跨领域人工智能的特点
B. 语音助手朗读文章采用的是语音识别技术
C. 根据人脸搜索图像可以使用基于深度学习的人工智能实现
D. 人工智能技术推动人类社会进步同时也可能存在安全隐患
【答案】B
【解析】
【详解】本题考查人工智能相关内容。A选项,鸿蒙原生智能在多种场景下应用,如影像搜索、翻译、根据人脸特征搜索照片、语音助手识别图片中的文章等,涉及到图像、语音、文本等不同领域的数据处理,这种多领域的应用体现了跨领域人工智能的特点,描述合理。B选项,语音助手朗读文章的过程是先识别图片中的文字(这是图像识别和文字识别技术),然后再将识别出的文字转换为语音进行朗读(这是语音合成技术),而不仅仅是语音识别技术,描述不合理。C选项,深度学习在图像识别领域有广泛的应用,人脸特征的识别和基于人脸特征搜索图像是可以通过深度学习算法来实现的,描述合理。D选项,人工智能在很多方面推动了社会进步,如提高生产效率、改善生活便利性等,但同时也存在数据隐私泄露、算法偏见等安全隐患,描述合理。故本题答案是B选项。
3. “华为云”提供了一系列云计算服务,用户可以将文本、图片、视频等多种数据上传云端。用户使用端(移动终端)、芯(芯片)、云(云计算)协同架构且融合AI的鸿蒙原生智能,借助AI技术实现包括影像搜索、翻译等功能,并逐步扩展到全场景。如:根据人脸特征搜索照片;语音助手识别图片中的文章,并朗读;多平台用户信息共享等。下列关于数据安全的描述,正确的是( )
A. “云”端实时备份终端数据,能提高数据安全性 B. “云”端的数据是安全的,因此云计算不需要加密
C. 终端只要经过严格的安全测试,就不会出现安全问题 D. 一个账号共享给多个终端,不会造成数据安全问题
【答案】A
【解析】
【详解】本题考查数据安全。A选项正确,“云”端实时备份终端数据,可应对终端数据因硬件故障、误操作、病毒攻击等导致的丢失或损坏,从而提高数据安全性。B选项错误,即便云端有安全措施,数据在传输和存储中仍面临风险,如网络监听、黑客攻击,加密是保障数据安全的重要手段,云计算需加密。C选项错误,严格的安全测试虽能发现并修复部分漏洞,但新安全威胁不断出现,如新型病毒等,所以经过测试的终端也可能出现安全问题。D选项错误,一个账号共享给多个终端,若其中一个终端安全措施不当被攻破,攻击者就能通过该账号访问所有共享账号终端的数据,造成数据泄露。因此,本题选择A。
4. 某算法的部分流程图如图所示。执行这部分流程,输出s和i的值分别是( )
A. 30 11 B. 30 9 C. 28 11 D. 26 9
【答案】A
【解析】
【详解】本题考查的是流程图识读。阅读程序可知s=0+1*2+3*0+5*2+7*0+9*2+……,直到s>15时,输出s和i,故最终s=30,i=11。选项A正确。
5. 已知一棵二叉树如图所示,下列说法正确的是( )
A. 前序遍历的结果为A-B-C-D-E-F
B. 树的高度是4,节点F是唯一的叶子节点
C. 中序、后序的遍历方式,节点F先于节点D、E访问
D. 使用数组存储可以表示为['A', 'B', 'C', '', '', 'D', 'E', 'F']
【答案】C
【解析】
【详解】本题考查二叉树的遍历、高度、叶子节点及顺序存储。A选项错误,前序遍历是根-左-右,该二叉树前序遍历结果应为A-B-C-D-F-E,并非A-B-C-D-E-F。B选项错误,树的高度是4,但叶子节点是B、E、F,并非只有F。C选项正确,中序遍历顺序为B-A-F-D-C-E,后序遍历顺序为B-F-D-E-C-A,节点F均先于节点D、E访问。D选项错误,二叉树顺序存储按层序及节点位置关系,D的左孩子F应存储在对应索引11的位置,并非索引7,该数组表示不符合顺序存储规则。因此,本题选择C选项。
6. 图像a.bmp为一幅未经压缩的1024×384像素、16色的BMP图像,图像b.bmp为一幅未经压缩的512×768像素、8位色的BMP图像,图像a.bmp与b.bmp存储容量之比约为( )
A. 1:1 B. 1:2 C. 2:1 D. 4:1
【答案】B
【解析】
【详解】本题考查位图图像存储容量的计算。位图存储容量计算公式为存储容量(字节)= 像素总数 × 每个像素占用位数 / 8,图像a.bmp的像素总数为1024×384,16色图像每个像素占用log₂16=4位,其存储容量=1024×384×4/8=1024×384×0.5=196608字节;图像b.bmp的像素总数为512×768,8位色图像每个像素占用8位,其存储容量=512×768×8/8=512×768=393216字节;两者存储容量之比为196608:393216=1:2。因此,本题选择B选项。
7. 与表达式not x<0 or y%2==0具有相同功能的是( )
A. x>=0 and y%2 == 1 B. x>=0 and y//2 == 0
C x>=0 or y//2 == int(y/2) D. x>=0 or y//2 == y/2
【答案】D
【解析】
【详解】本题考查python运算符。A选项错误,y%2==1表示y为奇数,且逻辑运算符为and,与原表达式中y%2==0(偶数)、or不符;B选项错误,y//2==0仅表示y为0或1,无法体现偶数,且逻辑运算符为and,与原表达式的or不符;C选项错误,对于整数y来说,y//2的结果与int(y/2)的结果始终一致,无法判断y是否为偶数,不符合原表达式中y%2==0的逻辑;D选项正确,not x<0等价于x>=0,y//2 == y/2等价于y为偶数(偶数的整数除法结果与浮点数除法结果相等,奇数则不相等),且逻辑运算符为or,与原表达式功能完全一致。因此,本题选择D选项。
8. 若元素入栈的顺序为1,2,3,4,5,6,且不允许连续三次入栈,则可能的出栈序列为( )
A. 2,4,3,1,6,5 B. 2,5,4,6,3,1 C. 2,3,5,1,6,4 D. 1,2,3,6,5,4
【答案】A
【解析】
【详解】本题考查栈操作。
选项B,1、2入栈,2出栈。假设下一个出栈为5,需要3、4、5入栈。不符合题意。选项C,1、2入栈,2出栈。3入栈,3出栈。4、5入栈,5出栈。现在4为栈顶,1无法先于4出栈。不符合题意。选项D,假如6要出栈,则4、5、6要入栈。故不符合题意。故正确答案为:选项A。
9. 有1个队列,队首到队尾的元素依次位“a”,“b”,“c”,“d”。有2个操作:P表示出队并输出;Q表示出队并入队。现经过一系列操作后输出“a”,“c”,“b”,“d”,则经过的操作依次为( )
A. PQPQPP B. PQPPQP C. PQQPQPP D. QPQPQQ
【答案】A
【解析】
【详解】本题考查队列。首先明确初始队列元素顺序为队首到队尾:a、b、c、d;P操作是出队并输出,Q操作是出队后将该元素重新入队。目标输出序列为a、c、b、d,逐一分析选项:
A选项:第1步P:出队a并输出(输出第1个元素a),队列变为[b,c,d];第2步Q:出队b并将其入队,队列变为[c,d,b];第3步P:出队c并输出(输出第2个元素c),队列变为[d,b];第4步Q:出队d并将其入队,队列变为[b,d];第5步P:出队b并输出(输出第3个元素b),队列变为[d]; 第6步P:出队d并输出(输出第4个元素d);最终输出序列为a、c、b、d,符合目标。
B选项:第1步P输出a,队列[b,c,d];第2步Q后队列[c,d,b];第3步P输出c;第4步P输出d(输出第3个元素d,偏离目标);后续操作输出b,最终序列为a、c、d、b,不符合。
C选项:第1步P输出a;第2、3步Q操作后队列变[d,b,c];第4步P输出d(输出第2个元素为d,偏离目标);后续输出c、b,最终序列为a、d、c、b,不符合。
D选项:第1步Q操作后队列变为[b,c,d,a];第2步P输出b(输出第1个元素为b,偏离目标);且仅2次P操作,输出数量不足,不符合。 因此,本题选择A选项。
10. 有如下Python程序段:
n=int (input ())
mch={0:6, 1:2, 2:5, 3:5, 4:5, 5:5, 6:6, 7:3, 8:7, 9:6}
count=0
while n!=0:
count+=mch[n%10]
n//=10
print (count)
若输入的值为“208”,执行程序段后,输出的结果是( )
A. 208 B. 567 C. 10 D. 18
【答案】D
【解析】
【详解】本题考查Python程序设计相关内容。分析代码段,输入208,其执行过程为:
(1)n=208!=0,进入循环执行:count=count+mch[208%10]=0+mch[8]=7,n=n//10=208//10=20;
(2)n=20!=0,进入循环执行:count=count+mch[20%10]=7+mch[0]=7+6=13,n=n//10=20//10=2;
(3)n=2!=0,进入循环执行:count=count+mch[2%10]=13+mch[2]=13+5=18,n=n//10=2//10=0;
n=0循环结束,此时count值为18。故本题答案是D选项。
11. 列表d有n个整型元素,输出列表中最长连续递增序列的长度。小明编写的Python程序段如下:
k=1; lmax=1; n=len(d)
for i in range(1, n):
if d[i]>d[i-1]:
k+=1
else:
if k>lmax:
1max=k
k=1
print(lmax)
该程序段在某些情况下无法得到符合题意的结果,下列4组数据中能测试出这一问题的是( )
A. [1, 4, 5, 1, 2] B. [1, 2, 3, 4, 1] C. [1, 5, 1, 2, 3] D. [5, 4, 3, 2, 1]
【答案】C
【解析】
【详解】本题考查Python程序设计相关内容。分析代码段及4个选项可知,ABD选项均可以得出正确结论;
C选项,最长连续递增序列为:1,2,3,lmax值应该为3,但代码段运行后,其结果为2,具体情况:循环开始,(1)当i=1时,d[1]>d[0]成立,k+1,k值为2,lmax没变化,值为1;(2)当i=2时,d[2]>d[1]不成立,此时k=2,k>lmax成立,执行lmax=k,lmax值变为2,且k变为1(k=1);(3)当i=3时,d[3]>d[2]成立,k+1,k值为2,lmax没变化,值为2;(4)当i=4时,d[4]>d[3]成立,k+1,k=3,lmax没变化,值为2;循环结束。此实例说明该代码段在某些情况下无法得到符合题意的结果。故本题答案是C选项。
12. 使用列表a模拟链表结构(节点数大于0),每个节点包含数据区域和指针区域,head为头指针。链表中各节点已按数据区域中的数值由小到大排列。现要计算链表中的中位数,处在链表最中间位置的数叫做中位数。说明:当数据元素为奇数个时中位数为最中间的数,偶数个时中位数为最中间两个数的平均数。实现功能的Python程序如下,划线处应填入的正确代码为( )
fast=slow=head
while fast!=-1 and ① :
p=slow
slow=a[slow][1]
fast=a[a[fast][1]][1]
if ② :
mid=(a[p][0] +a[slow][0])/2
else:
mid=a[slow][0]
print("中位数是:", mid)
A. ①slow!=-1 ②fast!=-1 B. ①a[slow][1]!=-1 ②fast==-1
C. ①a[fast][1]!=-1 ②fast!=-1 D. ①a[fast][1]!=-1 ②fast==-1
【答案】D
【解析】
【详解】本题考查的是链表的应用。程序的思想是:对链表按1:3的比例,不段扩大,直到链表尾结束。如果数据项为偶数,查找结束刚好是fast!=-1,如果是奇数项,则按1:3的比例扩大后,最后还会剩一项,故①处应为:a[fast][1]!=-1 ,由mid=(a[p][0] +a[slow][0])/2可知,数据项为偶数,查找结束刚好是fast!=-1,故②处为:ast==-1。选项D正确。
二、非选择题(本大题共3小题,其中第13小题8分,第14小题10分,第15小题8分,共26分)
13. 某照明设备可控制n盏(n>2)霓虹灯状态,每盏灯的编号依次为0~n-1,状态数据存入列表light(0表示灯灭,1表示灯亮)。
编写程序,每隔固定时间控制霓虹灯状态并输出。亮灭规则为:A.某时刻从第3盏灯开始,灯的状态取决于它的前两盏灯的状态之和(若和为奇数则亮,偶数则灭);B.若亮灯数量大于霓虹灯总数的50%,则将每一盏灯的状态取反,否则将第一盏灯状态取反;重复上述操作。请回答下列问题:
(1)若light初始为[1,0,0,0,0],经过规则A后编号为3的霓虹灯状态值为____(填数字:0/1)。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读取霓虹灯的总数,存入n,代码略
light=[0]*n #初始化灯的状态
while True:
for i in range(2,n):
①____
if m%2 == 0:
light[i]=0
else:
light[il=1
#输出霓虹灯当前状态,代码略
#延时1秒,代码略
count = sum(light)
if ②____:
j=0
while j < n:
③____
j += 1
#输出霓虹灯当前状态,代码略
else:
light[0]=1-light[0]
#延时1秒,代码略
【答案】 ①. 1 ②. m=light[i-1] + light[i-2] ③. count/n > 0.5或count > n//2或count > n/2或其他等价答案 ④. light[j]=1-light[j]或light[j]=abs(light[j]-1)或其他等价答案
【解析】
【详解】本题考查循环结构的程序实现。
(1) 根据亮灭规则 A,从第 3 盏灯开始,灯的状态取决于它前两盏灯状态之和(奇数亮,偶数灭)。已知light初始为[1,0,0,0,0],编号为 3 的灯前两盏灯状态值之和为1 + 0 = 1(奇数),所以经过规则 A 后编号为 3 的霓虹灯状态值为 1。
(2) ①在根据前两盏灯状态确定当前灯状态循环中,light[i]应根据light[i - 1]和light[i - 2]的和的奇偶性来确定,所以应填入m= light[i - 1] + light[i - 2] 。 ②在判断亮灯数量与霓虹灯总数关系的部分,若亮灯数量大于总数的 50%,所以应填入count/n > 0.5或count > n//2或count > n/2或其他等价答案;③条件成立时要将每一盏灯的状态取反;这里是对每一盏灯状态取反的循环部分,所以应填入light[j] = 1 - light[j]或light[j]=abs(light[j]-1)或其他等价答案。
14. 小明设计了一个加密小程序。该程序的加密过程是:
步骤1:首先将输入的明文内容从中间切割成两部分(若长度n为偶数,分割为:[1..n//2]、[n//2+1..n];若长度n为奇数,分割为:[1..n//2+1]、[n//2+2..n]),再将后面部分字母依次逐个插入到前面字符后边,组成一段密文。
步骤2:将步骤1完成的密文的每个字符转换成十进制ASCI码值(范围为:0~127),然后循环后移13个位置,确保数值范围仍为0~127,如字符“x”的十进制ASCI码值为120,后移13个位置,结果为采用上述方式加密后的密文表示成一串数值,每个数值之间用“-”连接。
例如:明文“Jiaxing”生成密文过程如下:
明文
1
2
3
4
5
6
7
J
i
a
x
i
n
g
步骤1
将5-7位置字符依次、逐个插入到1-3后面
J
i
i
n
a
g
x
步骤2
74
105
105
110
97
103
120
后移13个位置,数值范围仍为0~127
87
118
118
123
110
116
5
密文
87-118-118-123-110-116-5
注:大写字母“A”的ASCI码值为65,小写字母“a”的ASCII码值为97.现据此加密过程编写Python程序,程序运行如图所示。
请输入明文:Jiaxing
步骤1后:Jiinagx
密文为:87-118-118-123-110-116-5
请回答以下问题:
(1)程序运行时,如输入明文“ShuXue”(不含引号),则步骤1后的密文是:____
(2)实现上述加密功能的Python程序段如下,请在划线处填入合适的代码。____、____、____
(3)程序加框处代码有错,请改正。____
def move(st):#实现步骤1的函数
n=len(st)
ans=""
k=①
if n%2 == 0:
for i in range(k):
ans=ans+st[i]+st[i+k]
else:
for i in range(k-1):
ans=ans+st[i]+st[i+k]
ans=②
return ans
def encryption(st): #实现步骤2的函数
ans=""
for i in range(len(st)):
k=ord(st[i])
kl=③
ans=ans+str(kl)+"-"
return #加框处代码
#主程序
s=input("请输入明文:")
sl=move(s)
s2=encryption(s1)
print("步骤1后:",s1)
print("密文为:",s2)
【答案】 ①. SXhuue ②. (n+1)//2 ③. ans+st[n//2] ④. (k+13)%128 ⑤. ans[:len(ans)-1]
【解析】
【详解】本题考查字符串操作与加密算法实现。
(1)输入明文“ShuXue”,长度为6(偶数)。按照加密步骤1,将字符串从中间分割为前后两部分,前部分为Shu,后部分为Xue,然后将后部分字符依次逐个插入到前部分字符后面,形成新字符串。具体过程为:S+X → SX,h+u → hu,u+e → ue,最终结果为SXhuue。因此该空答案为:SXhuue。
(2)①处:该处用于确定前部分长度k。根据规则,当长度为偶数时,k = n//2;当长度为奇数时,k = n//2 + 1。使用表达式(n+1)//2可以统一两种情况,因为对于偶数n,(n+1)//2 = n//2;对于奇数n,(n+1)//2 = n//2+1。因此该空答案为:(n+1)//2 。②处:该处处理长度为奇数的情况。循环中已将前k-1个字符与后部分字符交错拼接,但前部分还剩最后一个字符(索引为n//2)未添加,因此需要将其追加到ans末尾。因此该空答案为:ans + st[n//2] 。③处:该处实现ASCII码值循环后移13位。字符的ASCII码值k加上13后,需对128取模以确保结果在0~127范围内。因此该空答案为:(k+13)%128。
(3)加框处代码:encryption函数中,每次循环向ans添加数值和“-”,最终ans末尾会多出一个“-”。原代码ans[:len(ans)]返回整个字符串,未去除多余的“-”。应改为ans[:len(ans)-1]。
15. 某餐厅餐桌设置如下表:
餐桌型号
2人小桌
4人方桌
6人大方桌
12人大圆桌
餐桌数量
8
15
10
4
平均就餐时间(分钟)
25
45
60
80
有客人来就餐时其叫号系统会自动生成一个号码,并根据人数安排餐桌型号;当对应餐桌型号有空桌时,按餐桌编号(由小到大)即时分配餐桌安排客人就餐;当对应餐桌型号没有空桌时,客人按先后顺序排队。程序部分运行界面如下:
(1)定义如下gettype()函数,功能为输入客人人数,返回对应桌型,请在程序划线处填入合适代码。
def gettype(num):
type=-1
for i in range(len(size)):
if num<=size[i]:
type=i
____
return type
(2)定义如下checktable()函数,功能为输入桌型,返回对应桌型空桌的编号,返回值类型为列表,请在程序划线处填入合适代码。
def checktable(n):
ans=[]
for i in range(nums[n]):
if ____:
ans.append(i)
return ans
(3)解决上述问题的主程序部分代码如下,请在划线处填入合适代码。
size=[2,4,6,12] #每种桌型最大就餐人数
nums=[8,15,10,4] #每种桌型的餐桌数量
times=[25,45,60,80] #每种桌型平均就餐时间
flags=[[True]*nums[i] for i in range(4)] #标记每张桌子的初始状态
s_time=10*60*60 #开始营业时间——10 点整,转化为秒
e_time=14*60*60 #结束营业时间——14 点整,转化为秒
maxn=50 #假设队列已经足够深
qc=[[0]*maxn for i in range(4)] #循环队列
now_time=s_time
id=0
head,tail=[0]*4,[0]*4
while now_time<e_time:
number=getinfo()#调用函数 getinfo(),获取客人人数
if number>0:
id+=1
type=gettype(number) #根据就餐人数确定餐桌类型
if type!=-1:
qc[type][tail[type]]=id
tail[type]=(tail[type]+1)%maxn
qc_len=①____
print(id,"号客人,给您安排的是",size[type],"人桌,前面还有",qc_len-1,"人在等位")
else:
print(id,"号客人,非常抱歉,没有适合您的桌型!")
for i in range(4):
tables=checktable(i)
if ②____:
flags[i][tables[0]]=False#入座第一个空桌
print(qc[i][head[i]],"号客人请用餐-->",size[i],"人桌",tables[0],"号")
head[i]=(head[i]+1)%maxn
now_time+=1
#更新每张餐桌的就餐情况,代码略
【答案】 ①. break ②. flags[n][i]==True ③. (tail[type]-head[type]+maxn)%maxn ④. len(tables)>0 and head[i]!=tail[i] 或 tables and head[i]!=tail[i]
【解析】
【详解】本题考查Python程序设计相关内容。本题涉及到循环队列的常见操作、桶排序、自定义函数等知识点。
第(1)小题,自定义函数gettype()的作用是输入人数返回对应的桌型,阅读主程序可知,数组size存储了四种桌型能够容纳的最大人数,因此此处要遍历各种桌型,比较当前输入的客人人数num与对应桌型可容纳人数size[i]的大小关系,如果能够容纳,则返回桌型对应的索引i并提前结束遍历以提高算法效率。故①处答案为:break。
第(2)小题,自定义函数checktable()的作用是得到对应桌型的编号列表。参数n表示桌型,结合主程序可知,数组nums存储了四种桌型的总量,数组flags存储了不同桌型中每一张桌子的使用情况,状态为True表示空桌,故此处需要遍历数组flags中对应桌型为n子列表中的元素,并将空桌对应的索引存储至数组ans中作为返回值。故②处答案为:flags[n][i]==True。
第(3)小题,考查循环队列的常见操作与状态判断。填空①处需要统计当前桌型type队列的元素个数,根据题意可知,该队列的队首指针为head[type],队尾指针为tail[type],程序变量说明循环队列的最大容量为maxn,可得出当前桌型type队列的元素个数为:(tail[type]-head[type]+maxn)%maxn,故③处答案为:(tail[type]-head[type]+maxn)%maxn。填空②处处理出队情况,经过自定义函数checktable判定后,若对应桌型有空余桌号且桌型队列中有等候元素,则进行出队操作,故④处答案为:len(tables)>0 and head[i]!=tail[i]。
第1页/共1页
学科网(北京)股份有限公司
$
高二技术科目考试(2025.10)
第一部分信息技术(共50分)
考生注意:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须使用黑色字迹的签字笔或钢笔描黑。
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. “华为云”提供了一系列云计算服务,用户可以将文本、图片、视频等多种数据上传云端。用户使用端(移动终端)、芯(芯片)、云(云计算)协同架构且融合AI的鸿蒙原生智能,借助AI技术实现包括影像搜索、翻译等功能,并逐步扩展到全场景。如:根据人脸特征搜索照片;语音助手识别图片中的文章,并朗读;多平台用户信息共享等。下列关于华为“端、芯、云”中的数据描述,不正确的是( )
A. “云”处理的大数据都是结构化数据
B. “芯”处理的照片、视频、文字等都是数字化的
C. “端”中的数据具有价值,且随着时间迁移会发生变化
D. “云”是信息的载体,提供了信息存储、共享、协作等功能
2. “华为云”提供了一系列云计算服务,用户可以将文本、图片、视频等多种数据上传云端。用户使用端(移动终端)、芯(芯片)、云(云计算)协同架构且融合AI的鸿蒙原生智能,借助AI技术实现包括影像搜索、翻译等功能,并逐步扩展到全场景。如:根据人脸特征搜索照片;语音助手识别图片中的文章,并朗读;多平台用户信息共享等。下列关于华为人工智能(AI)技术的应用描述,不合理的是( )
A. 鸿蒙原生智能应用扩展体现了跨领域人工智能的特点
B. 语音助手朗读文章采用的是语音识别技术
C. 根据人脸搜索图像可以使用基于深度学习人工智能实现
D. 人工智能技术推动人类社会进步同时也可能存在安全隐患
3. “华为云”提供了一系列云计算服务,用户可以将文本、图片、视频等多种数据上传云端。用户使用端(移动终端)、芯(芯片)、云(云计算)协同架构且融合AI的鸿蒙原生智能,借助AI技术实现包括影像搜索、翻译等功能,并逐步扩展到全场景。如:根据人脸特征搜索照片;语音助手识别图片中的文章,并朗读;多平台用户信息共享等。下列关于数据安全的描述,正确的是( )
A. “云”端实时备份终端数据,能提高数据的安全性 B. “云”端的数据是安全的,因此云计算不需要加密
C. 终端只要经过严格的安全测试,就不会出现安全问题 D. 一个账号共享给多个终端,不会造成数据安全问题
4. 某算法的部分流程图如图所示。执行这部分流程,输出s和i的值分别是( )
A. 30 11 B. 30 9 C. 28 11 D. 26 9
5. 已知一棵二叉树如图所示,下列说法正确的是( )
A. 前序遍历的结果为A-B-C-D-E-F
B. 树的高度是4,节点F是唯一的叶子节点
C. 中序、后序的遍历方式,节点F先于节点D、E访问
D. 使用数组存储可以表示为['A', 'B', 'C', '', '', 'D', 'E', 'F']
6. 图像a.bmp为一幅未经压缩的1024×384像素、16色的BMP图像,图像b.bmp为一幅未经压缩的512×768像素、8位色的BMP图像,图像a.bmp与b.bmp存储容量之比约为( )
A. 1:1 B. 1:2 C. 2:1 D. 4:1
7. 与表达式not x<0 or y%2==0具有相同功能的是( )
A. x>=0 and y%2 == 1 B. x>=0 and y//2 == 0
C. x>=0 or y//2 == int(y/2) D. x>=0 or y//2 == y/2
8. 若元素入栈的顺序为1,2,3,4,5,6,且不允许连续三次入栈,则可能的出栈序列为( )
A. 2,4,3,1,6,5 B. 2,5,4,6,3,1 C. 2,3,5,1,6,4 D. 1,2,3,6,5,4
9. 有1个队列,队首到队尾元素依次位“a”,“b”,“c”,“d”。有2个操作:P表示出队并输出;Q表示出队并入队。现经过一系列操作后输出“a”,“c”,“b”,“d”,则经过的操作依次为( )
A. PQPQPP B. PQPPQP C. PQQPQPP D. QPQPQQ
10. 有如下Python程序段:
n=int (input ())
mch={0:6, 1:2, 2:5, 3:5, 4:5, 5:5, 6:6, 7:3, 8:7, 9:6}
count=0
while n!=0:
count+=mch[n%10]
n//=10
print (count)
若输入的值为“208”,执行程序段后,输出的结果是( )
A 208 B. 567 C. 10 D. 18
11. 列表d有n个整型元素,输出列表中最长连续递增序列的长度。小明编写的Python程序段如下:
k=1; lmax=1; n=len(d)
for i in range(1, n):
if d[i]>d[i-1]:
k+=1
else:
if k>lmax:
1max=k
k=1
print(lmax)
该程序段在某些情况下无法得到符合题意结果,下列4组数据中能测试出这一问题的是( )
A. [1, 4, 5, 1, 2] B. [1, 2, 3, 4, 1] C. [1, 5, 1, 2, 3] D. [5, 4, 3, 2, 1]
12. 使用列表a模拟链表结构(节点数大于0),每个节点包含数据区域和指针区域,head为头指针。链表中各节点已按数据区域中的数值由小到大排列。现要计算链表中的中位数,处在链表最中间位置的数叫做中位数。说明:当数据元素为奇数个时中位数为最中间的数,偶数个时中位数为最中间两个数的平均数。实现功能的Python程序如下,划线处应填入的正确代码为( )
fast=slow=head
while fast!=-1 and ① :
p=slow
slow=a[slow][1]
fast=a[a[fast][1]][1]
if ② :
mid=(a[p][0] +a[slow][0])/2
else:
mid=a[slow][0]
print("中位数是:", mid)
A. ①slow!=-1 ②fast!=-1 B. ①a[slow][1]!=-1 ②fast==-1
C. ①a[fast][1]!=-1 ②fast!=-1 D. ①a[fast][1]!=-1 ②fast==-1
二、非选择题(本大题共3小题,其中第13小题8分,第14小题10分,第15小题8分,共26分)
13. 某照明设备可控制n盏(n>2)霓虹灯状态,每盏灯的编号依次为0~n-1,状态数据存入列表light(0表示灯灭,1表示灯亮)。
编写程序,每隔固定时间控制霓虹灯状态并输出。亮灭规则为:A.某时刻从第3盏灯开始,灯的状态取决于它的前两盏灯的状态之和(若和为奇数则亮,偶数则灭);B.若亮灯数量大于霓虹灯总数的50%,则将每一盏灯的状态取反,否则将第一盏灯状态取反;重复上述操作。请回答下列问题:
(1)若light初始为[1,0,0,0,0],经过规则A后编号为3的霓虹灯状态值为____(填数字:0/1)。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读取霓虹灯的总数,存入n,代码略
light=[0]*n #初始化灯的状态
while True:
for i in range(2,n):
①____
if m%2 == 0:
light[i]=0
else:
light[il=1
#输出霓虹灯当前状态,代码略
#延时1秒,代码略
count = sum(light)
if ②____:
j=0
while j < n:
③____
j += 1
#输出霓虹灯当前状态,代码略
else:
light[0]=1-light[0]
#延时1秒,代码略
14. 小明设计了一个加密小程序。该程序的加密过程是:
步骤1:首先将输入的明文内容从中间切割成两部分(若长度n为偶数,分割为:[1..n//2]、[n//2+1..n];若长度n为奇数,分割为:[1..n//2+1]、[n//2+2..n]),再将后面部分字母依次逐个插入到前面字符后边,组成一段密文。
步骤2:将步骤1完成的密文的每个字符转换成十进制ASCI码值(范围为:0~127),然后循环后移13个位置,确保数值范围仍为0~127,如字符“x”的十进制ASCI码值为120,后移13个位置,结果为采用上述方式加密后的密文表示成一串数值,每个数值之间用“-”连接。
例如:明文“Jiaxing”生成密文过程如下:
明文
1
2
3
4
5
6
7
J
i
a
x
i
n
g
步骤1
将5-7位置字符依次、逐个插入到1-3后面
J
i
i
n
a
g
x
步骤2
74
105
105
110
97
103
120
后移13个位置,数值范围仍为0~127
87
118
118
123
110
116
5
密文
87-118-118-123-110-116-5
注:大写字母“A”的ASCI码值为65,小写字母“a”的ASCII码值为97.现据此加密过程编写Python程序,程序运行如图所示。
请输入明文:Jiaxing
步骤1后:Jiinagx
密文为:87-118-118-123-110-116-5
请回答以下问题:
(1)程序运行时,如输入明文“ShuXue”(不含引号),则步骤1后的密文是:____
(2)实现上述加密功能的Python程序段如下,请在划线处填入合适的代码。____、____、____
(3)程序加框处代码有错,请改正。____
def move(st):#实现步骤1的函数
n=len(st)
ans=""
k=①
if n%2 == 0:
for i in range(k):
ans=ans+st[i]+st[i+k]
else:
for i in range(k-1):
ans=ans+st[i]+st[i+k]
ans=②
return ans
def encryption(st): #实现步骤2的函数
ans=""
for i in range(len(st)):
k=ord(st[i])
kl=③
ans=ans+str(kl)+"-"
return #加框处代码
#主程序
s=input("请输入明文:")
sl=move(s)
s2=encryption(s1)
print("步骤1后:",s1)
print("密文为:",s2)
15. 某餐厅餐桌设置如下表:
餐桌型号
2人小桌
4人方桌
6人大方桌
12人大圆桌
餐桌数量
8
15
10
4
平均就餐时间(分钟)
25
45
60
80
有客人来就餐时其叫号系统会自动生成一个号码,并根据人数安排餐桌型号;当对应餐桌型号有空桌时,按餐桌编号(由小到大)即时分配餐桌安排客人就餐;当对应餐桌型号没有空桌时,客人按先后顺序排队。程序部分运行界面如下:
(1)定义如下gettype()函数,功能为输入客人人数,返回对应桌型,请在程序划线处填入合适代码。
def gettype(num):
type=-1
for i in range(len(size)):
if num<=size[i]:
type=i
____
return type
(2)定义如下checktable()函数,功能为输入桌型,返回对应桌型空桌的编号,返回值类型为列表,请在程序划线处填入合适代码。
def checktable(n):
ans=[]
for i in range(nums[n]):
if ____:
ans.append(i)
return ans
(3)解决上述问题的主程序部分代码如下,请在划线处填入合适代码。
size=[2,4,6,12] #每种桌型最大就餐人数
nums=[8,15,10,4] #每种桌型的餐桌数量
times=[25,45,60,80] #每种桌型平均就餐时间
flags=[[True]*nums[i] for i in range(4)] #标记每张桌子的初始状态
s_time=10*60*60 #开始营业时间——10 点整,转化为秒
e_time=14*60*60 #结束营业时间——14 点整,转化为秒
maxn=50 #假设队列已经足够深
qc=[[0]*maxn for i in range(4)] #循环队列
now_time=s_time
id=0
head,tail=[0]*4,[0]*4
while now_time<e_time:
number=getinfo()#调用函数 getinfo(),获取客人人数
if number>0:
id+=1
type=gettype(number) #根据就餐人数确定餐桌类型
if type!=-1:
qc[type][tail[type]]=id
tail[type]=(tail[type]+1)%maxn
qc_len=①____
print(id,"号客人,给您安排的是",size[type],"人桌,前面还有",qc_len-1,"人在等位")
else:
print(id,"号客人,非常抱歉,没有适合您的桌型!")
for i in range(4):
tables=checktable(i)
if ②____:
flags[i][tables[0]]=False#入座第一个空桌
print(qc[i][head[i]],"号客人请用餐-->",size[i],"人桌",tables[0],"号")
head[i]=(head[i]+1)%maxn
now_time+=1
#更新每张餐桌的就餐情况,代码略
第1页/共1页
学科网(北京)股份有限公司
$