以下代码由 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 == 11 ) maxday = 30; else maxday = 31; } } return maxday; } [问题 1] 请画出以上代码的程序流程图。 [问题 2] 假设 year 的取值范围是 1900 <= year <= 2100,请使用逻辑覆盖测试法为变量 year、month 设计测试用例(写出 year 取值、month 取值、maxday 预期结果),使之满足语句覆盖,条件覆盖和路径覆盖
时间: 2024-04-28 20:23:01 浏览: 108
JS之日历实践附实现代码
[回答 1] 以下是程序流程图:
![程序流程图](https://i.imgur.com/l5atJW9.png)
[回答 2]
- 语句覆盖测试用例:
| year 取值 | month 取值 | maxday 预期结果 |
| --- | --- | --- |
| 1900 | 1 | 31 |
| 2000 | 2 | 29 |
| 2100 | 12 | 31 |
- 条件覆盖测试用例:
| year 取值 | month 取值 | maxday 预期结果 |
| --- | --- | --- |
| 2000 | 1 | 31 |
| 2000 | 2 | 29 |
| 2000 | 3 | 31 |
- 路径覆盖测试用例:
| year 取值 | month 取值 | maxday 预期结果 |
| --- | --- | --- |
| 2000 | 1 | 31 |
| 2000 | 2 | 29 |
| 2000 | 3 | 31 |
| 2000 | 4 | 30 |
| 2000 | 5 | 31 |
| 2000 | 6 | 30 |
| 2000 | 7 | 31 |
| 2000 | 8 | 31 |
| 2000 | 9 | 30 |
| 2000 | 10 | 31 |
| 2000 | 11 | 30 |
| 2000 | 12 | 31 |
阅读全文