免费智能真题库 > 历年试卷 > 嵌入式系统设计师 > 2012年下半年 嵌入式系统设计师 上午试卷 综合知识
  第66题      
  知识点:   嵌入式操作系统的分类   SNMP   SNMP服务   配置SNMP服务
  关键词:   Windows        章/节:   嵌入式操作系统基础知识       

 
在Windows 2003 Server中启用配置SNMP服务时,必须以(66)身份登录才能完成SNMP服务的配置功能。
 
 
  A.  guest
 
  B.  普通用户
 
  C.  administrator组成员
 
  D.  user组成员
 
 
 

 
  第23题    2009年下半年  
   62%
操作系统是裸机上的第一层软件,其他系统软件(如(22)等和应用软件都是建立在操作系统基础上的。下图①②③分别表示(23)。
  第50题    2010年下半年  
   72%
分布式系统是一个由多台计算机组成的系统,下列叙述中错误的是(50)。
  第45题    2014年下半年  
   41%
近年来具有健壮分区功能的嵌入式实时操作系统(例如VxWorks653)在嵌入式领域得到了广泛应用,以下不属于分区操作系统特点的是(..
   知识点讲解    
   · 嵌入式操作系统的分类    · SNMP    · SNMP服务    · 配置SNMP服务
 
       嵌入式操作系统的分类
        操作系统的分类有多种方法,常见的有按照所提供的功能分类、按照系统的类型分类、按照响应时间分类、按照软件结构分类等。
               按提供的功能分类
               按照操作系统所提供的功能进行分类是最常见的方式,可以分为以下几类。
               (1)单用户操作系统。其主要特征是,在一个计算机系统内,一次只能支持运行一个用户程序。此用户独占计算机系统的全部硬件、软件资源。早期的微机操作系统例如DOS是这样的操作系统。
               (2)批处理操作系统。用户把要计算的问题、数据、作业说明书等一起交给系统操作员,系统操作员将一批算题输入计算机,然后由操作系统控制执行。采用这种批处理作业技术的操作系统称为批处理操作系统。这类操作系统又分为批处理单道系统和批处理多道系统。
               (3)实时操作系统。“实时”是“立即”的意思。典型的实时操作系统包括过程控制系统、信息查询系统和事务处理系统。实时系统是较少有人为干预的监督和控制系统。其软件依赖于应用的性质和实际使用的计算机的类型。实时系统的基本特征是事件驱动设计,即当接到某种类型的外部信息时,由系统选择相应的程序去处理。
               (4)分时操作系统。这是一种使用计算机为一组用户服务,使每个用户仿佛自己有一台支持自己请求服务的计算机的操作系统。分时操作系统的主要目的是对联机用户的服务和相应,具有同时性、独立性、及时性、交互性。分时操作系统中,分时是指若干道程序对CPU的分时,通过设立一个时间分享单位即时间片来实现。分时操作系统与实时操作系统的主要差别在交互能力和响应时间上。分时系统交互行强,而实时系统响应时间要求高。
               (5)网络操作系统。提供网络通信和网络资源共享功能的操作系统称为网络操作系统。它是负责管理整个网络资源和方便网络用户的软件的集合。网络操作系统除了一般操作系统的五大功能之外,还应具有网络管理模块。后者的主要功能是,提供高效而可靠的网络通信能力;提供多种网络服务,如远程作业录入服务、分时服务、文件传输服务等。
               (6)分布式操作系统。分布式系统是由多台微机组成且满足如下条件的系统:系统中任意两台计算机可以通过通信交换信息;系统中的计算机无主次之分;系统中的资源供所有用户共享;一个程序可以分布在几台计算机上并行地运行,互相协作完成一个共同的任务。用于管理分布式系统资源的操作系统称为分布式操作系统。
               嵌入式操作系统也可以按照不同的标准来进行分类,例如,可以按照系统的类型、响应时间和软件结构来分类。
               按系统的类型分类
               按照系统的类型,可以把嵌入式操作系统分为三大类:商用系统、专用系统和开源系统。
               (1)商用系统。商业化嵌入式操作系统特点是功能强大、性能稳定、应用范围相对较广,而且辅助软件工具齐全,可以胜任许多不同的应用领域。但商用系统的价格通常比较昂贵,如果用于一般的产品会提高产品的成本从而失去竞争力。其典型代表是风河公司(Wind River)的VxWorks、微软公司的Windows CE、Palm公司的PalmOS等。
               (2)专用系统。一些专业厂家为本公司产品特制的嵌入式操作系统,这种系统一般不提供给应用开发者使用。
               (3)开源系统。开放源代码的嵌入式操作系统是近年来发展迅速的一类操作系统,其典型代表是μC/OS和各类嵌入式Linux系统。开源系统具有免费、开源、性能优良、资源丰富、技术支持强等优点,在信息家电、移动通信、网络设备和工业控制等领域得到越来越广泛的应用。
               按响应时间分类
               按照系统对响应时间的敏感程度,可以把嵌入式操作系统分为两大类:实时操作系统和非实时操作系统。
               顾名思义,实时操作系统就是对响应时间要求非常严格的系统。当某一个外部事件或请求发生时,相应的任务必须在规定的时间内完成相应的处理。实时系统的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这些结果所需要的时间。
               实时操作系统可以分为硬实时和软实时两种情形。
               (1)硬实时系统。系统对响应时间有严格的要求,绝不允许响应时间不能满足,否则可能会引起系统的崩溃或致命的错误。
               (2)软实时系统。系统对响应时间有要求,如果响应时间不能满足,将带来额外的代价,不过这种代价通常能够接受。
               非实时系统在响应时间上没有严格的要求,如分时操作系统,它是基于公平性原则,各个进程分享处理器,获得大致相同的运行时间。当一个进程在进行I/O操作时,会交出处理器,让其他的进程运行。
               按软件结构分类
               按照软件的体系结构,可以把嵌入式操作系统分为三大类:单体结构、分层结构和微内核结构。它们之间的差别主要表现在两个方面:一是内核的设计,即在内核中包含了哪些功能组件;二是在系统中集成了哪些其他的系统软件(如设备驱动程序和中间件)。
                      单体结构
                      在单体结构的操作系统中,中间件和设备驱动程序通常就集成在系统内核当中。整个系统通常只有一个可执行文件,里面包含了所有的功能组件(如下图所示)。系统的结构就是无结构,整个操作系统由一组功能模块组成,这些功能模块之间可以相互调用。例如,嵌入式Linux操作系统、Jbed RTOS、μC/OS-II和PDOS都属于单体内核系统。
                      
                      单体结构
                      单体结构的优点是性能较好,系统的各个模块之间可以相互调用,通信开销比较小。它的缺点是操作系统具有体积庞大、高度集成和相互关联等特点,因而在系统剪裁、修改和调试等方面都较为困难。
                      分层结构
                      在分层结构中,一个操作系统被划分为若干个层次,各个层次之间的调用关系是单向的,即某一层上的代码只能调用比它低层的代码。与单体结构相似,分层结构的操作系统也是只有一个大的可执行文件,其中包含有设备驱动程序和中间件。由于采用了层次结构,所以系统的开发和维护都较为简单。但是,这种结构要求在每个层次上都要提供一组API接口函数,这就会带来额外的开销,从而影响到系统的规模和性能。下图所示为MS-DOS的结构,这是一个有代表性的、良好组织的分层结构。
                      
                      分层结构
                      微内核结构
                      微内核结构或者客户-服务器结构的操作系统是指在内核中将操作系统的大部分功能都剥离出去,只保留最核心的功能单元(如进程管理和存储管理),微内核结构的特点就是内核非常小,大部分的系统功能都位于内核之外,例如设备驱动程序,所有的设备驱动程序都被置于内核之外,如下图所示。
                      
                      微内核结构
                      在微内核操作系统中,新的功能组件可以被动态地添加进来,所以它具有易于扩展、调试方便等特点。另外,由于大部分的系统功能被放置在内核之外,而且客户单元和服务器单元的内存地址空间是相互独立的,因此系统的安全性更高。它还有一个优点就是移植方便。但是,与其他类型的操作系统相比(如单体内核),微内核操作系统的运行速度可能会慢一些,这是因为核内组件与核外组件之间的通信方式是消息传递,而不是直接的函数调用。另外,由于它们的内存地址空间是相互独立的,所以在切换的时候,也会增加额外的开销。许多嵌入式操作系统采用的都是微内核的方式,如OS-9、C Executive、VxWorks、CMX-RTX、Nucleus Plus和QNX等。
 
       SNMP
        1)SNMP概述
        SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后对其改进并加入了符合Internet定义的SMI和MIB体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响很大。SNMP的体系结构如下图所示。
        
        SNMP的体系结构
        SNMP的体系结构围绕以下4个概念和目标进行设计。
        ◆使管理代理的软件成本尽可能低。
        ◆最大限度地保持远程管理的功能,以便充分利用Internet上的网络资源。
        ◆体系结构必须有扩充的余地。
        ◆保持SNMP的独立性,不依赖于具体的计算机、网关和网络传输协议。
        在SNMP的改进版本SNMPv2中,又加入了保证SNMP体系本身安全性的目标。
        另外,SNMP中提供了以下4类管理操作。
        ◆get操作:用来提取特定的网络管理信息。
        ◆get-next操作:通过遍历操作来提供强大的管理信息的提取能力。
        ◆set操作:用来对管理信息进行控制(修改、设置)。
        ◆trap操作:用来报告重要的事件。
        各种操作的执行如下图所示。
        
        SNMP的4种操作
        2)SNMP管理控制框架与实现
        (1)SNMP管理控制框架。
        SNMP定义了管理进程(Manager)和管理代理(Agent)之间的关系,这个关系被称为共同体(Community)。描述共同体的语义是非常复杂的,但其句法却很简单。位于网络管理工作站(运行管理进程)和各网络元素上,利用SNMP相互通信,并对网络进行管理的软件统称为SNMP应用实体。若干个应用实体和SNMP组合起来形成一个共同体,不同的共同体之间用名字来区分。共同体的名字必须符合Internet的层次结构命名规则,由非保留字符串组成。此外,一个SNMP应用实体可以加入多个共同体。
        SNMP的应用实体对Internet管理信息库中的管理对象进行操作。一个SNMP应用实体可操作的管理对象子集称为SNMP MIB授权范围。SNMP应用实体对授权范围内管理对象的访问还有进一步的访问控制限制,比如只读、读/写等;SNMP体系结构中要求每个共同体都规定其授权范围及其对每个对象的访问方式。记录这些定义的文件被称为共同体定义文件。
        SNMP的报文总是源自每个应用实体,报文中包括该应用实体所在的共同体的名字。这种报文在SNMP中称为有身份标识的报文,共同体名字是在管理进程和管理代理之间交换管理信息报文时使用的。管理信息报文中包括以下两部分内容。
        ◆共同体名:加上发送方的一些标识信息(附加信息),用以验证发送方确实是共同体中的成员。共同体实际上就是用来实现管理应用实体之间身份鉴别的机制。
        ◆数据:这是两个管理应用实体之间真正需要交换的信息。
        第三版本前的SNMP只是实现了简单的身份鉴别,接收方仅凭共同体名来判定收发双方是否在同一个共同体中,而前面提到的附加信息尚未应用。接收方在验明发送报文的管理代理或管理进程的身份后要对其访问权限进行检查。访问权限检查涉及以下因素。
        ◆一个共同体内各成员可以对哪些对象进行读、写等管理操作,这些可读写对象称为该共同体的授权对象(在授权范围内)。
        ◆共同体成员对授权范围内每个对象定义了访问模式:只读或可读写。
        ◆规定授权范围内每个管理对象(类)可进行的操作(包括get、get-next、set和trap)。
        ◆管理信息库(MIB)限制对每个对象的访问方式(如MIB中可以规定哪些对象只能读而不能写等)。
        管理代理通过上述预先定义的访问模式和权限,来决定共同体中其他成员要求的管理对象访问(操作)是否允许。共同体概念同样适用于转换代理(Proxy Agent),只不过转换代理中包含的对象主要是其他设备的内容。
        (2)SNMP的实现方式。
        为了提供遍历管理信息库的手段,SNMP在其MIB中采用了树状命名方法对每个管理对象的实例进行命名。每个对象实例的名字都由对象类名字加上一个后缀构成,对象类的名字是不会相互重复的,因而不同对象类的对象实例之间也很少有重名的危险。
        在共同体的定义中一般要规定该共同体授权的管理对象的范围,相应地也就规定了哪些对象实例是该共同体的"管辖范围"。据此,共同体的定义可以想象为一个多叉树,以字典序提供了遍历所有管理对象实例的手段。有了这个手段,SNMP就可以使用get-next操作符,顺序地从一个对象找到下一个对象。get-next(object-instance)操作返回的结果是一个对象实例的标识符及其相关信息,该对象实例在上面的多叉树中紧排在指定标识符object-instance对象的后面。这种手段的优点在于:即使不知道管理对象实例的具体名字,管理系统也能逐个地找到它,并提取到它的有关信息。遍历所有管理对象的过程可以从第一个对象实例开始(这个实例一定要给出),然后逐次使用get-next,直到返回一个差错(表示不存在的管理对象实例)结束(完成遍历)。
        由于信息是以表格形式(一种数据结构)存放的,在SNMP的管理概念中,把所有表格都视为子树,其中一张表格(及其名字)是相应子树的根节点,每个列是根下面的子节点,一列中的每个行则是该列节点下面的子节点,并且是子树的叶节点,如下图所示。
        
        管理信息库中的对象标识
        因此,按照前面的子树遍历思路,对表格的遍历是先访问第一列的所有元素,再访问第二列的所有元素……直到最后一个元素。若试图得到最后一个元素的"下一个"元素,则返回差错标记。
        SNMP中的各种管理信息大多以表格形式存在,一个表格对应一个对象类,每个元素对应于该类的一个对象实例。那么,管理信息表对象中单个元素(对象实例)的操作可以用前面提到的get-next方法,也可以用get/set等操作。下面主要介绍表格内一行信息的整体操作。
        ◆增加一行:通过SNMP只用一次set操作就可在一个表格中增加一行。操作中的每个变量都对应于待增加行中的一个列元素,包括对象实例的标识符。
        ◆删除一行:删除一行也可以通过SNMP调用set操作,将该行中的任意一个元素(对象实例)设置成"非法"即可。
        至于删除一行时,表中的一行元素是否真的在表中消失,则与每个设备(管理代理)的具体实现有关,因此管理进程必须能通过各数据字段的内容来判断数据的合法性。
        3)SNMP协议
        SNMP是一个异步的请求/响应协议,即SNMP的请求和响应之间没有必定的时间顺序关系,换句话说,SNMP是一个面向无连接的协议。这样,SNMP实体不需要在发出请求后立即等待响应的到来,因此SNMP响应也可能丢失或出现错误。SNMP中设计了四种基本协议的交互过程。
        第一种情况是管理进程从管理代理处提取管理信息。管理进程通过SNMP和传输网络发送get-request给管理代理,请求中包括管理对象的标识符等参数;管理代理收到请求后返回相应内容的get-response,响应中包括待提取的管理信息。
        第二种情况是管理进程在管理代理的可见范围内遍历一部分管理对象实例。管理进程通过SNMP和传输网络发送get-next-request给管理代理,管理代理收到后完成遍历的一次操作,用get-response将遍历结果返回给管理进程。
        第三种情况是管理进程在管理代理中存储信息,即对管理代理的管理信息库(MIB)进行写操作(包括设置工作参数)。管理进程发送一个set-request给管理代理,由管理代理完成set操作,然后用set-response返回操作结果。
        第四种情况则是管理代理主动向管理进程报告事件。管理代理通过SNMP和传输网络将trap发送给管理进程,这个操作没有响应。
        注意:上面的各个请求都是管理进程发给管理代理的,响应则都是由管理代理发给管理进程的。只有trap是无响应的,由管理代理单向发给管理进程。另外,请求、响应和trap的传输处理都要受"共同体"定义的限制,包括访问权限。
        SNMP协议是一个对称协议,没有主从关系。SNMP上的管理进程和管理代理都可以得到SNMP完全相同的服务。下面对SNMP协议的部分特点和关键内容进行介绍。
        (1)管理信息报文。
        在大多数SNMP操作中都使用一个相同的报文数据结构。对于前面提到的身份鉴别方法,报文中包含三种数据(信息)传递给专门的"身份鉴别实体":共同体名称、有关数据和发送方SNMP实体的传输层地址。
        身份鉴别实体负责验证发送方是否是合法的对等实体,并返回两种可能的结果:一种结果是返回本次报文中的SNMP协议数据类型和发送方SNMP实体的权限标识符;另一种结果是返回例外。其中第一种结果表明发送方SNMP实体确实是本共同体的成员之一,接收方SNMP实体接下来对它进行处理。第二种结果("例外")表明发送方SNMP实体并非本共同体成员,不能接受此报文,并且接收方SNMP实体还可能根据配置产生一个"身份非法"的trap事件。
        (2)协议数据单元及其管理操作。
        SNMP协议实体之间的协议数据单元(PDU)只有两种不同的结构和格式,一个PDU格式在大部分操作中使用,而另一个则只在trap操作中作为trap的协议数据单元。
        PDU一般包含多个代表特殊意义的字段:request-id是一个整数值,用来区分不同的PDU;error-status反映管理操作是成功还是失败;error-index表明操作中哪个变量错误;variable-bindings是一系列变量的清单,序列中每一项包含一个变量名及其变量值。
        在SNMP中,接收方完成身份鉴别并得到共同体定义信息之后,SNMP实体根据PDU内容执行以下几种操作:get操作,根据变量名取出指定的对象实例;get-next操作,该操作与get操作不同,不是取变量名指定的对象实例,而是取出变量名指定的对象实例的按字典排序的下一个对象实例;set操作,对指定对象实体的值用请求中的新值替换;get-response对get/set报文做出响应并返回操作结果,收到该响应报文的操作请求方首先根据报文中的request-id在记录中查找有无这个序号的请求,如果没有则丢弃该响应,否则接收该响应,管理进程要进行响应处理。
        (3)trap操作。
        trap是一种捕捉事件并报告的操作,实际上几乎所有网络管理系统和管理协议都具有这种机制。trap在OSI网络管理国际标准中称为"事件和通报",一般都简称为事件报告。
        为了减少管理信息的业务流量,管理代理负责对管理对象的trap进行检查,管理检查可以设置检查条件,这样,管理进程就可以在一定程度上控制trap报告过程。引入trap报告的最大好处是许多重要事件的发生得以及时让管理进程知道。因为一般只有比较关键的trap事件才确实需要报告,再加上每个trap事件都很简短,因此由于trap而引入的不确定管理信息业务量是较少的,但却能大大改善网络管理的时效性。
        由于事件多种多样,各种事件的发生环境也不一样,trap操作的复杂性比前面讲的几种操作都大,SNMP的trap操作PDU中的字段类型也较多。这些trap操作PDU中的字段包括:enterprise,记录发送trap事件的管理代理的标识符;agent-addr,管理代理的网络节点地址;generic-trap,描述该trap操作报告是哪一种异常事件;specific-trap,给出各管理代理自行定义的trap事件代码;time-stam,表示trap事件发生的时刻;variable-bindings,给出一组变量,这些变量及其值给出了与trap事件有关的详细信息。
        当管理代理检测到一个例外或异常事件发生时,管理代理首先要判断需要将该事件报告给哪个或哪些管理进程。对每个管理进程,管理代理要选择相应的共同体号,由SNMP协议实体按照前面的字段格式构造trap报告的PDU,再将其发送出去。
        (4)SNMP PDU的传输。
        SNMP的设计是独立于具体的传输网络的,也就是说,它既可以在TCP/IP的支持下操作,也可以在OSI的传输层协议支持下完成操作,甚至可以在以太网的直接支持下实现操作。其中对OSI传输层的服务没有要求,既可以是有连接的服务,也可以是无连接的服务。为了实现上述目标,Internet组织定义了若干映射标准,规定了如何将SNMP协议数据单元PDU映射到下层的无连接传输请求上去。
        在所有各种映射定义中,有一点是相同的,即所有SNMP报文数据是通过一个"顺序化"过程在网络上传输的,这个顺序化过程可以将任意结构的数据编码成一个有序的字符串进行传送。对方收到这些字符串后则按照完全相同的语法将它们解码成原来的数据结构。
        (5)MIB中为SNMP定义的管理对象。
        在Internet的第二版管理信息库(MIB-Ⅱ)中,为SNMP应用实体定义了若干管理对象,其中包括SNMP的各种服务原语、各种收发协议数据单元、各种参数指示或统计变量等,凡SNMP中可操作的数据结构或变量都包括在内,下面将详细介绍。
 
       SNMP服务
        SNMP是TCP/IP协议族的一部分,提供了在系统之间监视并交流状态信息的能力。基于Windows的SNMP使用由管理系统和代理组成的分布式体系结构。
        Windows的SNMP服务包括两个应用程序,一个是SNMP代理服务程序snmp.exe,另一个是SNMP陷入服务程序snmptrap.exe。
        当前能够作为管理进程运行的网络管理软件典型的有惠普公司的OpenView、IBM公司的NetView、Sun公司的SunNet以及Cabletron公司的Spectrum。这些网络管理系统都在支持本公司网络管理方案的同时,支持通过SNMP对网络对象进行管理。
 
       配置SNMP服务
        1)配置SNMP代理信息
        若要配置SNMP代理信息,按照下列步骤操作。
        (1)右击"我的电脑",选择快捷菜单中的"管理"命令。
        (2)展开服务和应用程序节点,单击"服务"选项。
        (3)在"详细信息"窗格中,双击SNMP服务。
        (4)在代理选项卡上的联系人框中输入计算机用户的姓名,然后在位置框中输入计算机的物理位置。注意,这些注释作为文本来处理,并且是可选的。
        (5)选中指示"基于Microsoft Windows NT的计算机提供的网络功能"复选框。服务选项包括以下内容。
        ①物理:指定此计算机是否管理任何物理TCP/IP设备,如硬盘分区或中继器。
        ②应用程序:指定此计算机是否使用任何通过TCP/IP发送数据的程序(如电子邮件)。
        ③数据链接和子网:指定此计算机是否管理TCP/IP子网或数据链接,如网桥。
        ④Internet:指定此计算机是否充当IP网关(路由器)。
        ⑤端对端:指定此计算机是否充当IP主机。
        2)配置SNMP团体和陷阱
        若要配置SNMP团体和陷阱,按照下列步骤操作。
        (1)若要创建团体,在团体名称框中输入区分大小写的团体名称,然后单击添加到列表。如果要创建其他团体名称,重复此步骤。
        (2)在SNMP服务属性中,单击"陷阱"选项卡中的"添加"按钮。
        (3)在"主机名"、IP或IPX地址框中,输入主机信息,然后单击"添加到列表"。
        (4)单击"添加"按钮,在SNMP服务配置下相应的框中输入"主机名"、IP地址或IPX地址,然后单击"添加"按钮。主机名或地址出现在陷阱目的地列表中。重复此步骤,直至添加所有需添加的主机。
        (5)重复步骤(3)、(4),直至配置需要的所有SNMP团体,然后切换到"安全性"选项卡以继续执行下一项任务。
        3)配置SNMP团体化安全性
        若要配置团体的SNMP安全性,按照下列步骤操作。
        (1)在SNMP服务属性中,单击"安全"选项卡中的"发送身份验证陷阱"(如果需要在身份验证失败时发送陷阱消息)。
        (2)在"接受团体"名称下单击"添加"按钮。
        (3)在"团体权利"下,单击此主机处理选定团体的SNMP请求所需的权限级别。若要查看对话框中各项的说明,右击该项,然后单击"这是什么?"。
        (4)在"团体"名称框中,输入区分大小写的团体名称,然后单击"添加"按钮。
        (5)在SNMP服务属性下,指定是否接受来自主机的SNMP数据包。
        ①若要接受来自网络上任何主机的SNMP请求而不考虑其标识,请单击"接受来自任何主机的SNMP数据包"。
        ②若要限制接收SNMP数据包,请单击"接受来自这些主机的SNMP包",单击"添加"按钮,输入适当的"主机名"、IP或IPX地址,然后再次单击"添加"按钮。
   题号导航      2012年下半年 嵌入式系统设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第66题    在手机中做本题