## 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;

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

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

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

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;
```

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];

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];

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.

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.)

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'.)

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.