首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知C源程序如下: /*Input today’s date,output tomorrow’s date * / /* version 2 * / #include<stdio. h> struct ydate { int
已知C源程序如下: /*Input today’s date,output tomorrow’s date * / /* version 2 * / #include<stdio. h> struct ydate { int
admin
2010-06-15
30
问题
已知C源程序如下:
/*Input today’s date,output tomorrow’s date * /
/* version 2 * /
#include<stdio. h>
struct ydate
{ int day; int month; int year;};
int leap(struct ydate d)
{ if((d. year%4==0&&d. year%100 ! =0)||(d. year%400==0))
return 1;
else
return 0;
}
int numdays(struct ydate d)
{ int day;
static int daytab[]=
{31,28,31,30,31,30,3l,31,30,31,30,31};
if(1eap(d)&&d. month==2)
day=29;
else
day=daytabEd. month-1];
return day;
}
int main(void)
{ struct ydate today,tomorrow;printf("format of date is:year,month,day输入的年、月、日之间应用逗号隔开\n);
printf(" today is:");
scanf(“%d,%d.%",&today.year,&today.month,&today.day);
while(0>=today. year
|| today. year>65535||0>=today. month||today. month>12)||
0>=today. day||today. day>numdays(today))
{ printf("input date error!reenter the day!\n");
printf(" today is:");
scanf("%d,%d,%d",&today. year,&today.month,&today. day);
}
if(today. day!=numdays(today))
{tomorrow. year=today. year;
tomorrow. month=today. month;
tomorrow. day=today. day+1;
}
else if(today.month==12)
{tomorrow. year=today. year+1;
tomorrow. month=1;
tomorrow. day=1;
}
else
{tomorrow. year=today. year;
tomorrow. month=today. month+1:
tomorrow.day=1;
}
printf("tomorrow is:%d,%d,%d\n\n",
tomorrow. year,tomorrow. month,tomorrow. day);
}
(1) 画出程序中所有函数的控制流程图;
(2) 设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为什么。
选项
答案
函数leap的流程图如下: [*] [*] 本题的程序用来打印输入日期的第二天日期,只要根据程序中的判断语句设计出相关的测试用例,就能使得所有函数的语句覆盖率和分支覆盖率均能达到100%。 为了满足leap函数的语句覆盖率和分支覆盖率均能达到100%,应当设置两个测试用例,使得一个是闰年,一个不是,在这里可以取2008年和2007年。 由于numdays函数的判定语句是对leap的函数值进行判定,满足了leap的覆盖率要求,就能够满足numdays的覆盖率要求。 对于main函数中的while语句,根据流程图,先使判断部分为1,然后为0,这样就可以达到覆盖要求。对于while语句之后的if…else if…else语句,只要能够使每个分支都执行一遍,就能达到覆盖要求。 根据以上分析,设计测试用例如下: [*] 注意,这里的第1、2个用例使得leap函数中的retlarn 1和return 0都能执行一遍,同时nutndays函数中的if…else结构两个分支也都能得到执行;第1个用例也能够使while循环体能够得到执行;第2、3、4用例三个测试用例刚好使main中的if…else if…else-三个分支都执行一遍。
解析
转载请注明原文地址:https://kaotiyun.com/show/EwNZ777K
本试题收录于:
四级软件测试工程师题库NCRE全国计算机四级分类
0
四级软件测试工程师
NCRE全国计算机四级
相关试题推荐
阅读以下说明和Java代码,将解答写入对应栏内。【说明】下面的程序的功能是利用实现Runnable接口的方法来创建线程,并利用它来执行响应的一些操作。最后使得m的执行结果:100,如图3。注意:请勿改动main()主方法和其他已有的
阅读以下函数说明和C代码,将C程序中(1)~(5)空缺处的语句填写完整。[说明]函数intToplogical(LinkedWDigraphG)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中,图G表示一个具有n个顶点
阅读以下说明和C++程序,将应填入(n)处的语句写在的对应栏内。【说明】以下程序的功能是计算三角形、矩形和正方形的面积并输出。程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类
阅读以下应用说明、图和C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。【说明】以下【C++程序】用于实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数主要有:cr
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】下面一段程序从给定的数组b中找出值最小的元素,并输出该元素的数组下标、内存地址minaddr以及元素值本身。函数findmin负责在给定的数组中查找最小值,并返回最小值所在的内
阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。[说明]下面的程序利用递归算法计算x和y的最大公约数。[函数2.1]main(){intx,y,k,t;scanf("%d%d",&x,&y);
阅读以下应用说明及VisualBasic程序代码,将应填入(n)处的字句写在对应栏内。【说明】本应用程序是一个乘法计算器,其运行窗口如图2所示。在该界面中,“被乘数”、“乘数”以及“积”等文字为标签,相应的3个输入输出数据框为文本框,此外
请将图4-9、图4-10和图4-11流程图中(1)~(4)空缺处的内容填写完整。在图4-8流程图中,判断框P中的条件可表示为:i>(5)。
函数fib1和fib2存在错误,只需分别修改其中的一行代码即可改正错误。(1)函数fib1不能通过编译,请写出fib1中错误所在行修改正确后的完整代码。(2)函数fib2在n≤2时不能获得正确结果,请写出fib2中错误所在行修改正确后的完整
有关内联网的错误叙述是(62),下列有关网络安全的叙述中,不正确的是(63),对于Intranet,可通过设置(64)来防止内部数据泄密、篡改和黑客入侵。
随机试题
《关于改善农村人居环境的指导意见》指出,到2020年,全国农村居民住房、饮水和出行等基本生活条件明显改善,人居环境基本实现干净、整洁、便捷,建成一批()的美丽宜居村庄。
秘书发展史上的革命性进步是
A.维拉帕米B.桂利嗪C.布桂嗪D.尼莫地平E.地尔硫卓属于苯并硫氮卓类钙拮抗剂的是()。
宗气的生理功能是__________。
根据《企业所得税法》,企业发生的公益性捐赠支出,在年度利润总额()以内的部分,准予在计算应纳税所得额时扣除。
佛教节日的特点是多而庞杂,吸收了中国传统的节气时令并将民俗活动糅合在一起,形成“庙会”等活动。( )
侵犯的构成要素包括()。
一、注意事项1.本试卷由给定资料与作答要求两部分构成。2.第一题、第二题、第五题,所有考生都必须作答。第三题仅限行政执法类、市(地)以下综合管理类职位的考生作答。第四题仅限考省级(含副省级)以上综合管理类职位的考生作答
目前各部门广泛使用的人事档案管理、财务管理等软件,按计算机应用分类,应属于
Treesdomorethanmakelifepleasant;theymakelife【C1】______.Treesget【C2】______throughtheirrootsand,primarilythrough
最新回复
(
0
)