软件工程结构化设计05/18
结构化开发中()主要包含对数据结构和算法的设计
过程设计。
四活动分工:体系结构=分模块/调用关系;数据设计=数据库/文件存储结构;接口设计=模块间/外部/用户交互;过程设计=模块内部算法+局部数据结构。
题干"算法"只出现在过程设计。
数据结构树(度与叶子计数)05/18
度为3的树有5个度1、4个度2、2个度3节点,求叶子数
9。
铁律:边数=节点数−1。
设叶子n,节点总数N=n+11;分支总数=Σ(度i·节点数)=5×1+4×2+2×3=19=N−1→N=20→n=9。
通用:N=Σnᵢ 且 Σ(i·nᵢ)=N−1,联立求解。
数据结构图的存储05/18
简单无向图N顶点E边,邻接矩阵非零元素数目
2E(与N无关)。
无向边对称记两次A[i][j]=A[j][i]=1,简单图对角线全0。
对照:无向矩阵2E/有向矩阵E;无向邻接表边结点2E/有向E。
口诀"矩阵看对称,无向翻倍有向单计"。
数据库三级模式两级映像05/18
物理独立性、逻辑独立性分别靠改哪个映像
物理→模式/内模式映像;逻辑→外模式/模式映像。
口诀"映像名带'内'管物理,带'外'管逻辑";规律"哪层变改它上面的映像保上层不动"。
陷阱:外模式与内模式不直接相连,无此映像,含该说法的选项直接排除。
软件工程关键路径(AOE网)05/18
活动图求关键路径里程碑+活动GH松弛时间
关键路径A→B→D→I→J→L(工期20),在关键路径上的中间里程碑D/I/J;GH松弛=3。
四步法:
①正推ee=max{前驱ee+w}
②逆推le=min{后继le−w}
③ee=le的点在关键路径
④活动(i→j)松弛=le(j)−ee(i)−w,关键活动松弛=0。
软件工程关键路径(AOE网)②05/18
求最少工期+活动BD最多可晚几天
最少工期24天(关键路径A→B→C→E→F→I→K→L);活动BD松弛=le(D)−ee(B)−w_BD=9−2−5=2天。
再次验证四步法:松弛/总时差=le(终点)−ee(起点)−持续时间,即"某活动最多可拖延而不影响总工期"的天数。
计算机组成中断与DMA05/19
关于中断方式与DMA方式正确的是
A 两者都能实现外设与CPU并行工作。
误选B"传输都不需CPU干预"→只有DMA不需要,中断方式靠CPU执行中断服务程序逐字搬数据需CPU全程参与。
C错(DMA比中断快);D错(中断必须保护现场,DMA不用)。
本质分水岭=数据传输过程是否需CPU干预。
速度:DMA>中断>程序查询;保护现场:中断要/DMA不用。
计算机组成机器数概念05/19
关于原反补叙述正确的是
A 正数原码=反码=补码。
陷阱C"负数补码=反码−1"错→应是反码+1(自测易把+1记成−1,符号方向记反)。
其余:B错(补码0唯一,是原/反码有±0两种);D错(补码2ⁿ个值,原码因±0重复仅2ⁿ−1个)。
口诀"补码=反码+1,加一双向无减一;正数三码同;补码0唯一"。
计算机组成补码求真值05/19
"2X"补码为90H,求X真值
B −56。
90H=10010000首位1为负,位权法=−128+16=−112即2X,X=−112/2=−56。
陷阱:90H是补码非原码/无符号(误读得72或144为错项A);要先解2X再除2,不能对90H直接折半;选C+56=漏负号。
口诀"十六进制补码先看首位定正负,首位1必负,位权法或取反加一求真值再按题运算回推"。
计算机组成浮点数位串求值05/19
格式阶符1+阶码4+数符1+尾数10,阶码补码尾数原码,求1 0001 0 0000000001的值
2⁻²⁵。
阶符+阶码合成5位补码10001→真值−15(=−16+1);数符0正,尾数0000000001是纯小数=2⁻¹⁰;值=+1×2⁻¹⁰×2⁻¹⁵=2⁻²⁵。
四步:切段→阶符+阶码合成补码求指数→尾数按数符定正负且是纯小数2⁻ᵏ→(−1)^数符×尾数×2^指数。
易错:阶符要和阶码值合起来当补码;尾数是纯小数非整数。
计算机组成浮点数表示范围05/19
16位浮点(阶符1+阶码6,移码;数符1+尾数8,补码)表示范围
B: −2⁶³ ~ (1−2⁻⁸)·2⁶³。
阶码共7位移码→最大指数=2⁶−1=63(故用2⁶³非2⁶⁴,排除带2⁶⁴的A/C);尾数8位补码→上界(1−2⁻⁸)、下界=−1(补码不对称,负方向多表示一个−1)→最负=−1·2⁶³=−2⁶³。
陷阱D把下界写成−(1−2⁻⁸)·2⁶³忽略补码多一个−1。
口诀"移码取2ⁿ⁻¹次幂;补码尾数上界差一点(1−2⁻ᵏ)下界整−1"。
计算机组成逻辑代数05/18
与 Ā⊕B 等价的表达式
AB+ĀB̄(同或)。
异或定义X⊕Y=X̄Y+XȲ代入X=Ā得;规律:异或取反奇数个输入→结果取反(变同或),偶数个→不变。
Ā⊕B=A⊕B̄=¬(A⊕B)。
UML识图三连05/18
带层次编号(1.1/2.1)的对象连线图,问图型/框/箭头标注
(41)通信图(协作图):有对象连线+消息编号、无生命线无时间轴(对比序列图靠竖直生命线);(42)对象:矩形+名字带下划线,`b:Book`/`:Order`;(43)消息:连线上`序号[条件]:方法()`,*=循环、点分=嵌套、[ ]=监护条件。
通用:找生命线→序列图,编号连线→通信图,泳道→活动图,圆角状态框→状态图,用例椭圆→用例图。
项目管理风险管理05/18
风险的优先级通常根据()设定
风险曝光度(风险暴露量RE)。
RE=风险发生概率×风险发生后的损失(影响),RE越大优先级越高。
陷阱:只看概率或只看损失均错,必须两者乘积。
数据库封锁(锁相容)05/18
T1对D1加S锁,T2/T3对D2/D3加X锁,判断各加锁成败
B(T1对D2D3加排它锁都失败<D2D3已有X锁独占>,T2T3对D1加共享锁成功<D1已有S锁,S+S相容>)。
相容矩阵只有S+S成功,其余(S+X、X+S、X+X)全失败。
口诀"读读共享,有X全否,S+X也不行"。
算法策略8皇后05/18
8×8棋盘放8皇后不冲突一般采用
B 回溯法。
N皇后是回溯法标志例题:逐行放+约束检查+不行就撤销退回(深搜剪枝)。
四策略识别:回溯=皇后/迷宫/图着色(试错回退、枚举可行解);贪心=找零/霍夫曼/Prim(每步最优不回头);动归=LCS/背包求最优值(存表避免重算);分治=归并/快排/二分(子问题独立、合并)。
区分:回溯子问题有约束需撤销,分治子问题独立不回退;回溯枚举所有解,动归求最优值。
网络层次化局域网模型05/18
核心层叙述正确的是
B 将分组从一区域高速转发到另一区域。
核心层只管高速转发+冗余可靠,绝不做包处理/过滤/安全检查。
误选A(有效性检查)=汇聚层职责。
一句话记忆:接入连用户(计费/MAC认证)、汇聚做策略过滤寻址、核心只管高速冗余不碰包。
核心层选项出现"检查/过滤/策略/安全"一律错。
多媒体音频数字化05/18
计算机通过MIC话筒接口收到的信号
B 音频模拟信号。
话筒输出连续电信号=模拟;数字化在声卡ADC内部:采样→量化→编码。
陷阱:A数字信号是ADC转换后、C采样/D量化是中间步骤均非接口收到的原始信号。
口诀"话筒进来是模拟,编码后才数字;扬声器输出前DAC转回模拟"。
网络广域网接入05/18
帧中继优点中"错误的是"
选C(帧中继比异步传输模式ATM提供更高速率—说反,ATM远快于帧中继)。
陷阱:"异步传输模式"=ATM非异步串行。
速率梯队 X.25(≤64k) < 帧中继(≤2M) < ATM(155M+);DDN=独占专线稳但贵不灵活。
帧中继优点=比X.25快(简化、省差错/流控开销)、比DDN便宜灵活支持突发。
数据结构串(子串计数)05/18
长n字符互异串S,非平凡子串(非空且≠S)个数
n(n+1)/2 − 1 = (n+2)(n−1)/2(选项D形式)。
按长L的子串有n−L+1个,求和n(n+1)/2为全部非空子串,减1去掉S本身。
陷阱选项C=n(n+1)/2 漏减S本身;选项常给因式形式,要会把n(n+1)/2−1通分成(n+2)(n−1)/2。
辨析:子串(连续)非空n(n+1)/2;子序列(可不连续)非空2ⁿ−1。
口诀"串连续用n(n+1)/2,序列可跳用2ⁿ,真/非平凡再减S自身1个"。
计算机组成I/O控制方式选择05/19
微机中管理键盘最适合的I/O控制方式
D 中断方式。
键盘=低速+随机设备,按键时机不可预测、数据量小。
中断方式按键时才主动向CPU发请求,既能及时响应又不空转浪费CPU。
四方式适用场景:无条件传送=外设随时就绪的简单设备(开关/LED);程序查询=慢速但CPU可专门等待轮询;中断=低速随机设备(键盘/鼠标);DMA=高速成批传输(磁盘/网络)。
口诀"键鼠用中断,磁盘网络DMA,简单开关无条件,CPU空等程序查询"。
计算机组成中断保存现场目的05/19
中断处理时保存现场的目的
C 能正确返回被中断的程序继续执行。
现场=被中断程序断点处的CPU状态(PC、通用寄存器、PSW标志位)。
中断服务程序会改写寄存器,不先保存则返回后原程序无法从断点恢复。
陷阱:保存的是"被中断程序"现场非中断程序数据(排除A/D因果颠倒);防数据破坏是存储保护职责非保存现场(排除B)。
关联记忆:这正是中断比DMA多出的开销——中断要保护现场,DMA不用。
系统可靠性三性指标辨析05/19
用MTBF/(1+MTBF)度量的是哪个指标
B 可用性。
可用性A=MTBF/(MTBF+MTTR),题目把MTTR归一化为1即得MTBF/(1+MTBF)。
辨析口诀:只看MTBF→可靠性;MTBF与MTTR做比值→可用性;只看MTTR→可维护性。
健壮性=异常输入下不崩溃,与时间指标无关。
可靠性强调"不出错"、可用性强调"随时能用"、可维护性强调"坏了好修"。
信息安全数字签名密钥选择05/19
S签名用__、T验证用__
签名用S的私钥,验证用S的公钥(都用签名者S自己的密钥对)。
私钥唯S持有→签名只能S产生→实现不可否认+身份认证;公钥验证通过→证明确为S签且未篡改→真实性+完整性。
陷阱:T的公钥用于加密发给T的内容(保密性)非签名;T的私钥用于T解密别人发它的密文。
口诀"签名用己私,验证用己公;加密用对方公,解密用己私"。
两用途分水岭:数字签名防抵赖=发方私钥签/收方用发方公钥验;加密保机密=发方用收方公钥加密/收方私钥解。
编译原理符号表作用05/19
编译中记录各符号必要信息辅助语义检查和代码生成的是
B 符号表。
符号表记录标识符(变量/函数/类型名)的名字、类型、作用域、存储位置等属性,贯穿词法分析(填表)→语义分析(查表做类型/作用域检查)→代码生成(查表定地址分配空间)。
干扰辨析:决策表=多条件组合逻辑工具(测试/需求);广义表=元素可为原子或子表的数据结构;索引表=加速查找的数据库/文件结构。
锁定关键词"编译+标识符信息+语义检查/代码生成"→符号表。
编译原理CFG句子判定05/19
文法 E→E+T|E-T|T;T→T*F|F;F→-F|id,符合的表达式
A a+-b-c。
通用解法三步:
①读文法提炼硬约束
②拿约束秒杀违规选项
③剩下做推导验证。
本题硬约束:无括号(F只能→-F|id)、无除号(仅定义+ - *)、操作数仅单字母id(数字不行)。
排除:B有括号、C有数字2、D有除号/。
A可推导E→E-T→(E+T)-T→a+(-b)-c。
关键陷阱:区分二元减E→E-T(a减b)与一元负号F→-F(-b前缀取负),两者文法都支持。
编译原理语法制导翻译05/19
语法制导翻译是一种__方法
C 静态语义分析。
SDT=在语法分析同时给每条文法产生式附加语义规则/动作,归约时执行完成翻译(类型检查、生成中间代码),发生在编译期。
区分:动态语义分析=运行时才能确定的语义(数组越界/除零);中间代码优化/目标代码优化=优化阶段,输入已是中间/目标代码。
锁定"语法制导/指导+翻译方法"→静态语义分析(编译期,把语义规则挂在产生式上)。
编译原理有限自动机DFA/NFA判定05/19
给定FA状态图判断确定性及能否识别某后缀
D 非确定的有限自动机,不能识别以bab结尾的。
判DFA/NFA两条铁律:
①同一状态对同一输入符号最多1条出边(多条→NFA)
②无ε空转移(有ε→NFA),违反任一即NFA。
口诀"同字母多去向或有ε空边即非确定"。
本题S0对a有自环+前进两条边→NFA。
判能否识别某后缀:看接受状态(双圈)的入边字母——本题入边是a,故被接受串必以a结尾,不可能以b(如bab)结尾。
编译原理编译阶段·类型检查所在阶段05/19
编译C/C++时类型检查在哪个阶段处理
B 语义分析。
编译阶段顺序:词法分析→语法分析→语义分析→中间代码生成→代码优化→目标代码生成。
各阶段职责:词法=切分单词token(不管类型);语法=按文法组语法树查结构(括号/语句结构,不管类型);语义=类型检查+作用域检查+参数匹配+运算合法性(类型检查在此,属静态语义);目标代码生成=译成机器指令(类型早定)。
记忆链"词法看单词对不对→语法看结构对不对→语义看类型/含义对不对"。
数据结构两栈共享空间(双端栈)栈满条件05/19
V[1..n]两栈共享,栈1底V[1]栈2底V[n],空时top[1]=1/top[2]=n(top指下一空位),栈满条件
D top[1]−top[2]==1。
两栈底在数组两端相向生长,满=两栈顶指针碰头(相邻)。
推导:栈1放s1个则top[1]=s1+1;栈2放s2个则top[2]=n−s2;满时s1+s2=n→top[2]=s1→top[1]−top[2]=1(与各放多少无关)。
排除:A相等(指向同格,本约定下满时相邻非重合);C top[1]+top[2]=2s1+1非定值。
技巧:记不住公式就用小数组n=3手动模拟到满直接读top关系。
数据结构邻接矩阵判图类型+BFS05/19
6x6邻接矩阵(数字=边,∞=无边)判G类型并求BFS序列
问题1 B 有向图。
读矩阵:第i行第j列=vi→vj,数字有边∞无边。
判类型核心看对称性:M[i][j]恒等于M[j][i]→无向图;不对称→有向图(本题M[v0][v1]=18但M[v1][v0]=∞,不对称)。
排除:完全图=任意两点都有边(有∞则非);强连通图=任意点互达(本题v5行全∞无出边,到不了别人,非强连通)。
BFS:从起点像水波一层层扩,先访问起点→其所有直接邻居→邻居的未访问邻居,同层按顶点编号顺序,用队列(FIFO);对比DFS用栈/递归"一条路走到黑再回头"。
本题BFS=v0→v1→v2→v3→v4→v5。
数据结构图存储与性质(真题组)05/19
邻接表/邻接矩阵空间+连通图边数+稀疏矩阵压缩
①邻接表边结点数:无向=2e(恒偶)、有向=e;出现奇数个边结点→必是有向图(与顶点数无关)。
②邻接矩阵空间恒n²(与边数e无关);邻接表空间=O(n+e)(与e有关)。
③无向连通图边数:最少=n−1(树,再少则不连通)、最多=n(n−1)/2(无向完全图);有向完全图=n(n−1)(无向2倍)。
④稀疏矩阵压缩存储=三元组顺序表+十字链表(只存非零元)。
陷阱:连通图最少边是n−1非n;最多是n(n−1)/2非n²/2。
数据结构串(KMP的next函数)05/20
模式串p="abaac",j从1开始,求next函数值
{0,1,1,2,2}。
本质=前j−1个字符的最长公共真前后缀长度+1(j=1特殊为0)。
逐位求:j=1→0(规定);j=2→1(前1个字符无真前后缀);j=3 p[1..2]="ab"前缀a≠后缀b→1;j=4 p[1..3]="aba"前缀"a"=后缀"a"长1→1+1=2;j=5 p[1..4]="abaa"前缀"a"=后缀"a"长1("ab"≠"aa"故非2)→1+1=2。
铁律:j=1永远0,j=2永远1;比较时必须真前缀+真后缀(不能取整串)。
陷阱:别把"长度"和"长度+1"搞混,公式里k−1=公共前后缀长,k本身才是next值。
数据结构二维数组按行存储地址计算05/20
二维数组A按行优先,每元素2单元,A[0][0]=100,A[3][3]=220,求A[5][5]
300。
公式 Addr(A[i][j])=base+(i×列数+j)×size(行优先)/(j×行数+i)×size(列优先)。
三步法:
①读题定方向(行/列优先)
②用已知两点列方程求未知维度:(3×n+3)×2=220−100=120→n=19列
③代回 100+(5×19+5)×2=100+100×2=300。
口诀"先变下标×另一维总数+另一下标":行优先行先变(行号×列数);列优先列先变(列号×行数)。
陷阱:下标从0还是1要看清(本题从0);别漏×size;两已知地址不一定相邻,差值=两个公式相减。
数据结构三对角矩阵压缩存储05/20
n阶三对角矩阵(非零元仅在主对角线及紧邻两条对角线,即|i−j|≤1)按行压缩存B,A下标从0,B下标从1,A[0][0]→B[1],A[n−1][n−1]→B[3n−2],求A[i][j]位置
B[2i+j+1]。
总非零元数=3n−2(主对角n+上下各n−1);按行存储分布:首末行各2个元素,中间行各3个。
推导:
①前i行元素数=2+3(i−1)=3i−1
②A[i][j]在第i行内序号=j−(i−1)+1=j−i+2
③合计=3i−1+j−i+2=2i+j+1。
验证两端:A[0][0]→2·0+0+1=1✓;A[n−1][n−1]→2(n−1)+(n−1)+1=3n−2✓。
考场套路:套通式 B下标=2i+j+常数,用任一已知点反推常数(本题A[0][0]=B[1]→常数=+1)。
类似公式速查(A从0,B从1):三对角=2i+j+1;下三角=i(i+1)/2+j+1(i≥j);上三角=i(2n−i+1)/2+(j−i)+1(i≤j);对称矩阵两侧映射同一处用三角阵公式。
数据结构对称矩阵下三角压缩存储05/20
n阶对称矩阵Mt,下三角(含对角)按行压缩到Sp,Mt和Sp下标均从0,Mt[0][0]→Sp[0],求Mt[i][j](i≥j)
Sp[i(i+1)/2+j]。
总元素数=n(n+1)/2(只存一半)。
按行存储分布:第i行存i+1个(从Mt[i][0]到Mt[i][i])。
推导:
①前i行元素数=1+2+...+i=i(i+1)/2
②第i行内偏移=j(j从0数)
③Sp从0直接相加=i(i+1)/2+j。
关键陷阱:若问i<j情况,用对称性Mt[i][j]=Mt[j][i],套j(j+1)/2+i(交换i,j角色)。
起点处理速记:Sp从0→公式即"前面元素数+偏移";Sp从1→公式整体+1。
数据结构三对角矩阵压缩(下标从1版)05/20
n阶三对角矩阵A按行存储,A和M下标均从1,a₁,₁→M[1],求aᵢ,ⱼ(|i−j|≤1)
数据结构树(森林转二叉树·右子树结点数)05/20
三棵树构成森林,结点数n1/n2/n3,转二叉树后右子树有几个结点
D n2+n3。
核心规则=左孩子右兄弟法:
①第1棵树根→二叉树根
②第1棵树根的孩子串成兄弟链→左子树(共n1−1个,不含根)
③森林中其余各棵树整棵(含根)依次挂到根的右子树链→右子树=n2+n3。
易错点:右子树包含第2、3棵树的根,不是"n2+n3−2";左子树是n1−1不是n1(第1棵根已当二叉树根用掉,易误选B "n1+n2")。
口诀"长子做左孩子,兄弟做右孩子;第1棵吃根+左,其余整棵进右"。
反向(二叉树→森林):沿根的右子树链切割,每切一刀分出一棵树,有k个右子链结点→森林共k+1棵树。
相关结论:森林叶子数=二叉树中左孩子为空的结点数;森林结点总数=n1+n2+n3(转换前后不变,只是连接方式变)。
与"A从0/B从1版本"对比:通式不变 M[2i+j+c],只是常数c随起点变化。
反推法30秒秒杀:代入边界点a₁,₁→M[1]:2·1+1+c=1→c=−2→M[2i+j−2]。
四种起点速查表:
①A从0,M从1→c=+1(2i+j+1)
②A从1,M从1→c=−2(2i+j−2)
③A从0,M从0→c=0(2i+j)
④A从1,M从0→c=−3(2i+j−3)。
为啥系数恒为(2,1):每多一行+3个元素,但i偏移=行号增量×3;列j自身偏移=1;通分约简后=2i+j。
核心心法:别背死公式,记"2i+j+c"框架,用任一已知点反推c即可——所有三对角题30秒搞定。
数据结构哈夫曼树构造与编码长度05/20
7字符{a,b,c,d,e,f,g}频次{5,24,8,17,34,4,13},求各字符哈夫曼编码长度
a=5,b=2,c=4,d=2,e=2,f=5,g=3(WPL=266)。
构造铁律:每次从队列取频次最小的两个合并,新结点(=两频次之和)放回队列继续排序,直到剩一个根。
本题流程:f4+a5=9 → c8+9=17 → g13+17=30 → d17+b24=41 → 30+e34=64 → 41+64=105。
编码长度=结点到根的路径长度(边数),频次最大者(e/b/d)最短在第2层,最小者(f/a)最深在第5层。
口诀"频次越小越深,编码越长"。
陷阱:有相同频次时合并顺序可能不唯一,但WPL唯一(不同合并方案得到的二叉树形态不同但带权路径长度和相等),考试以"先生成先合并"为准。
前缀编码性质:任一字符编码均不是另一字符编码的前缀(因都是叶子,根到叶子路径互不包含)→解码无歧义。
数据结构完全二叉树最多结点数05/20
一个有n0=124个叶子节点的完全二叉树,最多有多少结点
D 248=2n0(当n1=1时取最大)。
公式:二叉树通用 n0=n2+1;完全二叉树特有 n1∈{0,1};总结点 n=n0+n1+n2。
两种极值:最多结点=2n0(n1=1)、最少结点=2n0−1(n1=0)。
本题:n1=1时 n=124+1+123=248;n1=0时 n=124+123=247(对应A选项陷阱)。
形象验证:树高h=8时,前7层满共127,第8层放121个时第7层有1个度为1的父亲(挂着第121个叶子)、其余3个直接当叶子,叶子合计121+3=124✓,总结点127+121=248✓。
口诀"完全二叉树叶子n0定后,结点数仅两种:2n0或2n0−1"。
数据结构k叉树叶子数公式(度均为k的树)05/20
n个结点的树,所有分支结点(非叶子)度都为k,求叶子数
C [n(k−1)+1]/k。
两条方程:
①n0+nk=n(总结点)
②树的边数=n−1且边数=nk·k(每个分支节点贡献k条边到孩子) → nk=(n−1)/k。
联立:n0=n−(n−1)/k=[n(k−1)+1]/k。
特例验证:k=2(满二叉树)→n0=(n+1)/2✓。
通用心法:树的边数恒为n−1(树最基本性质),只要题目给度数分布,用Σ(度·节点数)=n−1即可求解。
类比真题:度为3的树有5个度1+4个度2+2个度3节点求叶子→设叶子n0,总数N=n0+11,Σ度=5+8+6=19=N−1→N=20→n0=9,同源公式不同包装。
数据结构n个结点二叉树形态数(卡特兰数)05/20
3结点二叉树有5种,推4结点二叉树有几种
C 14。
核心结论:n个有区分结点的二叉树形态数=卡特兰数 Cn=C(2n,n)/(n+1)。
前6项速记表"1,1,2,5,14,42":C0=1,C1=1,C2=2,C3=5,C4=14,C5=42。
递推公式(不记公式也能秒推):f(n)=Σf(i)·f(n−1−i)(i=0..n−1),按左子树i个+右子树n−1−i个分类求和。
本题:f(4)=f(0)f(3)+f(1)f(2)+f(2)f(1)+f(3)f(0)=1·5+1·2+2·1+5·1=14。
辨析:本题问形态(树形结构种数)非排列;若问n个不同标号结点能组成多少不同二叉树=Cn·n!(形态×标号排列)。
口诀"形态卡特兰,排列再乘n阶乘"。
数据结构二叉链表空指针数05/20
k个结点的二叉树用二叉链表(左/右孩子两指针)存储,问空孩子指针数
C k+1。
两步推导:
①总指针=2k(每结点2个)
②非空指针=实际边数=k−1(树的n结点恰有n−1条边铁律)
③空指针=2k−(k−1)=k+1。
等价视角:由n₀=n₂+1,空指针数=2n₀+n₁=n₀+(n₀+n₁)=n₀+(n−n₂)=n₀+n−(n₀−1)=n+1,与k+1一致。
拓展:三叉链表(带父指针)总指针3k、空指针k+2(根的父+各叶子的左右减边贡献)。
易错:别把"空指针数"算成"叶子数"(那是n₀,空指针更多因度1节点也贡献1个空)。
口诀"二叉链表空指针=结点数+1"——记住"+1"来自n₀=n₂+1这个二叉树根本恒等式。
数据结构图·拓扑排序顶点先后关系05/20
对有向图G拓扑排序,Vi在Vj之前,则G中?
B 一定不存在有向弧⟨Vj,Vi⟩。
核心定义:拓扑序对每条边⟨u,v⟩要求u在v前(充分非必要)。
逆否秒杀:"Vi在Vj后→无⟨Vi,Vj⟩边"→换名即得本题答案。
排除:A错(Vi在前不要求直连,可能无关);C错(可能毫无路径,两独立分支仍能定序);D错(若有Vj→Vi路径则Vj应在前,矛盾)。
反例驳A/C:两孤立点V1,V3外加V1→V2,合法拓扑序"V1,V3,V2"中V1先于V3但既无边也无路径。
三大易错认知:
①拓扑序唯一?❌(DAG拓扑序通常不唯一,多入度0的点可任选)
②相邻顶点必有边?❌
③在前=祖先?❌(对无关顶点也强行定序)。
口诀"拓扑看方向:前面不能被后面指向"——只能断言反向边/路径不存在,不能断言正向。
数据结构图·邻接矩阵存储大小05/20
n顶点e边的无向图G用邻接矩阵存,矩阵大小
B n²。
铁律:邻接矩阵尺寸=n×n,只看点数,与边数e完全无关(边再多再少矩阵都是n²)。
两概念别混:
①矩阵尺寸(n²,与e无关)
②非零元素数(无向=2e/有向=e,与e有关)。
邻接矩阵vs邻接表:矩阵空间O(n²)稠密图优;邻接表空间O(n+e)稀疏图优。
口诀"矩阵看点数,非零看边数;稠密用矩阵,稀疏用邻表"。
陷阱:见到选项含e的(n*e、n²+e²、(n+e)²)直接否,矩阵尺寸永远纯n²。
数据结构图·Dijkstra最短路径算法(策略+计算)05/20
Dijkstra求A→E最短路径,问算法策略+路径长度
策略=贪心法;长度=5(路径A→D→F→E=2+2+1)。
算法本质:Dijkstra每步从未访问点中选当前dist最小的入S集,再松弛其邻居→典型贪心(局部最优扩展)。
三列表法:维护S集+dist表,循环"选最小→松弛邻居"。
松弛公式:dist[v]=min(dist[v], dist[u]+w(u,v))。
贪心算法家族对照:Dijkstra(最短路径)、Prim/Kruskal(最小生成树)、Huffman(最优编码)——这些都是贪心。
与其他策略辨析:Floyd求多源最短路径=动态规划(O(n³));BFS求无权图最短路径=贪心思想;DFS不能求最短路径。
陷阱:Dijkstra只适用于非负权图,负权边要用Bellman-Ford(动态规划)。
实战避坑:计算时要枚举所有候选路径不能跳步,本题A→C→D→F→E看似合理但1+5+2+1=9远不如A→D→F→E=5,直觉常被"先走小边1"误导。
软件工程关键路径·非关键活动判定05/20
给活动表(工期+前驱),问最短工期+缩短哪个活动不能缩短总工期
工期=19周;非关键活动=B、C、G(任一)。
两层判定:
①关键路径(总时差TF=0)上的活动→缩短它能减总工期
②非关键路径(TF>0)上的活动→缩短它不能减总工期。
四步法标准流程:
①正推ES/EF:ES=max(前驱EF),EF=ES+工期
②逆推LS/LF:LF=min(后继LS),LS=LF−工期
③TF=LS−ES
④TF=0的活动连成关键路径。
本题关键路径:A→D→E→F→H(3+3+5+4+4=19);非关键活动TF:B=2、C=2、G=1。
强迷惑陷阱:B工期5周看似关键(数值最大),实则TF=2缩短无效→工期长≠关键活动,必须用TF判定。
速验方法:把候选活动工期改成极小值再算总工期,变了即关键、不变即非关键。
与AOE考点联动:活动松弛时间=该活动可拖延而不影响总工期的天数=该活动的TF(总时差)。
数据结构图·非连通图最少顶点数05/20
无向图G非连通有28条边,求最少顶点数
B 9。
极值构造法:让顶点最少→边塞最满→构造K_{n−1}+1孤立点,要求 (n−1)(n−2)/2 ≥ e。
本题:(n−1)(n−2)≥56,试n=9得8×7=56✓、n=8得7×6=42❌,故最少9(8顶点完全图28边+1孤立点)。
互逆结论:n顶点图非连通的边数上界=(n−1)(n−2)/2;反过来边数>(n−1)(n−2)/2则必连通。
对比记忆:n顶点无向图边数极值:连通最少n−1(树)、连通最多n(n−1)/2(完全图)、有向完全图n(n−1)。
易错点:别忘那个孤立点也算1个顶点(若只填n−1顶点跑K_{n−1}就是连通图了,题目要求非连通),所以最终答案是n=n−1顶点的K +1孤立=n。
口诀"非连通最少顶点=完全图填满+1个孤魂"——记住"+1"用来制造非连通性。
操作系统PV操作信号量取值范围05/20
n(n≥5)个进程共享资源R,可用数为5,信号量S取值范围
D -(n-5)~5。
信号量语义:S>0表示剩余可用资源数;S=0资源用完无人等;S<0则 | S | =阻塞等待的进程数。
最大值=初始值=可用资源数m(无人用);最小值=m−n=-(n−m)(全部n个进程都P了,n−m个阻塞)。
通用公式:信号量范围=-(n−m)~m,其中m=资源数,n=竞争进程数。
本题m=5,范围=-(n-5)~5。
陷阱:B选项-5~5把下界固定为-5,忽略了阻塞数取决于进程总数n而非资源数;C选项-(n-1)~1混淆了互斥信号量(初值1)的情况。
操作系统页式存储地址变换05/21
页面4K,页表{0→2,1→3,2→5,3→6},逻辑地址3C20H求物理地址
6C20H。
三步法:
①页面大小定偏移位数:4K=2¹²→偏移占12位=十六进制后3位
②拆逻辑地址:3C20H→页号=3,偏移=C20H
③查表换页号为物理块号:页3→块6,拼接=6C20H。
口诀"拆-查-拼":后N位是偏移不动,前面是页号查表换成块号。
页面大小速查:1K→后10位;2K→后11位;4K→后12位=后3位hex;8K→后13位。
陷阱:别把整个地址当页号去查表;注意页面大小单位是字节非位。
操作系统页面置换淘汰代价05/21
页表含状态/访问/修改位,缺页时哪页淘汰代价最小
选修改位=0的页(本题页3)。
代价等级(从小到大):
①访问0修改0(直接丢)
②访问0修改1(需写盘)
③访问1修改0(可能再用但不写盘)
④访问1修改1(又要写盘又可能再用)。
核心原则:修改位权重>访问位权重——修改过=淘汰时必须写回磁盘(I/O开销大);未修改=直接覆盖无开销。
口诀"淘汰先选没改过的(省写盘),再选没访问过的(不会再用)"。
这就是NRU(最近未使用)/ 改进Clock算法的思想:按(访问位,修改位)四类分优先级淘汰。
操作系统设备管理·单/双缓冲区时间计算05/21
盘块=缓冲区,读入15μs/送用户区8μs/处理4μs,12个盘块,单缓冲与双缓冲处理总时间
单缓冲=324μs;双缓冲=192μs。
统一用流水线公式 T = 单条完整时间 + (n−1)×Max(各阶段)。
单缓冲:三阶段全串行(读→送→处理共用一个缓冲区),周期=27,T=27+11×27=12×27=324。
双缓冲:两缓冲区使"读入"与"送+处理"可并行→2级流水,阶段1=读15、阶段2=送+处理=8+4=12,周期=Max(15,12)=15,1条完整=15+12=27,T=27+11×15=192。
等价快算(双缓冲):n次读入+最后一块的送处理尾巴=15×12+12=192。
为什么"送+处理"算一个阶段:数据一旦从缓冲区送到用户区,缓冲区就空了可以接新块,CPU处理在用户区独立进行,与下一块读入不冲突。
口诀"双缓冲=两级流水,周期取Max(读,送+处理)"。
陷阱:别把双缓冲拆成3级流水(读/送/处理三阶段)——因为送和处理用的是用户区,不竞争缓冲资源,合并成一段;若题目说"处理时缓冲区不释放"才能拆三级。
操作系统设备管理·磁盘旋转调度(信息排列优化)05/21
一周10ms分10块/块=1ms,读1ms处理2ms,磁头初始R1头,R1..R10顺序存放,求未优化最长时间+优化后最少时间
未优化=102ms;优化后=30ms。
核心机理:处理记录时磁头不停转!读R1花1ms→磁头到块2头,处理R1花2ms→磁头又转过2块到达块4头,此时要读R2(在块2)已错过→必须等磁头转一圈回到R2,等待=10−2=8ms。
未优化每记录耗时=读1+处理2+等8=11ms,前9个都要等,最后R10处理完即结束不用再等→T=9×11+(1+2)=99+3=102ms。
优化思路:让记录间隔 = 读+处理 = 3块,排列变成"跳3存放":块1=R1、块4=R2、块7=R3、块10=R4、块3=R5、块6=R6、块9=R7、块2=R8、块5=R9、块8=R10。
这样处理完一个记录磁头刚好到下一个记录开头→无等待,T=10×(1+2)=30ms。
通用公式:
①未优化 T=(n−1)×[读+处理+(周期−已转过的块数)]+(读+处理)
②优化后 T=n×(读+处理)(前提:读+处理≤周期,否则跨多圈)。
口诀"处理时磁头照转,错过就等一圈;按读+处理跳着存,零等待跑满"。
陷阱:
①别忘最后一条不等待(否则多算8ms变110);
②"跳3"的3是"读+处理"总和,不是处理时间;
③若读+处理>周期(如读5处理8≥10),需重新设计跨圈调度。
实战速判:看到"顺序存放磁盘+处理时间长"题型,99%是这套路。
操作系统文件管理·位示图大小计算05/21
字长64位,磁盘512GB,物理块4MB,求位示图大小(字数)
2048字 = 2¹¹。
三步法+全用2的幂次:
①磁盘块数=容量÷块大小=2³⁹÷2²²=2¹⁷块(512GB=2⁹×2³⁰B=2³⁹B;4MB=2²²B)
②位示图位数=块数=2¹⁷位(1块对应1位,0=空闲/1=占用)
③字数=位数÷字长=2¹⁷÷2⁶=2¹¹=2048字。
通用公式 字数 = 磁盘容量/(块大小×字长),本题=2³⁹/(2²²×2⁶)=2¹¹。
单位换算表:1KB=2¹⁰B、1MB=2²⁰B、1GB=2³⁰B、1TB=2⁴⁰B,统一换成B或全用幂次。
口诀"块数=容量÷块,位数=块数,字数=位数÷字长"。
陷阱:
①单位别混(GB和MB差2¹⁰倍);
②字长单位是"位"非"字节",64位字长=8字节;
③题目问"几个字"还是"几字节"还是"几位",看清单位再答(本题问"个字"=2048,若问字节则×8=16384B,若问位则×64=131072);
④位示图1位代表1块,不是1字节。
关联:成组链接法用块号链不用位图;UNIX多级索引也跟物理块大小相关,常组合出题。
操作系统文件管理·多级索引最大文件长度05/21
磁盘块1KB,块号3B,求二级索引最大文件长度(K字节)
116281K = 341²K。
核心公式 n级索引最大文件 = mⁿ × 块大小,其中 m = 每块容纳的块号数 = 块大小÷块号字节数(向下取整)。
本题:m=1024÷3=341(余1字节浪费),二级=341×341=116281块,每块1K→116281K。
索引级数速查表:
①一级=m×B(直接指向数据块)
②二级=m²×B(一级索引指二级索引块,二级再指数据)
③三级=m³×B
④混合索引=直接块+一级+二级+三级 求和(UNIX inode的13个指针就是直接10+一级1+二级1+三级1模型)。
典型块号字节数:常见3B/4B(4B更主流,因为现代磁盘大);块号字节数直接决定m,进而平方/立方放大。
陷阱:
①1024÷3=341非341.33非342(整数除法向下取整);
②二级是m²不是2m(常见错答:682 K=2×341);
③看清问"几K/几B/几块",单位别错;
④若题给"前k块直接寻址"是混合索引,要分段累加;
⑤块号字节数表示一个块号编码所需字节,不是数据块大小。
与位示图对照记忆:位示图算"管几个块",索引算"寻址几个块",分母都涉及"块大小/单位字节",但位示图1块对应1位,索引1块对应1个块号(数字节)。
数据库关系规范化(范式分解)05/20
元件关系P(元件号,元件名称,供应商,供应商所在地,库存量),F={元件号→元件名称,(元件号,供应商)→库存量,供应商→供应商所在地},求主键/分解/达到范式
主键=(元件号,供应商);分解为R1(元件号,元件名称)、R2(供应商,供应商所在地)、R3(元件号,供应商,库存量);达到3NF。
范式层级口诀"2NF管部分,3NF管传递":2NF=非主属性必须完全依赖整个主键(不能只靠主键一部分);3NF=非主属性必须直接依赖主键(不能通过别的非主属性中转)。
本题原关系存在部分依赖(元件名称只依赖元件号、供应商所在地只依赖供应商)→连1NF→2NF都不满足;按FD拆分后每个子关系无部分依赖无传递依赖→3NF。
操作系统文件管理·位示图字编号定位05/21
字长32位,物理块从0编号,2053号块在位示图编号几的字中
64。
字编号=块号÷字长(向下取整),位编号=余数。
2053÷32=64余5→落在字64(覆盖块2048~2079)的第5位。
口诀"字号=块号÷字长取整,位号=余数"。
陷阱:
①编号从0开始才能直接除,若从1开始须先减1再除;
②用向下取整(商)而非向上取整。
与"位示图大小"互逆:求大小是已知总块数÷字长得字数;求定位是已知某块号÷字长得它在第几个字。
操作系统文件管理·位示图大小(非2的幂容量)05/21
字长32位,磁盘300GB,物理块4MB,求位示图字数
2400字。
①块数=容量÷块大小=300GB÷4MB=(300×1024)MB÷4MB=76800块
②字数=块数÷字长=76800÷32=2400。
通用公式 字数=容量÷(块大小×字长)。
陷阱:本题容量300GB非2的幂,必须老实用 1GB=1024MB 换算(300GB=307200MB),不能套2的幂次速算;字长单位是"位"。
与上方"字长64位/512GB"位示图大小条同源,仅参数不同。
操作系统文件管理·索引节点多级寻址(块定位+最大文件)05/21
8地址项iaddr[0~7]各4B,索引块/数据块均1KB;iaddr[0~4]直接、iaddr[5~6]一级间接、iaddr[7]二级间接。求逻辑块5/517各走哪级+单文件最大长度
块5→一级间接;块517→二级间接;最大文件=66053KB。
先算每索引块容纳块号数 m=块大小÷地址项字节=1024÷4=256。
各级覆盖范围(逻辑块从0):直接=iaddr[0~4]共5块→块0~4;一级间接=2项×256=512块→块5~516(iaddr[5]管5~260、iaddr[6]管261~516);二级间接=256²=65536块→块517~65792。
故块5落一级、块517刚溢出到二级。
最大文件公式 =(直接项数+一级项数×m+二级项数×m²)×块大小=(5+2×256+1×256²)×1KB=(5+512+65536)=66053KB。
陷阱:
①逻辑块从0,直接5项覆盖0~4不是1~5;
②一级间接有2项要×2、二级才1项,看清每级占几个地址项;
③最大长度三部分(5+512+65536)全加,别只算二级65536;
④m=块号个数=块大小÷地址项字节,非块大小本身;
⑤边界卡极紧(一级末尾正好516,517才进二级)。
与上方"二级索引最大文件mⁿ×块大小"同源,本题是混合索引须分段累加。
操作系统进程管理·进程状态转换(运行态去向)05/21
单处理机,P1运行/P2就绪/P3等待打印机/P4等待扫描仪,若P1时间片到,求四进程新状态
就绪、运行、等待、等待(C)。
核心辨析=运行态丢掉CPU去就绪还是等待:
①时间片到/被抢占→运行转就绪(进程没缺任何资源,仍可运行,只是排队等下一轮CPU);
②申请资源/IO阻塞→运行转等待(缺资源,资源不到位就跑不了);
③运行结束→完成。
本题P1时间片到回就绪,空出的CPU给唯一就绪的P2→运行,P3/P4设备未就绪→照旧等待。
四态转换四条边:就绪→运行=被调度选中(进运行的唯一入口);运行→就绪=时间片到(还能跑);运行→等待=申请资源阻塞(跑不了);等待→就绪=资源到位被唤醒。
陷阱:
①让出CPU时"没缺资源"进就绪、"缺资源"进等待,二者天差地别别混;
②被唤醒的等待进程只能进就绪,不能直接回运行,必须重新排队等调度;
③题干虽写FCFS(严格说非抢占无时间片),本题实际考点是状态转换概念,按"时间片到"理解即可。
面向对象重载Overload与覆盖Override(与多态关系)05/21
选"不正确"的叙述
B"重载通过动态绑定机制实现多态"——错(选它)。
重载是编译时/静态绑定,编译期靠"方法名+参数表(签名)"决定调哪个,与动态绑定无关;能通过动态绑定实现(运行时)多态的只有覆盖。
核心对照表:重载Overload=同一类内、名同但参数表必须不同、编译时多态、静态绑定、按参数区分;覆盖Override=父子类间(继承)、名/参数/返回值全相同、运行时多态、动态绑定、按对象实际类型区分。
口诀"重载看参数编译定,覆盖看对象运行定,动态绑定只认覆盖"。
陷阱:
①"覆盖通过动态绑定实现多态"是正确叙述,别因"动态绑定"陌生就误判它错;
②重载是编译时多态、不少教材不把它算真多态,真多态(动态绑定)专指覆盖;
③覆盖要求方法签名完全相同,重载恰恰要求参数表不同——签名同/不同是区分二者的关键。
面向对象软件测试四层次05/21
①测一组协同工作的类之间的相互作用属于()层 ②测类中定义的每个方法属于()层
①模板层(D) ②算法层(A)。
四层次粒度由小到大:算法层<类层<模板层<系统层。
对照表:算法层=测类中定义的每一个方法(单个方法,类比单元测试);类层=测同一个类内所有方法与属性的相互作用(单个类整体,类比模块测试);模板层(主题层)=测一组协同工作的类之间的相互作用(多类协作,类比集成测试);系统层=把整个系统当一个整体测(类比系统测试)。
抓关键词秒选:"每个方法"→算法;"同一类内方法+属性"→类;"一组类/类之间/协同工作"→模板;"整个系统/整体"→系统。
口诀"方法→算法,单类→类,多类协作→模板,整体→系统"。
陷阱:
①"一组类协同"是模板层不是系统层(系统层指整体非几类协作);
②"类中每个方法"是算法层不是类层(类层测整个类内交互,算法层针对单个方法);
③模板层≠设计模式的模板,是固定术语别被字面带偏。
面向对象关联类(多对多关系建新类)05/21
哪两者之间的关系需要创建新类:A汽车-座位 B主人-宠物 C医生-病人 D部门-员工
C 医生和病人。
判定核心=只有"多对多"关系才需创建一个新类(关联类),一对多不需要。
逐项看:汽车-座位(1对多,座位只属1车)、主人-宠物(1对多)、部门-员工(1对多,员工只属1部门)全是一对多;唯有医生-病人是多对多(一医生看多病人、一病人也看多医生)。
为什么多对多要新类:关系本身携带"既不属于A也不属于B"的信息(就诊时间/诊断/处方/费用),放不进医生类也放不进病人类,须新建关联类(如"就诊记录")承载。
口诀"一对多加外键引用即可,多对多必拆中间类(关联类)"。
数据库佐证:多对多无法直接用外键,必须建中间表→对应面向对象就是这个新类。
陷阱:
①别把一对多误判成多对多(看"反过来一端是否也为多");
②部门-员工/主人-宠物虽是包含/拥有关系但都是一对多不需新类;
③整体-部分(组合/聚合,如汽车-座位/部门-员工)≠需要关联类。
软件工程软件测试·黑白盒依据05/23
黑盒测试的主要依据是()
软件需求规格说明书。
黑盒测试=功能测试,把程序当不透明盒子,不看内部代码,只验证"输入→输出"是否符合功能需求→依据描述功能的需求规格说明书。
核心对照:黑盒测试依据需求规格说明书(测"做什么"),白盒测试依据程序内部逻辑结构(测"怎么做",如语句覆盖/路径覆盖)。
陷阱:
①设计文档(描述模块结构/接口/怎么实现)是内部实现层面,≠功能需求,易与需求说明书混淆;
②代码复杂度、程序内部逻辑均属白盒范畴。
口诀"黑盒看需求测功能,白盒看代码测结构"。
数据结构堆(大顶堆/小顶堆判定)05/23
给出几个序列,问哪个满足大顶堆条件
大顶堆=每个父结点≥它的所有孩子;小顶堆=每个父结点≤它的所有孩子。
判定法:序列按层填入完全二叉树(数组下标从0),下标i的左孩子=2i+1、右孩子=2i+2;只需逐个检查非叶子结点(下标0~⌊n/2⌋−1,n个结点)是否都≥(或≤)其孩子,任一处违反即排除。
核心陷阱:堆只要求父子有序,兄弟之间、堂兄弟之间无任何大小要求(堆≠排序好的数组,是常见误区);只比父子,别去比同层。
口诀"父子有序定堆,大顶父≥子小顶父≤子;只看前一半结点,2i+1/2i+2找孩子"。
网络互连设备与OSI层次对应05/23
网络互连设备中属于物理层的是()属于网络层的是()
物理层=中继器(Repeater);网络层=路由器(Router)。
设备↔层次必背表:物理层=中继器/集线器(Hub)(只放大再生信号、不认地址);数据链路层=网桥(Bridge)/交换机(Switch)/网卡(认MAC地址转发帧、隔离冲突域);网络层=路由器/三层交换机(认IP地址选路、隔离广播域);应用层=网关(Gateway)(协议转换全能翻译)。
最大陷阱=中继器vs网桥:网桥/交换机是数据链路层不是物理层,易误把网桥当物理层。
判定核心=认不认地址:不认地址只放大信号→物理层;认MAC→链路层;认IP→网络层。
口诀"中继集线器看信号(物理),网桥交换机看MAC(链路),路由器看IP(网络),网关翻译(应用);设备越往上越聪明"。
软件工程ISO/IEC 9126质量模型(可维护性子特性)05/23
可维护性的()子特性指"与确认经修改软件所需努力有关"的属性
易测试性(Testability)。
题眼="确认/验证经修改软件"=测试环节→易测试性。
可维护性4子特性按"改前→改中→改后"记"分改稳测":
①易分析性=诊断缺陷/失效原因、定位待修改部分的努力(找问题);
②易改变性=实施修改本身的努力(动手改);
③稳定性=修改引起意外影响的风险(改了别出乱);
④易测试性=确认/验证已修改软件的努力(改完去测)。
最大陷阱=易改变性vs易测试性:易改变=做修改的力气、易测试=改完验证的力气;题干"为确认"是验证非实施→易测试性。
口诀"看到确认/验证/测试选易测试,看到实施/进行修改选易改变"。
9126六大质量特性:功能性、可靠性、易用性、效率、可维护性、可移植性。
UML图的选型(部署图vs组件图)05/23
展示所交付系统中软件组件和硬件之间的物理关系用()图
部署图(Deployment Diagram)。
锁定关键词"硬件"+"物理关系"→UML中唯一涉及硬件的图就是部署图,描述软件构件部署到硬件节点(服务器/设备)上的运行时物理布局。
最大陷阱=组件图:题干出现"软件组件"四字诱选组件图,但组件图只描述软件内部构件间的组织与依赖,完全不含硬件;题干真正问的是"组件和硬件之间"。
排除:类图=类的静态结构、通信图=对象间消息交互(动态),均与硬件无关。
口诀"组件管软件,部署连硬件;见硬件/物理/节点/运行环境一律选部署图"。
软件工程配置管理活动范围05/23
以下不属于配置管理的是()
风险管理(属于项目管理,非配置管理)。
配置管理(SCM)五项核心活动:配置项识别、版本控制、变更管理(变更控制)、配置状态报告、配置审计。
版本控制/变更管理/配置状态报告都属于配置管理。
辨析陷阱:变更管理属配置管理,风险管理属项目管理,两者都叫"管理"但归属不同别混。
口诀"配置管理五件事:识别、版本、变更、状态、审计;带风险/进度/成本/质量的是项目管理"。