软件设计——2010年下半年选择题重要知识点

1、若内存容量为4GB,字长为32,则(地址总线和数据总线的宽度都为32)。

A:地址总线和数据总线的宽度都为32

B:地址总线的宽度为30,数据总线的宽度为32

C:地址总线的宽度为30,数据总线的宽度为8

D:地址总线的宽度为32,数据总线的宽度为8

 

【解析】:

内存容量为4GB,即内存单元的地址宽度为32位

字长为32位即要求数据总线的宽度为32位,因此地址总线和数据总线的宽度都为32
地址总线的宽度就是处理机寻址范围,若地址总线为n位,则可寻址空间为2的n次方字节。

所以本题的可寻址空间为: 4*1024*1024*1024*位, 所以地址总线宽度为32

 

 

 

 

2、编写汇编语言程序时,下列寄存器中程序员可访问的是(程序计数器(PC))。
A:程序计数器(PC)
B:指令寄存器(IR)
C:存储器数据寄存器(MDR)
D:存储器地址寄存器(MAR)


【解析】:
指令寄存器(IR) 用于暂存从内存取出的、正在运行的指令,这是由系统使用的寄存器,程序员不能访问。

存储器数据寄存器(MDR) 和存储器地址寄存器(MAR) 用于对内存单元访问时的数据和地址暂存,也是由系统使用的,程序员不能访问。
程序计数器(PC) 用于存储指令的地址,CPU根据该寄存器的内容从内存读取待执行的指令,程序员可以访问该寄存器

 
 
 
 

3、ARP攻击造成网络无法跨网段通信的原因是(伪造网关ARP报文使得数据包无法发送到网关)。

A:发送大量ARP报文造成网络拥塞

B:伪造网关ARP报文使得数据包无法发送到网关

C:ARP攻击破坏了网络的物理连通性

D:ARP攻击破坏了网关设备

 

【解析】:

 

ARP攻击(ARP欺骗)是欺骗攻击的一种通过伪造IP地址和MAC地址,能够在网络中产生大量的ARP通信量使网络阻塞,如果伪造网关的IP地址和MAC地址对,则所有发往网关的IP包将因为MAC地址错误而无法到达网关(ARP攻击一般会将MAC地址改为发起ARP攻击的主机地址),造成无法跨网段通信。

 

处理ARP攻击的方法为首先断开ARP攻击主机的网络连接,然后用“arp-d”命令清除受攻击影响的ARP缓存。

 

 

 

 

4、如果使用大量的连接请求攻击计算机,使得所有可用的系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求,这种手段属于(拒绝服务)攻击。

A:拒绝服务

B:口令入侵

C:网络监听

D:IP欺骗

 

【解析】:

网络攻击的主要手段包括:口令入侵、放置特洛伊木马程序、拒绝服务(DoS)攻击、 端口扫措、网络监听、欺骗攻击和电子邮件攻击等。

口令入侵是指使用某些合法用户的账号和口令登录到目的主机,然后再实施攻击活动。

特洛伊木马(Tro jans)程序常被伪装成工具程序或游戏,一旦用户打开了带有特洛伊木马程序的邮件附件或从网上直接下载,或执行了这些程序之后,当用户连接到互联网上时,这个程序就会向黑客通知用户的IP地址及被预先设定的端口。

拒绝服务(DoS)攻击目的是使计算机或网络无法提供正常的服务。最常见的拒绝服务攻击有网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。连通性攻击是指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。

端口扫描就是利用Socket编程与目标主机的某些端口建立TCP连接、进行传输协议的验证等,从而锁知目标主机的扫描端口是否处于激活状态、主机提供了哪些服务、提供的服务中是否含有某些缺陷等。

网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同-条物理通道上:传输的所有信息。使用网络监听工具可轻而易举地截取包括口令和账号在内的信息资料。

欺骗攻击是攻击者创造一个易于误解的上下文环境,以诱使受攻击者进入并且做出缺乏安全考虑的决策。IP欺骗是欺骗攻击的一种,IP 欺骗实现的过程是:使得被信任的主机丧失工作能力,同时采样目标主机发出的ICP序列号,猜测出它的数据序列号。然后,伪装成被信任的主机,同时建立起与目标主机基于地址验证的应用连接。如果成功,黑客可以使用一种简单的命令放置-一个系统后门。以进行非授权操作。

 

 

 

 

5、以下关于变量和常量的叙述中,错误的是(变量具有类型属性,常量则没有)。
A:变量的取值在程序运行过程中可以改变,常量则不行
B:变量具有类型属性,常量则没有
C:变量具有对应的存储单元,常量则没有
D:可以对变量赋值,不能对常量赋值


【解析】:

变量是计算机内存单元的抽象,在程序中表示数据,具有名称、类型、值、地址、作用域、存储类别等属性,其值在运行过程中由指令进行修改。
常量也用于在程序中表示数据,但常量在程序运行过程中不能修改,常量也具有类型,如整型常量、浮点型常量、字符串常量等,也称为字面量或文字

 
 
 
 
6、某文件系统采用多级索引结构,若磁盘块的大小为512B,每个块号需占3B,那么根索引采用一级索引时的文件最大长度为(85) KB:采用二级索引时的文件最大长度为(14450 KB。
A:85
B:170
C:512
D:1024
 
 
A:512
B:1024
C:14450
D:28900
 

【解析】:

根据题意,磁盘块的大小为512B,每个块号需占3B,因此一个磁盘物理块可存放:512 / 3 = 170个块号。

根索引采用一级索引时的文件最大长度为:170X512/1024=87040/1024=85KB

根索引采用二级索引时的文件最大长度为:170X170X512/1024=28900X512/1024=14450KB

 

 

 

7、冗余技术通常分为4类,其中(结构冗余)按照工作方法可以分为静态、动态和混合冗余。
A:时间冗余
B:信息冗余
C:结构冗余
D:冗余附件技术


【解析】:

冗余是指对于实现系统规定功能是多余的那部分资源,包括硬件、软件、信息和时间。通常冗余技术分为4类:

(1)结构冗余按其工作方法可以分为静态、动态和混合冗余

(2)信息冗余指的是为了检测或纠正信息在运算或传输中的错误另外加的一部分信息
(3)时间冗余是指以重复执行指令或程序来消除瞬时错误带来的影响

(4) 冗余附件技术是指为实现上述冗余技术所需的资源和技术。

 

 
 

8、不属于黑盒测试技术的是(逻辑覆盖)。

A:错误猜测

B:逻辑覆盖

C:边界值分析

D:等价类划分

 

【解析】:

黑盒测试也称为功能测试,在完全不考虑软件的内部结构和特性的情况下来测试软件的外部特性。
常用的黑盒测试技术包括等价类划分、边界值分析、错误猜测和因果图的报告
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的执行路径和过程进行测试,检查是否满足设计的需要。
常用的白盒测试技术包括逻辑覆盖和基本路径测试

 
 
 
 
9、开-闭原则(Open-Closed Principle,OCP)是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对(扩展)开放,对(修改)关闭:里氏代换原则(Liskov Substitution Principle, LSP)是指任何(基类对象)可以出现的地方,(子类对象) 一定可以出现。 依赖倒转原则(Dependence Inversion Principle, DIP)就是要依赖于(抽象),而不依赖于(实现),或者说要针对接口编程,不要针对实现编程。

A:修改

B:扩展

C:分析

D:设计

 

A:修改

B:扩展

C:分析

D:设计

 

A:变量
B:常量
C:基类对象
D:子类对象

A:变量
B:常量
C:基类对象
D:子类对象
 
A:程序设计语言
B:建模语言
C:实现
D:抽象 

A:程序设计语言
B:建模语言
C:实现
D:抽象 
 
【解析】:
      开-闭原则(Open-Closed Principle) 是面向对象的可复用设计(object  0rientedDesign, 00D) 的基石。开-闭原则是指一个软件实体应当对扩展开放,对修改关闭,即在设计一个模块的时候, 应当使这个模块可以在不被修改的前提下被扩展。满足开一闭原则的系统可以通过扩展己有的软件系统,提供新的能力和行为,以满足对软件的新需求,使软件系统有一定的适应性和灵活性:因为已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性;满足开-闭原则的系统具备更好的可复用性与可维护性。

      在面向对象编程中,通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,从而满足“对修改关闭”的要求;而从抽象类导出的具体类可以改变系统的行为,从而满足对扩展开放。

      里氏代换原则(Liskov Subst itut ion Principle, LSP) 是指一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且软件系统觉察不出基类对象和子类对象的区别,

      也就是说,在软件系统中把基类都替换成它的子类,程序的行为没有变化。但需要注意的是,里氏代换原则中仅仅指出了用子类的对象去代替基类的对象,而反过来的代换则是不成立的。例如,如果一个软件模块中使用的是一个子类对象,那么使用父类对象去代换子类对象则可能产生错误。用一句简单的话概括:任何基类对象可以出现的地方,子类对象一定可以代替基类对象。

      依赖倒转原则(Dependence Inversion Principle, DIP) 就是要依赖于抽象,而不依赖于实现,或者说要针对接口编程,不要针对实现编程。系统中进行设计和实现的时候应当使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型说明,以及数据      类型的转换等,而不要用具体类进行上述操作。要保证做到这一一点,一个具体类应当只实现接口和抽象类中声明过的方法,而不要给出多余的方法。

传统的过程性系统的设计办法倾向于使高层次的模块依赖于低层次的模块,抽象层次依赖于具体层次。依赖倒转原则就是把这个不良的依赖关系倒转过来。面向对象设计的重要原则是创建抽象层次,并且从该抽象层次导出具体层次,具体层次给出不同的实现。继承关系就是一种从抽象化到具体化的导出。抽象层包含的应该是应用系统的业务逻辑和宏观的、对整个系统来说重要的战略性决定,而具体层次含有的是一些次要的与实现有关的算法和逻辑,以及战术性的决定,带有一定的偶然性选择。从复用的角度来说,高层抽象的模块是应当复用的,而且是复用的重点,因为它含有一个应用系统最重要的宏观业务逻辑,是较为稳定的部分。而在传统的过程性设计中,复用则侧重于具体层次模块的复用。

 
 使用依赖倒转原则时建议不依赖于具体类,即程序中所有的依赖关系都应该终止于抽象类或者接口。尽量做到:任何变量都不应该持有一个指向具体类的指针或者引用;任何
 类都不应该从具体类派生;任何方法都不应该覆写它的任何基类中的已经实现的方法。

      

     


10、以下关于汇编语言的叙述中,错误的是(汇编程序先将源程序中的伪指令翻译成机器代码,然后再翻译指令语句)。

A:汇编语言源程序中的指令语句将被翻译成机器代码

B:汇编程序先将源程序中的伪指令翻译成机器代码,然后再翻译指令语句

C:汇编程序以汇编语言源程序为输入,以机器语言表示的目标程序为输出

D:汇编语言的指令语句必须具有操作码字段,可以没有操作数字段

 

【解析】:

汇编语言源程序中的每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码)。

伪指令语句用于指示汇编程序如何汇编源程序,常用于为汇编程序提供以下信息:该源程序如何分段,有哪些逻辑段在程序段中,哪些是当前段,它们分别由哪个段寄存器指向:定义了哪些数据,存储单元是如何分配的等。伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标代码。伪指令语句的这些命令功能是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。

目前主要有两种不同标准的汇编语言指令格式: Windows 下的汇编语言基本上都遵循Intel风格的语法,如MASM、NASM,而Unix/Linux下的汇编语言基本上都遵循AT&T风格

的语法。

汇编语言语句的通用格式如下:

[名称[:1]指令码(第操作数](,第二操作数] ;注释

汇编语言指令码的操作数的个数可以是0、1、2个:当操作数的个数为2的时候,语句还有两种不同的格式。

Windows下Intel风格的汇编语言语句格式为:

[名称[:]]指令码目的操作数DST,源操作数SRC ;注释Unix/Linux下ATST风格的汇编语言语句格式为:

[名称[:1]指令码源操作数SRC,目的操作数DST ;注释

汇编语言语句格式中的“名称”并不是所有语句都必需的。如果语句中带有“名称”",则大多数情况下“名称”都表示的是内存中某一存储单元的地址,也就是其后面各项在内存中存放的第一个存储单元的地址。

 

 
 
 

11、公钥体系中,私钥用于(解密和签名),公钥用于(加密和认证) 。

A:解密和签名

B:加密和签名

C:解密和认证

D:加密和认证

 

【解析】:

1976年斯坦福大学的Diffie和Hei Iman提出了使用不同的密钥进行加密和解密的公钥加密算法。设P为明文,c为密文,E为公钥控制的加密算法,D为私钥控制的解密算法,这

些参数满足下列3个条件:

(1)D (E (P)) =P

(2)不能由E导出D

(3)选择明文攻击(选择任意明文-密文对以确定未知的密钥)不能破解E

加密时计算C=E (P), 解密时计算P=D (C). 加密和解密是互逆的。用公钥加密、私钥解密,

posted @ 2019-10-05 19:39  sunjiaojiao  阅读(772)  评论(0编辑  收藏  举报