精品解析:浙江省宁波市九校2024-2025学年高二上学期联考期末考试技术试题-高中信息技术

标签:
精品解析文字版答案
2025-01-22
| 2份
| 21页
| 354人阅读
| 3人下载

内容正文:

绝密★考试结束前 宁波市2024学年第一学期期末九校联考高二技术试题 本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷满分100分,考试时间90分钟。考生须知: 1.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。 2.选择题的答案须用2B铅笔将答题纸上对应题目的答案标号涂黑,如要改动,须将原填涂处用橡皮擦净。 3.非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。 第一部分:信息技术(50分) 一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分) 1. 下列关于数据、信息和知识的说法中,不正确的是( ) A. 数据是信息的载体 B. 同一种信息可以被不同接收者获取,但需要按照先后顺序获取 C. 信息经过加工后可能产生新的信息,甚至是虚假的信息 D. 相同的数据可以承载不同的信息,并且可以用不同的载体记录 2. 下列关于人工智能的说法不正确的是( ) A 深度学习不需要事先手工构造知识库 B. 强化学习是基于问题引导下的人工智能方法 C. 人工智能目前无法完全替代人类的作用 D. AlphaGo从围棋跨界到电力控制领域,属于混合增强智能 3. 下列关于数制和编码的说法正确的是( ) A. 偶数进制下末位是偶数的数,转换成十进制后一定是偶数 B. 奇数进制下末位是奇数的数,转换成十进制后一定是奇数 C. 英文字母和数字在电脑中一定是用ASCII码存储 D. GB2312编码的一个字符需要用2个字节存储,且每个字节最高位均为0 4. 下列有关大数据及数据处理的说法,不正确的是( ) A. 大数据分析更加注重事物的相关性,而不强调探求因果关系 B. 对于数据能够接受有一定的错误,不再追求所有数据的准确性 C. 大数据分析时一般采用枚举的思想,并对全体数据进行分析 D. 大数据中各种结构化、半结构化、非结构化数据共存 5. 下列对于数据结构的说法中,不正确的是( ) A. 解决同一个问题可以用不同的数据结构,且效率可能不同 B. 用栈存储数据时,数据从栈顶进栈,从栈顶出栈 C. 浏览器中页面的后退和前进操作,其实现思路和队列相似 D. 循环队列是首尾相连的队列,但数据入队时也需要考虑溢出的问题 6. 下列表达式的值和其他三项不同的是( ) A. len('123'*3)//2 == 4 B. '20'>'9' and '12' in '1234' C. abs(int(-3.7))>3 D. chr((int('2333')//10%10+7)%10+ord('0')) == 0 7. 已知元素的进栈顺序是a、b、c、d、e、f,以下出栈顺序不可能的是( ) A. a、b、c、d、e、f B. a、d、e、c、f、b C. c、d、f、e、a、b D. e、d、c、b、a、f 8. 已知字符串s="abc"+"defg"[::-1],则s[-2::-2]的值为( ) A. 'fdb' B. 'bdf' C. 'e' D. 'egb' 9. 有如下Python程序段: a=10 if a> 10: a //= 2 elif a>5: a -= 2 elif a>0: a += 3 if a> -10: a*=2 print(chr (a % 26+97)) 该程序运行后输出的结果为( ) A. k B. i C. m D. q 10. 定义如下递归函数,计算正整数n的每位数字值和,例如n=123,函数返回值为6。 def f(n): x=(1) if n==0: return n else: y=(2) return(3) 上述程序段中划线处可选代码为( ) ①n%10 ②n//10 ③x+f(n-y) ④x+f(y) A. ①②③ B. ①②④ C. ②①③ D. ②①④ 11. 有如下Python程序段: import random a=[0]*6 i=0 while i<6: a[i]=random.randint(1,10) if i % 3==0 or a[i] % 2==i % 2: i+=1 print(a) 该程序运行后,下列选项中可能是输出结果的是( ) A. [17,10,8,6,3] B. [0,1,8,3,4,5] C. [5,3,6,1,1,4] D. [6,8,1,5,8,9] 12. 有如下Python程序段: s="ABCDEF";head=0;tail=0 que=[""]*10 for i in range(len(s)): if i %2 == 0: que[tail]=s[len(s)-1-i] else: que[tail]=s[i-1] tail=tail+1 for i in range(len(s)): print(que[head],end="") head=head+1 该程序运行后输出的结果为( ) A. FAEBDC B. FADCBE C. FBDDBF D. FDBACE 二、非选择题(本大题共3小题,其中第13小题9分,第14小题7分,第15小题10分,共26分) 13. 为了更好地了解同学们的学习状况,小x老师决定对所有学生的期末考试成绩进行统计和分析。 小x老师为此找到了每个学生每个科目的成绩,现将学生考试成绩导出存放在文件“chengji.xlsx”中(部分截图如图a所示)。 图a (1)小x老师编写了python程序来读取并统计学生的成绩。现在要对总成绩大于450分的学生进行嘉奖,要求输出符合条件的学生姓名,请在划线处填入合适代码。 import pandas as pd import matplotlibpyplot as plt plt.rc("font",**\{"fami1y":"SimHei:}) #设置中文字体 df=pd.______("chengji.xlsx") df2=df.groupby("姓名",as_index=False).成绩.sum() df2=df2[______] for i in______: print(i) (2)继续编写程序生成技术成绩前三名学生的柱形图,如图b所示,请在划线处填入合适代码。 图b df3=df[df.科目=='技术'].sort_values('成绩',ascending=False).______ plt.bar(df3.姓名,df3.成绩,label='scores') plt.title( ) plt.ylim(60100) plt.xlabel("学生姓名") plt.ylabel("成绩") plt.legend() plt.show() 14. 小y同学最近迷上了数字相关的游戏,现在他在探索n阶幻方的填写方式。幻方是一种中国传统游戏,n阶幻方要求将数字1~n*n安排在n*n大小的正方形格子中,使每行、每列和对角线上的数字之和都相等。例如图a是3阶幻方的一种填写方式。 图a 小y只是一个初学者,因此他只发现了奇数阶幻方的填写方式: ①先将1放在第一行中间一列,然后向右上方的位置填下一个数; ②如果行、列范围超出边界,则回绕,例如1在第1行,则2放在1的右上将超出行的边界,因此回绕至最下面的行,且列数加1; ③如果右上方已经填有数字,则把下一个数填入当前数的下方,例如3的右上方已经填有1,则把4填入3的下方位置。 (1)小y填写了一个5阶幻方,请问用上述方法填写后第3行第4列的数字是________。 (2)小y想要写出任意奇数幻方,因此他决定编写程序完成这一任务,请在划线处填入合适代码。 n=int(input("幻方的阶数是(必须是奇数):")) a=[[0]*n for i in range(n)] x=0 y=n//2 a[x][y]=1 cnt=2 while cnt<=n*n xx=______ yy=(y+1)%n if a[xx][yy]==0: a[xx][yy]=cnt else: xx=(x+1)%0 yy=y a[xx][yy]=cnt x=xx;y=yy cnt+=1 for i in range(n): for j in range(n): print(a[i][j],end=' ') print() (3)通过学习后,小y掌握了一种特殊偶数阶幻方(n是4的倍数)的填写方式: 图b ①先把数字按顺序填,第1行填1~n,第2行填n+1~2*n,以此类推; ②按4×4分割成小方阵,例如图b是8*8的幻方,要分成4个小方阵; ③每个小方阵对角线上的数字和大方阵中与其成中心对称的数字交换,图b中每组中心对称的对角线已经用不同的斜线标出。 小y又编写了程序来完成这种偶数阶幻方的填写,请在划线处填入合适代码。 n=int(input("幻方的长度是(必须是4的倍数):")) a=[[______for i in range(n)] for j in range(n)] for i in range(0,n,4): for j in range(0,n,4): for x in range(0,4): if a[i+x][j+x]==(i+x)*n+(j+x)+1: ______ if a[i+x][j+3-x]==(i+x)*n+(j+3-x)+1: a[i+x][j+3-x],a[n-1-i-x][n-4-j+x]=a[n-1-i-x][n-4-j+x],a[i+x][j+3-x] for i in range(n): for j in range(n): print(a[i][j],end=' ') print() 15. 小z同学自从学习了python表达式后,一直在思考一个问题:计算机是如何计算表达式的?通过后缀表达式的学习,他想到了利用栈的思想也可以解决其他问题,由于是初学者,他选择了逻辑表达式进行尝试,并通过编写程序来模拟整个计算过程。 (1)为了便于实现,输入的逻辑表达式一定是合法无误的,并且只包含True、False、and、or、not这五个逻辑值和运算符,请在划线处填入合适代码。 s=input("请输入逻辑表达式") a=s.split() b=[0]*(len(a)+1) st=[False]*(len(a)+1) top=-1 n=0 ______ for i in a: #小z发现not可以有多个并列出现,因此先去除not if i=="not": flag=not flag ______ elif flag: if i=="True": b[n]="False" else: b[n]="True" flag=False else: b[n]=i n+=1 a=b for i in range(n): if a[i]=="True": top+=1 ______ if a[i]=="False": top+=1 st[top]=False if______: st[top-1]=st[top-1]and st[top] top-=1 while top>0: st[top-1]=st[top-1] or st[top] top-=1 print(st[top]) (2)假设输入一个不合法的表达式not True and not False and not and and,则输出结果为_________。 第1页/共1页 学科网(北京)股份有限公司 $$ 绝密★考试结束前 宁波市2024学年第一学期期末九校联考高二技术试题 本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷满分100分,考试时间90分钟。考生须知: 1.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。 2.选择题的答案须用2B铅笔将答题纸上对应题目的答案标号涂黑,如要改动,须将原填涂处用橡皮擦净。 3.非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。 第一部分:信息技术(50分) 一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分) 1. 下列关于数据、信息和知识的说法中,不正确的是( ) A. 数据是信息载体 B. 同一种信息可以被不同接收者获取,但需要按照先后顺序获取 C. 信息经过加工后可能产生新的信息,甚至是虚假的信息 D. 相同的数据可以承载不同的信息,并且可以用不同的载体记录 【答案】B 【解析】 【详解】本题考查的是数据、信息和知识。一般情况下,同一种信息可以同时被不同的接收者获取,不需要按照先后顺序获取,其传播是同步的。故本题应选B。 2. 下列关于人工智能的说法不正确的是( ) A. 深度学习不需要事先手工构造知识库 B. 强化学习是基于问题引导下的人工智能方法 C. 人工智能目前无法完全替代人类的作用 D. AlphaGo从围棋跨界到电力控制领域,属于混合增强智能 【答案】D 【解析】 【详解】本题考查的是人工智能。混合增强智能是将人的作用或人的认知模型引入到人工智能系统中,以弥补人工智能的不足。AlphaGo从围棋人工智能跨界到电力控制领域属于跨领域人工智能。故本题应选D。 3. 下列关于数制和编码的说法正确的是( ) A. 偶数进制下末位是偶数的数,转换成十进制后一定是偶数 B. 奇数进制下末位是奇数的数,转换成十进制后一定是奇数 C. 英文字母和数字在电脑中一定是用ASCII码存储 D. GB2312编码的一个字符需要用2个字节存储,且每个字节最高位均为0 【答案】A 【解析】 【详解】本题考查数制和编码相关内容。A选项,设偶数进制为k(k=2n,n为正整数),一个数在k进制下表示为 amkm+am-1km-1+…+a1k1+a0。当末位a0是偶数时,将其转换为十进制,a0在十进制下也是偶数。因为其他项aiki(i>0)都是k(偶数)的倍数,其和也是偶数,再加上末位这个偶数a0,所以这个数转换为十进制后一定是偶数,选项正确。B选项,参照A选项,奇数进制下末位是奇数的数,末位之前的数字之和是奇数的倍数,有可能是奇数,也可能是偶数,再加上末位这个奇数,则该数转换成十进制数后不一定是奇数,选项错误。C选项,ASCII码是一种广泛使用的编码方式,用于表示英文字母、数字和一些常见符号在计算机中的存储,但并不是唯一的方式,在现代计算机系统中,尤其是支持多种语言和字符集的环境下,Unicode编码更为常用,选项错误。D选项,GB2312编码一个字符用2字节存储,但并非每个字节最高位都为0,实际是第一个字节最高位为1,选项错误。故本题答案是A选项。 4. 下列有关大数据及数据处理的说法,不正确的是( ) A. 大数据分析更加注重事物的相关性,而不强调探求因果关系 B. 对于数据能够接受有一定的错误,不再追求所有数据的准确性 C. 大数据分析时一般采用枚举的思想,并对全体数据进行分析 D. 大数据中各种结构化、半结构化、非结构化数据共存 【答案】C 【解析】 【详解】本题考查的是大数据及数据处理。大数据分析不是采用枚举的思想处理所有数据,而是通过数据挖掘和机器学习等方法从大量数据中寻找模式和规律,对部分数据进行分析,以此达到有效预测和决策。故本题应选C。 5. 下列对于数据结构的说法中,不正确的是( ) A. 解决同一个问题可以用不同的数据结构,且效率可能不同 B. 用栈存储数据时,数据从栈顶进栈,从栈顶出栈 C. 浏览器中页面的后退和前进操作,其实现思路和队列相似 D. 循环队列是首尾相连的队列,但数据入队时也需要考虑溢出的问题 【答案】C 【解析】 【详解】本题考查的是数据结构。浏览器中页面的后退和前进操作通常用两个栈来实现,而不是队列。当用户访问新页面时,将当前页面压入“后退”栈;当后退操作时,从“后退”栈中弹出页面,进入“前进”栈。正因为这种结构,后退与前进并不是队列的先进先出原则,而是栈的后进先出原则。故本题应选C。 6. 下列表达式的值和其他三项不同的是( ) A. len('123'*3)//2 == 4 B. '20'>'9' and '12' in '1234' C. abs(int(-3.7))>3 D. chr((int('2333')//10%10+7)%10+ord('0')) == 0 【答案】A 【解析】 【详解】本题考查Python表达式相关内容。A选项,len('123'*3)//2 == 4-->9//2 == 4-->True。B选项,'20'>'9'  and '12' in '1234'-->False and True-->False。C选项,abs(int(-3.7))>3-->3>3-->False。D选项,chr((int('2333')//10%10+7)%10+ord('0')) == 0-->chr((2333//10%10+7)%10+48) == 0-->chr((3+7)%10+48) == 0-->chr(48) == 0-->'0' == 0-->False。故本题答案是A选项。 7. 已知元素的进栈顺序是a、b、c、d、e、f,以下出栈顺序不可能的是( ) A. a、b、c、d、e、f B. a、d、e、c、f、b C. c、d、f、e、a、b D. e、d、c、b、a、f 【答案】C 【解析】 【详解】本题考查栈操作相关内容。栈的特点是后进先出。进栈顺序是a、b、c、d、e、f,分析四个选项,ABD选项为可能的出栈序列。C选项,c先出栈,说明a、b均在栈内,c、d、f、e出栈顺序正确,但a不可能先于b出栈。故本题答案是C选项。 8. 已知字符串s="abc"+"defg"[::-1],则s[-2::-2]的值为( ) A. 'fdb' B. 'bdf' C. 'e' D. 'egb' 【答案】D 【解析】 【详解】本题考查的是python基础。首先,计算字符串s。原字符串是s = "abc" + "defg"[::-1],这里"defg"[::-1]表示字符串"defg"的倒序,即"gfed",所以s = "abc" + "gfed",即s = "abcgfed"。接下来,分析s[-2::-2]。s[-2]表示从s的倒数第二个字符开始,也就是字符'e'。取反向每隔2个字符,得到的字符分别是'e', 'g', 'b'。因此,s[-2::-2]的值为'egb'。故选D。 9. 有如下Python程序段: a=10 if a> 10: a //= 2 elif a>5: a -= 2 elif a>0: a += 3 if a> -10: a*=2 print(chr (a % 26+97)) 该程序运行后输出的结果为( ) A. k B. i C. m D. q 【答案】D 【解析】 【详解】本题考查的是分支语句。程序执行过程如下: 1. 初始化 a=10。 2. 满足 elif a>5 条件,执行 a -= 2,所以 a 变 8。 3. 接下来执行 if a>-10: 条件,a 满足此条件,执行 a *= 2,所以 a 变为 16。 4. 然后计算 chr(a % 26 + 97),即 chr(16 % 26 + 97),结果 chr(16 + 97),即 chr(113)。 5. chr(113) 对应的字符是 'q'。 因此,程序的输出结果是 'q'。故选D。 10. 定义如下递归函数,计算正整数n的每位数字值和,例如n=123,函数返回值为6。 def f(n): x=(1) if n==0: return n else: y=(2) return(3) 上述程序段中划线处可选代码为( ) ①n%10 ②n//10 ③x+f(n-y) ④x+f(y) A. ①②③ B. ①②④ C. ②①③ D. ②①④ 【答案】B 【解析】 【详解】本题考查的是递归。这个递归函数的目的是计算一个正整数的各位数字之和。首先,我们使用 n % 10 得到最后一位数字,将其存储在 x 中。 如果 n 不为 0,我们使用 n // 10 去掉最后一位数字,并存储在 y 中。 然后,我们将 x 与 f(y) 相加,即最后一位数字加上去掉最后一位数字后的数字的各位数字和,这就是递归的核心。 所以,正确答案是 B。 11. 有如下Python程序段: import random a=[0]*6 i=0 while i<6: a[i]=random.randint(110) if i % 3==0 or a[i] % 2==i % 2: i+=1 print(a) 该程序运行后,下列选项中可能是输出结果的是( ) A. [1,7,10,8,6,3] B. [0,1,8,3,4,5] C. [5,3,6,1,1,4] D. [6,8,1,5,8,9] 【答案】A 【解析】 【详解】本题考查Python基础。 代码段生成1到10的随机数,不可能出现0,故排除选项B。当i为1时,那么a[i]必然是奇数,否则无法通过if判断。故排除选项D。同理当i为5时,那么a[i]必然是奇数,排除选项C。故正确答案为:选项A。 12. 有如下Python程序段: s="ABCDEF";head=0;tail=0 que=[""]*10 for i in range(len(s)): if i %2 == 0: que[tail]=s[len(s)-1-i] else: que[tail]=s[i-1] tail=tail+1 for i in range(len(s)): print(que[head],end="") head=head+1 该程序运行后输出的结果为( ) A. FAEBDC B. FADCBE C. FBDDBF D. FDBACE 【答案】B 【解析】 【详解】本题考查Python程序设计相关内容。分析程序段,推知: 程序段通过两个循环实现对字符串的处理与输出。第一个循环根据索引的奇偶性,将字符串中的字符按特定规则存入列表que中,第二个循环按顺序输出列表que中的字符。 执行第一个for循环:当i=0时,que值为:['F', '', '', '', '', '', '', '', '', ''];当i=1时,que值为:['F', 'A', '', '', '', '', '', '', '', ''];当i=2时,que值为:['F', 'A', 'D', '', '', '', '', '', '', ''];当i=3时,que值为:['F', 'A', 'D', 'C', '', '', '', '', '', ''];当i=4时,que值为:['F', 'A', 'D', 'C', 'B', '', '', '', '', ''];当i=5时,que值为:['F', 'A', 'D', 'C', 'B', 'E', '', '', '', '']。 执行第二个for循环:i取值范围是[0, 5],输出列表que中的前6个字符,即:FADCBE。 故本题答案是B选项。 二、非选择题(本大题共3小题,其中第13小题9分,第14小题7分,第15小题10分,共26分) 13. 为了更好地了解同学们的学习状况,小x老师决定对所有学生的期末考试成绩进行统计和分析。 小x老师为此找到了每个学生每个科目的成绩,现将学生考试成绩导出存放在文件“chengji.xlsx”中(部分截图如图a所示)。 图a (1)小x老师编写了python程序来读取并统计学生的成绩。现在要对总成绩大于450分的学生进行嘉奖,要求输出符合条件的学生姓名,请在划线处填入合适代码。 import pandas as pd import matplotlib.pyplot as plt plt.rc("font",**\{"fami1y":"SimHei:}) #设置中文字体 df=pd.______("chengji.xlsx") df2=df.groupby("姓名",as_index=False).成绩.sum() df2=df2[______] for i in______: print(i) (2)继续编写程序生成技术成绩前三名学生的柱形图,如图b所示,请在划线处填入合适代码。 图b df3=df[df.科目=='技术'].sort_values('成绩',ascending=False).______ plt.bar(df3.姓名,df3.成绩,label='scores') plt.title( ) plt.ylim(60,100) plt.xlabel("学生姓名") plt.ylabel("成绩") plt.legend() plt.show() 【答案】 ①. read_excel ②. df2.成绩>450 或 df2["成绩"]>450 ③. df2.姓名或df2["姓名"] ④. head(3) ⑤. "技术前三学生成绩" 【解析】 【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,推知: (1)①处,此处需要调用read_excel()函数,读取chengji.xlsx文件并将其转换为Pandas的DataFrame对象,故此处答案是:read_excel。②处,上行代码“df2=df.groupby("姓名",as_index=False).成绩.sum()”以对学生成绩按照姓名将各科成绩分组求和,此处需要在df2中筛选出总成绩大于450分的学生,可由df2.成绩>450或df2["成绩"]>450实现,故此处答案是:df2.成绩>450或df2["成绩"]>450。③处,筛选出总成绩大于450分的学生后,需要输出这部分学生姓名,故此处答案是:df2.姓名或df2["姓名"]。 (2)④处,pandas中的sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序,通过设置参数ascending可以设置升序或者降序排序,默认情况下ascending=True,为升序排序;设置ascending=False时,为降序排序。该程序段作用是生成技术成绩前三名学生的柱形图,所以此处需要筛选处排在前三的学生,故此处答案是:head(3)。⑤处,plt.bar()函数是Matplotlib库中用于绘制垂直条形图的函数。在坐标轴上以垂直的方式表示不同类别的数据,并可以通过调整参数来自定义图表的外观。在生成的柱状图中需要设置标题为“技术前三学生成绩”,故此处答案是:"技术前三学生成绩"。 14. 小y同学最近迷上了数字相关的游戏,现在他在探索n阶幻方的填写方式。幻方是一种中国传统游戏,n阶幻方要求将数字1~n*n安排在n*n大小的正方形格子中,使每行、每列和对角线上的数字之和都相等。例如图a是3阶幻方的一种填写方式。 图a 小y只是一个初学者,因此他只发现了奇数阶幻方的填写方式: ①先将1放在第一行中间一列,然后向右上方的位置填下一个数; ②如果行、列范围超出边界,则回绕,例如1在第1行,则2放在1的右上将超出行的边界,因此回绕至最下面的行,且列数加1; ③如果右上方已经填有数字,则把下一个数填入当前数的下方,例如3的右上方已经填有1,则把4填入3的下方位置。 (1)小y填写了一个5阶幻方,请问用上述方法填写后第3行第4列的数字是________。 (2)小y想要写出任意奇数幻方,因此他决定编写程序完成这一任务,请在划线处填入合适代码。 n=int(input("幻方的阶数是(必须是奇数):")) a=[[0]*n for i in range(n)] x=0 y=n//2 a[x][y]=1 cnt=2 while cnt<=n*n. xx=______ yy=(y+1)%n if a[xx][yy]==0: a[xx][yy]=cnt else: xx=(x+1)%0 yy=y a[xx][yy]=cnt x=xx;y=yy cnt+=1 for i in range(n): for j in range(n): print(a[i][j],end=' ') print() (3)通过学习后,小y掌握了一种特殊偶数阶幻方(n是4的倍数)的填写方式: 图b ①先把数字按顺序填,第1行填1~n,第2行填n+1~2*n,以此类推; ②按4×4分割成小方阵,例如图b是8*8的幻方,要分成4个小方阵; ③每个小方阵对角线上的数字和大方阵中与其成中心对称的数字交换,图b中每组中心对称的对角线已经用不同的斜线标出。 小y又编写了程序来完成这种偶数阶幻方的填写,请在划线处填入合适代码。 n=int(input("幻方的长度是(必须是4的倍数):")) a=[[______for i in range(n)] for j in range(n)] for i in range(0,n,4): for j in range(0,n,4): for x in range(0,4): if a[i+x][j+x]==(i+x)*n+(j+x)+1: ______ if a[i+x][j+3-x]==(i+x)*n+(j+3-x)+1: a[i+x][j+3-x],a[n-1-i-x][n-4-j+x]=a[n-1-i-x][n-4-j+x],a[i+x][j+3-x] for i in range(n): for j in range(n): print(a[i][j],end=' ') print() 【答案】 ①. 20 ②. (x-1)%n ③. j*n+i+1 ④. a[i+x][j+x]a[n-1-i-x][n-1-j-x]=a[n-1-i-x][n-1-j-x],a[i+x][j+x] 【解析】 【详解】本题考查数组,循环结构的程序实现。 (1)根据题意可知,先将 1 放在第一行中间一列(即第 1 行第 3 列),然后向右上方填数,依次类推,第 3 行第 4 列的数字是 20。 (2)①处,根据幻方的填写规则,当右上方位置超出边界时需要回绕。这里计算新的行索引 xx,当向右上方移动时,行索引 x 减 1,列索引 y 加 1。如果超出上边界(x - 1 < 0),则回绕到最后一行(n - 1),所以 xx = (x - 1) % n,因此该空答案为 (x - 1) % n。 (3)①处,根据偶数阶幻方(n 是 4 的倍数)的填写规则,先按顺序填数。对于二维列表 a 的初始化,每一行应该填充从 j* n + i + 1 到 (j+ 1) * n + i的数字,所以这里应该填入 j * n + i + 1,因此该空答案为 j * n + i + 1。 ②处,这里是实现每个小方阵对角线上的数字和大方阵中与其成中心对称的数字交换的代码。对于 4×4 分割后的小方阵,当满足if条件时,说明找到了子方阵对角线上的元素,需要与中心对称位置的数字交换,因此该空答案为a[i+x][j+x],a[n-1-i-x][n-1-j-x]=a[n-1-i-x][n-1-j-x],a[i+x][j+x]。 15. 小z同学自从学习了python表达式后,一直在思考一个问题:计算机是如何计算表达式的?通过后缀表达式的学习,他想到了利用栈的思想也可以解决其他问题,由于是初学者,他选择了逻辑表达式进行尝试,并通过编写程序来模拟整个计算过程。 (1)为了便于实现,输入的逻辑表达式一定是合法无误的,并且只包含True、False、and、or、not这五个逻辑值和运算符,请在划线处填入合适代码。 s=input("请输入逻辑表达式") a=s.split() b=[0]*(len(a)+1) st=[False]*(len(a)+1) top=-1 n=0 ______ for i in a: #小z发现not可以有多个并列出现,因此先去除not if i=="not": flag=not flag ______ elif flag: if i=="True": b[n]="False" else: b[n]="True" flag=False else: b[n]=i n+=1 a=b for i in range(n): if a[i]=="True": top+=1 ______ if a[i]=="False": top+=1 st[top]=False if______: st[top-1]=st[top-1]and st[top] top-=1 while top>0: st[top-1]=st[top-1] or st[top] top-=1 print(st[top]) (2)假设输入一个不合法的表达式not True and not False and not and and,则输出结果为_________。 【答案】 ①. flag=False或flag=0 ②. n-=1 ③. st[top]=True ④. a[i-1]=="and" 或 a[i-1]=="and " and i!=0 ⑤. False 【解析】 【详解】本题考查的是Python栈的应用。 (1)①处,初始化flag的值为False,或使用整数0表示,这里的“flag”用于在遇到“not”运算符时翻转逻辑状态;②处,因为每当遇到not时都需要确定b[n]的值,所以处理完后n需要递减,故此处应为:n-=1;③处,如果读取到的是True,则需要将True压入栈中st,故此处应为:st[top]=True;④处,由下一行代码st[top-1]=st[top-1]and st[top]可知,只有上一个元素是and,才用and进行逻辑运算,故此处应为:a[i-1]=="and" 或 a[i-1]=="and" and i!=0。 (2)假设输入一个不合法的表达式not True and not False and not and and,去除not后变成['False', 'and', 'True', 'and', 'True', 0, 0, 0, 0](not后面如果不是 True全部转换为True),表达式变为:False and True and True=False。 第1页/共1页 学科网(北京)股份有限公司 $$

资源预览图

精品解析:浙江省宁波市九校2024-2025学年高二上学期联考期末考试技术试题-高中信息技术
1
精品解析:浙江省宁波市九校2024-2025学年高二上学期联考期末考试技术试题-高中信息技术
2
精品解析:浙江省宁波市九校2024-2025学年高二上学期联考期末考试技术试题-高中信息技术
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。