Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Multiple Choice Multiple Choice Section 4.1 Pointers and Dynamic Memory Consider the following statements: int *p; int i; int k; i = 42; k =
Multiple Choice
Multiple Choice Section 4.1 Pointers and Dynamic Memory |
- Consider the following statements:
int *p; int i; int k; i = 42; k = i; p = &i;
After these statements, which of the following statements will change the value of i to 75?- A. k = 75;
- B. *k = 75;
- C. p = 75;
- D. *p = 75;
- E. Two or more of the answers will change i to 75.
- Consider the following statements:
int i = 42; int j = 80; int *p1; int *p2; p1 = &i; p2 = &j; *p1 = *p2; cout << i << j << endl;
What numbers are printed by the output statement?- A. 42 and then another 42
- B. 42 and then 80
- C. 80 and then 42
- D. 80 and then another 80
- What is printed by these statements?
int i = 1; int k = 2; int *p1; int *p2; p1 = &i; p2 = &k; p1 = p2; *p1 = 3; *p2 = 4; cout << i;
- A. 1
- B. 2
- C. 3
- D. 4
- What is printed by these statements?
int i = 1; int k = 2; int* p1; int* p2; p1 = &i; p2 = &k; p1 = p2; *p1 = 3; *p2 = 4; cout << k;
- A. 1
- B. 2
- C. 3
- D. 4
- What is printed by these statements?
int i = 1; int k = 2; int* p1; int* p2; p1 = &i; p2 = &k; *p1 = *p2; *p1 = 3; *p2 = 4; cout << i;
- A. 1
- B. 2
- C. 3
- D. 4
- When allocating an array of objects, what constructor is used to initialize all of the objects in the array?
- A. The automatic copy constructor.
- B. The constructor specified at the declaration.
- C. The default constructor.
- D. None of the above.
- In which location do dynamic variables reside?
- A. The code segment.
- B. The data segment.
- C. The heap.
- D. The run-time stack.
Multiple Choice Section 4.2 Pointers and Arrays as Parameters - When should a pointer parameter p be a reference parameter?
- A. When the function changes p, and you want the change to affect the actual pointer argument.
- B. When the function changes p, and you do NOT want the change to affect the actual pointer argument.
- C. When the function changes *p, and you want the change to affect the the object that is pointed at.
- D. When the function changes *p, and you do NOT want the change to affect the the object that is pointed at.
- E. When the pointer points to a large object.
- Suppose you have the following function prototype and variable declaration:
void goop(int z[ ]); int x[10];
Which is the correct way to call the goop function with x as the argument:- A. goop(x);
- B. goop(x[ ]);
- C. goop(x[10]);
- D. goop(&x);
- E. goop(&x[ ]);
- Suppose that the goop function from the previous question changes the value of z[1]. Does this change effect the value of the actual argument?
- A. Yes
- B. No
- Here is a function declaration:
void goo(int* x) { *x = 1; }
Suppose that a is an int* variable pointing to some integer, and *a is equal to zero. What is printed if you print *a after the function call goo(a)?- A. 0
- B. 1
- C. address of a
- D. address of x
- E. None of the above
Multiple Choice Section 4.3 The Bag ADT with a Dynamic Array - Here is a small function that uses the dynamic bag class from Chapter 4:
void quiz( ) { bag::size_type i; // Line 1 bag b; // Line 2 b.insert(42); // Line 3 i = b.size( ); // Line 4 cout << i; // Line 5 }
When is the bag's dynamic array allocated?- A. During the execution of Line 2.
- B. During the execution of Line 3.
- C. Just after Line 4 and before line 5.
- D. After Line 5.
- Here is a small function that uses the dynamic bag class from Chapter 4:
void quiz( ) { bag::size_type i; // Line 1 bag b; // Line 2 b.insert(42); // Line 3 i = b.size( ); // Line 4 cout << i; // Line 5 }
When is the bag's dynamic array returned to the heap?- A. During the execution of Line 2.
- B. During the execution of Line 3.
- C. Just after Line 4 and before line 5.
- D. After Line 5.
- The + operator which combines two bags was not declared as a member function of the bag class. How can this function access the private data members of the two bags passed as arguments?
- A. It cannot.
- B. The operator is declared to be a friend to the class.
- C. The operator is implemented in the header file containing the bag class definition.
- D. The operator is implemented in the same implementation file as the bag class.
- Suppose that a new foo class has this prototype for an overloaded assignment operator:
void operator =(const foo& source);
In an assignment statement a = b, what will be the actual argument for the parameter source?- A. a
- B. b
- Suppose you are implementing an assignment operator, a copy constructor, and an operator +=. For which of these functions do you need to worry about possible "self-application" (where the argument is the same as the object that activates the function):
- A. Only one of the three functions has possible self-application
- B. The assignment operator and the copy construtor have possible self-application
- C. The assignment operator and the operator += have possible self-application
- D. The copy construtor and the operator += have possible self-application
- E. All three functions have possible self-application
- What is the usual worst-case performance for resizing a container class that stores its data in a dynamic array?
- A. Constant time
- B. Logarithmic time
- C. Linear time
- D. Quadratic time
Multiple Choice Section 4.4 Prescription for a Dynamic Class - When a class uses dynamic memory, what member functions should be provided by the class?
- A. The assignment operator.
- B. The copy constructor.
- C. A destructor.
- D. All of the above.
- Which situation does not use the copy constructor?
- A. Calling a function with a reference parameter
- B. Calling a function with a value parameter
- C. Declaring a variable to be a copy of another existing object
- D. Returning a value from a function
- E. All of the above situations use the copy constructor
Multiple Choice Section 4.5 The String ADT - Suppose that you want to declare an array of characters to hold a C++ string with exactly 9 letters. Which declaration is best?
- A. char s[8];
- B. char s[9];
- C. char s[10];
- D. char s[11];
- E. char s[12];
- Suppose that x and y are two C++ strings. Which expression will return true whenever x and y contain the same sequence of characters?
- A. (x = y)
- B. (x == y)
- C. (x != y)
- D. (strcmp(x, y))
- Suppose that you want to develop two different + operators that calculate and return an object of some class. Which statement is correct?
- A. One operator must be a friend and the other must not.
- B. One operator must be public and the other private.
- C. The operators must have a different parameter lists.
- D. It is not possible to have two different + operators.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started