CSCI 3300
Fall 2013
Exercises for Quiz 3

  1. We discussed the distinction between two areas of memory: the heap and the run-time stack. Suppose that variable p has type int*. Which of the following is a correct C++ statement or statement sequence that makes p point to newly allocated memory in the heap?

    1. *p = new int;
    2. p = new int;
    3. p = new int*;
    4. int x; p = &x;
    5. int x; *p = x;

    Answer

  2. Suppose that p is defined to point to memory as in the preceding question. Which of the following stores 25 in the integer variable to which p points.

    1. p = 25;
    2. p* = 25;
    3. *p = 25;
    4. p = *25;
    5. p *= 25

    Answer

  3. What is the value of variable x after performing the following sequence of statements?

      int x = 50;
      int* p = &x;
      *p = 4;
    

    Answer

  4. What is the value of variable x after performing the following sequence of statements?

      int y = 7;
      int x = 35;
      int* p = &x;
      p = &y;
    

    Answer

  5. Which of the following will create an array of 30 integers called Orange in the run-time stack?

    1. int[30] Orange;
    2. int* Orange[30];
    3. int Orange[30];
    4. int[] Orange[30];

    Answer

  6. Which of the following will create an array of 30 integers called Orange in the heap?

    1. int Orange[30];
    2. int* Orange = new int[30];
    3. int[] Orange = new int[30];
    4. new int[30] Orange;
    5. new int Orange[30];

    Answer

  7. Suppose that a C++ program contains the following statements.

      int* p;
      p[0] = 1;
    
    Which of the following is a true statement about what happens?
    1. Performing those statements can cause unpredictable results.
    2. The program containing those statements will get a fatal compile error.
    3. Performing those statements will always lead to a run-time error
    4. There is nothing wrong with those statements; they store 1 into the first cell in an array of integers.

    Answer

  8. Write a C++ definition of function mean(A, n), which returns the mean of the values in array A in indices from 0 to n-1. Array A contains values of type double. (The mean is the sum of the values divided by n.)

    Answer

  9. Write a C++ definition of function isBlank(s) that takes a null-terminated string s and returns true (1) if s contains only blanks and tabs, false (0) if s contains a character other than a blank or tab. isBlank("") should return true. (Note: The tab character is '\t'.)

    Answer

  10. Write a C++ definition of a function dup(s) that takes a null-terminated string s and yields a copy of s, also as a null-terminated string, in memory that is allocated in the heap.

    Answer