软件设计(九)

2023-02-28 09:17:46 浏览数 (1)

软件设计(八)

81、模块A将学生信息,即学生姓名、学号、手机等放到一个结构体系中,传递给模块B,模块A和B之间的耦合类型为 什么耦合?

数据耦合:指两个模块之间有调用关系,传递简单的数据值,相当于高级语言的值传递。

标记耦合:指两个模块之间传递的是数据结构。

所以答案是 标记耦合。

控制耦合:指一个模块调用另一个模块时,传递的是控制变量,被调用的模块通过控制变量的值选择执行模块的某个功能。

内容耦合:当一个模块直接使用另一个模块的数据,或者通过非正常入口转入另一个模块的时候。

82、状态(state)模式:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。

83、编译过程进行语法分析主要分析的是 程序语句的结构是否合法

解析:

编译过程一般分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,以及出错处理和符号表管理。

语法分析是词法分析的基础上分析短语(表达式)、句子结构是否正确。

词法分析是识别一个个单词,基本字符,标识符,常数,运算符,界符。

84、设S是一个长度为n的非空字符串,其中字符各不相同,则其互异的非平凡子串(非空且不同于S本身)个数是多少个?

解析:

当 abcdefg字符串。

长度为6的非平凡子串:abcdef、bcdefg。所以是n-5=2个

长度为5的非平凡子串:abcde、bcdef、cdefg。所以是n-4=3个。

n-3=4

n-2=5

n-1=6

所以 (n 2)(n-1)/2 个。

85、某二叉树采用二叉链表表示(即结点的两个指针分别指示左、右孩子),当该二叉树包含k个结点时,其二叉链表结点中必有 多个 空的孩子指针。

解析:k 1

当二叉树包含k个结点时,链表中每个结点都有两个孩子指针,共2k个,每个指针包含一个父子关系。非空二叉树除了根结点外,每个结点都有唯一的父结点,因此2k个孩子指针中k-1个表示结点的父子关系,其余的k 1个孩子指针都为空指针。

86、解析:

1)无向连通图G的叙述中,任意两个顶点之间存在路径。(任意两个顶点之间不存在 边)

2)从G中任意顶点出发可遍历图中所有顶点。

3)G的邻接矩阵是对称矩阵。

87、现需要对一个基本有序的数组进行排序,此时采用最适应的算法为 插入排序算法,时间复杂度为 O(n)

解析:

插入排序算法最好的情况下复杂度是O(n),其他情况下是O(n²)。

快速排序在有序的情况下,其计算复杂度最坏的情况下是O(n²),其他情况是O(nlgn)。

归并排序和堆排序算法在所有情况下的时间复杂度为O(nlgn)。

88、相对于TCP,UDP的优势是 开销较小

传输协议层主要TCP和UDP。TCP较为复杂,有3次握手动作,传输过程中可以实现可靠性、流量控制和拥塞控制,因此开销较大

UDP协议主要通过端口号实现传输层的寻址,开销较小

89、email使用两个协议,SMTP(简单邮件传送协议)和POP3(邮局协议)

SMTP用于发送邮件,端口号是25

Pop3接受邮件,端口号是110.

这两个都是基于TCP协议的应用层协议。

90、SNMP 是采用UCP协议封装的。

SMTP则采用的是TCP协议。

0 人点赞