试题一。阅读下列 C 程序,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[C程序]
Int DoString(char*string){
cbar *argv[100];
Int argc=l;
while(l) { //1
while(*string&& *string!='-') //2,3
String++; //4
If(!*string) //5
break; //6
argv[argc]=string;
while(*string && *string!="&& *string!='\n'&& *string!= '\t') //7,8,9,10
string++; //11
argc+; //12
}
Return0; //13
}
问题1
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
问题2
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
问题3
请给出问题2中控制流图的线性无关路径。
试题二
阅读下列说明,回答问题 1至问题 3. 将解答填入答题纸的对应栏内。
说明
某银行 B 和某公司 C 发行联名信用卡,用户使用联名信用卡刷卡可累计积分,积
分累计规则与刷卡金额和刷卡日期有关,具体积分规则如表 2-1 所示。此外,公司 C 的 会员分为普通会员、超级会员和 PASS 会员三个级剔,超级会员和 PASS 会员在刷卡时
有额外积分奖励,奖励规则如表 2-2 所示。
表 2-1 积分规则
表 2-2 额外积分奖励规则
银行 B 开发了一个程序来计算用户每次刷卡所累积的积分,程序的输入包括会员级
别 L、刷卡日期D 和刷卡金额 A. 程序的输出为本次积分 S。其中。L 为单个字母且大 小写不敏感 .D 由程序直接获取系统日期 .A 为正浮点数最多保留两位小数 .S 为整数。
问题1
采用等价类划分法对该程序进行测试,等价类表如下表所示,请补充表2-3中空( )~( )
问题2
根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空( )~( )
表 2-4测试用例
问题3
如果规定了单次刷卡的积分上限为 20∞O( 即 S 取值大于等于 0 且小于等于 200∞), 则还需要针对 S 的取值补充一些测试用例。假设采用等价类划分法和边界值分析法来补
充用例,请补充表 2-5、表2-6中的空( )~( )。
表2-5补充等价类
各省软考办 | ||||||||||