2016 下半年软件评测师考试真题及答案-下午卷
试题一
阅读下列 C 程序,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
【C 程序】
int count(int x,int z){
inty=0;
while(x>0){ //l
if(x==1) //2
y=7; //3
else{ //4
y=x+z+4;
if(y=7||y=21) //5,6
x=1; //7
}
x--; //8
}
return y; //9
}
【问题 1】(3 分)
请针对上述 C 程序给出满足 100%DC(判定覆盖)所需的逻辑条件。
【问题 2】(7 分)
请画出上述程序的控制流图,并计算其控制流图的环路复杂度 V(G)。
【问题 3】(5 分)
请给出问题 2 中控制流图的线性无关路径。
答案:
【问题 1】
x>0;x<=0
x==1;x!=1
y==7 或者 y==21;y!=7 且 y!=21
【问题 2】
V(g)=5
【问题 3】
1:1,9
2:1,2,3,8,1,9
3:1,2,4,5,7,8,1,9
4:1,2,4,5,6,7,8,1,9
5:1,2,4,5,6,8,1,9
解析:
【问题 1】
解析:本题中的判定有 x>0;x==1;y=7||y=21;三个判定点,所以要符合 100%判定覆
盖的要求,就需要使得每个判定结果的真假值都出现 1 次,即:x>0;x<=0;x==1;x!=1;
y==7 或者 y==21;y!=7 且 y!=21
【问题 2】
解析:控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为
控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示
控制流。基本结构如下所示:
控制流程图的环路复杂性 V(G)等于:
(1)控制流程图中的区域个数。
(2)边数-结点数+2。
(3)判定数+1。
V(g)=5
【问题 3】
线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,
一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径:
1:1,9
2:1,2,3,8,1,9
3:1,2,4,5,7,8,1,9
4:1,2,4,5,6,7,8,1,9
5:1,2,4,5,6,8,1,9
试题二
阅读下列说明,回答问题 1 和问题 2,将解答填入答题纸的对应栏内。
【说明】
某航空公司的会员卡分为普卡、银卡、金卡和白金卡 4 个级别,会员每次搭乘该航空公
司航班均可能获得积分,积分规则如表 2-1 所示。此外,银卡及以上级别会员有额外积分奖
励,奖励规则如表 2-2 所示。
公司开发了一个程序来计算会员每次搭乘航班历累积的积分,程序的输入包括会员级别
B、舱位代码 C 和飞行公里数 K,程序的输出为本次积分 S 。其中,B 和 C 三字母且大小写
不敏感,K 为正整数,S 为整数(小数部分四舍五入)。
【问题 1】(7 分)
采用等价类型划分法对该程序进行测试,等价类表如 2-3 所示,请补充空(1)-(7)
输入条件
有效等价类
编号
无效等价类
编号
表 2-3 等价类表
会员等级 B
舱位代码 C
F
S
G
(1)
F
(2)
(3)
R/B/H/K/L/M/W
Q/X/U/E
P/S/G/O/J/V/N/T
(4)
1
2
3
4
5
6
7
8
9
10
11
飞行公里数 K
【问题 2】(13 分)
非字母
非单个字母
(5)
非字母
(6)
非整数
(7)
12
13
14
15
16
17
18
根据以上等价类表设计的测试用例如表 24 所示,请补充空(1)~(13)。
编号
1
2
3
4
B
F
S
G
P
表 2-4
K
500
(2)
500
500
输入
C
F
Z
A
(4)
覆盖等价类(编号) 预期输出 S
1,5,11
2,6,11
(3)
4,8,11
(1)
825
781
750
5
6
7
8
9
10
11
12
13
(5)
F
(7)
(8)
A
S
S
S
S
Q
P
P
F
Z
(9)
(10)
Q
P
500
500
500
500
500
500
500
(11)
(13)
1,9,11
1,10,11
12,10,11
13,5,11
14,6,11
2,15,11
2,16,11
2,9,17
2,10,18
250
(6)
N/A
N/A
N/A
N/A
N/A
(12)
N/A
答案:
【问题 1】
1:P
2:Z/C
3:A/D/I /Y
4:正整数
5:非 FSGP 的字母
6:非规定仓位的字母 7:非正数
【问题 2】
按照相关的规则进行计算:
1:1000
2:500
3:3,7,11
4:R/B/H/K/L/M/W(有效等价类,一个测试用例可以覆盖多个有效类)
5:F
8:GG
6:0
9:3
11:300.3
12:N/A
7:9
10:X
13:-200/0(无有效等价类,一个测试用例只能覆盖 1 个有效类)
解析:
【问题 1】
等价类划分原则:
在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效
等价类
在输入条件规定了输入值得集合或者规定了“必须如何”的条件的情况下,可以确立一
个有效等价类和一个无效等价类
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
在规定了输入数据的一组值(假定 n 个),并且程序要对每一个输入值分别处理的情况
下,可确定 n 个有效等价类和一个无效等价类
在规定了输入数据必须遵守的规则的情况下,可确定一个有效等价类(符合规则)和若
干个无效等价类(从不同角度违反规则)
在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价
类进一步地划分为更小的等价类
本题中会员等级的有效等价类应为:表格中指定的类:FSGP,由于每个等级是单独处理,
所以有 4 个等价类,无效等价类:应有非 FSGP 之内的字母,非字母,非单个字母等。结合