| bag b; 4. Consider the following bag class: class bag { public: static const int CAPACITY = 30; bag( ) { used = 0; } int erase(int& target); bool erase_one(int& target); void insert(int& entry); void operator +=(bag& addend); int size( ) const { return used; } int count(const int& target); private: int data[CAPACITY]; // The array to store items int used; // How much of array is used }; Which steps would be necessary for changing this bag class to hold double values instead of integers? | Change the array declaration from int data[CAPACITY] to double data[CAPACITY] and recompile. | | This is a template class, so there is no need to recompile to change the data type. | | Round each double value to an integer before putting it in the bag. | | Change the int to double for the array and for all return values and parameters related to the array, then recompile. | PreviousNext 5. With a single template class, we can implement a container class that can be instantiated with a different data type for each object. | False 6. When you write a template class, where does the template prefix occur? (Select all that apply) | Before each member function implementation. | | Before each object declaration. | | Before the template class definition 7. Consider this prototype for a template function: template //line 1 void foo(Item); //line 2 Something is wrong with this prototype. Which line has the error? | None of the above. There are no errors in these lines. | | line 2 8. int *p1 = new int; int *p2 = p1; *p1 = 3; *p2 = *p1; cout << p1 << endl; | The address of p1 9. What is wrong with this block of code? int *p1 = new int; //line 1 int *p2; //line 2 *p2 = 4; //line 3 p1 = p2; //line 4 cout << p1 << p2 << endl; //line 5 | The p2 pointer is not instantiated with the new operator before accessing its memory location on line 3. | | A pointer assignment to set the address of a pointer cannot be done with an integer value on line 3. | | The p1 pointer is incorrectly instantiated with the new operator before accessing its memory location on line 1. Parentheses are missing from this statement. | | None of the above. There are no errors in this block of code. | PreviousNext 10. Consider the following bag class: class bag { public: static const int CAPACITY = 30; bag( ) { used = 0; } int erase(int& target); bool erase_one(int& target); void insert(int& entry); void operator +=(bag& addend); int size( ) const { return used; } int count(const int& target); private: int* data[CAPACITY]; int used; }; What is data? (Select the most likely answer) | A pointer to an object of the Standard Template Library class | | A dynamic array of integers | | A pointer to an vector that holds int values | | An integer variable 11. What kind of a container is an object of type list from the Standard Template Library? | Associative 12. What does the following code block do? vector a_list; vector::iterator iter; iter = min_element(a_list.begin(), a_list.end()); cout << *iter << " "; | This code block declares a vector of integers and an iterator for a vector of integers. The iterator called iter is set to point to the first element in the vector and that value is displayed. | | This code block declares a vector of iterators. The iterator with the smallest memory location is located and that memory location is displayed. | | This code block declares a vector of integers and an iterator for a vector of integers. The iterator called iter is set to point to the smallest element in the vector and that element is removed. | | This code block declares a vector of integers and an iterator for a vector of integers. The iterator called iter is set to point to the smallest element in the vector and that value is displayed. 13. What is the delete keyword used for? | To remove a pointer address from the stack | | To delete both the pointer and to deallocate the space in the heap that is pointed to. | | To deallocate the space in the heap pointed to by a pointer. | | To delete the value stored in the heap pointed to by a pointer 14. Which of the following declarations is legal (will not generate an error)? | int *q; 15. Which keyword can be used to allow a non-member function to see the private variables of another class? | overload 16. Consider the following main function: int main() { Time t(2, 50); t.setHour(5); t.setMinute(20); cout << "The time is " << t << endl; } What is necessary in the Time class to make this main function compile? | The Time class must have the data member t defined in the public area of the class. | | The << operator must be overloaded for the Time class | | A friend function called t is needed. 17. In which of the following ways can you write an operator overload? (Select all that apply) | in a class member function | | in a friend function 18. What is printed by these statements? int p1 = 3; int &p2 = p1; p2 = p1; cout << p1 << endl; | The address in the stack of p1 | | The address in the stack of both p1 and p2 | | 3 19. Suppose cursor is a pointer that points to a penguin node in a linked list using a penguin class that includes a member function get_link(). You wish to move cursor to point to the next node (to the next penguin) in the list. Which statement do you use? | cursor = cursor->get_link( ); | | cursor.get_link(); 20. Suppose cursor points to a penguin node in a linked list using a penguin class, which includes functions called get_data() and get_link(). What Boolean expression should be true when that penguin node is the ONLY node in the list? | cursor->get_data( ) == 0.0 | | cursor->get_data( ) == NULL | | cursor->get_link( ) == NULL | | cursor == NULL 21. The following steps have been performed for deleting a node from a linked list. The nodes have the member accessor function get_link(). The head_ptr points to the head node of a list. Step 1: Set up a local variable called remove_ptr and set it equal to head_ptr Step 2: Set head_ptr equal to the head_ptr->get_link() Step 3: Delete remove_ptr Which of the following situations should use these steps? | To delete ALL nodes from a list | | To delete a node from the front of a list | | To delete a node from the end of a list | | To delete a node from the middle (neither front nor end) of a list. 22. Which operation is better for storing items in an array than storing items on a linked list? | retrieve a copy of the item at location i. | | inserting an item at the beginning (position 0). | | deleting an item at the beginning (position 0). | | Growing the size of the container. 23. You are working with a node class named node. Suppose that f is a non-member function with a prototype like this with a missing data type in the parameter list: void f(________ head_ptr); // Precondition: head_ptr is a head pointer for a linked list. // Postcondition: The function f has done some computation with // the linked list, but the list itself is unchanged. What is the best data type for head_ptr in the parameter list of this function? | node& 24. A virtual function provides you with the ability to have several different functions with the same name in a parent and children classes and have C++ figure out which one to call at run-time. | False 25. Suppose cursor points to a node in a linked list (using the node definition with member functions called get_data and get_link). What Boolean expression will be true when cursor points to the tail node (last node) of the list? | cursor->get_link( ) == NULL | | cursor->get_data( ) == NULL 26. Consider the following class: class hourlyEmp: public employee { public: hourlyEmp(); hourlyEmp(const string& newName, const string& newSsn, double newPayRate, double newHours); double getHours() const; void setHours(double newHours); void giveRaise(double amount); void printCheck() const; private: double hours; double payRate; }; How could you create an object of this class (Select all that apply)? | employee arnold("Arnold Jones","23456664",13,20); | | employee::hourlyEmp arnold("Arnold Jones"); | | hourlyEmp arnold("Arnold Jones","23456664",13,20); 27. Which of the following is a pure abstract function? | virtual double area() {area= 0}; | | virtual double area() = 0; | | pure virtual double area() = {}; | | abstract double area(); 28. A programming language is required to provide which things in order for it to be considered an object oriented programming language? | inheritance 29. Consider the following: class base { public: void vfunc() { cout << "This is base's vfunc()." << endl; } }; class derived1 : public base { public: void vfunc() { cout << "This is derived1's vfunc()." << endl; } }; int main() { base *p, b; derived1 d1; p = &b; p -> vfunc(); // remember, this is equivalent to (*p).vfunc(); p = &d1; p -> vfunc(); } What is the output of this program? | This is base's vfunc(). This is base's vfunc(). | | This is base's vfunc(). This is derived1's vfunc(). | | This is derived1's vfunc(). This is derived1's vfunc(). | | Error. Ambiguous reference. 30. Consider the following: class base { public: virtual void vfunc() { cout << "This is base's vfunc()." << endl; } }; class derived1 : public base { public: void vfunc() { cout << "This is derived1's vfunc()." << endl; } }; int main() { base *p, b; derived1 d1; p = &b; p -> vfunc(); // remember, this is equivalent to (*p).vfunc(); p = &d1; p -> vfunc(); } What is the output of this program? | This is base's vfunc(). This is derived1's vfunc(). | | This is base's vfunc(). This is base's vfunc(). | | This is derived1's vfunc(). This is derived1's vfunc(). 31. You wish to convert a container class to a template container class. Which of the following should you consider? | Make the class visible to the client. One way to do this is to include the main function in the header file. | | Make sure operations on container data are not type specific. For example, don't use string functions on container data. | | Make implementation visible. One way to do this is to include both interface and implementation in the header file. | | Make sure all return statements that return container dataonly return container data. If a return statement returns container data under certain conditions, but another return statement returns something that is not container data under other conditions, there could be a data type conflict when a different data type is used for this template. 32. Which of the following is a container class in the Standard Template Library? (Select all that apply) | list 33. Consider the following code. string str1(3, 'a'); cout << str1 << endl; string str2(str1); cout << str2 << endl; string str3("hello", 2); cout << str3 << endl; string str5 = "How are you?"; string str6(str5, 4, 3); cout << str6 << endl; Assuming that this code has the using namespace std directive and the appropriate #include statements, what would you expect the output to be? | | | | | | | | | | | | | | | | | | | | | | | | | | | |