If memory for the run-time stack is only 150 cells(words), how big can N be in Factorial(N) before encounterring stack overflow?
A.
24
B.
12
C.
26
D.
50
Answer: Option C
Explanation:
Given that, the size of a run-time stack is of 150 cells (words). The arguments to evaluate the factorial are placed on the stack. A function call is made to calculate the factorial. The subroutine is executed for each time the function call is made. Each funcall creates a stack frame of co words (Cells), 2 words for n, 2 words for program counter (PC), and 2 words for some other information. The value of n should be such that, the size of the stack should not exceed 150 cells. If we consider the value of n to be 26, it executes 25 procedure calls each of it with a 6-word stack frame. In this case, the total number of words of stack space would be 150 (6 words × 25 procedure calls = 150) cells.
Therefore, the value of n will be 26 is n! before encountering a stack overflow for the stack of size 150 cells (words)
Using Pop (S1,Item) ,Push(S1, Item), Getlist(Item), Pop(S2,Item), and the variables S1,S2(stacks with Top1 and Top2) and Item and given the input file: A,B,C,D,E,F Which stack are possible?
A.
All possible stacks with A,B,C,D,E and F
B.
No possible stacks with A,B,C,D,E and F
C.
Exact and only those stacks which can be produced with S1 alone
D.
Twice as many stacks as can be produced with S1 alone