您现在的位置:希赛软考学院 > 历年试题 > 正文
2007年上半年软件评测师下午试卷[1]
http://www.csairk.com 作者:希赛软考学院 来源:希赛网 2007年8月3日 发表评论 进入社区

试题一(15分)

  阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。

[说明]

  以下代码由 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](4 分)

    请画出以上代码的控制流图。

    [问题2](3 分)

    请计算上述控制流图的环路复杂度 V(G)。

    [问题 3](8 分)

    假设 year 的取值范围是 1000 < year < 2001,请使用基本路径测试法为变量 year、month 设计测试用例(写出 year 取值、month 取值、maxday 预期结果),使之满足基本路径覆盖要求。

   [答案讨论]

[1]  [2]  [3]  [4]