【说明】 使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。 int isLeap (int year) { if (year % 4 == 0) { if (year % 100 == 0) { if ( year % 400 == 0) leap = 1; else leap = 0; } else leap = 1;

题目

【说明】 使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。 int isLeap (int year) { if (year % 4 == 0) { if (year % 100 == 0) { if ( year % 400 == 0) leap = 1; else leap = 0; } else leap = 1; } else leap = 0; return leap; } 【问题1】(3分) 请画出以上代码的控制流图。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下: #inlcude <stdio.h> int main() { int year,leap; scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0) leap=1; else leap=0; if(________ ) printf(“是润年”); else printf(“不是润年”); return 0; }


第一空: (year%4==0 && year%100!=0)||(year%400==0);( year%100!=0&&year%4==0 )||(year%400==0);(year%400==0)||( year%100!=0&&year%4==0 )

第2题:

判断闰年的函数,把下列语句补充完整。 leap.year <- function (year) { ifelse (, TRUE, FALSE) }

A.(year %% 4 == 0 & year %% 100 != 0)

B.(year %% 4 == 0 & year %% 100 != 0) || year %% 400 == 0

C.(year %% 4 == 0 || year %% 100 != 0)

D.(year/4 == 0 & year/100 != 0) || year/400 == 0


y%4==0&&y%100!=0||y%400==0

第3题:

针对下列程序段,需要( )个测试用例可以满足分支覆盖的要求。int IsLeap(int year){if(year%4==0){if((year%100==0){if(year%400==0)leap=1;else leap=0;}else leap=l;}else leap=0;return leap;}

A.3
B.4
C.6
D.7

答案:B
解析:
本题考查DC用例设计。代码中有三个判定表达式,所需用例数是判定数+1=4。

第4题:

● 针对下列程序段,需要(58)个测试用例可以满足分支覆盖的要求。

int IsLeap(int year)

{

if ( year % 4 == 0 )

{

if ( ( year % 100 == 0 )

{

if ( year % 400 == 0 )

leap = 1;

else

leap = 0;

}

else

leap = 1;

}

else

leap = 0;

return leap;

}

(58)

A.3

B.4

C.6

D.7


正确答案:B

第5题:

以下代码用于判断闰年,由C 语言书写。其对应的控制流图如下图所示。 请按要求回答问题。 int isLeap(int year){ int leap; if (year % 4 = = 0){ if (year % 100 = = 0){ if ( year % 400 = = 0) leap = 1; else leap = 0; } else leap = 1; } else leap = 0; return leap; } (1)请画出控制流图,并计算圈复杂度V(G)。 (2)找出独立路径。


正确答案:V(G)=4 独立路径 1->2->3->10->11->12 1->2->3->8->9->11->12 1->2->3->4->6->7->9->11->12 1->2->3->4->5->7->9->11->12

第6题:

阅读下列说明,回答问题1至问题3。

【说明】

使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。

int IsLeap(int year)

{

if(year% 4==0)

{

if((year % 100==0)

{

if( year % 400==0'

leap=1;

eIse

leap=0;

}

else

leap=1;

else

leap=0;

return leap;

}

请画出以上代码的控制流图。

请计算上述控制流图的V(G)。

假设的取值范围是1000<year<2001,请使用基本路径测试法为变量year设计测试用例,使之满足基本路径覆盖的要求。

请帮忙给出每个问题的正确答案和分析,谢谢!


问题 1 答案解析:控制流图
控制流图 解析:绘制模块控制流图。
模块控制流图是与程序流程图相类似的由许多节点和连接节点的边组成的一种图形,其中一个节点代表一条语句或数条语句,边表示节点间的控制流向,它显示了一个函数的内部逻辑结构。

问题 2 答案解析:V(G)=4
V(G)=4 解析:计算控制流图的环路复杂性v(G)。
V(G)=(区域数)=(判断结点数)+1

问题 3 答案解析:用例1:year是1000~2000之间不能被4整除的整数如1001、1002、1003等。 用例2:year是1000~2000之间能被4整除但不能被100整除的整数如1004、 1008、1012、1016等。 用例3:year是1000~2000之间能被100整除但不能被400整除的整数如1100、 1300、1400、1500、1700、1800、1900。 用例4:yew是1000~2000之间能被400整除的整数如1200、1600、2000。
用例1:year是1000~2000之间不能被4整除的整数,如1001、1002、1003等。 用例2:year是1000~2000之间能被4整除但不能被100整除的整数,如1004、 1008、1012、1016等。 用例3:year是1000~2000之间能被100整除但不能被400整除的整数,如1100、 1300、1400、1500、1700、1800、1900。 用例4:yew是1000~2000之间能被400整除的整数,如1200、1600、2000。 解析:采用基本路径测试法,满足基本路径覆盖的要求。
在进行程序的基本路径测试时,从程序的环路复杂性,可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。独立路径是指包括一组以前没有处理的语句或条件的一条路径。例如针对本题所对应的控制流图中,一组独立的路径如下。
.path1:不能被4整除的整数
.path2;被4整除但不能被100整除的整数.
.path3:能被100整除但不能被400整除的整数
.path4;能被400整除的整数
路径path1、path2、path3和path4组成一个基本路径集。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次。

第7题:

针对下列程序段,需要(58)个测试用例可以满足分支覆盖的要求。 int IsLeap(int year) { if(year % 4==0) { if((year % 100==0) { if(year % 400==0) leap=1; else leap=0; } else leap=l; } else leap=0; return leap; }

A.3

B.4

C.6

D.7


正确答案:B
解析:本题考查DC用例设计。
  代码中有三个判定表达式,所需用例数是判定数+1=4。

第8题:

下面程序是判断某一个是否为闰年,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。(闰年的条件是符合下面两者之一:①能被4整除,但不能被100整除;②能被4整除,又能被100整除)。

注意:不改动程序的结构,不得增行或删行。

import java.io.*;

public class LeapYear

{

public static void main(String args[])

{

int year=1979;

if((year %4= =0 || year % 100 !=0) || (year % 400= =0))

System.out.println(year+"是闰年.");

else

System.out.println(year+"不是闰年。");

year=2000;

boolean leap;

if(year % 4 !=0)

leap=false;

else if(year % 100 !=0)

leap=true;

else if(year % 400 !=0)

leap=false;

else

leap=true;

if(______)

System.out.println(year+"是闰年。");

else

System.out.println(year+"不是闰年。");

year=2010;

if(year % 4= =0)

{

if(year % 100= =0)

{

if(year % 400= =0)

leap=true;

else

______

}

else

leap=false;

}

if(1eap= =true);

System.out.println(year+"是闰年。");

else

System.out.println(year+"不是闰年。");

}

}


正确答案:(year%4= =0&&year%100!=0)||(year%400 ==0) Year%4==0
(year%4= =0&&year%100!=0)||(year%400 ==0) Year%4==0 解析:本题综合考查Java语言的数据类型及运算和分支语句。第1处的错误是:(year%4==0||year%100!=0)||(year%400==0);闰年的条件是符合下面二者之一:①能被4整除,但不能被100整除;②能被4整除,又能被100整除。因此判断某一年是否为闰年的表达式应该为(year%4==0&&year%100!=0)||(year%400==0)。第2处的错误是year%4!=0;应该填写year%4==0,用来判断该年是否能被4整除。

第9题:

阅读下列说明,回答问题1至问题3。

【说明】

以下代码由C语言书写,能根据指定的年、月计算当月所含天数。

int GetMaxDay( int year, int month )

{

int maxday = 0;

if ( month >= 1 && month <= 12 )

{

if ( month == 2 )

{

if ( year % 4 == 0 )

{

if ( year % 100 == 0 )

{

if ( year % 400 == 0 )

maxday = 29;

else

maxday = 28;

}

else

maxday = 29;

}

else

maxday = 28;

}

else

{

if ( month == 4 || month == 6 || month == 9 || month == || )

maxday = 30;

else

maxday = 31;

}

}

return maxday; }

请画出以上代码的控制流图。

请计算上述控制流图的环路复杂度V(G)。

假设year的取值范围是1000<year<2001,请使用基本路径测试法为变量year、 month设计测试用例(写出year取值、month取值、maxday预期结果),使之满足基本路径覆盖要求。

请帮忙给出每个问题的正确答案和分析,谢谢!


问题 1 答案解析: 注:图中标注为1、2、3、4、5、6的圆可部分或全部省略。
注:图中标注为1、2、3、4、5、6的圆可部分或全部省略。 解析:考查绘制模块控制流图。
模块控制流图是与程序流程图相类似的由许多结点和连接结点的边组成的一种图形,其中一个结点代表一条语句或数条语句,边表示结点间的控制流向,它显示了一个函数的内部逻辑结构。

问题 2 答案解析:V(G)=7
V(G)=7 解析:考查计算控制流图的环路复杂性V(G)。
环路复杂性V(G)的计算方法包括:
.控制流程图中的区域数。
.条边数-结点数+2。
.判定数+1。

问题 3 答案解析:(用例编号可以不写)
(用例编号可以不写) 解析:考查基本路径测试法的应用。
路径测试法要求满足基本路径覆盖的要求。
在进行程序的基本路径测试时,从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。独立路径是指包括一组以前没有处理的语句或条件的一条路径。例如针对本题所对应的控制流图中,一组独立的路径如下。
.path1:year取值1001~2000之间任意整数,month取值13或14。
.path2:year取值1001~2000之间不能被4整除的整数,month取值2。
.path3:year取值1001~2000之间能被4整除但不能被100整除的整数,month取值2。
.path4:year取值1001~2000之间能被100整除但不能被400整除的整数,month取值2。
.path5:year取值1001~2000之间任意整数,month取值2。
.path6:year取值1001~2000之间任意整数,month取值1、3、5、7、8、10或12。
.path7:year取值1001~2000之间任意整数,month取值4、6、9或11。
路径path1、path2、path3、path4、path5、path6以及path7组成一个基本路径集。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次。