首页
登录
从业资格
阅读下列C程序,回答下列问题。 [C程序] int GetMaxDa
阅读下列C程序,回答下列问题。 [C程序] int GetMaxDa
考试题库
2022-08-02
42
问题
阅读下列C程序,回答下列问题。 [C程序] int GetMaxDay( int year, int month ) { int maxday = 0; //1 if ( month >= 1 && month image.png= 12 ) { //2, 3 if ( month == 2 ) { //4 if ( year % 4 == 0 ) { //5 if ( year % 100 == 0 ) { //6 if ( year % 400 == 0 ) //7 maxday=29; //8 else //9 maxday = 28;} else //10 maxday = 29; } else //11 maxday = 28; } else{ //12 if (month==4||month==6||month==9||month==11) //13, 14, 15, 16 maxday = 30; //17 else //18 maxday = 31; } } return maxday; //19 }3.1、请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。3.2、请画出上述程序的控制流图,并计算其环路复杂度V(G)。3.3、请给出问题2中控制流图的线性无关路径。
选项
答案
解析
3.1
3.2、控制流图
环路复杂度V(G)=11 3.3、线性无关路径: 1.1-2-19 2.1-2-3-19 3.1-2-3-4-12-13-14-15-16-18-19 4.1-2-3-4-12-13-14-15-16-17-19 5.1-2-3-4-12-13-14-15-17-19 6.1-2-3-4-12-13-14-17-19 7.1-2-3-4-12-13-17-19 8.1-2-3-4-5-11-19 9.1-2-3-4-5-6-10-19 10.1-2-3-4-5-6-7-9-19 11.1-2-3-4-5-6-7-8-19本题考查白盒测试方法及应用。第一小题考查白盒测试用例设计方法之判定覆盖法。判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序有6个判定,所以满足判定覆盖一共需要12个逻辑条件。 第二小题考查白盒测试用例设计方法之基本路径法。 涉及到的知识点包括根据代码绘制控制流图、计算环路复杂度。 控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的节点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套判断。本题程序中,if(month>=1 && month<=12)这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。同理,if(month==4||month=6||month==9||month=11)这条判断语句中的判定由4个条件组成,因此在画控制流图的时候需要拆开成4条判断语句。这里需要注意的是,如果复合条件之间是“&&”的关系,则拆开后反应在控制流图上是沿左子树往下,反之如果条件之间是“||”的关系,则在控制流图上是沿右子树往下。 程序的环路复杂度等于控制流图中判定节点的个数加1,本题控制流图中判定节点个数为10,所以V(G)=11。第三小题考查白盒测试用例设计方法中的基本路径法。 涉及到的知识点是根据控制流图和环路复杂度给出线性无关路径。 线性无关路径是指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中应该有11条线性无关路径。
转载请注明原文地址:https://tihaiku.com/congyezige/2416689.html
本试题收录于:
中级 软件评测师题库软件水平考试初中高级分类
中级 软件评测师
软件水平考试初中高级
相关试题推荐
软件工程的基本原理不包括( )。A.分段管理软件开发,将复杂问题简化处理 B
用( )来描述算法时,可以采用类似于程序设计语言的语法结构,也易于转换为程序。
系统的主要任务是( )。A.把源程序转换为目标代码 B.负责文字格式编排和数
根据《计算机软件保护条例》的规定,著作权法保护的计算机软件是指( )。A.程序
一个计算机算法是对特定问题求解步骤的一种描述。算法的( )是指算法能够对不合理
将某高级语言程序翻译为汇编语言形式的目标程序,该过程称为( )。A.编译 B
采用面向对象程序设计语言C++/Java进行系统实现时,定义类S及其子类D。若类
若程序中定义了三个函数f1、f2和f3,并且函数f1执行时会调用f2、函数f2执
编译和解释是实现高级程序设计语言的两种方式,其区别主要在于( )。A.是否进行
计算机加电自检后,引导程序首先装入的是( ),否则,计算机不能做任何事情。A.
随机试题
A.incidentB.whenC.includeD.flightsE.informedF.carriagesG.ca
Weseemtobelightonfuel.Theunderlinedpartmeans______.A、beeasytogetB、
[audioFiles]audio_ezftlmnj_0109(20101)[/audioFiles]
如何促进农业生产托管项目规范化管理?
A股份有限公司(以下简称A公司)是国内一家通信设备及产品制造和销售公司,在
外方投资者在中国境内依法成立检验检测机构,申请资质认定时只要符合《检验检测机构资
A.醋酸纤维素酞酸酯 B.羧甲基淀粉钠 C.滑石粉 D.甘油明胶 E.苯
行政调解:是指在国家行政机关的主持下,以当事人双方自愿为基础,以国家法律、法规及
根据国家《矿产资源法》的规定,无论地表或地下的矿产资源,其所属权不因其所依附的(
某投资项目,计算期为5年,每年年末等额收回150万元,当利率为10%时,则开始需
最新回复
(
0
)