2024-2025学年上海市长宁区延安中学高一(上)期末信息技术试卷(含解析)

资源下载
  1. 二一教育资源

2024-2025学年上海市长宁区延安中学高一(上)期末信息技术试卷(含解析)

资源简介

2024-2025学年上海市长宁区延安中学高一(上)期末考试
信息技术试卷
1.(18分)小杨同学听说了一种自动分类垃圾的机器。他想使用信息课上学过的机器学习算法模拟垃圾自动化分类。
(1) 小杨下载了一个训练集,包含一些垃圾的分类信息,他把它们可视化到上图显示。对上图说法正确的是 ______(不定项)。
A. 上图属于散点图,有助于分析特征之间的关系或关联趋势
B. 使用上图进行机器学习,属于监督学习
C. 使用上图进行机器学习,属于机器学习中的聚类
D. 绘制上图属于人工智能领域的范畴假设他使用K近邻算法,K取5的时候,得到最近的点依次存放在列表中,列表中的数据为:['可回收物','可回收物','干垃圾','厨余垃圾','可回收物']现在他想要得到这个列表中出现次数最多的元素。
(2) 他想先统计这个列表中每种元素出现的次数,保存在列表appeared中。试补全下面的代码:
(3) 小杨继续编写代码,考虑到出现次数最多的元素可能不止一个,他把所有的出现次数最多的元素放在列表中。试补全下面的代码:
(4) 当列表a中有20个任意的元素的时候,上面的代码总共最多执行 ______次循环。
【即可以(不严谨地)理解作程序运行到结束时经过了多少次for】
2.(30分)数学课上,小浦同学学习了“用二分法求函数的零点”一章。已知:
小浦想使用学过的信息技术知识,使用计算机自动地用二分法计算函数零点。
已知函数f(x)=x3-2x-6在(0,10)有零点。
(1) 小浦初步编写了如下的代码,帮助他把空缺的部分补充完整。
小贴士:def f(x)一句为定义一个函数,之后使用变量a调用f(a),就能够返回a**3-2*a-6的值。
(2) 同桌小杨把range(1000)改成了range(100),发现输出结果 ______。
A. 与原来完全相同
B. 与原来相差最后的2~3位小数
C. 与原来相差最后的4~5位小数
D. 与原来只有开头的2~3位相同小杨认为,对于有些函数来说,循环不到1000次精度即可满足要求;对于有些函数来说,可能循环1000次精度还不够。她想最好能够根据所需要的精度要求,自动让循环结束,而不是规定一个固定的次数例如1000次或者100次之类的。
(3) 小杨把循环主体改成了这样,但是输出不能满足她的要求,来向你求助。请你只修改一行代码的位置,使其能正常运行。
(4) 假设小杨已经修正了这一错误,以上的代码直至运行结束时,循环的次数最接近以下的 ______。
参考输出:2.1799755096435547
A. 10 B. 20 C. 30 D. 40
(5) 小浦听取了她的建议,并且想要用更多不同的函数来验证程序的正确性。以下函数能用于验证程序正确性的是 ______(不定项)。
A. y=(x-1)2 B. y=ln x C. y=x2+197x+9735 D. y=|x|
(6) 小浦把他的代码给数学老师看,但数学老师不熟悉编程语言,希望他用流程图的方式表示出来。
小杨建议在画流程图前,首先在纸面上把编程语言翻译成中文的流程表示。她这么写:
(i)low=0;high=10;mid=(low+high)/2;last_mid=low;
(ii)比较abs(last_mid-mid)和0.00001的大小
(iii)如果①______,则跳转到②______
(iv)③______
(v)比较④______和⑤______的大小
(vi)如果小于,则跳转到⑥______
(vii)⑦______
(viii)跳转到⑧______
(ix)⑨______
(x)⑩______
(xi)跳转到 ______
(xii)输出mid的值
小杨把写好的纸给小浦参考,但这张纸被墨水污染了,需要你帮助复原。
【提示:其中有一处是小杨自己涂改掉的,无需你的复原】
3.(18分)小杨和小浦听说了校园网的密码登录三次失败后会自动锁定30分钟,想用学过的信息科技知识来模拟这一登录过程。
【任务一:绘制流程图】
(1) 小浦绘制了一张流程图,其中不存在错误的区域是 ______(不定项)。
(2) 小杨则用文字的形式表达程序流程。
(i) count=0;target=“123456“
(ii)输入 password
(iii)比较 password和target
(iv)如果相等,则跳转到( vii)
(v)输出“密码错误”
(vi) count+=1
(vii)比较 count和3
(viii)如果相等,则跳转到( ii)
(ix)输出“账户被锁定”
(x)跳转到( xii)
(xi)输出“密码正确”
(xii)程序结束
她的流程中有两处错误,试指出。
①第 ______行,改为 ______②第 ______行,改为 ______。
(3) 【任务二:编写代码】
(3)把小杨的流程修正后,转写为python代码。
4.(34分)小杨和小浦打算用学过的知识统计图书馆中的图书借阅情况。
他们从信息老师那里获取了book.csv文件,大致如下:
【任务一:预处理】
(1) 表中有一些重复数据,可以使用函数 ______删除。
(2) 小杨发现图书馆老师在录入数据时,把“操作”字段中的“借”部分误输入为“错”。为达成这一目的,她编写了如下的代码:
这段代码无法正常运行,原因是 ______(不定项)。
A. 语法错误,第五行应该改为if x='错':
B. 语法错误,第六行应该改为x=='借'
C. 通过for x in df['操作']修改的x只相当于df的副本,df没有被修改
D. 通过for x in df['操作']获取到的x是一个列表,不可能与字符串'错'相等
(3) 小杨修改了代码,试补全:
(4) 【任务二:统计】
假设一本书最多借阅一个星期,超过期间则属于逾期归还。小杨和小浦打算找出所有逾期归还的人。
(4)从表中按行查找每本书对应的借阅日期,归还日期,属于 ______。
A. 顺序结构 B. 分支结构 C. 循环结构 D. 还有什么结构
(5) 以下变量名作为存放逾期归还人卡号的列表名,语法正确的是 ______(不定项)。
A. ______ B. print C. ANSI D. list@8
(6) 以下的代码可以输出每本书借阅和归还日期之差,完成下面的代码。
【①-⑤题每题有1~2个正确选项】
①A.“book.csv“
B.“book_sub.csv“
C.book.csv
D.book_sub.csv
②A.len(df['图书名称'])
B.df['图书名称']
C.0,len(df['图书名称'])
D.len(df['图书名称']),0,-1
③A.[df['图书名称'],df['操作日期'],df['校园卡编号']]
B.(df['图书名称'],df['操作日期'],df['校园卡编号'])
C.[df['图书名称'][i],df['操作日期'][i],df['校园卡编号'][i]]
D.(df['图书名称'][i],df['操作日期'][i],df['校园卡编号'][i])
④A.df['图书名称'][0]
B.df['图书名称'][i]
C.x['图书名称'][0]
D.x['图书名称'][i]
⑤A.append
B.erase
C.delete
D.remove
(7) 小杨想统计各种书的占比。完成下面的代码:
参考输出:
汇编语言 4
经典常谈 3
地理学与生活 3
30天自制操作系统 3
征服C指针 2
无机化学 2
Name:图书名称,dtype:int64
(8) 使用数据可视化的方式可以很好地观察各种书借阅的占比,可以用 ______(图表类型)进行统计。
A. 柱形图 B. 箱线图 C. 饼图 D. 散点图
答案解析
1.【答案】【小题1】AB
【小题2】4
【小题3】
【小题4】
【解析】(1)A 选项:图中是散点图,能直观展示数据点分布,有助于分析特征关系,正确。B 选项:数据有明确分类标签,属于监督学习,正确。C 选项:聚类是无监督学习,此图有标签,不是聚类,错误。D 选项:可视化是数据处理和分析中的一个重要环节,它可以帮助我们更好地理解数据,但它本身并不属于人工智能的核心数据处理环节,错误。故选AB。
(2)遍历列表a,对于每个元素x,检查是否在appeared中。若在,对应计数加 1;若不在(通过flag判断),添加新的计数项。故第一空应为:i[1],第二空为:if flag==0:,第三空为:appeared.append([x,1])。
(3)遍历appeared,找到出现次数最多的元素。若当前元素次数大于最大值,更新最大值和结果列表;若等于最大值,添加到结果列表。故第一空为:appeared_max=[x[0]],第二空为:x[1]==appeared_times_max。
(4)已知appeared最多有 4 种垃圾,外层循环遍历列表a的 20 个元素,每个元素在内层循环中最多检查 4 种已记录的垃圾(判断是否已存在),因此这部分循环次数为:20(外层)×4(内层)= 80 次,appeared最多有 4 种垃圾,遍历appeared判断最大次数时,需要逐个检查这 4 种垃圾的出现次数,因此这部分循环次数为:4 次(遍历 4 种垃圾),将两部分相加,总循环次数最多为:80+4 = 84 次。
本题考查的是数据分析及程序的调试与运行,详细解析如下。
这类题目难度较大,首先需要读懂题干所给提示信息的意思,然后根据所给程序段中上下文的意思来填写关键变量的表达式或者是变量的取值范围等等关键语句。
2.【答案】【小题1】略
【小题2】A
【小题3】略
【小题4】B
【小题5】B
【小题6】小于等于,(xii),计算新的mid=(low+high)/2,f(low)*f(mid),0,(ix),low=mid,(x),high=mid,last_mid=mid;mid=(low+high)/2;,(ii)
【解析】(1)第一空:计算区间的中点,故此处应为:mid=(low+high)/2;第二空,根据二分法的原理,如果区间左端点和中点的函数值乘积小于 0,说明零点在左半区间,否则在右半区间,故此处应为:f(low)*f(mid)。
(2)二分法的收敛速度是指数级的,即使循环次数减少,结果仍然会非常接近,与原来完全相同,故选A。
(3)在每次循环中,应该先更新last_mid为当前的mid,然后再计算新的mid,以便下一次循环判断精度是否满足要求,故此处答案为:将mid=(low+high)/2移动到last_mid=mid之后。
(4)二分法的精度公式为 ,其中 E是精度要求。对于本题,a=0,b=10,E=0.00001,解得 n≈20。故选B。
(5)A 选项:y=(x 1)2 在区间内只有一个零点 x=1,但函数在零点处的导数为 0,不满足二分法的条件,该选项错误。B 选项:y=lnx 在区间 (0,10)内有一个零点 x=1,满足二分法的条件,该选项正确。C 选项:y=x 2+197x+9735 在区间 (0,10)内没有零点,该选项错误。D 选项:y=|x|在区间 (0,10)内没有零点,该选项错误。故选B。
(6)①判断当前精度是否满足要求,如果满足则跳转到输出结果步骤,故此处应为:小于等于。 ②跳转到步骤 (xii) 输出结果,故此处应为:(xii)。 ③计算区间的中点。 ④和 ⑤计算区间左端点和中点的函数值并与0进行比较。 ⑥根据函数值的乘积判断零点所在的区间,并跳转到相应的步骤。 ⑦和 ⑨更新区间的端点。 ⑧跳转到步骤 (x) 和 跳转到步骤 (ii) 继续判断精度。 ⑩更新last_mid为当前的mid。
本题考查的是算法的描述及循环语句的应用。
这类题目难度较大,首先需要读懂题干所给提示信息的意思,然后根据所给程序段中上下文的意思来填写关键变量的表达式或者是变量的取值范围等等关键语句。
3.【答案】【小题1】AD
【小题2】(iv),如果相等,则跳转到(xi),(viii),如果不相等,则跳转到(ii)
【小题3】略
【解析】(1)A 区域:开始后初始化错误次数为 0,然后输入密码,这部分流程是合理的,没有错误。D 区域:当错误次数等于 3 时锁定账户并结束流程,这部分流程是合理的,没有错误。B 区域:在判断密码是否正确后,如果正确应该是登录成功并结束流程,而图中没有标明条件成立和不成立的流向。C 区域:当密码错误时,错误次数加 1,然后判断错误次数是否等于 3,这里应使用判断框,而图中用的是处理框。故选AD。
(2)原第(iv)行逻辑错误,当密码正确时,应该输出“密码正确”然后跳转到程序结束,而不是跳转到 (vii),即修改为如果相等,则跳转到(xi)。原第(viii)行逻辑错误,当 count 不等于 3 时应该继续输入密码尝试登录,即修改为如果不相等,则跳转到(ii)。
(3)第一空:当错误次数不等于 3 时,允许继续输入密码,故此处应为:count!=3;第二空:获取用户输入的密码,故此处应为:input(“输入密码“);第三空:判断输入的密码是否正确,故此处应为:password==target:;第四空:如果正确输出“密码正确”并退出程序,故此处应为:print(“密码正确“);第五空:如果错误,输出“密码错误”并将错误次数加 1,故此处应为:print(“密码错误“)。
本题考查的是流程图识读及循环语句的应用。
熟练掌握Python多分支结构及结果的求解。
4.【答案】【小题1】C
【小题2】C
【小题3】C
【小题4】AC
【小题5】C
【小题6】
【小题7】
【小题8】
【解析】(1)在 pandas 中,可以使用drop_duplicates(  )函数来删除 DataFrame 中的重复数据。
(2)A 选项错误:Python 中判断相等需要使用==,第五行语法本身正确(if x =='错':)。B 选项错误:第六行需要赋值操作(x =“借“),而非比较(x ==“借“),但即使语法正确,修改的仍是副本。D 选项错误:x是字符串类型,不是列表。故选C。
(3)第一空:遍历 DataFrame 的每一行,故此处应为:range(len(df['操作'])):;第二空:判断当前行的“操作”字段是否为“错”,故此处应为:=='错';第三空:如果是“错”,则将其修改为“借”,故此处应为:='借';第四、五空:将修改后的 DataFrame 保存到新的 CSV 文件中,故答案为:to_csv、“book_sub.csv“,encoding=“ANSI“。
(4)从表中按行查找每本书对应的借阅日期和归还日期,需要遍历每一行数据,这属于循环结构。故选C。
(5)A 选项:__是一个合法的变量名,该选项正确。B 选项:print是 Python 内置函数,不能作为变量名,该选项错误。C 选项:ANSI是一个合法的变量名,该选项正确。D 选项:list@8包含特殊字符@,不是合法的变量名,该选项错误。故选AC。
(6)①:应该读取修改后的数据文件book_sub.csv,所以选择 B。 ②:range(len(df[“图书名称“]))和range(0,len(df[“图书名称“]))都可以用于遍历 DataFrame 的每一行,所以选择 AC。 ③:[df[“图书名称“][i],df[“操作日期“][i],df[“校园卡编号“][i]]用于获取当前行的图书名称、操作日期和校园卡编号,所以选择 C。 ④:df[“图书名称“][i]用于获取当前行的图书名称,与x中的图书名称进行比较,所以选择 B。 ⑤:remove(x)用于从books列表中删除x,所以选择 D。
(7)依据输出数据可知程序功能是:统计“图书名称”列中每个唯一值的出现次数,故此处应为:df['图书名称'].value_counts(  )。
(8)饼图可以很好地展示各部分在总体中所占的比例关系,适合用于观察各种书借阅的占比。故选C。
本题考查的是pandas数据分析,详细解析如下。
这类题目难度较大,首先需要读懂题干所给提示信息的意思,然后根据所给程序段中上下文的意思来填写关键变量的表达式或者是变量的取值范围等等关键语句。
第6页,共13页

展开更多......

收起↑

资源预览