國立暨南國際大學 97 學年度第一學期小考試卷

科目名稱:資訊系統 與網路導論 開課系所:資訊工程 學系 任課教師
吳坤熹
系所別:
年級:
學號:
姓名:
考試日期
2009.4.8

(考試時間: 15:10-15:30)


  1. (10%) Determine whether the following code has syntax erros or not.  If it is correct, predict its output.  If it is incorrect, point out the mistake(s).
    #include <iostream>
    using std::cout;

    class CStack
    {
    public:
    CStack() // Default Constructor
    {
    index = 0;
    }
    void push(int i)
    {
    a[index++] = i;
    }
    int pop()
    {
    return a[--index];
    }
    private:
    #define StackSize 10
    int a[StackSize];
    int index;
    };

    int main() {
    CStack stack1;
    stack1.push(3); stack1.push(8);
    CStack stack2 = stack1;
    stack2.pop();
    cout << stack2.pop() << "\n";
    }






  2. (10%) Determine whether the following code has syntax erros or not.  If it is correct, predict its output.  If it is incorrect, point out the mistake(s).

    // Ex7_09a.cpp
    // Initializing an object with an object of the same class
    #include <iostream>
    using std::cout;
    using std::endl;

    class CBox                             // Class definition at global scope
    {
      public:

        // Constructor definition
        CBox(double lv = 1.0, double bv = 1.0, double hv = 1.0)
        {
          cout << endl << "Constructor called.";
          m_Length = lv;                   // Set values of
          m_Width = bv;                    // data members
          m_Height = hv;
        }

        // Implementing a Copy Constructor
        CBox(CBox& initB)
        {
            m_Length = initB.m_Length;
            m_Width = initB.m_Width;
            m_Height = initB.m_Height = 1.0;
        }

        // Function to calculate the volume of a box
        double Volume()
        {
          return m_Length*m_Width*m_Height;
        }

      private:
        double m_Length;                   // Length of a box in inches
        double m_Width;                    // Width of a box in inches
        double m_Height;                   // Height of a box in inches
    };

    int main()
    {
       CBox box1(78.0, 24.0, 18.0);
       CBox box2 = box1;                   // Initialize box2 with box1

       cout << endl
            << "box1 volume = " << box1.Volume()
            << endl
            << "box2 volume = " << box2.Volume();

       cout << endl;
       return 0;
    }