第2章 算法与程序实现 2024—2025学年高中信息技术人教/中图版(2019)必修1

2024-08-05
| 16页
| 37人阅读
| 0人下载

内容正文:

第2章 算法与程序实现 一、选择题 1.下列语句中能实现变量 a 和 b 数值交换的有(    ) ①a,b=b,a     ②a=b;b=a     ③t=a;b=a;a=t     ④a=a+b;b=a-b;a=a-b A.①③ B.①④ C.①②④ D.①③④ 2.以下哪个问题可以用枚举法来求解(  ) A.找出100以内同时被5和7整除的所有数 B.给定直角三角形两条边的长,求第三条边的长 C.求两个数的积 D.给定半径,求圆的面积 3.在 Python中,函数len("ab"*2)的返回值是(   ) A."2ab" B."abab" C.2 D.4 4.下列Python表达式的结果为True的是(   ) A.3+6>=8 and 'do' in 'good' B.int(23.6)%12==0 C.'123'*2<'200' D.round(3.67,1)+22//3<=10.6 5.若people=["he","she","it"],feel={1:"love",2:"like",3:"hate"},则表达式feel[2]+people[2]的值是(   ) A.likeit B.hateit C.likeshe D.hateshe 6.某APP为鼓励用户积极签到,制定积分签到政策,用户第一次连续签到可以得到1分,第二次连续签到得2分,第三次连续签到得到4分,接下来,每次得分分别为8,16,32……。若签到中断,则前面签到所得积分清空,重新从第一天开始积分。当用户积分达到10000分时,可以兑换相应奖品,小明想得到的毛绒娃娃需要20000积分,请设计算法帮小明计算,需要至少连续签到多少天才能拿到毛绒娃娃。解决此问题的算法流程图如右图所示,请为虚线框选择合适的流程图基本图形并为①处选择合适代码(   ) A. sum_jf=sum_jf+jf B.  sum_jf=sum_jf+jf C. sum_jf=jf+jf D.  sum_jf=jf+jf 7.某算法部分流程图如图所示,在流程图空白处填入一组代码,使输出结果sum与表达式“2-4+6-8+…-100”值相同的是(   ) A.①i=i+1 ②k=-k*2 B.①k=-k ②i=i+2 C.①i=i+2 ②k=-k D.①k=-k*2 ②i=i+2 8.已知 nums 列表中含有 5 个不相同的数字,该流程图的输出结果可能是(   ) A.1 B.111 C.011 D.001 9.某Python程序代码如下: import random n=input("请输入一串字符") f=[0]*128 for i in n:     f[ord(i)]+=1 for i in n:     if f[ord(i)]==random.randint(0,1):         print(i,end="") 若输出结果为xyz3,则输入可能是(   ) A.yazabcx3 B.auxYZ33 C.axaybbzc3 D.xyaaxbbz3c 10.某算法的部分流程图如图所示,执行这部分流程,若输出t为2,则输入s的值可能是(   ) A."abbaa" B."aabba" C."bbaaa" D."abaab" 11.在编程开发“智能停车场车位引导系统”的过程中,检查程序代码能否正确运行属于(   ) A.调试程序 B.分析问题 C.设计算法 D.编写程序 12.有五副不同颜色的手套(共 10 只手套,每副手套左右手各1只),一次性从中取6只手套,请问恰好能配成两副手套的不同取法有__________种。(    ) A.120 B.180 C.150 D.30 13.用算法流程图描述“高考总分达到 488,输出平行一段;高考总分达到 274,输出平行二段”的问题,用 t 表示高考总分。下列选项不正确的是(   ) A. B. C. D. 14.计算下列各式中S1、S2、S3的值,能设计算法求解的是(  ) S1=1+2+3+…+100    S2=1+2+3+…    S3=1+2+3+…+n(n≥1且S3<1000) A.S1,S2 B.S1,S3 C.S2,S3 D.S1,S2,S3 15.某算法的部分流程图如图所示,执行这部分流程后,变量a的值是(    ) A.-3 B.6 C.-5 D.11 16.有如下 Python 程序段:    s=input("请输入:")    res=0    for i in s:       if 'A'<=i<='Z':            res+=1       elif '0'<=i<='9':            res*=2            break    print(res) 执行该程序段,输入“The Asian Games 2023”,执行该程序段后,输出结果为() A.12 B.8 C.6 D.0 17.某超市部分商品的价格用 Python 存储在列表prices 中,prices=[{"土豆":5,"黄瓜":6,"豆角":4},{"书包":40, "笔记本":7,"铅笔":2 },{"果冻":12,"薯片":10,"酸奶":14}],若要访问果冻的价格,则正确的表达式为(   ) A.prices[2]["果冻"] B.prices[3]["果冻"] C.prices[2][1] D.prices[3][0] 二、填空题 18.小明想编写程序实现以下功能:输入正整数n,并计算1到n的累加值,即1+2+…+n。程序流程图如图所示 请根据题意,补全流程图的① 和② 处。 19.用Python编写程序完成横线处求解鸡兔同笼问题,已知有56只头,160只脚,求鸡兔各有多少只?     定义变量i为鸡的只数     for i in range(1,56,1):         :           print(i)           print((160-i∗2)/4) 20.Python语句list(range(1,10,3))执行结果为 。 21.在C++中,若要定义一个名为“Student”的类,并包含姓名和年龄两个私有成员变量,可以使用以下语句: 。 22.编程中, 是一种将代码组织成模块的方式,有助于代码的重用和维护。 23.写出该式子的表达式: 三、判断题 24.如果在函数中有语句 return 3,那么该函数一定会返回整数3。( ) 25.表达式list('[1, 2, 3]')的值是[1, 2, 3]。( ) 26.计算机无法解决“打印所有偶数”的问题,其主要原因是解决该问题的算法违背了算法特征中的有穷性。( ) 27.“无论算法有多么复杂,都必须在有限步骤之后结束并终止运行”,这句话表明了算法的有穷性。( ) 28.循环语句可以嵌套使用。( ) 四、操作题 29.已知某校高一年级第一、 二学期期中、 期末考试成绩存储在“exam.xlsx”中,如图1所示。教务管理员对历次考试中七门选考科目考试成绩(赋分)进行处理,本着分数优先原则,将平均分最高的两门科目作为备选科目,为高一学生选课提供参考。                                             图1 (1)若某生考试缺考则该科目分数标记为0,已知总分列是所有考试科目分数总和,请对数据进行整理,剔除缺考考生数据,划线处能实现该功能的语句是 (单选,填字母:A.df[df.总分>0] / B.df.总分>0 / C.df[总分>0] / D.df[df.总分]>0) import pandas as pd df=pd. read_excel("exam.xlsx") df= (2)计算每个同学的历次考试的平均成绩 gf= 若gf对象输出后图2所示,请在划线处选择合适的代码 (单选,填字母)                                        图2 A.df.groupby("姓名",as_index=False).mean()    B.df.groupby("姓名").mean() C.df.sort_values("姓名",ascending=False).mean()    D.df.groupby("班级",as_index=False).mean() (3)计算每个同学的两门优势学科,请在划线①②处完善代码。 km=gf. columns[4:11] gf.insert(12,"优势学科","")#在总分列后插入新的一列,列标题名为“优势学科”,初始值为"" for i in gf.index:     subject1=subject2=""     max1=max2=0     for j in range(0,len(km)):         cj=gf.at[i,① ]         if cj>max1:             ②             subject1=km[j]             max2=max1             max1=cj         elif cj>max2:             subject2=km[j]             max2=cj gf.at[i,"优势学科"]=subject1+subject2                         图3 (4)为了反映该校选考科目成绩整体情况,教务管理员对df对象处理后进行了可视化处理,制作图表如图3所示,关于该图表下列说法正确的是 (多选,填字母) A.使用第三方库 matplotlib 可以实现此数据可视化效果 B.从全校平均成绩看,该校技术、地理两门科目成绩具有相对优势 C.若对df对象按照“总分”列进行降序排序后再进行相同处理将影响图表效果 D.若删除“姓名”列数据将会影响图表效果 30.用 Python编辑器打开文件夹“exam\ks06”下的文件“g01.py”,进行以下操作并保存。 (1)删除<1>、<2>、<3>,在该处填写代码,完善程序,程序实现的功能是:输出如下图所示的结果。(请不要更改、删除其他代码) 第1行:3÷4=0.75 第2行:4÷4=1.0 第3行:5÷4=1.25 第4行:6÷4=1.5 第5行:7÷4=1.75 (2)编写完成后保存文件,并关闭应用软件。 for i in range (<1> ): print ("第",<2> ,"行:", end="") print (i+2,"÷",4 ,"=",(<3> ) /4) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查Python基础。若a值为10,b值为13,则a=b;b=a,变量a,b值均为13;t=a;b=a;a=t,变量a,b值均为10。故正确答案为:选项B。 2.A 【详解】本题考查的是枚举法相关知识。枚举算法通过列举问题所有可能的解,并逐一检查每个解是否满足问题的条件。故选项A正确。 3.D 【详解】本题考查Python基础。len函数可以返回字符型数据长度。排除选项A、B。由于字符"ab"*2运算的结果是"abab",再通过函数len,可以得到字符长度为4。故选择D。 4.C 【详解】本题考查Python表达式相关内容。A选项,3+6>=8 and 'do' in 'good'-->True and False-->False。B选项,int(23.6)%12==0-->23%12==0-->11==0-->False。C选项,'123'*2<'200'-->'123123'<'200'-->True。D选项,round(3.67,1)+22//3<=10.6-->3.7+7<=10.6-->10.7<=10.6-->False。故本题答案是C选项。 5.A 【详解】本题考查Python相关知识。feel[2]获取feel字典中键为2的元素,即 "like"。people[2]获取people列表中的第三个元素,即 "it"。将这二个部分拼接起来,得到 "likeit"。故答案为A选项。 6.A 【详解】本题考查的是流程图识读。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框。虚线框中应使用菱形框;用变量sum_if累计积分,jf表示每次得到的积分,故此处填sum_jf←sum_jf+jf或sum_jf=sum_jf+jf或sum_jf+=jf。故选A。 7.B 【详解】本题考查的是流程图识读。输出结果sum与表达式“2-4+6-8+…-100”值相同的,判断条件为i<=100,故i=i+2要在sum=sum+i*k的后;要实现正负的切换,通过k=-k实现。故选B。 8.D 【详解】本题考查流程图。初始时low为0,high为列表长度减1。在循环中,通过计算中间索引mid,比较nums[mid]与nums[high]的大小。如果nums[mid]<nums[high],则将high更新为mid,并在res中添加“0”;否则将low更新为mid+1,并添加“1”。由于nums中含有5个不相同数字,在进行二分查找过程中,根据数字大小关系会不断更新low和high,从而导致res中形成不同的“0”和“1”组合,所以输出结果可能是各种由“0”和“1”组成的字符串。若nums=[2,1,3,5,4],则程序输出res的值为001。故答案为:D。 9.C 【详解】本题考查random模块的综合应用;本题采用了桶计数的方式统计128个ASC11字符,每个字符出现的次数,再用循环再次遍历输入的字符串,若该串中的某个字符出现次数为1次,则有可能输出这个字符(生成的随机数0时则无法输出),所以可以知道,输出结果中的每个字符一定只出现了1次,在C项中,xyz3这四个字符均只出现了1次,故选C。 10.A 【详解】本题考查算法流程图相关内容。分析流程图可知,该算法功能是统计字符串中连续出现的字符的个数,若后继字符不同,t重置为1,再从该字符开始。A选项中,“a”为最后连续出现的字符,t值为2;B选项中,“a”为最后出现的字符,不连续,t重置为1;C选项中,“a”为最后连续出现的字符,t值为3;D选项中,“b”为最后一个出现的字符,不连续,t重置为1。故本题答案为A选项。 11.A 【详解】本题考查程序调试。在编程开发“智能停车场车位引导系统”的过程中,检查程序代码能否正确运行属于调试程序。故选A。 12.A 【详解】本题考查是解决问题的方法。先从5双手套中任选两双,有C25种取法;再从其余手套中任选2只,有C26种,其中选到一双同色手套的选法为3种。 故总的选法数为C25(C26-3)=120种。故选A。 13.A 【详解】本题考查算法流程图相关内容。分析四个流程图,可知:BCD选项的流程图可以正确描述“高考总分达到488,输出平行一段;高考总分达到 274,输出平行二段”的问题;A选项,若t>=274不成立,再去判断t>=488存在逻辑错误,不能正确描述题目要求。故本题答案是A选项。 14.B 【详解】本题考查算法相关内容。S1符合算法有穷性特点,可以求解。S2不符合算法有穷性特点,不能求解。S3符合算法有穷性特点,可以求解。故本题答案是B选项。 15.B 【详解】本题考查算法流程图相关内容。a=1,b=1,i=1 第一次循环,满足i<=10,a=a+b*i=2,b=-b=-1,i=i+2=3; 第二次循环,满足i<=10,a=a+b*i=-1,b=-b=1,i=i+2=5; 第三次循环,满足i<=10,a=a+b*i=4,b=-b=-1,i=i+2=7; 第四次循环,满足i<=10,a=a+b*i=-3,b=-b=1,i=i+2=9; 第五次循环,满足i<=10,a=a+b*i=6,b=-b=-1,i=i+2=11,循环结束。变量a的值是6,故选B。 16.C 【详解】本题主要考查Python程序设计相关内容。通过分析代码段,可以得知,该代码段功能:依次取字符串s中的字符,若是大写字母则res=res+1,若是数字则res=res*2,且退出循环的执行,输出res。输入“The Asian Games 2023”,则在遇到"2"之前,共有3个大写字母,3*2得6,故本题答案是C选项。 17.A 【详解】本题考查表达式。给定的 prices 列表是一个包含了三个字典的列表,每个字典代表了一组商品和价格的对应关系。所以,要访问果冻的价格,正确的表达式是:codeprices[2]["果冻"]这表示从 prices 列表中选择第三个字典(索引是2),然后从这个字典中选择键为 "果冻" 的值,即果冻的价格。故答案为A选项。 18. s=0 s=s+i 【详解】本题考查算法设计。①计算1到n的累加值,初始化累加和变量s=0。②累加遍历出的值i到s,故s=s+i。 19.if  i ∗ 2+(56-i)∗ 4==160 【详解】本题考查Python程序设计相关内容。本题描述的是鸡兔同笼问题,假设鸡的数量为i,则兔的数量为56-i,两者需要满足i ∗ 2+(56-i)∗ 4==160,才符合题目要求,程序段缺少该条件的判断,故本题答案是:if i ∗ 2+(56-i)∗ 4==160。 20.[1,4,7] 【详解】本题考查Python。range函数的语法是range(start,stop,step),它生成一个从start开始、到stop(不包括stop)结束、步长为step的整数序列。对于list(range(1,10,3)),参数为1(起始值)、10(终止值,不包括)、3(步长),生成的序列为1,4,7。因此,执行该语句的结果是[1,4,7]。故答案为:[1,4,7]。 21.class Student { private: string name; int age; }; 【详解】本题考查计算机编程语言。 在C++中,定义类基本语法格式: class ClassName(类名) { public:      公共成员函数和变量   private:     私有成员函数和变量    protected:     受保护的成员函数和变量 }; 若要定义一个名为“Student”的类,并包含姓名和年龄两个私有成员变量,可以使用以下语句:class Student { private: string name; int age; };。故正确答案为:class Student { private: string name; int age; };。 22.模块化 【详解】本题考查计算机编程。在编程中,模块化是将复杂的程序分解为相对独立且功能单一的模块的方法。每个模块具有明确的功能和接口,通过这种方式,可以使代码结构更清晰、逻辑更简洁。模块化有助于提高代码的可读性、可重用性和可维护性,不同模块可以独立开发、测试和修改,减少代码的冗余,方便团队协作和项目的扩展。故答案为:模块化。 23.(4*a*c-b**2)/(2*a) 【详解】本题考查Python表达式。在Python中,乘运算符是*,除运算符是/,幂运算符是**,因此该式子的表达式是(4*a*c-b**2)/(2*a)。 24.错误 【详解】本题考查Python基础。 题目中的说法过于绝对。在Python中,如果在这个 return 语句之前遇到另一个 return 语句,那么这个函数不一定会返回整数3。故错误。 25.错误 【详解】本题考查Python基础。 表达式 list('[1, 2, 3]') 的值并不是 [1, 2, 3]。在Python中,list() 函数用于将可迭代对象转换为列表,但如果直接传入一个字符串,list() 函数会将字符串中的每个字符视为列表的一个单独元素。故错误。 26.正确 【详解】本题考查算法特征相关内容。算法具有有穷性、确切性、输入项(0个或多个输入)、输出项(1个或多个输出)、可行性五个重要特征。“打印所有偶数”是无穷的,所以计算机无法解决“打印所有偶数”,是违背了“有穷性”的原则。故本题答案是:正确。 27.正确 【详解】本题主要考查算法的特征。一个算法应该具有以下五个重要的特征:1、有穷性: 一个算法必须保证执行有限步之后结束;2、确定性:算法的每一步骤必须有确切的定义;3、数据输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定义了初始条件;4、数据输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。故答案为正确。 28.正确 【详解】本题考查的知识点是循环结构应用。循环语句可以嵌套使用。在一个循环的内部再使用另一个循环,这就是循环的嵌套。在大多数编程语言中,如Python,Java,C++等,都支持循环的嵌套。故答案为正确。 29. A A km[j] subject2=subject1 AB 【详解】本题考查程序分析。 (1)剔除缺考考生数据,故需要筛选出总分字段大于0的所有数据。正确写法是df[df.总分>0]或df[df["总分"]>0]。故正确答案为:选项A。 (2)计算每个学生历次考试平均成绩,需要对姓名字段分类后(调用方法groupby),统计其平均值(调用方法mean)。需要注意的是设置as_index参数为False。因为数据没有将姓名作为新的索引。故正确答案为:选项A。 (3)程序外循环遍历数据gf,取出每行,内循环遍历km,取出列。cj存储科目成绩,故需要填写列km[j]。当cj成绩大于第一优势科目成绩,则将第一优势科目成绩赋值给第二优势科目成绩,更新第一优势科目成绩。故subject2=subject1。正确答案为:①kim[j]、②subject2=subject1。 (4)选项A,matplotlib是Python中一个非常流行的数据可视化库,它可以用于创建各种类型的图表,包括柱状图、折线图等,来展示数据。故正确。选项B,图表中技术和地理两门科目的平均成绩确实比其他科目高,这个选项正确。选项C,图表是展示每门科目的平均成绩,那么对df对象按照“总分”列进行排序将不会影响每门科目的平均成绩,因此不会影响图表效果。故错误。选项D,图表是基于科目平均成绩制作的,并且没有使用到姓名列数据,那么删除姓名列将不会影响图表效果。故错误。故正确答案为:选项A、B。 30. 1,6 i i+2 【详解】本题考查Python程序设计相关内容。分析题目内容及程序段,i值可以作为行号使用,同时控制循环次数,其初始值应为1,终值为5,结合函数range特点,<1>处完整代码应为:for i in range (1,6),故①处答案是:1,6。由输出内容可知,第i行的被除数为i+2,输出结果为(i+2)/4,故②处答案是:i,③处答案是:i+2。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

第2章 算法与程序实现 2024—2025学年高中信息技术人教/中图版(2019)必修1
1
第2章 算法与程序实现 2024—2025学年高中信息技术人教/中图版(2019)必修1
2
第2章 算法与程序实现 2024—2025学年高中信息技术人教/中图版(2019)必修1
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。