# Evaluation of a Prefix Expression Multiple Choice Questions and Answers (MCQs)

This set of Data Structures & Algorithms Multiple Choice Questions & Answers (MCQs) focuses on “Evaluation of a Prefix Expression”.

1. What determines the order of evaluation of a prefix expression?
A) precedence and associativity
B) precedence only
C) associativity only
D) depends on the parser

Explanation: The value of precedent in deciding the assessment order cannot be overstated. Associativity kicks in when two operators have the same precedence.

2. Find the output of the following prefix expression.

`*+2-2 1/-4 2+-5 3 1`

A) 2
B) 12
C) 10
D) 4

Explanation: The value is given by (2+2-1)*(4-2)/(5-3+1)= 2 when the given prefix expression is evaluated using two stacks.

3. An error is thrown if the character ‘\n’ is pushed in to the character stack.
A) true
B) false

Explanation: The evaluation of prefix expression algorithm accepts the input character ‘n’ as a character.

4. Using the evaluation of prefix algorithm, evaluate +-9 2 7.
A) 10
B) 4
C) 17
D) 14

Explanation: Using the evaluation of prefix algorithm, +-9 2 7 is evaluated as 9-2+7=14.

5. If -*+abcd = 11, find a, b, c, d using evaluation of prefix algorithm.
A) a=2, b=3, c=5, d=4
B) a=1, b=2, c=5, d=4
C) a=5, b=4, c=7,d=5
D) a=1, b=2, c=3, d=4

Explanation: The given prefix expression is evaluated as ((1+2)*5)-4 = 11 while a=1, b=2, c=5, d=4.

6. In the given C snippet, find the statement number that has error.

```//C code to push an element into a stack
1. void push( struct stack *s, int x)
2. {
3.     if(s->top==MAX-1)
4.     {
5.         printf(“stack overflow”);
6.     }
7.     else
8.     {
9.         s->items[++s->top]=x;
10.        s++;
11.    }
12. }```

A) 1
B) 9
C) 10
D) 11

Explanation: If the stack isn’t complete, we’re incrementing the top of the stack correctly with “++s->top” and storing the value of x there. However, we are incrementing the stack base pointer unnecessarily in the next statement “s++,” which will result in memory corruption during the next push() process.

7. How many stacks are required for evaluation of prefix expression?
A) one
B) two
C) three
D) four

Explanation: The evaluation of a prefix expression necessitates the use of two stacks, one for integers and the other for characters.

8. While evaluating a prefix expression, the string is read from?
A) left to right
B) right to left
C) center to right
D) center to left to right

Explanation: Since a prefix string has operands on the right side, the string is read from right to left.

9. The associativity of an exponentiation operator ^ is right side.
A) True
B) False

Explanation: The associativity of is on the right hand, whereas the associativity of the other operators, such as +,-,*,/, is on the correct.

10. How many types of input characters are accepted by this algorithm?
A) one
B) two
C) three
D) four

Explanation: This algorithm accepts three types of data: numbers, operators, and new line characters.

We’ll take a look at each aspect of the phrase one by one. We’ll push the current element to the stack if it’s an operand. We’ll pop two operands, perform the process, operand operator operand, and then transfer the result back to the stack if it’s an operator. When the operator appears before the operands in an expression, it is referred to as a prefix expression. (operator operand1 operand2) is a simple formula. Convert a Prefix expression to a Postfix expression given a Prefix expression.