01 #include<iost ream>
02 #include<cstdio>
03 using namespace std;
04 int daytab [2][13] = {
05 {0, 31, 28, 31, 30,31, 30,31, 31, 30,31, 30,31 },
06 {0, 31, 29,31, 30,31, 30,31, 31, 30,31, 30,31 }
07 };
08 bool IsLeapYear(int year) {
09 return (year % 4 ==0 && year % 100 != 0) || (year % 400 == 0);
10 }
11 int main() {
12 int year, month, day;
13 scanf("%d %d %d", &year, &month, &day);
14 int number = 0;
15 int row = IsLeapYear(year);
16 for(int j = 0; j < month; ++j){
17 number += daytab[row][j];
18 }
19 number += day;
20 printf("%d\n", number);
21 return 0;
22 }
1. B。输入 $12$ 也不会越界。
2. A。该程序的功能是输入年月日,输出这是输入年份的第几天,$2000$ 是闰年,$1900$ 年不是闰年,所以 $2000$ 年的 $3$ 月 $1$ 日和 $1990$ 年的 $3$ 月 $2$ 日的输出结果是相同的。
3. B。修改后判断闰年就出错了。
4. A。四条语句的逻辑判断正好为闰年的判断。
5. B。$1990$ 年 $9$ 月 $20$ 日是这一年的第 $263$ 天。
6. A。$2000$ 年 $5$ 月 $1$ 日是这一年的第 $122$ 天。