共42道题,当前是第37

Description

(下一天问题) 设计一个算法,这个算法获取今天的日期,计算并返回下一天的日期。我们先设计一个函数 $f(y,m)$ ,它接收的两个参数 $y$ 和 $m$ 分别表示年份和月份,$f(y,m)$ 会返回 $y$ 年 $m$ 月的天数。
在此基础上,计算并输出 $y$ 年 $m$ 月 $d$ 日的下一天的日期。

题目保证输入的日期一定是合法的,试补全下方模拟程序

1   #include <iostream>
2   using namespace std;
3   int f(int y, int m)
4   {
5       // 此处为判断并返回y年m月的天数的代码,省略
6   }
7   int main()
8   {
9       int y, m, d;
10      cin >> y >> m >> d;
11      if ( ___(1)___ ){
12          cout << "下一天是" << 
                    y << "年" << 
                    m << "月" << 
                    d+1 << "日" << endl;
        }
13      else if ( ___(2)___ ){
14          cout << "下一天是" << 
                    y << "年" << 
                    m+1 << "月" << 
                    1 << "日" << endl;
        }
15      else{
16          cout << "下一天是" << 
                    ___(3)___ << "年" << 
                    ___(4)___ << "月" << 
                    ___(5)___ << "日" << endl;
        }
17      return 0;
18  }

1. B。当 $d < f(y,m)$ 时, $y$ 年 $m$ 月 $d$ 日的下一天是 $y$ 年 $m$ 月 $d+1$ 日。
2. C。当 $d < f(y,m)$ 不成立(即 $d==f(y,m)$ )时,说明是该月的最后一天,此时若 $m < 12$,则 $y$ 年 $m$ 月 $d$ 日的下一天是 $y$ 年 $m+1$ 月 $1$ 日。
3. C。当 $d < f(y,m)$ 和 $m < 12$ 均不成立是,说明 $m==12$ 且 $d==31$,说明是 $y$ 年的最后一天,所以它对应的下一天是 $y+1$ 年 $1$ 月 $1$日。
4. A。
5. A。

Question

___ (1) ___ 处应填( )

___ (2) ___ 处应填( )

___ (3) ___ 处应填( )

___ (4) ___ 处应填( )

___ (5) ___ 处应填( )

陈伦制作 版权所无 粤ICP备16127491号-1