chap 20 Flashcards
(22 cards)
A ________ function is one that calls itself
A) dynamic
B) static
C) recursive
D) data validation
E) None of these
Answer: C
Recursion can be used to:
A) compute factorials
B) find GCD’s
C) traverse linked lists
D) All of these
E) None of these
Answer: D
The ________ algorithm uses recursion to efficiently sort a list.
A) shell sort
B) quicksort
C) binary sort
D) red/black sort
E) None of these
Answer: B
f a recursive function does not contain a base case, it ________.
A) returns 0 and stops
B) returns false and stops
C) uses up all available stack memory, causing the program to crash
D) reaches the recursive case and stops
E) None of these
Answer: C
The ________ of recursion is the number of times a recursive function calls itself.
A) level
B) breadth
C) type
D) depth
E) None of these
Answer: D
The QuickSort algorithm works on the basis of
A) three sublists
B) two sublists and a pivot
C) two pivots and a sublist
D) three pivots
E) None of these
Answer: B
The programmer must ensure that a recursive function does not become:
A) a static function
B) a virtual function
C) an endless loop
D) a dynamic function
E) None of these
Answer: C
When function A calls function B, which in turn calls function A, this is known as:
A) direct recursion
B) indirect recursion
C) function swapping
D) perfect recursion
E) None of these
Answer: B
A recursive function is designed to terminate when it reaches its ________.
A) return statement
B) base case
C) closing curly brace
D) last parameter
E) None of these
Answer: B
The recursive factorial function calculates the factorial of its parameter. Its base case is when the
parameter is ________.
A) returned
B) received
C) amortized
D) zero
E) None of these
Answer: D
The QuickSort algorithm was developed in 1960 by ________.
A) Bjarne Stroustrup
B) Tony Gaddis
C) C.A.R. Hoare
D) C.M. Turner
E) None of these
Answer: C
The QuickSort algorithm is used to sort ________.
A) lists stored in arrays or linear linked lists
B) tree data structures
C) randomly-ordered files
D) All of these
E) None of these
Answer: A
ow many times will the following function call itself, if the value 5 is passed as the argument?
void showMessage(int n)
{
if (n > 0)
{
cout «_space;“Good day!” «_space;endl;
showMessage(n - 1);
}
}
A) 1
B) 4
C) 5
D) An infinite number of times
Answer: C
How many times will the following function call itself, if the value 5 is passed as the argument?
void showMessage(int n)
{
if (n > 0)
{
cout «_space;“Good day!” «_space;endl;
showMessage(n + 1);
}
}
A) 1
B) 4
C) 5
D) An infinite number of times
Answer: D
1) True/False: Like a loop, a recursive function must have some method to control the number of times it
repeats.
Answer: TRUE
True/False: When a recursive function directly calls itself, this is known as direct recursion.
Answer: TRUE
True/False: Indirect recursion means that a function calls itself
n number of times, then processing of the
function starts from the first call.
Answer: FALSE
True/False: A recursive function cannot call another function.
Answer: FALSE
True/False: Recursive algorithms are less efficient than iterative algorithms.
Answer: TRUE
True/False: Any algorithm that can be coded with recursion can also be coded with an iterative structure.
Answer: TRUE
True/False: When recursion is used on a linked list, it will always display the contents of the list in reverse
order.
Answer: FALSE
True/False: The speed and amount of memory available to modern computers diminishes the
performance impact of recursion so much that inefficiency is no longer a strong argument against it.
Answer: TRUE