必修1 数据与计算
第1单元 初识数据与计算
1.1 我们身边的数据
典例剖析
[例] B 本题考查的是数据的相关知识。数据是客观事物的符号记录,是信息的表现形式和载体,可以是文字、声音、图像、视频等。故本题选B。
随堂练习
1.D 2.D 3.C
4.D 本题考查的是信息的特征。题干描述中提到,通过水肥一体智能化灌溉系统,改良盐碱地后取得了显著的经济与生态效益,表明信息能为人类活动带来积极作用。这强调了信息的有用性和重要性,体现了信息的价值性特征。故本题选D。
5.A
6.C 本题考查数据来源。直接数据是通过第一手资料获得的数据,通常是通过调查、实验、观测等方式直接获取的。间接数据是从已有的资料中获取的数据,如书籍、互联网、媒体资源等。通过调查问卷获取的数据属于直接数据,因为它是通过调查人员直接收集的第一手资料。故本题选C。
7.D
8.C 本题考查知识的相关内容。知识是人类在社会实践中所获得的认知和经验的总和,也是人类在实践中认识客观世界(包括人类自身)的成果,它包括对事实、信息的描述以及在教育和实践中获得的技能。A、B、D选项说法正确。C选项,知识是对信息进行加工提炼后的抽象产物,它具有一般性、系统性、规律性等特点,是比信息更高级的概念,而不是低级、具体且具有特殊性的信息。故本题选C。
9.C
10.B 本题考查的是知识。这段谚语对盐碱地的特征进行了概括和总结,表达了关于盐碱地农业生产困难的经验认识。知识是人们对事物本质及规律的认识,是信息和数据经过加工整理后的结果。故本题选B。
1.2 数据的计算
典例剖析
[例] C 本题主要考查WPS表格。WPS表格中的行用数字表示;WPS表格中的列用字母表示;WPS表格中的“sheet1”可以重命名;在新建的WPS表格中可以根据需要再添加新的工作表,系统自动命名为sheet2,故本题选C。
随堂练习
1.C 本题考查计算机解决问题的相关内容。对于简单的计算问题,人工计算的使用成本是最低的;对于复杂的计算问题,通常不采用人工计算来解决;依据实情,灵活运用三种计算方式将有助于我们提高数据计算的效率;编程解决计算问题不一定是最方便的,要依据实情,灵活运用三种计算方式。故本题选C。
2.B 本题主要考查常见软件应用。Word是文字处理软件;WPS表格是数据处理软件;Photoshop是图像处理软件;Flash是二维动画制作软件。用WPS表格对学生的期末考试成绩进行数据分析比较合适。故本题选B。
3.C 本题考查的是WPS表格。在WPS表格中,单元格地址是指单元格在工作表中的位置。故本题选C。
4.A 本题考查WPS表格相关内容。在WPS表格中进行分类汇总操作时,首先要对分类字段进行排序操作,故本题选A。
5.D
6.B 本题考查WPS表格相关内容。筛选后的表格中只含有符合筛选条件的行,其他行被暂时隐藏,A选项错误,B选项正确。筛选条件可以不固定,C选项错误。筛选条件可以由用户自定义,D选项错误。故本题选B。
7.A 本题考查的是表格数据处理。在Excel中使用“分类汇总”功能时,为了得到正确的分类汇总结果,需要先将数据按分类字段(本题为“所属区县”)进行排序,然后选择“数据”菜单中的“分类汇总”功能。在分类汇总窗口中,分类字段选择“所属区县”,汇总方式选择“计数”,汇总项选择对应的字段(“所属区县”),即可统计各区县的人数。故本题选A。
8.B
9.A 本题考查WPS函数相关内容。AVERAGE是求平均值函数,SUM是求和函数,COUNT是计数函数,MIN是返回最小值函数,小芮同学想了解自己各学科总分,在WPS中可用SUM函数。故本题选A。
10.D 本题主要考查WPS表格。在WPS表格中,创建图表时,应首先选定创建图表的数据区域,其次选择图表的形式、选择图表的类型、选择图表安放的位置,故本题选D。
11.B 本题考查Excel公式计算,因为涉及缺考值,故用SUM()函数。因此,本题选B。
12.C
13.C 本题考查WPS表格相关内容。在WPS表格中,输入文本数据时,要在数据前面加’(单引号),以文本格式显示。故本题选C。
14.D 本题考查WPS表格操作相关内容。公式中除数为0时,会出现“#DIV/0!”,单元格为空时解释为零值。所以A、B、C选项都会出现该错误信息。选项D中B11单元格被删除后,公式引用的单元格不存在,会出现“#REF!”错误,而不是“#DIV/0!”错误。故本题答案是D选项。
15.B
第2单元 编程计算
2.1 计算机解决问题的过程
典例剖析
[例1] D [例2] A
随堂练习
1.A
2.B 常见的算法描述方法有自然语言、流程图、伪代码、程序等,选项A、D错误;同一种算法用不同语言表达,其效率是不一样的,故本题选B。
3.C 本题考查的是算法的描述。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框,“②如果t<0”是条件判断,应放入菱形框。故本题选C。
4.D 本题考查的是选择结构。该问题要求根据不同的周测成绩情况,分配对应数量的读物,这是一个根据条件判断执行不同操作的任务,最适合采用选择结构。循环结构用于重复操作,赋值结构是直接赋值操作,顺序结构是简单按顺序执行,因此都不符合题意。故本题选D。
5.A 本题主要考查算法的描述方法。由题干可知,以上算法采用的描述方法是自然语言,故本题选A。
6.D 本题主要考查程序设计语言。机器语言、汇编语言均是低级语言。面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。面向对象更适合开发复杂事务,故本题选D。
7.A 数学语言不是算法描述方法,故排除C;本题中是用汉语来描述算法,故为自然语言描述算法。故本题选A。
8.C WPS不属于程序设计语言,故本题选C。
9.B
10.B 以#开头的语句是注释语句,用于说明代码实现的功能、采用的算法等信息,可提高程序的可读性,不参与程序的执行。
2.2 做出判断的分支
典例剖析
[例1] C 本题考查Python变量命名规则。变量名称只能由数字,字母和下划线组成,且不能以数字开头;变量名称区分大小写;不可以用Python保留字(33个)命名。选项A以数字开头,不合法;选项B是Python保留字,不合法;选项C合法;选项D中含有$不合法。故本题选C。
[例2] A 本题考查的是Python表达式。%表示求模,//表示整除,**表示幂乘,*表示乘,2%5=2,2//5=0,(3>4)*2=0,4-3%5**2=1。故本题选A。
随堂练习
1.A 本题考查Python变量的命名。Python变量命名规则包括以下几点:
(1)变量名只能包含字母、数字和下划线,且不能以数字开头。
(2)变量名不能是Python的保留字。
(3)变量名区分大小写。
选项A,int1符合命名规则;选项B,2025py以数字开头,不符合命名规则;选项C,elif是Python的保留字,不符合命名规则;选项D,xiaomi@163包含非法字符“@”,不符合命名规则。故本题选A。
2.A 本题考查Python语句执行。字符串乘以数字n,表示将该字符串重复n次,因此输出结果是***。故本题选A。
3.A 选项A应为x!=y,故本题选A。
4.D
5.D 本题考查的是Python表达式。在Python中,a=6是赋值语句,用于将值6赋给变量a。而a==6是比较运算符,用于判断变量a的值是否等于6。因此,选项D是正确的。故本题选D。
6.B 7.C 8.C
9.D a%2==1:表示a除以2的余数为1,即a是一个奇数;a%5==0:表示a除以5的余数为0,即a是5的倍数。所以此表达式检查的是a是否既是奇数又是5的倍数。故本题选D。
10.A 本题考查Python表达式相关内容。a=1,a>2不成立,结果为False,可由0表示,则(a>2)*a*2=0*1*2=0。故本题选A。
11.D
2.3 周而复始的循环
典例剖析
[例1] A sort()函数的功能是将列表中的元素排序,默认是升序,故本题选A。
[例2] C 由range(1,10)可知i的取值范围为1~9,x的初值为0,执行for语句后,执行x=x+i,功能是求1~9所有整数的和。故本题选C。
随堂练习
1.C 在Python中,列表的索引可以从0开始正向递增,也可以从-1开始反向递减。当索引为-2时,表示列表中的倒数第二个元素。根据给出的列表s=['长江','长城','黄山','黄河'],我们可以确定每个元素的索引。因此,s[-2]是黄山。
2.A 本题考查Python中range()函数的相关内容。range(6,10,2)是在[6,10)范围内取值,步长为2,取出的数为6、8,即生成的列表中元素为2个。故本题选A。
3.D 列表中的元素不需要具有相同的类型,可以存储混合类型的数据。故本题选D。
4.C 本题主要考查Python函数。ord()函数用于将字符转换为整数,即用于获取ASCII给定字符的值;val()函数的功能为将一组字符型数据的数字部分转换成相应的数值型;str()函数返回一个对象的string格式;sum()是求和函数,能够对列表[1,7,9,8,5]求和,故本题选C。
5.A 本题考查的是Python程序语言基础。程序执行的每一步操作如下:
(1)初始化列表a为["I","Love","C++"];
(2)使用pop(-1)方法删除列表a中最后一个元素"C++",此时列表变为["I","Love"];
(3)使用append("Python")方法向列表末尾添加"Python",此时列表变为["I","Love","Python"];
(4)使用print(a)输出列表,因此输出为['I','Love','Python']。故本题选A。
6.D 本题考查的是Python循环语句。x初始值为2,当x不等于4时,x值加1,故退出循环时x=4。由print("x的值是",x)可知输出的结果是:x的值是4。故本题选D。
7.D 本题考查的是Python的while循环语句。由if n%2==0可知,输出的是偶数,由n=1及while n<20可知:输出1至20内的所有偶数(包括20)。故本题选D。
8.D 本题考查Python循环语句。分析程序段可知,该程序段的功能是计算数值i的和,如果和s>21,则终止循环。当i=1、2、3、4、5、6时,执行s=s+i操作,s值为21。s>21的条件不成立,再次执行s=s+i操作,s值为28,s>21的条件成立,跳出循环。s=s+i执行了7次。故本题选D。
9.A 本题主要考查Python循环语句。for循环中i的变化范围是从1~10,循环结束时i=10,s=0+1+2+3+4+5+6+7+8+9+10=55。故本题选A。
10.D continue语句并不是用来跳出整个循环,而是用来跳过当前循环中剩余的语句,并开始下一次循环。故选项A错误;break语句是用来跳出当前循环,并停止整个循环的执行,而不是继续执行下一次循环。故选项B错误;continue语句既可以在while循环中使用,也可以在for循环中使用。故选项C错误;continue语句用于跳过当前循环中剩余的语句,并开始下一次循环,它可以在while和for循环中使用。故本题选D。
2.4 可以复用的代码
典例剖析
[例] (1)B (2)D (3)A (4)D
本题考查Python程序设计相关内容。分析代码段,(1)A选项,语句6变量a是在自定义函数func中定义,语句7变量a是在主程序中定义,两者不相同。B选项,语句8右边的变量b是实际参数,与语句7变量b是同一个变量。C选项,语句7变量b的值是4,语句8左边的变量b是调用func函数后的返回值3,两者不相同。D选项,语句6变量a是在自定义函数func中定义的形参,语句8右边的变量a是主程序中定义的实参,两者不相同。故本小题选B。
(2)函数作用是当a小于或等于b时,交换a,b的值并返回主程序,故输出的结果是4 3。故本小题选D。
(3)A选项,func()的参数和返回值不相同,选项错误。B选项,func()有两个形参:a,b,选项正确。C选项,func()有两个返回值:a,b,选项正确。D选项,func()是自定义函数,选项正确。故本小题选A。
(4)函数代码块以def开头,后接函数名称和圆括号()。参数必须放在圆括号中,若为多个参数时用逗号分隔,函数定义中的参数列表中的参数为形式参数。用return返回计算值,不需要返回值时,return可省略。一个函数中只能用一次return语句(如果条件语句本质上也还是一个返回值),如果希望返回多个值,可以以列表或者元组等数据结构表达的方式返回。对比4个选项,A、B、C选项错误,D正确,故本小题选D。
随堂练习
1.C 函数分为系统函数和自定义函数,故本题选C。
2.D input()为输入函数、bin()为十进制数转为对应的二进制数的函数、float()是浮点函数,都是常见的系统函数,factorial()不是系统函数,故本题选D。
3.B 在Python中自定义函数需要def关键字放在函数开始,故本题选B。
4.D sleep是时间模块time的函数,即正确的调用是time.sleep(),故本题选D。
5.B 函数是一段具有特定功能、可重复使用的语句组,可通过函数名(参数列表)调用。函数的参数值可以根据需要动态传递,每次调用时传递的值可以不同。故本题选B。
6.A 由print(factorial(4))可知,传递给自定义函数的参数是4,故返回值s=1*2*3*4=24。故本题选A。
7.C 本题考查Python相关知识。Python模块定义:逻辑上来说模块就是一组功能的组合。实质上一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀。模块文件的扩展名一定是.py,其他扩展名的文件无法直接作为模块导入。故本题选C。
8.D 本题考查的是Python语言基础。内置函数、自定义函数和内置功能模块都可以通过封装和模块化提高代码的复用性,而注释语句仅用于增加代码的可读性,不影响代码的复用效率。故本题选D。
9.D 本题考查Python中return语句的相关内容。return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数,函数定义中可以没有return语句,也可以有多个return语句,但只执行其中的一个,如果没有return语句,则默认返回None(空值)。return语句可以返回多个值,这些值将按照从左到右的顺序依次被返回。故本题选D。
10.B 本题考查Python程序设计相关内容。分析程序段,其功能是将数据+1后返回,a=10,调用函数后,其运行结果为11。故本题选B。
第3单元 认识数据
3.1 数据编码
典例剖析
[例1] A 本题考查编码相关内容。模拟信号是指信息参数在给定范围内表现为连续的信号,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。传统的有线电话属于模拟信号。开关电路中输出电压是开关量信号,又叫数字量信号,不是模拟信号。计算机网络通信传输的是数字信号。智能语音助手通过数字信号处理技术,将文字或命令转换为语音信号输出,属于数字信号。故本题选A。
[例2] A 本题考查的是编码的相关知识。编码是信息按照某种规律与格式,从一种形式转换成另一种形式的过程;解码是编码的逆过程;数据存储在计算机中要转换为二进制数据;声音的数字化过程需要经过编码。故本题选A。
随堂练习
1.C 电脑中播放的音频文件通常是数字信号,而传统收录机播放的磁带是模拟信号。故本题选C。
2.D 3.D 4.A
5.B 本题考查的是计算机存储容量。计算机中存储容量的基本单位是字节(Byte),最小单位是比特(bit)。故本题选B。
6.A 本题考查字符编码相关内容。全角英文字符是指一个字符占用两个标准字符的位置;半角英文字符是指一个字符占用一个标准的字符位置。计算机存储一个半角英文字符占用1个字节。故本题选A。
7.D “A”的ASCII码为65,“a”的ASCII码为97,小写字母的ASCII码要比大写字母的ASCII码大。故本题选D。
8.C 本题考查编码。ASCII码表中,数字编码小于大写字母,大写字母小于小写字母。故本题选C。
9.C 本题主要考查字符编码。字符“e”和字符“h”间隔3,对应的二进制数是0011。已知字符“e”的ASCII编码是01100101,则字符“h”的ASCII编码是01100101+0011=01101000,故本题选C。
10.A 本题考查的是采样频率。采样频率,也称为采样速度或者采样率,定义了单位时间内从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。故本题选A。
3.2 数据与结构
典例剖析
[例1] D 如果用Python处理火车票的订单,因为站点名称是由文字组成的,用于标识不同的地点,火车票的“站点名称”应设置为字符型数据类型。因为票价可能包含小数点,用于表示火车票的价格,而“票价”应设置为浮点型数据类型。故本题选D。
[例2] D 具有线性结构的数据结构是队列,图、树和堆都属于非线性结构。故本题选D。
随堂练习
1.B 在使用Python处理图书订单记录时,考虑到订单记录包含多个相关字段(如图书编号、书名、单价、数量、金额),最适合选用的数据类型是字典或列表。故本题选B。
2.A int的作用是将通过input输入的字符型数据转换为整型。故本题选A。
3.C 本题主要考查数据结构的描述。线性结构的特点有:①集合中必存在唯一的一个首元素;②集合中必存在唯一的一个尾元素;③除最后元素外,其他数据元素均有唯一的后继元素;④除第一元素外,其他数据元素均有唯一的前趋元素。故本题选C。
4.C 本题考查图结构的特点。图结构是一种数据结构,其中的数据元素(节点)之间可以是多对多的关系。这意味着一个节点可以与多个其他节点相连,而这些其他节点也可以与多个节点相连。因此,图结构的主要特点是数据元素之间是多对多的关系。故本题选C。
5.C 本题考查图结构的基本概念。图结构是一种由顶点和边组成的数据结构,用于表示对象及其相互关系。城市交通图(铁路网,公路网,航空网)、电话网和互联网都可以用图结构来表示,其中顶点表示城市、电话节点或网络节点,边表示它们之间的连接关系。而公司组织架构图通常表示为树结构,其中每个节点代表一个职位或部门,边表示上下级关系,不符合图结构的定义。故本题选C。
6.B 本题考查数据结构。pop()方法是删除列表的最后一个元素,而不是首元素。其他选项正确。故本题选B。
7.A 8.C
3.3 数据与系统
典例剖析
[例] C 本题考查数据与系统相关内容。数据库是以一定的组织方式存储在计算机中的相互关联的数据集合。在数据库中,数据表是存储数据的基本单位,由行和列组成,用于组织和存储相关数据。数据表中的每一行代表一条记录,每一列代表一个字段或属性。数据表中的每行是唯一的,不能相互交换位置(行的顺序可能影响外键约束和数据依赖,不能随意交换位置)。故本题选C。
随堂练习
1.D open是打开文件的操作方法。故本题选D。
2.B 3.B 4.C
5.B 本题考查的是SQL语言。在SQL语言中,OR表示或者,AND表示并且,=表示赋值或相等。故在SQL语言中,表示职称为“中小学高级”,同时性别为“女”的逻辑表达式为:职称='中小学高级'AND性别='女',故本题选B。
6.A 7.A 8.B 9.C 10.A 11.A
3.4 加密与解密
典例剖析
[例] D 本题考查密码的相关内容。创建密码的一般技巧:第一,使用长度不少于8个字符的密码,密码长度越长越不容易被破解。第二,在可能的情况下,尽量使用字母、数字和特殊字符相结合的密码。第三,不要使用电话号码、身份证号码或生日等信息作为密码。第四,不要使用整个用户ID或用户ID的一部分作为密码。第五,不要使用字典中能找到的词语作为密码,即使是字母次序颠倒过来的常用词语也不可以。恺撒密码是一种最简单且最广为人知的加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。对称加密使用相同的密钥进行加密和解密,速度快但需要确保密钥安全共享。非对称加密使用一对密钥,公钥用于加密,私钥用于解密,提供更好的安全性但速度较慢。对称加密适合大数据量的加密,例如文件传输。非对称加密适合安全通信,例如网络传输和数字签名。恺撒密码是一种对称加密技术。A、B、C选项说法错误,D选项说法正确。故本题选D。
随堂练习
1.D 本题考查的是密码设置。安全密码通常需要包含大小写字母、数字和特殊字符,并且长度较长以增加破解难度。选项“Zw*3a74P”包含大小写字母、数字和特殊字符,符合安全密码的要求。故本题选D。
2.B 本题考查信息安全相关内容。肩窥方式是一种常见的信息窃取方式,通过观察他人在输入密码或者进行身份验证过程中的动作和操作,从而窃取他人的个人信息和身份认证信息。防肩窥方式窃取密码的方式是切断被窥看的途径。在输入密码时遮挡操作过程可以防止肩窥方式窃取密码。故本题选B。
3.A 暴力破解又被称为密码穷举,它是通过系统地尝试所有可能的组合,以找到正确的密码;字典破解则利用一个字典中常见的密码来破解;而肩窥方式是通过观察他人输入密码来获取信息;强行盗取没有明确定义,所以暴力破解最贴切的称为密码穷举。故本题选A。
4.C
5.D 本题考查加密技术相关内容。A选项,对称式加密指加密和解密使用两个相同的密钥,选项错误。B选项,原始信息称为明文,加密后的信息称为密文,选项错误。C选项,将明文还原成密文的过程称为加密,选项错误。D选项,加密技术通常分为对称式加密和非对称式加密,选项正确。故本题选D。
6.D
第4单元 计算与问题解决
4.1 算法及其特征
典例剖析
[例1] A 本题考查算法的特征。在给出的问题中,“打印所有的质数”是一个数学问题,而且质数是无穷多的,因此,算法无法在有限的步骤内完成任务,违背了算法有穷性的特征。故本题选A。
[例2] D 本题考查的是对枚举算法的概念以及特征的理解,枚举是用循环把所有可能的答案一一列举,有枚举对象和判断条件,而且枚举算法设计直接、简单。
随堂练习
1.C 解决具体问题的算法可以有多种,不是唯一的;不能通过算法求解所有自然数的和,自然数是无限的;算法的步骤不存在必须是可逆的。故本题选C。
2.B 本题考查算法特征相关内容。算法的特征有:有穷性、确切性、可行性、有0个或多个输入、有一个或多个输出等,唯一性不属于算法特征。故本题选B。
3.A 4.D
5.A 本题考查算法特征相关内容。算法具有五个基本特征:输入项、输出项、有穷性、确切性和可行性。若方程不存在实数根,则输出“方程无实数根”,否则输出该方程的根。这一要求主要体现了算法特征中的输出项,故本题选A。
6.D 本题考查计算机算法。求出一个无理数所有位数之和:这是一个不能通过计算机算法得到唯一解的问题,因为无理数的位数是无穷无尽的,不可预知。计算机无法一一列举所有位数。故本题选D。
7.B 本题考查算法特征相关内容。一个算法应该具有以下五个重要的特征:(1)有穷性,算法的有穷性是指算法必须能在执行有限个步骤之后终止;(2)确切性,算法的每一步骤必须有确切的定义;(3)输入项,一个算法有0个或多个输入,以刻画运算对象的初始情况;(4)输出项,一个算法有一个或多个输出,以反映对输入数据加工后的结果;(5)可行性,算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成(也称之为有效性)。故本题选B。
8.B 本题考查算法相关内容。解析法是指能够找出表示问题的前提条件和结果之间的关系的数学表达式,并通过表达式的计算来实现问题的求解。枚举法是指在算法中采用搜索的方法,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的结果,保留那些符合要求的结果。递归法是一种通过重复将问题分解为同类的子问题而解决问题的方法。归纳法一般指归纳推理,是一种由个别到一般的推理。由一定程度的关于个别事物的观点过渡到范围较大的观点,由特殊具体的事例推导出一般原理、原则的解释方法。鸡兔同笼、百鸡百钱、求1 000以内所有的素数……这些问题,可以用枚举法解决。故本题选B。
9.D 本题主要考查加密算法的描述。暴力破解用到的算法是穷举法,穷举所有的可能,故本题选D。
10.A
4.2 数值计算
典例剖析
[例] C 本题主要考查迭代算法。利用迭代算法解决问题,有三个关键步骤:确定迭代变量;建立迭代关系式;对迭代过程进行控制,这是编写迭代程序必须考虑的问题,不能让迭代过程无休止地重复执行下去。故本题选C。
随堂练习
1.B 本题考查迭代算法。题目描述的产品研发理念是“上线-反馈-修改-上线”的过程,这表现出一个逐步改进、反复更新的过程。这种方式与迭代思想非常类似。迭代是一种算法思想,通过多次重复执行某个步骤,不断逼近最优解或找到平衡点。在研发过程中,产品经历多个迭代步骤,不断收集数据和反馈,然后做出相应的调整和改进,这与迭代的反复过程一致。因此,答案是迭代。故本题选B。
2.B 3.D
4.B 本题考查迭代算法的应用。从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和,又同时作为下一个月兔子对数的加数。这种重复反馈的过程称为迭代。故本题选B。
5.B
4.3 非数值计算
典例剖析
[例] D 本题考查二分查找算法。二分查找将问题通过逐步缩小范围、分成两个子问题解决,这种思想正是“分治算法”的核心思想。分治通过递归或迭代将问题划分为更小的问题并逐步解决,直到答案得出,而不是枚举所有可能的情况或者贪心求局部最优解,因此答案为分治。故本题选D。
随堂练习
1.C 本题主要考查分治算法。分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决问题,最后将子问题的解组合起来形成原问题的解。这要求原问题和子问题的性质相同,规模不同,故本题选C。
2.C
3.D 本题考查递归。A选项错误,函数间接调用自己仍然是递归,只是通过其他函数进行了间接调用;B选项错误,在实际情况下,递归函数的嵌套调用次数是有限制的,受限于计算机的内存和栈空间;C选项错误,通常情况下,递归函数的执行效率较低,因为它需要频繁地压栈和出栈操作,相比之下,非递归函数可能会更高效;D选项正确,递归函数的正确性取决于递归出口(递归终止条件)和递归关系(递归调用),它们是递归函数编写的关键。故本题选D。
4.B 本题主要考查递归算法。F(n)=F(n-1)+2,F(1)=5。当n=3时,F(3)=F(2)+2=F(1)+2+2=5+2+2=9,故本题选B。
5.B 对长度为n的有序线性表中进行二分查找,所需次数最多为log2n,log21000约等于10。故本题选B。
6.C 本题考查的是二分查找。二分查找法的步骤如下:
(1)初始数列为[3,9,16,25,33,47,56],中间元素为25。33>25,所以查找范围缩小为[33,47,56]。
(2)新的中间元素为47。33<47,所以查找范围缩小为[33]。
(3)新的中间元素为33,找到目标。
因此,查找次数为3次。故本题选C。
7.C 本题考查的是递归。在递归函数中,通常需要在递归调用时改变参数以逐步接近递归终止条件。在本题中,if i>1:表示当i大于1时继续递归,因此需要递减i的值以最终达到终止条件i<=1。选项dg(i-1)正是通过递减i的值来实现这一点,从而正确地进行递归调用。其他选项i=i-1和i=i+1只是改变了i的值而没有进行递归调用,而dg(i+1)则会导致递归深度增加,无法达到终止条件。故本题选C。
4.4 综合问题的解决
典例剖析
[例] A 仅仅将图片加载得到变量air指向的内存中,故本题选A。
随堂练习
1.A 本题考查Python基础。在pygame中,通常使用while循环来持续检查事件、更新游戏状态和绘制窗口。没有这个循环,游戏窗口在绘制一次后就会关闭。故可以使用无限循环让代码持续运行,故本题选A。
2.C 从总体入手,从细节优化,面向整体,细化局部,故本题选C。
3.D 延迟是delay,故排除A、C选项,然后参数单位是毫秒,故本题选1000,故本题选D。
4.C ①是加载图片;④中size应更改为geometry;所以②③正确,故本题选C。
5.B 本题考查Python基础。pygame是一个用于创建视频游戏的Python库,它提供了丰富的功能来加载、处理和显示图像。然而,在图层存储方面,pygame的图像函数对GIF格式的支持是有限的,尤其是当GIF图像包含多个图层或动画时。故本题选B。
6.D 监听一般是鼠标、键盘的操作,故本题选D。
7.A set_caption是设置窗口的标题栏内容,故本题选A。
第5单元 数据分析与人工智能
5.1 走近数据分析
典例剖析
[例] D 本题考查数据分析。对比分析是一种通过对多个数据或指标进行比较,分析它们之间差异的方法。选项中的“现状分析”“原因分析”“预测分析”都不符合题意,故本题选D。
随堂练习
1.D 本题考查数据分析相关内容。横向对比是指将同一类别或同一对象的不同事物或概念进行比较。横向对比的目的是从多个角度考察不同事物的差异和相似之处,帮助人们更好地理解事物。纵向对比是指将同一事物在不同时间或不同条件下进行比较,纵向对比的目的是分析事物的发展变化、趋势和演化过程,揭示事物的内在规律。平均分析法是指运用计算平均数的方法来反映总体在一定时间、地点条件下某一数量特征的一般水平的分析方法。情景分析法又称脚本法或者前景描述法,是假定某种现象或某种趋势将持续到未来的前提下,对预测对象可能出现的情况或引起的后果作出预测的方法,通常用来对预测对象的未来发展作出种种设想或预计,是一种直观的定性预测方法。题目内容中采用了横向对比、纵向对比和平均分析,并未采用情景分析法。故本题选D。
2.C
3.C 本题考查图表相关内容。折线图常常用来显示随时间而变化的连续数据,适用于显示在相等时间间隔下数据的趋势。饼图常用于显示一个数据系列中各项的大小与各项总和的比例,也可以显示出整个饼图的百分比。柱形图常常用来显示一段时间内数据变化或比较各项数据之间的情况。数据地图是一种图形化的数据资产管理工具,它通过多层次的图形化展示,提供各种力度控制能力,以满足不同应用场景的需求,如业务使用、数据管理和开发运维等,可用于空间关系分析。故本题选C。
4.A 本题考查数据分析相关内容。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据分析的过程包括首先要根据分析的目标提出假设,然后选择恰当的分析方法进行分析,验证假设是否正确。A选项不属于数据分析的一般过程。故本题选A。
5.C 数据分析报告通常会使用多种形式来展示数据,包括图表、图形、表格等可视化工具,以便更直观、清晰地传达分析结果。故本题选C。
6.D
7.D 本题考查大数据技术的应用。在线视频会议在一定程度上可能不需要大数据技术的支持。虽然视频会议系统可能会使用网络数据传输技术,但其主要功能不依赖于大数据技术,而更多是依赖于实时通信技术。故本题选D。
8.D 本题考查大数据。大数据的使用确实带来了很多便利和机遇,但同时也伴随着安全隐患和负面影响。例如,大数据的泄露可能导致个人隐私的暴露,大数据的误用可能导致错误的决策等。其他选项均正确,故本题选D。
9.C C选项“相关性重于因果”是指在大数据环境下,更注重数据之间的相关性,而不是因果关系。在这个事例中,网络监测团队通过分析搜索感冒药的数据量与流感暴发之间的相关性,成功预测了流感的暴发时间及区域,这正体现了大数据的相关性重于因果的特征。故本题选C。
10.A 气象预测数据对于农业、航空、航海、灾害预警等多个领域都有着重要的指导作用,能够帮助人们做出更为合理的决策和准备。因此,即使存在一定的不确定性,气象预测数据的参考价值仍然是非常大的。故本题选A。
5.2 探秘人工智能
典例剖析
[例] C 本题考查的是语言识别技术。语音识别也称为自动语音识别(ASR)、计算机语音识别或语音到文本,是计算机识别口语并将其翻译成文本的能力。对音箱用“说”的方式发布操作指令,这种服务主要运用的技术是语音识别。故本题选C。
随堂练习
1.D
2.B 本题考查的是搜索。启发式搜索(Heuristically Search)又称为有信息搜索(Informed Search),它是利用问题拥有的启发信息来引导搜索,达到减少搜索范围、降低问题复杂度的目的,这种利用启发信息的搜索过程称为启发式搜索。在启发式搜索中,帮助选择搜索方向的线索称为启发信息。故本题选B。
3.C
4.B 本题考查人工智能技术相关内容。人工智能技术包含的关键技术有机器学习、自然语言处理、知识图谱、人机交互、计算机视觉、机器人技术等,A、C、D选项属于关键技术,B选项不属于。故本题选B。
5.B 本题考查人工智能相关内容。人工智能、机器学习、深度学习三者的关系是人工智能包含机器学习,机器学习包含深度学习。A、C、D选项描述错误,B选项描述正确。故本题选B。
6.D 7.C
8.D 本题考查的是图灵测试。图灵测试被用来判断一台机器是否具备了人类智能,目的在测试机器能否表现出与人等价或无法区分的智能。故本题选D。
9.B
10.D 本题考查的是人工智能的知识。机器学习是一门多学科交叉专业,涵盖概率论知识、统计学知识、近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。题干中计算机“自动获取知识和技能而实现自我完善”这是机器学习的范畴,故本题选D。
21世纪教育网(www.21cnjy.com)1.1 我们身边的数据
【复习目标】
1.了解数据与信息的特征。
2.理解数据、信息和知识的相互关系。
3.能从恰当的来源获取数据,并对数据进行简单的分析。
4.感受利用数字化工具和资源的优势。
一、数据
1.数据的定义:数据是现实世界客观事物的符号记录。
2.数据的表现形式:数据的表现形式多种多样,除了数字以外,还有文字、图形、图像、声音和视频等形式。
3.数据的特征
(1)固定不变的数据:如圆周率π;一个标准大气压下,冰水混合物的温度为0 ℃。
(2)不断变化的数据:一周的天气情况,国际黄金价格等。
(3)随机出现的数据:比如抛硬币正面向上还是反面向上。
4.数据的来源
(1)直接数据:统计调查或科学实验得到的原始数据。
(2)间接数据:通过查阅资料获得的数据或他人对原始数据处理过的数据。
5.数据的收集方法
(1)直接数据的收集方法:调查法、访谈法、观察法、实验法及利用各种传感器、探测器等设备与相关检测技术等收集等。
(2)间接数据的收集方法:查阅文献资料、关注媒体资源、浏览权威网站、利用搜索引擎在网络中进行检索、从相关数据公司购买等。
6.数据分析
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息,并形成结论的过程。
二、信息
1.数据是信息的符号表示;信息是数据的内涵,是对数据的语义解释。
2.信息的特征:载体依附性、价值性、时效性、共享性、真伪性、可加工处理性等。
三、知识
知识是信息经过加工提炼后形成的抽象产物。它表述的是事物运动的状态和状态变化的规律。知识是一类高级的、抽象的,而且具有普遍适应性的信息。知识是认识世界的结果,也是改造世界的依据。
四、数据、信息和知识的关系
数据是对事物属性的客观记录,信息是经过组织的有结构的数据,知识是经过人的思维整理过的信息、数据、形象、价值标准以及社会的其他符号化产物。
[例] 下列关于数据的说法错误的是( )
A.数据是客观事物的符号记录
B.数据仅指数学中的数字
C.数据具有客观性
D.数据的表现形式多种多样,既可以是数字,也可以是文字、声音、图像、视频等
1.下列不属于数据的是( )
A.刷卡时显示的卡内余额 B.电子钟上的时间
C.书籍封底下端的国际标准书号(ISBN) D.显示体温数值的额温枪
2.下列关于数据的描述正确的是( )
A.数据不可以被感知 B.互联网是数据产生的唯一途径
C.信息是数据的符号表示 D.数据是信息的载体
3.小明带着优惠券去超市购物,收银员提醒他,优惠活动已结束,不能再使用。这一事例主要说明信息具有( )
A.真伪性 B.共享性 C.时效性 D.不完全性
4.水肥一体智能化灌溉系统根据盐碱地改良数字平台提供的信息不断调整水肥灌溉方案,改良过后土壤全盐含量降低30%以上、pH值降低5%~10%,单位面积土地经济效益提高20%以上。这主要体现的信息特征是( )
A.真伪性 B.依附性 C.传递性 D.价值性
5.信息是有意义的( )
A.数据 B.数字 C.知识 D.智慧
6.数据按获取的渠道可分为直接数据和间接数据。下列属于直接数据的是( )
A.从书籍中获取的数据 B.在互联网上搜索到的数据
C.通过调查问卷获取的数据 D.从媒体资源中得到的数据
7.下列属于间接数据收集方法的是( )
A.调查法 B.访谈法 C.实验法 D.查阅文献法
8.下列关于知识的说法,错误的是( )
A.知识是人类求知活动的结晶
B.知识是信息经过加工提炼后形成的抽象产物
C.知识是一类低级的、具体的,而且具有特殊性的信息
D.知识表述的是事物运动的状态和状态变化的规律
9.下列关于数据、信息、知识的说法正确的是( )
A.数据都是随机出现,不断变化的
B.信息会增加接受者对事物认识上的不确定性
C.信息经过提炼、研究和分析后,可以内化为知识
D.不同的人对于同样信息的认知都是相同的
10.关于盐碱地有这样的谚语:“春天白茫茫,夏天雨汪汪,十年九不收,糠菜半年粮。”这段描述属于( )
A.数据 B.知识 C.信息 D.数字
1.2 数据的计算
【复习目标】
1.了解计算的基本方式和计算的发展过程。
2.根据问题需求,选用恰当的计算方式。
一、计算
1.算术运算:“数据”在“运算符”的操作下,按“规则”进行的数据变换,如“3+3=6”“5×2=10”。
2.计算机领域的计算:通过建立分析模型和设计有效的步骤、方法,利用自动计算工具来进行规律预测和发现。
3.解决问题的计算方式
(1)人工计算
(2)电子表格软件
(3)编程计算
二、电子表格软件及其功能
电子表格软件是面向大众的计算工具,它的图形用户界面及“所见即所得”的编辑技术等使对数据进行计算更加易于操作。如WPS表格。
1.数据的排序
用电子表格软件对数据进行排序时分为按行排序和按列排序。
(1)排序数据区域
排序的数据区域必须是连续的。
(2)多关键字排序(主要关键字、次要关键字等)
如果需要按照多个条件排序,可以进行多个关键字的设定。按主要关键字排序,当主要关键字相等时,则根据次要关键字的要求排序。
(3)有标题行与无标题行排序
有标题行关键字用标题行上的名称,无标题行排序时关键字用“列X”。
2.数据的筛选
(1)筛选会依据条件显示需要的数据,其余的内容都会被隐藏起来。筛选不会以任何方式更改数据,取消筛选之后,所有数据都会重新出现。
(2)筛选的方式
①自定义筛选
大于、小于、等于、不等于、包含、开头是、结尾是等。文本筛选时可能需要使用通配符号*、 (*表示任意多个字符, 表示任意一个字符)
②多关键字筛选
3.公式和函数
在电子表格软件中,有公式计算和函数计算两种方式。
(1)公式计算
以“=”开头,由常数、函数、单元格引用和运算符组成的式子。如在D4单元格中输入公式“=A4+B4+C4”。
(2)函数计算
函数是预定义的公式,通过使用参数按特定顺序或结构进行计算。
常用的函数有:
SUM(number1,[number2] ,...)求参数的和
AVERAGE(number1,[number2] ,...)求参数的平均值
MIN(number1,[number2] ,...)返回参数列表中的最小值
MAX(number1,[number2] ,...)返回参数列表中的最大值
(3)自动计算
利用电子表格软件,根据要求自动计算选定区域中数据的平均数(AVERAGE)、最大值(MAX)、最小值(MIN)、计数(COUNT)或求和(SUM)等。
4.分类汇总
(1)操作方法:
①首先要按照分类字段排序,以便将要进行分类汇总的行排列在一起;
②然后依据汇总方式计算选定汇总项。
(2)分类汇总时需要注意:
①正确选择分类字段;
②正确选择汇总方式,常用的汇总方式有求和、计数、平均值、最大值、最小值、乘积等;
③正确选择汇总字段,汇总字段可以是多个。
单元格地址的相对引用和绝对引用
引用的作用是标识工作表上的单元格或单元格区域,并指明公式中所使用的数据的位置。在WPS表格中,对单元格的引用分为相对引用和绝对引用两种。
(1)单元格相对引用:是指直接使用的单元格地址,如A3、B5等。当复制含有这种引用方法的公式时,仅是复制公式中的运算关系,而将列号或行号做了相应的调整,这就是对单元格的相对引用。
(2)单元格绝对引用:如果在复制公式时,不希望改变对特定单元格的引用,就需要使用单元格的绝对引用。这种引用方法是在单元格地址的列标和行号前各加一个“$”符号。例如,要在公式中对D10单元格的列和行都绝对引用时,应写为“$D$10”,若只对列绝对引用,则应写为“$D10”。
[例] 下列关于WPS表格说法错误的是( )
A.WPS表格中的行用数字表示
B.WPS表格中的列用字母表示
C.WPS表格中的“sheet1”无法重命名,只能用默认的
D.在新建的WPS表格中可以根据需要再添加新的工作表,系统自动命名为sheet2
1.关于人工计算、自动工具计算和编程计算三种计算方式,下列说法正确的是( )
A.人工计算使用成本是三种计算方式中最低的
B.当今时代不采用人工计算来解决问题
C.依据实情,灵活运用三种计算方式将有助于提高数据计算的效率
D.由于计算机的日益普及,编程解决计算问题是最方便的
2.对学生的期末考试成绩进行数据分析,下列软件比较合适的是( )
A.Word B.WPS表格 C.Photoshop D.Flash
3.在WPS表格中,单元格地址是指( )
A.工作表标签 B.单元格的大小
C.单元格在工作表中的位置 D.单元格的数据
4.用WPS表格对各年级、各班级的爱心捐款进行分类汇总,首先要进行的操作是( )
A.排序 B.筛选 C.求和 D.合并计算
5.在WPS电子表格的某单元格中输入下列内容后,显示结果为0.3(单元格格式保留一位小数点)的是( )
A.7/22 B.“7/22” C.=“7/22” D.=7/22
6.下列有关WPS表格数据自动筛选的叙述,正确的是( )
A.筛选后的表格中只含有符合筛选条件的行,其他行被删除
B.筛选后的表格中只含有符合筛选条件的行,其他行被暂时隐藏
C.筛选条件只能是一个固定的值
D.筛选条件不能由用户自定义,只能由系统确定
7.某市中小学生程序设计大赛于2024年12月15日举行。赛后,工作人员对参赛人员的相关数据进行处理。部分数据如下表所示:
A B C D E
1 考号 考生姓名 所属区县 组别名称 分数
2 24004 许某 开发区 C++编程 93
3 24002 钱某 云光区 C++编程 77
4 24003 于某 沙河县 C++编程 65
5 24001 李某 汉风县 C++编程 45
6 24005 张某 汉风县 Python编程 87
7 24008 程某 彭城区 Python编程 87
8 24007 丁某 彭城区 Python编程 78
9 24006 赵某 彭楼区 Python编程 66
10 24010 孙某 汉风县 图形化编程 90
11 24009 王某 汉风县 图形化编程 67
12 24012 徐某 沙河县 图形化编程 45
13 24011 范某 彭城区 图形化编程 45
若需统计各区县参加比赛的人数,下列选项中,操作流程正确的是( )
A.先对所属区县进行排序,然后选择“数据”菜单中的“分类汇总”,分类字段选择“所属区县”,汇总方式选择“计数”,汇总项选择“所属区县”
B.先对所属区县进行筛选,然后选择“数据”菜单中的“分类汇总”,分类字段选择“所属区县”,汇总方式选择“求和”,汇总项选择“所属区县”
C.直接选择“数据”菜单中的“分类汇总”,分类字段选择“所属区县”,汇总方式选择“计数”,汇总项选择“所属区县”
D.先对所属区县进行排序,然后选择“数据”菜单中的“分类汇总”,分类字段选择“所属区县”,汇总方式选择“求和”,汇总项选择“所属区县”
8.在WPS表格工作表中,C8单元格使用了公式“=SUM(C2:C7)”,单元格C2到C7均为非零的数值数据。若使用“剪切”“粘贴”方式将C2单元格的内容移动到D2单元格,则C8单元格内容的变化情况是( )
A.公式和结果均不发生变化 B.公式不发生变化,结果发生变化
C.公式发生变化,结果不发生变化 D.公式和结果都会发生变化
9.期末考试后,小芮同学想了解自己各学科总分,在WPS中可用 函数( )
A.SUM B.AVERAGE C.COUNT D.MIN
10.在WPS表格中,创建图表时,应首先( )
A.选择图表的形式 B.选择图表的类型
C.选择图表安放的位置 D.选定创建图表的数据区域
11.某次月考成绩数据表的部分数据如图所示。为了正确计算每位学生的总分,在G2单元格输入公式后,自动填充至G11单元格。下列能正确计算总分的公式是( )
A B C D E F G
1 班级 姓名 性别 语文 数字 英语 总分
2 1班 王云 女 101 112 114
3 2班 俞立新 男 110 114 114
4 3班 张陈扬 女 112 110 125
5 4班 卢晓霞 女 87 110 135
6 3班 林子政 男 86 缺考 112
7 2班 吴津津 女 125 98 114
8 1班 叶可 女 114 95 缺考
9 5班 何伟杰 男 89 91 117
10 2班 黄建 男 145 87 114
11 3班 叶涛 男 116 114 114
①=D2+E2+F2 ②=SUM(D2:F2) ③=SUM(D2,E2,F2) ④=101+112+114
A.①②③ B.②③
C.①② D.①④
12.下图所示为某次会议的人员构成情况,若用WPS图表来体现各类人员的比例,最合适的图表类型是( )
A.折线图 B.散点图 C.饼图 D.雷达图
13.在WPS表格中,输入文本数据时,要在数据前面加( )
A./ B.! C.’ D.\
14.如果在WPS表格中单元格C3的公式为=B3/B11,出现了“#DIV/0!”的错误信息,下列原因中,不可能的是( )
A.B11单元格的值为0 B.B11单元格的数据被删除
C.B11单元格的内容为空 D.B11单元格被删除
15.某校高一年级部分班级进行黑板报评比,制作如图所示的图表,应在如图所示的表格中选择的数据区域是( )
A.A2:F6 B.A2:E5 C.B2:E5 D.B2:F5
2.1 计算机解决问题的过程
【复习目标】
1.了解计算机解决问题的过程。
2.了解流程图的规范表示方法,学会使用自然语言和流程图描述算法。
3.了解算法的三种基本结构。
计算机解决问题的一般过程:
一、算法
算法指解决问题的方法和步骤,是计算机为了解决问题而需要执行的有序的、无歧义的有限步骤的集合。解决问题的过程,就是实现算法的过程。
二、算法的描述方法
1.使用自然语言描述算法
自然语言是指人们日常生活中使用的语言,如汉语、英语等都是自然语言。
特点:通俗易懂,但容易产生歧义,表示的含义往往不大严格。
2.使用伪代码描述算法
介于自然语言和计算机程序语言之间的一种算法描述方式,没有严格的语法限制。
特点:简洁易懂、修改容易,但不直观,错误不容易发现。
3.使用流程图描述算法
流程图也称为程序框图,是算法的一种图形化表示方法。
特点:形象、直观、更容易理解。
流程图用一些图形符号表示规定的操作,并用带箭头的流程线连接这些图形符号,表示操作进行方向。常用流程图符号及功能表示如下表:
流程图符号 名称 功能
起止框 表示一个算法的开始和结束
输入/输出框 表示从外部输入数据到计算机内部或者从计算机内部输出数据到计算机外部
处理框 表示操作的内容
判断框 表示判断的条件
流程线 指向算法运行的方向
○ 连接符 表示流程图的接续
三、三种基本结构的流程图
算法的三种基本结构是顺序结构、分支结构和循环结构。
1.顺序结构:顺序结构是一种最简单的基本结构,按照自上而下的先后顺序依次执行程序语句。
2.分支结构:分支结构也称为选择结构,是一种根据给定的条件进行判断的结构。
3.循环结构:循环结构是一种重复某一部分操作的结构。
四、程序设计语言的发展
1.程序设计语言经历了从机器语言、汇编语言到高级语言的发展过程。程序设计语言的特征、优点和缺点见下表。
程序设计语言 特征 优点 缺点
低级 语言 机器 语言 由二进制的0、1代码指令构成 能被计算机直接识别 理解和记忆困难,容易出错,编程效率低
汇编 语言 是符号化的机器语言,采用英文助记符代替机器指令 比机器语言容易识别和记忆,提高了程序的可读性 可移植性不高(面向机器的语言,是为特定的计算机系统设计的)
高级语言 更接近自然语言,比较流行的高级语言有Python、Java、C/C++等 更容易掌握和使用,通用性更好;用高级语言编写的程序可读性更强,便于修改、维护 必须先翻译成机器语言才可以执行,所以运行效率不高
2.高级语言的翻译程序有两种类型:编译程序和解释程序。Python是解释型的高级语言。
[例1] 计算机解决问题的一般过程包括:①设计算法;②调试运行;③分析问题;④编写程序。下列顺序正确的是( )
A.④①③② B.①②③④ C.④①②③ D.③①④②
[例2] 用流程图表示条件“A>B”是否成立,要用图形( )
A B C D
1.编写程序求出小球自由落体过程中的位移,需要找出已知条件和求解目标,并找出他们之间的关系。这属于用计算机解决问题的哪一个步骤( )
A.分析问题 B.设计算法 C.编写程序 D.调试程序
2.下列关于算法的描述,正确的是( )
A.算法是一种思想,只可以用程序来描述
B.同一问题,我们可以通过不同算法来解决
C.同一种算法不同语言表达,效率是一样的
D.不能通过伪代码、自然语言来描述算法
3.有如下算法:①输入t,②如果t<0,那么③s=5t,否则④s=4t+2,⑤输出t。使用流程图对该算法进行描述时,“②如果t<0”应放入下列哪个框中( )
A.圆角矩形框 B.平行四边形框
C.菱形框 D.矩形框
4.语文老师为鼓励同学积极阅读采取如下措施:周测成绩优秀的可选4本读物;成绩良好的可选3本读物;成绩及格的可选2本读物;其他同学可选1本读物。针对该奖励措施编写程序最适合的程序结构是( )
A.循环结构 B.赋值结构
C.顺序结构 D.选择结构
5.“最强大脑”游戏的算法是这样的:显示游戏规则,显示物品及编号,屏幕停留10秒;随机出题,给出物品,回答编号;判断回答是否正确,如果正确,则答对的题数加1。重复以上步骤,直到答完5道题;显示答对的题数。以上算法采用的描述方法是( )
A.自然语言 B.伪代码
C.流程图 D.程序语言
6.软件是程序和相关文档的集合,程序需要用编程语言来编写,随着技术的发展,计算机处理的事务越来越复杂,下列适合开发复杂事务的大型软件的语言是( )
A.机器语言 B.汇编语言
C.面向过程的高级语言 D.面向对象的高级语言
7.以下是计算两个数之积的算法,其算法描述方法是( )
①输入x、y的值
②计算z=x*y
③输出z的值
A.自然语言 B.伪代码
C.数学语言 D.流程图
8.程序设计语言经历了从机器语言、汇编语言到高级语言的发展过程。下列说法不正确的是( )
A.机器语言由二进制的0、1代码构成,计算机能够直接识别
B.汇编语言是符号化的机器语言
C.常见的高级语言有Java、C++、WPS、Python
D.高级语言更接近自然语言
9.关于Python语言的特点,下列选项中描述正确的是( )
A.Python语言不支持面向对象 B.Python语言是解释型语言
C.Python语言是编译型语言 D.Python语言是非跨平台语言
10.Python程序中添加注释的方法是( )
A.'注释 B.#注释 C.//注释 D.%注释
2.2 做出判断的分支
【复习目标】
1.掌握顺序结构、分支结构的基本结构。
2.学会赋值语句、if语句的使用方法。
3.运用顺序结构、分支结构的语句编写简单的程序解决问题。
一、利用赋值语句实现计算
1.常量
在程序运行过程中值始终保持不变的量称为常量。所有的常数都是常量。例如π,常量可以是数字、字符串、布尔值和空值等。
2.变量
在程序运行过程中值允许改变的量称为变量。
在Python中,变量的命名需遵循以下几条规则:
(1)必须以字母或下划线开头,后面可以是字母、数字或下划线。
(2)区分大小写。
(3)不能使用保留字。
3.运算符与表达式
表达式由一个或多个操作数通过运算符组合而成。运算符是进行某种运算的标识符号,它标明对操作数所进行的运算。
常见的运算符如下表所示:
(1)算数运算符
算术运算符 ** * / // % + -
功能 幂 乘 除 整除 取模 加 减
算术表达式 a**b a*b a/b a//b a%b a+b a-b
优先级 1 2 2 2 2 3 3
(2)关系(比较)运算符
关系(比较)运算符 表达式 描述 举例
== a==b a等于b 2==3的结果为False
> a>b a大于b 2>3的结果为False
< a>= a>=b a大于等于b 2>=3的结果为False
<= a<=b a小于等于b 2<=3的结果为True
!= a!=b a不等于b 2!=3的结果为True
in a in b a是b的成员 "2"in"3"的结果为False
“in”成员资格运算符用来检查一个值是否包含在指定的序列中。
(3)逻辑运算符
逻辑运算符 表达式 含义 描述
and a and b 与 两个条件同时成立时返回True,否则返回False
or a or b 或 有一个条件成立时返回True,否则返回False
not not a 非 取反
(4)运算符的优先级
Python中的算术运算存在着优先级顺序,优先程度最高级别为1,级别数字越大,优先级越低。在同一个表达式中,如果有一个及以上的运算符,那么先执行优先级高的运算,同优先级的基本运算按照自左向右的顺序执行。常见运算符的优先级如下表所示:
运算符类型 说明 优先级顺序
( ) 括号的优先级最高 高 低
算术运算符 **>(*、/、%、//)>(+、—)
关系(比较)运算符 (>、>=、<、<=)>(==、!=)
逻辑运算符 not>and>or
赋值运算符 =、+=、—=、*=、/=
4.赋值语句
基本格式:变量=表达式
功能:将右边表达式的值赋值给左边的变量。
Python中的赋值语句较为灵活,例如:
[例1] n=n+1 #先计算赋值号右边的表达式n+1的值,再将这个值赋值给左边的变量n。
[例2] a=b=c=1 #数值1赋值给变量a,b,c。
[例3] a,b,c=1,2,3 #数值1,2,3分别赋值给变量a,b,c。
[例4] a,b=b,a #交换a,b两个变量的值。
[例5] c+=a #等效于c=c+a。
常用的赋值运算符
赋值运算符 += -= *= **= /= //= %=
赋值语句 a+=b a-=b a*=b a**=b a/=b a//=b a%=b
等效于 a=a+b a=a-b a=a*b a=a**b a=a/b a=a//b a=a%b
5.输入和输出语句
(1)输入语句:input( ),从键盘输入数据,默认输入的数据类型为字符或字符串。
(2)输出语句:print( ),表示在屏幕上输出数据。如果有多个输出项,可以使用“,”分隔。
例如:myname=input("请输入myname:")
print("hello",myname)
6.数据类型
为了便于数据的表示与处理,Python提供了整数、浮点数和字符串等常见的数据类型。
数据类型名 含义 数据表现形式
整型:int( ) 根据一个字符串或浮点数创建一个新的整数 数学中的整数,如1,-8 080,0等
实型:float( ) 根据一个字符串或整数创建一个新的浮点数(小数) 数学中的实数,如3.14,-9.01等; 用科学计数法表示的实数,如0.000 012可以写成1.2e-5等
字符串型:str( ) 根据一个数(也可以是任何其他类型)创建一个新的字符串 用单引号、双引号或三引号表示,如'这是一个字符串'、"This is a string!"、""X""等
二、利用分支语句实现计算
当程序中需要根据不同的条件判断来决定程序执行的走向时,可以使用if分支语句实现。
1. 单分支基本格式如下:
单分支流程图
if 条件:
语句或语句组
2. 双分支基本格式如下:
双分支流程图
if 条件:
语句或语句组A
else:
语句或语句组B
3.多分支基本格式如下:
多分支流程图
if 条件1:
语句或语句组A
elif 条件2:
语句或语句组B
……
elif 条件n:
语句或语句组n
else:
语句或语句组n+1
4.代码的缩进:Python用缩进(在相应的代码前加空格,通常使用4个空格作为一级缩进)来表示代码之间的从属关系,并且允许多层嵌套。
■Python 格式化输出%s %f %d
格式说明由%和格式字符组成,如%f,它的作用是将数据按照指定的格式输出。格式说明是由“%”字符开始的。
1.%d整数格式化
age=20
print("我的年龄是%d"%age)
输出:我的年龄是20
2.%s字符串格式化
name="lili"
print("我的名字是%s"%name)
输出:我的名字是lili
3.%f浮点数格式化
weight=54.5
print("我的体重是%f"%weight)
输出:我的体重是54.500000
4.%.2f表示小数点后显示两位小数位
weight=54.5
print("我的体重是%.2f"%weight)
输出:我的体重是54.50
■round函数
Python的内置函数,用于数字(可以是整数或浮点数)的四舍五入。
s=1.23567
print(round(s,2)) #保留两位小数
输出:1.24
[例1] 下列属于Python合法变量名的是( )
A.3com B.if C.stu_12 D.$money
[例2] 下列Python表达式的值等于2的是( )
A.2%5 B.2//5
C.(3>4)*2 D.4-3%5**2
1.根据Python变量命名规则,下列变量名正确的是( )
A.int1 B.2025py C.elif D.xiaomi@163
2.在Python中,print("*"*3)的输出结果是( )
A.*** B.*3 C.3* D.**3
3.下列Python表达式中,书写错误的是( )
A.x=!y B.9//3
C.ac D.(x**2-6)**0.5
4.在Python中可通过函数进行类型转换,若要将整数x转换成浮点型,可选用( )
A.int(x) B.bool(x) C.str(x) D.float(x)
5.在Python中,关于代码a=6和a==6,下列说法正确的是( )
A.这两条代码的作用相同
B.代码a=6的含义是比较a的值与6是否相等
C.代码a==6的含义是将6赋值给变量a
D.代码a==6的含义是比较a的值与6是否相等
6.有两个条件P、Q,只要有一个条件为真时,结果即为真的表达式是( )
A.P and Q B.P or Q
C.not P D.not P and not Q
7.表达式3<5>2的运算结果为( )
A.False B.true C.True D.false
8.编写Python程序时,表达式x=应写成( )
A.x=a-b/2*a B.x=a-b/2a
C.x=(a-b)/(2*a) D.(a-b)/2*a
9.表达式a%2==1 and a%5==0的含义可以描述为( )
A.能被5整除余1 B.能被2整除余1
C.能被5整除的偶数 D.能被5整除的奇数
10.已知a=1,那么(a>2)*a*2的值是( )
A.0 B.10 C.a>2 D.20
11.下列Python程序段运行后的输出结果是( )
a=5
b=8
if (a>b):
print(a,"是大数")
else:
print(b,"是大数")
A.a是大数 B.b是大数 C.5是大数 D.8是大数
2.3 周而复始的循环
【复习目标】
1.了解循环的基本结构。
2.学会计数循环的使用方法。
3.学会条件循环的使用方法。
4.熟练使用循环解决实际问题。
在计算机中某些代码的反复执行被称为循环。
循环三要素:循环变量、循环体、循环终止条件。
一、列表
列表是最常用的Python数据结构,列表就是用“[ ] ”将数据集中存放,便于记录和处理;用“[ ] ”指出从哪里开始,到哪里结束;元素之间用逗号分隔;可以包含Python中能存储的任何类型的数据,同一列表中可以存放不同类型的数据元素。
1.列表的使用方法
(1)建立列表:list=[5,10,15,'a','b','c',True]
(2)在列表末尾增加元素:list.append('False')
(3)插入元素:list.insert(2,'bc')
(4)删除元素:list.remove(10)或del list[1]
(5)获取元素:list[索引号] ,如list[0]
(6)打印列表:print(list)
(7)列表逆序:list.reverse( )
(8)列表排序:list.sort( ),默认升序
(9)删除元素:list.pop( ),默认删除最后一个元素。
2.列表的访问
列表索引从0开始,第二个索引是1,以此类推。索引值以0为开始值,从左向右索引为正向,从0(0代表第一个数)开始,依次为0,1,2……
实例如图所示:
List=['apple','pear','banana','orange','peach']
print(list[0])
print(list[1])
print(list[2])
输出结果为:apple
pear
banana
索引也可以从尾部开始,从右向左索引为反向,从-1(-1代表最后一个数)开始,依次为-1,-2,-3……实例如图所示:
List=['apple','pear','banana','orange','peach']
print(list[-1])
print(list[-2])
print(list[-3])
输出结果为:peach
orange
banana
3.列表截取的语法格式
若要访问的不是单个元素,而是一定范围内的多个元素,可以通过冒号“:”间隔两个索引参数(开始元素索引、结束元素索引的后一个索引)来实现。
格式:变量[头下标:尾下标]
使用索引下标来访问列表中的值,同样也可以用“[ ] ”的形式截取字符,如图所示:
实例1:
nums=[10,20,30,40,50,60,70,80]
print(nums[0:4] )
输出结果:[10,20,30,40]
实例2:
list=['apple','pear','banana','orange','peach']
print("list[1]:",list[1] ) #读取第二位
print("list[1:-2]:",list[1:-2] ) #从第二位开始(包含)截取到倒数第二位(不包含)
输出结果:
List[1]:pear
List[1:-2]:pear,banana
二、计数循环(for循环)
循环重复次数一定时,通常被称为计数循环。在Python中,使用for语句来创建这类循环。
1.for语句的基本格式:
for循环变量 in 列表:
语句或语句组
循环执行时,依次将列表中的元素赋给循环变量,并且执行循环体,直到整个列表的元素被取完,循环结束。in后面可以是列表,也可以是range( )函数。
[例] for i in ["hello","world"]:
print(i) #循环体
运行结果:
hello
world
2.range( )函数
格式:range(start,stop[,step])
功能:可以生成某个范围内的数字列表。默认从0开始,左闭右开,生成一个数字列表。
参数说明:start:计数从start开始,默认从0开始,如:range(5)等效于range(0,5)。
stop:计数到stop结束,但不包括stop,如:range(0,5)是[0,1,2,3,4] 。
step:步长,默认为1,如:range(0,5)等效于range(0,5,1)。
for i in range(0,5,2):
print(i)
运行结果:
0
2
4
3.for语句的原理:循环变量的值从列表中第一个数开始,对应列表中的每一个值,循环把语句组中的所有工作执行一次,执行完成后,循环变量赋为列表中的下一个值。缩进的语句或语句组称为循环体。
三、条件循环(while循环)
1.条件循环一般用于循环次数未知的情况。只有当循环条件成立时,才执行循环体。在Python中,使用while语句来创建这类循环。while语句的基本格式如下:
while 关系表达式:
语句或语句组
2.功能:判断条件是否成立,如果成立,则执行循环语句或语句组,不断重复,直到条件不成立,退出循环。
例如:
s=0
while s<=30:
s=s+10 #循环体
print(s) #循环体
运行结果:
10
20
30
40
3.有一类特殊的关系表达式,如数字0表示假,非0数字表示真。如果循环是以“while 1:”开头,那么在不加干预的情况下,程序就会陷入“死循环”,按快捷键Ctrl+C即可停止程序运行。
4.while循环编程累加器和计数器的使用
累加器:s=s+x
计数器:i=i+1
while循环不记录循环的次数,如果需要借用循环次数的信息,就需要在代码中增加计数器,并通过语句修改计数器的值,这也是while循环的难点。在使用累加器或计数器时,将变量赋初值为0。
for循环:
s=0
for i in range(101):
s=s+i
print(s)
while循环:
s=0
i=1
while i<=100:
s=s+i
i=i+1
print(s)
5.循环嵌套
如果在一个循环中包含另一个循环,则称为循环嵌套。常用的循环嵌套是二重循环,外层循环称为外循环,内层循环称为内循环。内循环是外循环的循环体,外循环每执行一次,内循环则执行一次完整的循环。
如利用双重循环可实现输出九九乘法表:
for i in range(1,10):
for j in range(1,i+1):
print("{0:1}*{1:1}={2:2}".format(j,i,j*i),end="")
print( ) #换行
注:format( )函数控制格式化的输出。其中,“{0:1}”表示第0个参数,即j输出长度为1个字符;“end=""”表示输出结束后不换行。
6.循环的提前结束
使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),那么可以使用break或continue语句。
语句 作用
break 终止循环,跳到循环体以外的第一个可执行语句。如果有两层或两层以上的循环,在最内层使用break语句,则跳出的是最内层的循环,外层的循环不受影响。
continue 结束当次循环,进行下一次循环,即跳过循环体内还未执行的语句,进入下一次循环的判定。
四、调试程序
编写程序时难免会出现错误,这时可以借助Python的调试器pdb。
方法:在程序开头加入语句“import pdb”,然后,在适当的位置放一个“pdb.set_trace( )”,就可以设置一个断点,让程序暂停运行,进入pdb调试环境。我们可以用命令“p”查看变量,用命令“c”继续运行,用命令“q”结束调试,退出程序。
[例1] 运行以下Python程序段,输出结果是( )
s=[3,34,23,5,3,43]
s.sort( )
print(s)
A.[3,3,5,23,34,43] B.[43,34,23,5,3,3]
C.[3,5,3,23,34,43] D.[3,34,23,5,3,43]
[例2] 下列Python程序段运行的结果是( )
x=0
for i in range(1,10):
x=x+i
print(x)
A.1+10的和 B.1+9的和
C.1~9所有整数的和 D.1~10所有整数的和
1.已知Python列表s=['长江','长城','黄山','黄河'] ,那么s[-2] 是( )
A.'长江' B.'长城'
C.'黄山' D.'黄河'
2.在Python中函数range(6,10,2)生成的列表中元素的个数是( )
A.2 B.3 C.4 D.5
3.下列关于Python列表的描述中,错误的是( )
A.列表元素可以被修改
B.列表元素允许为空
C.列表索引从下标0开始
D.列表元素的数据类型必须一致
4.下列Python函数中,能够对列表[1,7,9,8,5] 求和的是( )
A.val( ) B.ord( ) C.sum( ) D.str( )
5.下列Python程序段运行的结果是( )
a=["I","Love","C++"]
a.pop(-1)
a.append("Python")
print(a)
A.['I','Love','Python'] B.['I','Love','C++']
C.['Love','Python'] D.['Love','C++']
6.下列Python程序输出的结果是( )
x=2
while x!=4:
x=x+1
print("x的值是",x)
A.2 B.4 C.x的值是2 D.x的值是4
7.某同学设计了下列程序,则该程序的功能是( )
n=1
while n<20:
n=n+1
if n%2==0:
print(n)
A.输出1至20内的所有数(包括1和20)
B.输出1至20内的所有数(不包括1和20)
C.输出1至20内的所有奇数(不包括1)
D.输出1至20内的所有偶数(包括20)
8.运行以下Python程序代码,语句“s=s+k”的执行次数为( )
s=0
for k in range(1,9):
s=s+k
if s>21:
break
print("s=",s)
A.3次 B.5次 C.6次 D.7次
9.下列Python程序段的运行结果是( )
s=0
for i in range(1,11):
s=s+i
print(s)
A.55 B.15 C.0 D.5
10.下列关于在Python中使用break或continue语句的说法正确的是( )
A.continue语句用来跳出整个循环,将不再执行下一次循环
B.break语句用来跳出当前循环,继续执行下一次循环
C.continue语句只能用在while循环中,在for循环中不能使用continue语句
D.continue语句既可以在while循环中使用,也可以在for循环中使用
2.4 可以复用的代码
【复习目标】
1.了解函数的作用。
2.学会函数的定义和调用方法,并能熟练使用函数解决问题。
3.学会发布共享代码的常见方法,并能熟练使用模块解决问题。
在程序代码中有许多功能是相似甚至完全相同的,这时可以考虑用代码复用的方法提高程序的效率。既可以减少重复编写代码的工作量,也可以使程序的结构更加清晰。使用“函数”和“模块”是代码复用的常见方法。
“函数”和“模块”来源:Python自带的内置函数和模块;自己编写一些函数或模块;到代码共享社区去下载。
一、函数
函数可分为系统函数和用户自定义函数两种类型。
1.系统函数即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编制好的程序。如print( )和input( )函数都是系统函数。
2.常见的系统函数
(1)数学运算类函数
(2)数据转换类函数
(3)字符串操作类函数
(4)输入输出函数
(5)文件操作类函数
(6)其他类函数
3.用户自定义函数
用户自定义函数是用户自己编写的一段程序。
函数一般包括函数名、参数、返回值和函数体等四部分。其中,函数名和函数体是必不可少的,参数和返回值可根据需要进行定义。
自定义函数的基本格式:
def 函数名(参数1,参数2……):
#函数说明
语句或语句组
return 返回值
参数是用来向函数传递值的,当有多个参数时,各个参数之间用逗号分隔开。函数执行完成后,由return语句将表达式值返回给调用者,结束函数。
函数的调用格式:变量=函数名(参数)
二、发布代码
通过模块发布代码可以让很多人共享你的程序。方法:
(1)做好发布前的准备工作。在D:\创建一个文件夹mymodule,其中包含mymodule.py和setup.py两个文件。mymodule.py是一个模块文件,其内容就是自定义的函数;setup.py文件包含有关发布的元数据。
(2)打开mymodule所在的目录,构建发布文件。
(3)将发布文件安装到你的Python本地副本中或在互联网上发布你的代码。
三、导入模块并使用
1.无论是用户定义的模块还是第三方模块,在使用前都必须先导入程序中才可以使用。
2.导入模块的方法
(1)import 模块名
(2)import 模块名 as 别名
(3)from 模块名 import 函数名(如果函数名为*,则表示导入该模块的所有函数)
3.模块调用方法
使用(1)(2)方法导入模块时,调用其内置函数的方法是“别名.函数名(参数)”;使用(3)方法导入模块时,调用其内置函数的方法是“函数名(参数)”。
■Python中提供了大量标准模块,亦称标准库,如time模块和random模块。
(1)time模块可以获取计算机的时钟信息,包括日期和时间,也可以用于延时。
time.time( ):返回当前时间的时间戳,即1970纪元后经过的浮点秒数。
time.sleep(secs):参数secs是要暂停执行的秒数,如:time.sleep(2)表示延时2秒。
time.asctime([t]):格式化显示时间。
(2)random模块可以生成随机数。
random.random( ):用于生成一个0到1的随机浮点数:0<=n<1.0。
random.randint(a,b):用于生成一个指定范围内的随机整数,生成的随机数n的取值范围为:a<=n<=b。
random.randrange([start,] stop[,step] ):从指定范围内,按指定基数递增step的集合中获取一个随机数,如:random.randrange(1,10,2)即在生成的列表中[1,3,5,7,9] 中获取一个随机数。
[例] 阅读下列代码,完成以下小题:
(1)下列说法正确的是( )
A.语句6变量a和语句7变量a是同一个变量
B.语句7变量b和语句8右边的变量b是同一个变量
C.语句7变量b和语句8左边的变量b值相等
D.语句6变量a和语句8右边的变量a是同一个变量
(2)print(a,b)输出的结果是( )
A.3,4 B.4,3 C.3 4 D.4 3
(3)下列说法错误的是( )
A.func( )的参数和返回值相同 B.func ( )有两个形参
C.func( )有两个返回值 D.func( )是自定义函数
(4)关于自定义函数说法正确的是( )
A.自定义函数=参数不能为空 B.自定义函数的返回值不能为空
C.自定义函数一定要写return语句 D.自定义函数一定要写关键字def
1.函数可分为系统函数和 两种类型( )
A.模块函数 B.数据库函数
C.自定义函数 D.模拟函数
2.下列不是系统函数的是( )
A.input( ) B.bin( ) C.float( ) D.factorial( )
3.Python中自定义函数需要什么关键字开始( )
A.function B.def C.define D.void
4.Python中调用模块内函数不正确的是( )
A.os.system( ) B.random.sample( )
C.mymodule.match_num( ) D.sys.sleep( )
5.下列关于Python自定义函数的描述错误的是( )
A.函数代码是可以重复使用的
B.每次调用函数需传递相同的参数值作为函数的输入
C.可通过函数名(参数列表)进行调用
D.函数是一段具有特定功能的语句组
6.以下Python程序段,运行后输出的值是( )
def factorial(n):
s=1
for i in range(2,n+1):
s=s*i
return s
total=factorial(4)
print(total)
A.24 B.4 C.44 D.16
7.以下关于模块的说法中,错误的是( )
A.一个xx.py就是一个模块
B.任何一个普通的xx.py文件都可以作为模块导入
C.模块文件的扩展名不一定是.py
D.运行时会从指定的目录搜索导入的模块,如果没有,会报错异常
8.下列选项中,不能提高Python程序代码复用效率的是( )
A.内置函数 B.自定义函数
C.内置功能模块 D.注释语句
9.关于return语句,以下选项中描述正确的是( )
A.函数中最多只有一个return语句 B.函数必须有一个return语句
C.return只能返回一个值 D.函数可以没有return语句
10.下列代码的运行结果是( )
def func(num):
num+=1
return num
a=10
print(func(a))
A.10 B.11 C.出错 D.int
3.1 数据编码
【复习目标】
1.了解各类数据采集的基本方法。
2.能够解释文本、音频等数据的编码原理。
3.理解数据编码的意义和作用。
编码是信息从一种形式或格式转换为另一种形式或格式的过程。计算机的编码是指用预先规定的方法将文字、数字或其他对象编成可以存储在计算机里的数值。
一、模拟信号与数字信号
按照取值特征,可以将信号分为模拟信号和数字信号。
1.模拟信号
用传感器直接获得的信号一般为模拟信号,如声音、温度、压强等。模拟信号的值称为模拟数据。
特征:模拟信号的值是随时间连续变化的,波形光滑。
2.数字信号
其值被称为数字数据,直接用计算机所能理解的二进制表示,方便计算机进行处理。
特征:数字信号随时间的变化是非连续的,可以由模拟信号转换得来。
二、声音的数字化
1.声音的数字化
将模拟声音数据转换为数字数据的过程,称为声音的数字化。
2.声音的数字化的过程
采样→量化→编码
(1)采样
在横轴上按一定的时间间隔从信号中取一个瞬时值(是时间的离散化、数字化)。
采样频率:录音设备在1秒内对声音信号的采样次数。常用的CD音质的采样频率是44.1kHz。
(2)量化
将信号波形的纵轴划分为若干区间,落到某一区间的采样点按四舍五入取整数值(是幅值的离散化、数字化)。
(3)编码
将样本值用计算机能够存储和处理的二进制数值表示的过程(是数据的格式化、文件化)。
声道数:声音的通道个数。指一次采样所记录的声音波形个数。
3.决定音频质量的因素
(1)采样频率越高,意味着采样的时间间隔越短。故在单位时间内计算机得到的声音样本数据越多,所需的存储空间越大,声音的还原过程越真实自然。
(2)量化位数决定了声音的动态范围,量化位数越高,音质越好,但音频文件的数据量也越大。
(3)若每次生成一个声波数据则称为单声道;若每次生成两个声波数据,则称为双声道(立体声)。随着声道数增加,声音质量提升,音频文件所占用的存储容量也成倍增加。
三、二进制与数制转换
1.二进制
计算机外部的各种形式的数据经过编码后,都以二进制数的形式存储在计算机中。
二进制数中只有0和1两个数字符号,其计数特点是“逢二进一”,即1+1=10。
在二进制数中,每一个数字在不同位置上具有不同的权值,各位上的权值是基数2的若干次幂,比如二进制数10010,5个位置上的权值从右往左可以表示为:20、21、22、23、24。
(1)二进制的优点
①二进制只有0和1两种状态;
②使自动化计算装置简便可靠;
③使自动化逻辑运算简单易行。
(2)二进制的缺点
①用二进制表示一个数时,位数太多,太烦琐;
②难于记忆,可读性差。
2.二进制转换为十进制
将二进制数的每个位置上的数字与其对应位置的权值相乘,然后求和即可。如10010(2)=1×24+0×23+0×22+1×21+0×20=18。
3.十进制非负整数转换为二进制数
可使用短除法,即“除二取余”法。例如,将十进制整数18转换为二进制数的过程,方法如下:
18(10)=10010(2)
4.八进制
八进制的基数是8。八进制整数从右到左各位的权值依次是80、81、82……有8种不同的数字,0~7,其基本计数规则是“逢八进一”,即7+1=10。
5.十六进制
由于二进制数位数较多、书写不便,故常改用十六进制数表示。
十六进制需要使用16个不同的基本数字,除了阿拉伯数字0到9外,一般用字母A到F(或a~f)依次表示后续数字(相当于十进制数中的10~15)。
十六进制的基本计数规则是“逢十六进一”,即F+1=10。
6.十进制与R进制相互转换
R进制(R≥2)非负整数转换成十进制数采用“按权展开求和法”。
十进制非负整数转换成R进制数(R≥2)采用“除R取余法”。
7.常用的数制及其特征
数制 进位规则 数码 基数 位权 前缀表示
二进制 逢二进一 0,1 2 2n 0b
八进制 逢八进一 0,1,2,3,4,5,6,7 8 8n 0o
十进制 逢十进一 0,1,2,3,4,5,6,7,8,9 10 10n 0d
十六进制 逢十六进一 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 16 16n 0x
8.Python中的进制转换函数
(1)bin( ):将一个整数转换为对应二进制数的函数。
(2)oct( ):将一个整数转换为对应八进制数的函数。
(3)int( ):根据一个字符串或浮点数创建一个新的整数的函数。
(4)hex( ):将一个整数转换为对应十六进制数的函数。
9.位(bit)与字节(Byte)
计算机中存储数据的最小单位是二进制位,用比特(bit)表示,1比特能表示两种(21)状态(即0或1),2比特可以表示00、01、10、11四种(22)状态……
计算机存储数据的基本单位是字节(Byte,简写为B),8比特构成1字节,1字节二进制数可表示28(256)种状态。
字节的单位太小,常用的存储单位有 KB、MB、GB等。
换算关系:1KB=1024B;1MB=1024KB;1GB=1024MB。
四、文本数据的编码
文本数据是用来表示一定意思的一系列字符,包括字母、数字、标点符号、汉字等。
文本数据编码最为典型的是ASCII码和Unicode码两种编码方案。
1.ASCII码
ASCII码(American Standard Code for Information Interchange,美国信息交换标准码)
ASCII码用7位(标准ASCII码)或8位(扩展ASCII码)二进制数表示一个字符,集中定义了大小写英文字母、标点符号和数字等字符和符号,共128个。计算机内部用一个字节来存放一个ASCII码字符,最高位用0表示,如“A”的ASCII码为01000001,即65。
常用的ASCII码
ASCII码(十进制) 字符
0~31 控制字符或通信专用字符(不可见)
32 空格
48~57 数字0~9
65~90 大写英文字母A~Z
97~122 小写英文字母a~z
其他 英文标点符号、运算符号、括号等
2.Unicode码
(1)Unicode是为了解决传统的字符编码方案的局限性而产生的,是全球可以共享的编码字符集,涵盖了世界上主要文字的字符,它可以用两个字节表示一个符号。
(2)ASCII码与Unicode码的关系:后者兼容前者。原来用ASCII码能表示的字符,其对应的Unicode码只是在原来的ASCII码前加上8个0。例如“a”的ASCII码是01100001,而其Unicode码是0000000001100001。
(3)计算机要处理汉字,必须对汉字进行编码,每个汉字至少需要两个字节。
(4)汉字编码方案:
①GB 2312—1980字符集。
②GBK字符集。
③GB 18030—2000字符集。
④GB 18030—2005字符集。
■图像数据(如颜色)的数字化,也需要先进行采样,但不同的是,图像数据是在空间上变化,而不是在时间上变化。
■视频是图像(称为帧)在时间上的表示,一段视频就是一系列的帧连续播放而形成的,同时,视频往往也有伴音。由于视频常常数据量很大,往往要压缩存储,以便传播。
■声音文件大小是音频的采样频率、量化位数及时长所决定的。具体公式如下:
文件大小=(采样频率*量化位数*声道)*时间/8
■在Python中,可使用函数ord( )将字符转换为对应的存储编码,编码值以十进制数形式显示;chr( )是将编码值转换为对应字符的函数。
[例1] 下列场景中一定应用模拟信号的是( )
A.传统的有线电话 B.开关电路中输出电压
C.计算机网络通信 D.智能语音助手
[例2] 下列说法正确的是( )
A.编码是信息按照某种规律与格式,从一种形式转换成另一种形式的过程
B.解码是编码的另一种形式
C.数据存储在计算机中不一定要转换成二进制数据
D.声音的数字化过程不需要经过编码
1.英语老师上课播放英语听力,可以在电脑中播放音频文件,也可以利用传统收录机播放磁带。这两种声音信号分别是( )
A.数字信号、数字信号 B.模拟信号、模拟信号
C.数字信号、模拟信号 D.模拟信号、数字信号
2.声音数字化过程中,采样和量化是两个重要步骤,下列选项中描述正确的是( )
A.量化的单位是位数,量化位数越小,数字化声音的质量越好
B.量化的单位是频率,单位通常是kHz
C.采样的单位是位数,采样频率越高,数字化声音的质量越好
D.采样的单位是频率,单位通常是kHz
3.下列信号中属于数字信号的是( )
A B
C D
4.采样频率是指录音设备在 内对声音信号的采样次数( )
A.1 s B.10 s C.1 min D.1 h
5.计算机中存储容量的基本单位是( )
A.比特(bit) B.字节(Byte)
C.字(Word) D.兆(M)
6.一个半角英文字符占的字节数是( )
A.1 B.2 C.3 D.4
7.下列关于ASCII码的描述中,错误的是( )
A.ASCII(美国信息交换标准码)用7位(标准ASCII码)或8位(扩展ASCII码)二进制数表示一个字符
B.标准ASCII码字符集中定义了大小写英文字母、标点符号和数字等字符和符号,共128个
C.计算机内部用一个字节来存放一个ASCII码字符,最高位用0表示
D.“A”的ASCII码为01000001,即65,“a”的ASCII码与“A”的相同
8.ASCII码表共有128个字符,每个字符都有对应的十进制,下列选项中大小关系正确的是( )
A."H">"h">"2" B."2">"H">"h"
C."h">"H">"2" D."2">"h">"H"
9.已知字符“e”的ASCII编码是01100101,则字符“h”的ASCII编码是( )
A.01100011 B.01100110
C.01101000 D.01101001
10.一段音频的参数为“44.1kHz,32位,单声道,8秒”,该音频的采样频率为( )
A.44.1 kHz B.32位 C.单声道 D.8秒
3.2 数据与结构
【复习目标】
1.熟悉队列结构的概念和特点,能够使用Python语言对队列进行操作。
2.了解树、图结构的基本概念及特点。
3.能够比较不同数据结构的特点,会选用合适的数据结构组织数据解决简单问题。
利用计算机解决问题的过程,就是将问题中的已知数据输入计算机进行计算,然后输出结果数据的过程。为了方便对数据进行处理,我们可以选择合适的软件工具,根据问题的需要为数据抽象出合适的数据类型,然后对数据进行组织和计算。
一、数据类型
1.定义:数据类型用来定义一系列值及应用于这些值的一系列操作。如Python语言中的整数、浮点数、字符串、布尔等数据类型。
2.简单数据类型:不能分解成更小的数据类型,如整数、浮点数、字符串、布尔等。
3.复合数据类型:由简单数据类型或者复合数据类型组成,如列表、字典等。
4.常见的数据类型
(1)整数(int)
作用:表示人的年龄等。
定义方式:age=18或者age=int(18)
使用方法:加减乘除、逻辑判断(大于、小于)
(2)浮点数(float)
作用:表示身高、体重等。
定义方式:salary=2.1或者salary=float(2.1)
使用方法:加减乘除、逻辑判断(大于、小于)
(3)字符串(str)
作用:表示名字、爱好等。
定义方式:name="tom"或者name=str("tom")
使用方法:字符串只能+、*和逻辑比较,如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同。字符串的乘法只能乘以数字。字符串比较大小,按照ASCII码值进行比较。
(4)布尔类型(bool)
作用:用于判断条件结果。
定义方式:True、False通常不会直接引用,需使用逻辑运算得到结果。
使用方法:一般用在判断语句的返回值中。比如if 1<3:print(1),1<3为真(True)所以会执行if里的语句块,输出1。
(5)列表(list)
作用:存放多个值,如多个爱好。
定义方式:hobby_list=['sing','jump','rap','basketball']
使用方法:根据索引来引用列表里的元素。如:hobby_list[0] ='sing'。
(6)字典(dict)
作用:用来存取多个值,按照key:value的方式存值,取的时候可以通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典。
定义方式:在{}内用逗号分隔开多个元素,每一个元素都是key:value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。如:
user_info={'name':'tom','age':19}。
使用方法:字典取值方式不再依赖于索引,而是依赖于key,通过[key] 即可获取key对应的value值。如:user_info['name'] ='tom'。
(7)集合(set)
作用:由一个或数个形态各异的大小整体组成,构成集合的事物或对象称作元素或成员,其基本功能进行成员关系测试和删除重复元素。
定义方式:parame={value01,value02}或set(value)。
使用方法:可以使用大括号{}或者set( )函数创建集合。例如,my_set={1,2,3}或my_set=set( )。若使用空的大括号{}创建一个对象,那么创建的是一个空字典,而非空集合。如果要创建一个空集合,必须使用set( )函数,empty_set=set( )。
二、数据结构
数据结构是存在特定关系的数据元素的集合。在解决有些问题时,一些相关联的数据将集中在一起,形成一个数据的集合,这种集合能够单独或作为一个整体被访问和处理。常见的数据结构有线性数据结构和非线性数据结构。
三、线性数据结构
线性数据结构又称为线性表。在线性数据结构中,除首元素没有前趋元素、尾元素没有后继元素外,其他元素都只有一个前趋元素和一个后继元素。线性表中数据元素之间是一对一的关系。如下图所示:
■队列
(1)队列是一种有限制(先进先出FIFO)的线性结构。它的数据元素只能在一端依次添加(进队),在另一端依次删除(出队)。
在Python语言中,对列表的操作通常有如下方法:pop(0)方法可以删除列表的首元素,append方法可以在列表尾部添加一个数据元素,insert方法可以用于实现在中间插入元素,count方法可以统计元素出现的次数,len可以获取列表的长度。
(2)栈是先进后出(FILO)表,他的数据元素只能在同一端(称为栈顶)进行操作,添加(进栈),删除(出栈)。如单车道死胡同停车,后进去的车先倒出来,先进去的车最后才能倒出来。
pop( )方法可以删除列表的尾元素(相当于栈的“出栈”操作),append方法可以在列表尾部添加一个数据元素(相当于栈的“入栈”操作)。
四、非线性结构
1.树结构
树结构是一种具有层次关系的非线性结构,树是由n(n≥0)个节点组成的有限集合。
(1)空树:若n=0,则称为空树。
(2)非空树:任何一个非空树均满足以下两个条件:①仅有一个称为根的节点;②当n>0时,其余节点可分为m(m≥0)个互不相交的有限集合。
(3)子树:非空树中的每个集合又是一棵树,称为根的子树。
(4)根节点、子树的根节点、父节点:如图中A为根节点,B、C、D为A的子树的根节点,B是E、F、G的父节点。
(5)树结构中数据元素之间是一对多的关系。
2.图结构
图结构是由一组节点(称为顶点)和一组节点间的连线(称为边或弧)构成的一种数据结构。
(1)图结构中的每个顶点都可以与其他顶点有边相连。
(2)边是顶点和顶点之间的连线,可以是有向的,也可以是无向的。
(3)相邻顶点:由一条边连接在一起的顶点称为相邻顶点。
(4)图结构中数据元素之间是多对多的关系。
在树形结构中,结点间具有分支层次关系,每一层上的结点只能和上一层中的至多一个结点相关,但可能和下一层的多个结点相关。
在图形结构中,任意两个结点之间都可能相关,即结点之间的邻接关系可以是任意的。
五、数据结构的比较
结构 类型 数据(节点) 之间的关系 生活中相应结构应用举例
队列 (线性) 一对一 排队(上车、付款),医院就诊电子牌上的就诊队列等
树 一对多 书的目录结构、行政区划、注册表结构等
图 多对多 铁路运输图、互联网、高速公路网等
[例1] 如果用Python处理火车票的订单,火车票的“站点名称”和“票价”分别应设置的数据类型是( )
A.字符型、字符型 B.浮点型、整型
C.浮点型、字符型 D.字符型、浮点型
[例2] 下列选项中,具有线性结构的数据结构是( )
A.图 B.树 C.堆 D.队列
1.使用Python程序处理一条图书订单记录(包括图书编号、书名、单价、数量、金额),下列适合选用的数据类型是( )
A.字符串 B.列表
C.布尔值 D.数字
2.Python语句a=int(input("请输入一个正整数:")),a的数据类型为( )
A.整型 B.浮点型
C.字符串型 D.布尔型
3.除首元素没有前趋元素、尾元素没有后继元素外,其他元素都只有一个前趋元素和一个后继元素,这种数据结构属于( )
A.树结构 B.图结构 C.线性结构 D.集合结构
4.图结构的主要特点是( )
A.数据元素之间是一对一的关系 B.数据元素之间是一对多的关系
C.数据元素之间是多对多的关系 D.数据元素之间没有固定关系
5.下列选项中数据结构不是图结构的是( )
A.城市交通图(铁路网,公路网,航空网) B.电话网
C.公司组织架构图 D.互联网
6.关于队列,下列说法错误的是( )
A.队列是先进先出(FIFO)表,它的数据元素只能在一端依次添加(进队),在另一端依次删除(出队)
B.pop( )方法可以删除列表的首元素(相当于队列的“出队”操作)
C.pop(0)方法可以删除列表的首元素(相当于队列的“出队”操作)
D.append方法可以在列表尾部添加一个数据元素(相当于队列的“入队”操作)
7.队列的插入操作是在 进行的( )
A.队尾 B.队首
C.队列任意位置 D.队首元素后
8.树最适合用来表示( )
A.有序数据元素 B.无序数据元素
C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据
3.3 数据与系统
【复习目标】
1.了解文件和数据库文件的概念。
2.了解GUI的基本概念,学会设计简单的GUI。
3.理解数据与系统的关系,通过电子表格、Access和Python等软件管理和分析系统中的数据。
4.了解数据库管理系统和数据库系统的基本概念。
一、图形用户界面(Graphical User Interface,GUI)
图形用户界面又称图形用户接口,是指采用图形方式显示的计算机操作用户界面。在Python语言中,tkinter是实现图形用户界面的模块,可以快速创建GUI应用程序。方法如下:
(1)导入tkinter模块(from tkinter import*);
(2)运用相应代码创建交互对象(如矩形容器Frame、文本框Entry、命令按钮Button、文本标签Label等)。
二、文件
文件是存储在外存储设备中的相关数据的集合。在Python语言中,用open函数把外存储器里的文本文件(.txt)打开,open(文件名,模式)函数创建文件对象,即打开指定文件,并规定操作模式,常用模式:r读取,w写入,a在尾部追加。用read方法读取整个文件内容。用write方法将内存中的数据存储到外存储器的文件中,文件操作结束时一定要用close方法关闭文件。
三、数据库
数据库是以一定的组织方式存储在计算机中的相互关联的数据集合。
数据库文件中数据之间的关联有多种模型,如层次模型、网状模型和关系模型。其中,基于二维表的关系模型是最常用的。
四、数据表
在数据库中,数据是以二维表的形式组织存储的,称为表。
一个表中的一列称为一个字段,一个字段对应实体的一个属性,每个字段都有一个名字,称为字段名;表中的一行称为一条记录,一条记录对应于一个实体,保存有关实体属性的数据;表中可以唯一确定一条记录的字段称为主键。我们可以对数据表进行插入、删除和更新等操作。
五、数据库管理系统(Database Management System,DBMS)
数据库管理系统是定义、创建、维护数据库的一种工具,它允许用户管理和控制数据库中的数据。
常见的数据库管理系统有Sybase、ORACLE、MySQL、Access等。
六、表间关联与查询设计
关系就像绳子将两个“表”联结在一起,可以利用“查询”面板中的“查询设计”选项按照提示创建选择查询,得到查询结果。
七、查询准则
如果只是简单地查找某个字段为特定值的记录,只要在该字段对应的“条件”栏中输入该值即可;如果不仅是查找某个特定值,在准则中可以使用表达式。在表达式中可通过操作符设置查询范围。
主要的操作符有AND、OR、BETWEEN…AND、LIKE等。
八、数据库系统
1.数据库系统是由数据库、数据库管理系统(及其应用开发工具)、数据库应用系统、数据库管理员和用户组成的存储、管理、处理和维护数据的系统。
2.利用Python访问Access数据库一般可分为以下5个步骤:
(1)建立与数据库的连接;
(2)根据需要产生记录集;
(3)访问记录集,处理数据;
(4)根据需要把处理好的数据更新到数据库中;
(5)断开与数据库的连接。
3.数据库应用系统的设计一般包括系统总体结构设计、代码设计、数据库(文件)设计、输入/输出(I/O)设计、模块功能与处理过程设计等步骤。
[例] 在数据库系统中,关于数据表的描述,下列选项不正确的是( )
A.数据表是数据库中的基本数据单位
B.数据表由行和列组成
C.数据表中的每行是唯一的,可以相互交换位置
D.数据表中的列代表属性
1.下列选项中,不属于Python语言中对文件的写操作方法的是( )
A.writelines B.write
C.write和seek D.open
2.Access数据库的扩展名是( )
A..bmp B..accdb
C..avi D..gif
3.在Access数据库中建立“公司员工信息表”时,其中“身份证”字段的属性为( )
A.数字 B.短文本
C.日期/时间 D.自动编号
4.在关系型数据库中,一个关系对应一个( )
A.层次模型 B.网状模型 C.二维表 D.记录
5.在SQL语言中,表示职称为“中小学高级”,同时性别为“女”的逻辑表达式为( )
A.职称='中小学高级'OR性别='女' B.职称='中小学高级'AND性别='女'
C.BETWEEN'中小学高级'AND'女' D.IN('中小学高级','女')
6.下列关于数据库系统的描述正确的是( )
A.由计算机硬件系统、操作系统、DBMS、数据库、应用程序及用户等组成的一个整体称为数据库系统
B.由文件系统、计算机系统软件和硬件系统组成了数据库系统
C.数据库系统就是管理数据库和操作人员的系统
D.数据库系统包含数据库,数据库管理系统包含数据库系统
7.下图为某网店的销售数据库,其中关于①②③处的说法正确的是( )
A.①数据表、②字段、③记录 B.①记录、②字段、③数据表
C.①数据表、②记录、③字段 D.①字段、②数据表、③记录
8.小明同学利用在线学习平台成功注册一个账号的过程,实质上是对平台数据库进行( )
A.创建一个表 B.添加一条记录
C.创建一个数据库 D.删除一条记录
9.在Access数据库中建立“在校学生信息统计表”时,其中“出生日期”字段的属性为( )
A.数字 B.短文本 C.日期/时间 D.自动编号
10.构建关系数据库的基本过程:①编辑、使用数据库;②建立关系数据模型;③数据分析;④创建数据库结构。下列顺序正确的是( )
A.③②④① B.③①④② C.③①②④ D.④③②①
11.下列关于数据库的说法正确的是( )
A.Access数据库文件的扩展名是.accdb
B.数据表能脱离数据库独立存在
C.同一个字段可以存放不同类型的数据
D.一个数据库只能有一个数据表
3.4 加密与解密
【复习目标】
1.理解数据加密和解密的概念及原理。
2.会用Python实现简单的加密算法
3.会分析生活中由密码引起的数据安全问题,理解对数据进行保护的意义。
一、密码
1.含义:密码是指用来核对用户ID以验证用户就是本人的一组字符。
2.创建安全密码的一般技巧
(1)使用长度不少于8个字符的密码。密码长度越长越不容易被破解。
(2)在可能的情况下,尽量使用字母、数字和特殊字符(如:$、#)相结合的密码。
(3)不要使用电话号码、身份证号码或生日等信息作为密码。
(4)不要使用整个用户ID或用户ID的一部分作为密码。
(5)不要使用字典中能找到的词语作为密码,即使是字母次序颠倒过来的常用词语也不可以。
为保障数据安全,还可采取限制登录尝试次数、使用验证码、使用用户的具有排他性的自然特征(如指纹、人脸等)作为身份验证依据等措施。
二、加密
1.加密就是将原始信息(数据)隐匿起来,使之在缺少特殊信息(数据)时不可读。
2.原始信息(数据)称为明文。
3.加密后的信息(数据)称为密文。
4.将密文还原成明文的过程称为解密(或解码)。
5.加法密码
加法密码又称移位密码。在加法密码算法中,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。恺撒密码就是加法密码的典型代表,是一种最为古老的对称加密体制。
加密算法操作中的一组数字被称为密钥。比如,恺撒密码的密钥为3,加密和解密使用同一个密钥,被称为对称加密体制。
6.“盗窃行为”和防范措施
盗窃方式 盗窃行为 防范措施
撞库 通过收集互联网已泄露的用户名和密码信息,生成对应字典,尝试批量登录其他网站,获取用户信息 避免多个平台的账号设置同样或者相似的用户名和密码
字典破解 利用人们习惯用人名、地名、生日、电话号码或常见的词语设置成密码的习惯进行破译 不用生日、姓名及拼音缩写、手机号、身份证号、简单数字组合、单词等作为密码
暴力破解 通过尝试所有可能的组合来找到正确密码的方法。这种方法通常依赖于计算机的高效计算能力,通过程序自动进行 同时包含大小写字母、数字、特殊符号,且不少于8个字符
钓鱼网站 仿冒真实网站,欺骗消费者或者窃取访问者提交的账号和密码信息 不点击不明链接和不登录不安全的网站;不在不明网站上输入个人信息
肩窥方式 通过窥看用户的键盘输入,鼠标移动等方式来获取用户口令 可以在输入密码时遮挡自己的操作过程,防止别人偷看密码信息;或者确定环境安全后再进行操作
2017年6月1日起施行的《中华人民共和国网络安全法》,明确要求网络运营者应当按照网络安全等级保护制度的要求,履行安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改。
《中华人民共和国刑法》第二百八十五条至第二百八十七条,对非法侵入计算机信息系统,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,利用计算机实施金融诈骗、盗窃、贪污、挪用公款、窃取国家秘密等行为进行了量刑定罪。
[例] 使用密码可以有效保护数据,下列选项说法正确的是( )
A.恺撒密码是一种非对称加密技术
B.密码长度越长越容易被破解
C.为了便于记忆,可以使用电话号码作为自己常用密码
D.尽量使用字母、数字和特殊字符相结合的密码
1.以下字符最适合作为安全密码使用的是( )
A.Go189 B.123456
C.20240915 D.Zw*3a74P
2.下列属于防肩窥方式窃取密码的是( )
A.使用多种字符相结合的密码
B.在输入密码时遮挡操作过程
C.密码不使用生日等
D.使用简单数字组合作密码
3.常见的密码盗窃方式有很多,其中暴力破解又叫( )
A.密码穷举 B.字典破解 C.肩窥方式 D.强行盗取
4.下列设置密码的方式中最安全的是( )
A.用自己的生日作为密码
B.用英文字母作为密码
C.小写字母、标点、数字以及控制符组成密码
D.自己姓名的汉语拼音作为密码
5.采用加密技术可以有效防止他人对数据进行非法操作。下列对于加密技术描述正确的是( )
A.对称式加密指加密和解密使用两个不同的密钥
B.原始信息称为密文,加密后的信息称为明文
C.将明文还原成密文的过程称为解密
D.加密技术通常分为对称式加密和非对称式加密
6.下列关于加密的说法正确的是( )
A.加密方法只有对称加密和非对称加密两种
B.信息隐蔽是加密的一种方法
C.只要知道加密程序的细节,就可以对信息进行解密
D.密钥的位数越多,信息的安全性越高
4.1 算法及其特征
【复习目标】
1.熟悉将解决问题的方法归结为一系列清晰、准确的步骤的过程。
2.了解算法的基本要素和重要特征。
3.运用恰当的方式描述算法。
4.运用Python语言实现简单算法,解决问题。
一、算法
1.算法的重要特征
(1)有穷性。算法必须能在执行有限个步骤之后终止。
(2)确切性。算法中的每一次运算都有明确的定义,具有无二义性,并且可以通过计算得到唯一的结果。
(3)输入项。一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身给出了初始条件。
(4)输出项。算法一定要有输出。
(5)可行性。算法中执行的任何计算都可以在有限时间内完成(也称为有效性)。算法中的运算都必须是可以实现的。
2.对算法的评价:主要从时间复杂度和空间复杂度来考虑。
二、枚举算法
1.“枚举”或称作“穷举”。它将所有可能的答案一一列举,合适就保留,不合适就丢弃。它是一种最为直接,实现最简单,同时又最为耗时的解决问题的算法。
2.枚举法的两大要素:枚举对象和判断条件。
3.枚举法解决问题的一般结构:循环+判断。
4.优势:正确性容易证明。
5.经典应用:百鸡百钱,水仙花数等。
[例1] 计算机无法解决“打印所有的质数”,因为违背了算法的( )
A.有穷性 B.确定性
C.可行性 D.至少有1个输出
[例2] 水仙花数是三位整数,各位数字的立方和等于该数本身,如153=13+53+33。要求出所有的水仙花数,算法程序如下:
for num in range(100,1000):
#a,b,c分别表示百位、十位、各位上的数字
a=num//100
b=num%100//10
c=num%10
if a*a*a+b*b*b+c*c*c==num:
print(num)
下列说法不正确的是( )
A.算法对象是100~999的三位整数
B.a*a*a+b*b*b+c*c*c==num是水仙花数的判断条件
C.算法用了循环+判断的结构,把所有可能的答案一一列举了,是枚举法
D.枚举算法设计不是很直接、简单
1.下列选项中关于算法的描述正确的是( )
A.解决具体问题的算法具有唯一性
B.可以通过算法求解所有自然数的和
C.算法的步骤必须是有限的
D.算法的步骤必须是可逆的
2.下列选项中,不属于算法特征的是( )
A.有穷性 B.唯一性
C.可行性 D.至少有1个输出
3.算法分析的两个主要方面是( )
A.空间复杂度和时间复杂度
B.正确性和简单性
C.可读性和文档性
D.数据复杂度和程序复杂度
4.算法的每种运算必须要有确切的定义,不能有二义性。下列符合算法确定性运算的是( )
A.8/0
B.将奇数与x相加
C.未赋值变量参与运算
D.f(n)=f(n-1)+f(n-2),f(1)=1,f(2)=1,n为自然数
5.在求一元二次方程实数根的算法中,若方程不存在实数根,则输出“方程无实数根”,否则输出该方程的根。这一要求主要体现了算法特征中的( )
A.输出项 B.有穷性
C.输入项 D.可行性
6.下列不能通过计算机算法得到唯一解或最优解的是( )
A.列举1~100之间所有偶数
B.楼宇电梯会合理停靠在相应的楼层
C.铁路网络订票系统会按照一定的设置,高效服务用户
D.求出一个无理数所有位数之和
7.计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、 等5个特性( )
A.可行性、可移植性和可扩充性
B.可行性、有穷性和确切性
C.确切性、有穷性和稳切性
D.易读性、稳定性和确切性
8.鸡兔同笼、百鸡百钱、求1 000以内所有的素数……这些问题,可以用同一种类型的算法去解决,这种方法是( )
A.解析法 B.枚举法
C.递归法 D.归纳法
9.银行ATM机上规定用户一天可以尝试3次密码,目的在于防止暴力破解,暴力破解用到的算法是( )
A.递归法 B.分治法
C.迭代法 D.穷举法
10.使用枚举算法解决问题的最大优势是( )
A.枚举算法设计直接、简单
B.枚举算法时间复杂度低
C.枚举算法空间复杂度低
D.枚举算法可以解决所有问题
4.2 数值计算
【复习目标】
1.感受数据的图形化表示。
2.设计解析式或迭代方程,进行数值计算,解决问题。
3.了解数值类算法在实际问题解决时的应用及常用方法。
一、数据的图形化
在Python中,绘制函数图像一般要用到numpy和matplotlib两个模块,这两个模块需要另外安装。
1.数学是计算机科学的理论基础之一。人们对计算机的最初应用大多是数值计算,主要借助计算机运算速度快、精确度高的特点来解决各种数学问题,如函数的计算、方程的求解、数列求和等。
2.数据的图形化表示
(1)WPS表格绘图:绘制图像时,图像的关键点太少,精度不够,图像就会不光滑。
(2)Python绘图:借助计算机程序描点,增加关键点,即增加间隔,达到速度快、精度高、光滑程度高的效果。
二、Python绘制图像
1.numpy模块
numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等,还支持处理大型矩阵、矢量运算、线性代数等功能。
■range( )和arange( )的区别
range(start,end,step),返回一个range对象,起始值为start,终止值为end,但不含终止值,步长为step。
arange(start,end,step),可以产生一个等差数列,返回一个array对象。需要引入import numpy as np,并且arange可以使用float型数据。
2.matplotlib模块
matplotlib模块是Python中最出色的绘图库,功能很完善。可以绘制各种线图、直方图、饼图,调用matplotlib.pyplot时,坐标系可以根据数值范围自动生成。
三、解析算法
1.通过找出解决问题的前提条件与结果之间的关系表达式,再计算表达式来实现问题的求解。
2.解析式是用运算符号和括号把数字和字母按一定规则连接成的式子。在生活中,可以利用已经成熟的数量关系和公式、定理来解决各种问题,如利用开根公式求根、利用海伦公式求三角形面积等。
3.数据的图形化表达使数据信息显得更加直观和便于理解,有助于挖掘规律。
四、迭代法
1.迭代法也称辗转法,是用计算机解决问题的一种基本方法。
2.迭代通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
3.利用迭代算法解决问题,有以下三个关键步骤:
(1)确定迭代变量;
(2)建立迭代关系式;
(3)对迭代过程进行控制。
4.使用迭代算法解决问题的一般结构:循环+判断+迭代关系式。
5.迭代算法的经典应用:利用欧几里得碾转相除法求最大公约数。
[例] 走楼梯的问题可以利用迭代算法来解决,解决该问题的正确顺序应该是( )
①建立迭代关系式 ②让迭代过程无休止地重复执行 ③对迭代过程进行控制 ④确定迭代变量
A.①③② B.①②③ C.④①③ D.①④③
1.现在流行一种产品研发理念,在该理念支持下的产品研发是“上线-反馈-修改-上线”这样反复更新内容的过程,这种形式非常适合互联网产品或者移动端通过收集数据或用户反馈迅速改进结果,用此方式可以迅速在用户之间找到平衡点。这种产品研发理念和哪种算法思想非常类似( )
A.二分 B.迭代 C.递归 D.贪心
2.在Python中,绘制函数图像需要使用的模块是( )
A.win32com、numpy B.numpy、matplotlib
C.math、matplotlib D.random、math
3.numpy是一个科学计算包,其中包含很多数学函数,如三角函数、矩阵计算方法等。arange函数是该模块中的函数。下列说法中错误的是( )
A.可以用arange函数创建一个等差数列
B.arange函数如在0~2π之间每隔0.01取个值,则可以用arange(0,2*numpy.pi,0.01)来表示,其中numpy.pi表示π
C.import numpy as np后,x=np.arange(0,2*numpy.pi,0.01),可以将x应用到y=np.sin(x)图像绘制
D.可以用arange函数创建一个等比数列
4.斐波那契数列也叫兔子繁殖数列,小明编写了下列代码求第74个月能繁殖多少对兔子,他使用的算法是( )
f1=f2=1
for i in range(3,75):
f1,f2=f2,f1+f2
print("兔子总对数为:",f2)
A.解析法 B.迭代法 C.枚举法 D.二分法
5.关于迭代法,下列描述中正确的是( )
A.每一次的迭代进行,肯定离最终的正确结果越来越近
B.每一次的迭代结果,其实质就是下一次运算的初始值
C.如果没有正确结果,迭代次数可以无止境地进行下去
D.迭代的计算结果肯定比数学公式计算精确
4.3 非数值计算
【复习目标】
1.运用合适的算法形成解决问题的方案。
2.了解算法设计中的分治思想,并运用二分查找解决实际问题。
3.体验递归算法,并结合具体问题开展编程实践。
数值计算探讨的是数学问题,非数值运算更多探讨“算法”问题。
计算的本质是选择一个合适的算法,设计出平实、易读、易懂的程序,正确、高效地解决实际需求。
一、分治策略
分治的设计思想,是将一个难以直接解决的大问题,分割成一些较小的同类问题,各个击破,最终达到解决问题的目的。二分查找实际上就是分治策略的一种典型运用。
二、二分查找
1.二分查找又叫折半查找,该方法主要将数列有序排列,采用跳跃式的方式查找数据。它是一种高效的查找方法,可以明显减少比较次数,提高查找效率。在一个有n个元素的有序序列中,利用二分查找大约需要lo次。二分法查找的前提条件是被查找的数据必须是有序的。
2.查找的基本算法有:顺序查找、二分查找、分块查找和哈希查找等。
3.以递增数列为例,先以中点位置的元素作为比较对象,若要查找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。每一次比较后都可以将查找区间缩小一半。
例如:在列表a=[13,15,18,22,28,36,45,63,70,88] 中查找x=36的过程如下:
查找x=36 左界Left 右界Right 中间位置Mid 比较x与a[Mid] 相应操作
第1轮 0 9 4 36>28 Left=Mid+1
第2轮 5 9 7 36<63 Right=Mid-1
第3轮 5 6 5 36=36 查找成功!
三、递归
1.直接或间接地调用自身的方法称为递归。可以将递归简单类比为具有自相似性重复的事物。
2.在数学与计算机领域中,递归函数是指用函数自身来定义该函数的方法。如著名的斐波那契数列“1,1,2,3,5,8,13,…”,可以递归定义为:
F(n)=
递推关系是递归的重要组成,而边界条件是递归的另一要素,它保证递归能在有限次的计算后得出结果,而不会产生无限循环的情况。
4.递归的基本思想是把规模较大的问题层层转化为规模较小的同类问题求解。对递归而言,递推与回归,二者缺一不可。结合分治策略,递归也可用“分”“治”“合”三个字概括。
(1)分:将原问题分解成k个子问题。
(2)治:对这k个子问题分别求解。如果子问题的规模仍然不够小,则将其再分解为k个子问题,如此进行下去,直到问题足够小时,就很容易求出子问题的解。
(3)合:将求出的小规模问题的解合并为一个更大规模问题的解,自下而上逐步求出原问题的解。
5.典型运用:斐波那契数列、汉诺塔等。
四、迭代与递归的关系
1.迭代算法与递归算法都需要重复执行某些代码,两者既有区别又有着密切的联系。
2.迭代是重复反馈过程的活动,其目的通常是逼近所需目标或结果,通常使用计数器结束循环。递归是重复调用函数自身,遇到满足终止条件的情况时逐层返回。
3.迭代程序可以转换成等价的递归程序。
递归 迭代
def fib1(n): #递归求Fibonacci数列第n个数 if n==1 or n==2: return 1 else: return fib1(n-1)+fib1(n-2) def fib2(n): #迭代求 Fibonacci 数列第n个数 f1=f2=1 for i in range(3,n+1): f1,f2=f2,f1+f2 return f2
[例] 我们常用的二分查找体现的算法思想是( )
A.枚举 B.穷举 C.贪心 D.分治
1.运用分治策略将一个难以直接解决的大问题分割成规模较小的子问题分别解决,最终达到解决大问题的目的。这要求原问题和子问题的( )
A.问题性质相同,问题规模相同 B.问题性质不同,问题规模相同
C.问题性质相同,问题规模不同 D.问题性质不同,问题规模不同
2.下列选项中没有体现递归思想的是( )
A B
C D
3.下列关于递归的说法正确的是( )
A.函数间接调用自己不是递归
B.递归函数的嵌套调用次数没有限制
C.递归函数的执行效率优于非递归函数
D.递归出口和递归关系是递归函数编写的关键
4.已知递归式为F(n)=F(n-1)+2,且F(1)=5,则当n=3时,F的值为( )
A.7 B.9 C.11 D.13
5.数据1~1000升序排列,若用二分查找其中的某个数,最多需要查找的次数为( )
A.3 B.10 C.100 D.500
6.若采用二分查找法在数列3,9,16,25,33,47,56中查找33,需查找的次数是( )
A.1 B.2 C.3 D.4
7.在Python中,要实现输出下列递归过程,则①处的代码应该是( )
def dg(i):
print("先进入,递推"+str(i))
if i>1:
①
else:
print("=====到达最内层退出条件====")
print("后反出,回归"+str(i))
print("体验递归过程,观察变量i的变化")
dg(4)
A.i=i-1 B.i=i+1 C.dg(i-1) D.dg(i+1)
4.4 综合问题的解决
【复习目标】
1.学会分析任务,描述需求分析,知道需要解决的关键问题。
2.体验软件开发的基本流程。
一、问题解决过程
1.在解决综合问题时,我们通常先考虑总体,后考虑细节;先面向整体,再细化局部。面对软件开发这类综合问题时,需要立足对象间的相互联系,强调便捷的人机交互模式,尽量向需求靠拢。
2.“基于需求,分析问题”主要是根据项目需求分析问题,思考软件设计的初始条件、项目需实现的模块、模块功能的描述等。
3.“分解任务,设计流程”主要是根据分析问题后的模块功能,分解任务,设计具体的设计流程,如流程图等,也可以采用文字的形式进行描述。
4.“组装程序,测试运行”主要是通过程序设计实现分解后的各模块功能,各模块通过组合组装成一个完整的程序。
二、需求分析
1.需求分析是软件工程中的一个关键过程。需求分析阶段的任务是确定软件系统的功能。可以理解为确定需要计算机“做什么”及想达到什么样的效果。
2.只有在确定了这些需求后,才能够分析和寻求系统的解决方法。
三、事件处理
软件设计中通常有随事件的发生而改变的状态,如鼠标单击、键盘输入、循环监测等事件,并且根据事件来更新状态。
四、总体设计和详细设计
1.总体设计就是在需求分析的基础上对模型细化、分解任务,明确程序由哪些模块组成。概括地说,就是系统应该如何实现。
2.详细设计主要指界面设计、过程设计等。
五、程序设计
1.程序设计是使用某种程序设计语言编写命令序列,指示计算机完成特定功能的过程。
2.程序设计的核心在于将人类的逻辑思维转化为计算机能够理解和执行的精确指令,这一过程需要深厚的计算机科学基础、逻辑思维能力和问题解决技巧。
3.程序设计的过程通常包括分析、设计、编码、测试、排错等不同阶段。
4.分析阶段需要理解问题和需求,设计阶段则涉及算法和数据结构的选择,编码阶段是将设计转化为具体的程序代码,测试阶段则是验证程序的正确性和稳定性,排错阶段则是修正程序中的错误。
六、pygame模块
pygame是一个专门用来开发游戏的模块,可以包含图像、声音等。
1.pygame监听程序
while True:
#监听所有事件,获取事件列表
for event in pygame.event.get( ):
if event.type==pygame.QUIT: # Quit 事件
sys.exit( ) # 退出程序
#鼠标单击事件
if event.type==pygame.MOUSEBUTTONDOWN∶
……
不同的按键事件,在监听事件中增加相应的判断语句。
2.pygame窗口问题
import pygame # 导入模块
pygame.init( ) # pygame模块初始化
# 创建一个窗口 screen,大小为800*600
screen=pygame.display.set_mode([800,600] )
pygame.display.set_caption('实例') #设置屏幕标题
screen.fill((144,238,144)) #窗口填充淡绿色
img=pygame.image.load('ball.png') #载入ball.png图像到内存
#将图像绘制在screen中,图像的左上角在[200,200]
screen.blit(img,[200,200] )
pygame.display.update( ) #窗口刷新
七、pygame模块
模块 功能
pygame.display 访问显示设备
pygame.event 管理事件
pygame.font 使用字体
pygame.image 加载和存储图片
[例] 在Python程序中,下列语句的作用是( )
pic_m=pygame.image.load('air.jpg')
A.仅装载air图片到内存
B.装载air图片到内存,并在窗体中显示出来
C.保存当前信息为air图片
D.将变量pic_m中的信息作为图片(air)输出至程序文件夹
1.下列代码可以让pygame游戏窗口持续显示的是( )
A.使用无限循环让代码持续运行
B.使用pygame库让代码持续运行
C.不使用sys.exit( )退出游戏
D.使用turtle.done( )保留窗口显示
2.在解决综合问题时,我们通常先考虑 ,后考虑细节( )
A.色彩 B.界面 C.总体 D.局部
3.下列Python语句中,使用pygame实现延时1秒的语句正确的是( )
A.pygame.display.update(100) B.pygame.time.delay(100)
C.pygame.display.update(1000) D.pygame.time.delay(1000)
4.下列Python程序段能够创建大小为600×400窗口的是( )
①import pygame
pygame.init( )
screen=pygame.display.load([600,400] )
②import pygame
pygame.init( )
screen=pygame.display.set_mode([600,400] )
③from tkinter import*
screen=Tk( )
screen.geometry("600×400")
④from tkinter import*
screen=Tk( )
screen.size("600×400")
A.①③ B.①④ C.②③ D.③④
5.pygame的图像函数不支持图层存储下列哪种格式( )
A..BMP B..GIF C..PNG D..JPG
6.在Python游戏设计中,pygame自带了一个监听类循环,可以不断检查用户的操作,不能实现的监听为( )
A.用户按键 B.移动鼠标
C.关闭窗口 D.加载图片
7.Python中的pygame模块是专门用来开发游戏的,其中pygame.display.set_caption("接福游戏")的功能是( )
A.设置当前窗口标题栏的名称
B.创建一个指定大小的窗口
C.更新当前窗口
D.从文件加载新图片
5.1 走近数据分析
【复习目标】
1.了解数据分析的几种常用方法。
2.体验对比分析和平均分析的一般分析过程。
3.了解大数据的含义,认识大数据分析在信息社会的重要作用。
一、数据分析
数据分析指用恰当的统计分析方法对收集来的大量数据进行分析,提取有用信息,并形成结论的过程。数据分析主要用于现状分析、原因分析和预测分析。
二、数据分析的过程及方法
1.数据分析的一般过程:分析目标→提出假设→选择方法→验证假设→得出结论。
2.数据分析的方法:对比分析和平均分析。
(1)对比分析是指将两个或两个以上的数据进行比较,分析它们的差异,从而揭示这些数据所代表的事物的发展变化情况和规律。对比有横向对比和纵向对比。
①横向对比是在类似的或同类的事物之间进行比较。
②纵向对比是将相同事物的不同时期进行比较。
(2)平均分析是指运用计算平均值的方法反映总体在一定时间、地点条件下某一数量特征的一般水平。
平均分析和对比分析常结合使用。
三、数据可视化表达
1.数据可视化表达是指以图形、图像和动画等方式更加直观生动地呈现数据及数据分析结果,揭示数据之间的关系、趋势和规律等的表达方式。
2.图表是最常用的数据可视化表达方式之一。利用表格加工软件绘制基本的图表类型,如柱状图、饼图和折线图等;利用专业性工具绘制表现形式更为丰富或者具有互动功能的图表。
四、数据分析报告
1.数据分析报告是项目研究结果的展示,也是数据分析结论的有效承载形式。通过报告不仅把数据分析的起因、过程、结果及建议完整地展现出来,还可以为决策者提供科学、严谨的决策依据。
2.数据分析报告内容包括:
首先要明确数据分析的目的和背景,阐述目前存在的问题及通过分析希望解决的问题;
其次需要描述数据来