logo - 刷刷题
下载APP
【简答题】

已知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,31,31,30,31,30,31);
   if(leap(d)&&d.month==2)
    day=29;
   else
    day=daytab[d.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,%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\",
tomorrow.year,tomorrow.month,tomorrow.day);

设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%.需说明为什么。

举报
参考答案:
参考解析:
.
刷刷题刷刷变学霸
举一反三

【单选题】计算机的编译系统主要是将源程序翻译成().

A.
机器语言系统
B.
系统程序
C.
目标程序
D.
数据库系统

【单选题】● 源程序中的 (29) 与程序的运行结果无关。 (29)

A.
注释的多少
B.
变量的取值
C.
循环语句的执行次数
D.
表达式的求值方式