CH 9: Starting Out With C++ CHECKPOINT QUESTIONS

Ace your homework & exams now with Quizwiz!

Assume ptr is a pointer to an int and holds the address 12000. On a system with 4-byte integers, what address will be in ptr after the following statement? ptr += 10;

12040

Give an example of the proper way to call the following function: void makeNegative(int *val) { if (*val > 0) *val = −(*val); }

makeNegative (&num);

Look at the following array definition: const int numbers[SIZE] = { 18, 17, 12, 14 }; Suppose we want to pass the array to the function processArray in the following manner: processArray(numbers, SIZE); Which of the following function headers is the correct one for the processArray function? A) void processArray(const int *arr, int size) B) void processArray(int * const arr, int size)

A

What is a null pointer?

A pointer that contains the address 0.

Write the definition statement for a variable fltPtr . The variable should be a pointer to a float.

float *fltPtr;

What is the output of the following code? int x = 50, y = 60, z = 70; int *ptr = nullptr; cout << x << " " << y << " " << z << endl; ptr = &x; *ptr *= 10; ptr = &y; *ptr *= 5; ptr = &z; *ptr *= 2; cout << x << " " << y << " " << z << endl;

50 60 70 500 300 140

Assuming arr is an array of int s, will each of the following program segments display "True" or "False"? A) if (arr < &arr[1]) cout << "True"; else cout << "False"; B) if (&arr[4] < &arr[1]) cout << "True"; else cout << "False"; C) if (arr != &arr[2]) cout << "True"; else cout << "False"; D) if (arr != &arr[0]) cout << "True"; else cout << "False";

A) True B) False C) True D) False

Assume pint is a pointer variable. Is each of the following statements valid or invalid? If any is invalid, why? A) pint++; B) −−pint; C) pint /= 2; D) pint *= 4; E) pint += x; // Assume x is an int.

A) Valid B) Valid C) Invalid. Only addition and subtraction are valid arithmetic operations with pointers. D) Invalid. Only addition and subtraction are valid arithmetic operations with pointers. E) Valid

Is each of the following definitions valid or invalid? If any is invalid, why? A) int ivar; int *iptr = &ivar; B) int ivar, *iptr = &ivar; C) float fvar; int *iptr = &fvar; D) int nums[50], *iptr = nums; E) int *iptr = &ivar; int ivar;

A) Valid B) Valid C) Invalid. fvar is a float and iptr is a pointer to an int. D) Valid E) Invalid. ivar must be declared before iptr.

List three uses of the * symbol in C++.

Multiplication operator, pointer definition, indirection operator.

Give an example of a function that correctly returns a pointer.

char *getInitials() { char *initials = new char[3]; cout << "Enter your three initials: "; cin >> initials[0] >> initials[1] >> initials[2]; return initials; }

Give an example of a function that incorrectly returns a pointer.

char *getInitials() { char[3] initials; cout << "Enter your three initials: "; cin >> initials[0] >> initials[1] >> initials[2]; return initials; }

Write a statement that displays the address of the variable count.

cout << &count;

Rewrite the following loop so it uses pointer notation (with the indirection operator) instead of subscript notation. for (int x = 0; x < 100; x++) cout << arr[x] << endl;

for (int x = 0; x < 100; x++) cout << *(array + x) << endl;

Assume ip is a pointer to an int . Write a statement that will dynamically allocate an integer variable and store its address in ip . Write a statement that will free the memory allocated in the statement you wrote above.

ip = new int; delete ip;

Assume ip is a pointer to an int . Then, write a statement that will dynamically allocate an array of 500 integers and store its address in ip . Write a statement that will free the memory allocated in the statement you just wrote.

ip = new int[500]; delete [] ip;

Complete the following program skeleton. When finished, the program will ask the user for a length (in inches), convert that value to centimeters, and display the result. You are to write the function convert. ( Note: 1 inch = 2.54 cm. Do not modify function main.) #include <iostream> #include <iomanip> using namespace std; // Write your function prototype here. int main() { double measurement; cout << "Enter a length in inches, and I will convert\n"; cout << "it to centimeters: "; cin >> measurement; convert(&measurement); cout << fixed << setprecision(4); cout << "Value in centimeters: " << measurement << endl; return 0; } // // Write the function convert here. //

void convert(double *val) { *val *= 2.54; }


Related study sets

Business Mathematics - Chapter 13

View Set

Lecture 10 - Hospital-acquired and community acquired infections

View Set

Ch 13: Palliative and End-of-Life Care

View Set

RP:13- Financing, prommisory notes, deeds of trust, mortgages, subject vs assuming,interest points

View Set

SOH CAH TOA and Special Right Triangles

View Set

The rule of Nicholas II, 1894-1905

View Set