Consider the function in C code:Cal(a, b) {
if (b != 1) {
if (a != 1) {
printf("*");
Cal(a/2, b);
}
else {
b = b - 1;
Cal(10, b);
}
}
}How many times will * be printed if the function is called with Cal(10, 10)?
Pick an option to check yourself, or open the answer below.
Show answer & explanation
Correct answer: D. 27
Explanation
For a fixed b ≠ 1, starting from a = 10 the calls print * for a = 10, 5 and 2 (3 stars), then a = 1 decrements b and restarts with a = 10. This happens for b = 10, 9, …, 2, i.e. 9 times, giving 9 × 3 = 27 stars. When b becomes 1 the recursion stops.More Programming Languages and Computer Graphics questions
- Which of the following is the correct way to declare a function pointer in C?
- Consider the following C program:#include<stdio.h> int main() { int x[] = {2,4,6,8,10}; int a, b = 0, *y = x + 4; for (a = 0; a < 5; a++) {…
- Which of the following are TRUE about constructors in C++? (A) A constructor can be overloaded. (B) A constructor does not have a return ty…
- What is the output of the following program?#include<stdio.h> void f1(char *x, char *y) { char *t1; t1 = x; x = y; y = t1; } void f2(char *…
- Which of the following C++ statements correctly declares an abstract class?
- Consider the following C++ program:#include<iostream> using namespace std; void swap(int &x, int &y) { int temp = x; x = y; y = temp; } int…