C Programming - C Preprocessor

1. 

Point out the error in the program

#include<stdio.h>
#define SI(p, n, r) float si; si=p*n*r/100;
int main()
{
    float p=2500, r=3.5;
    int n=3;
    SI(p, n, r);
    SI(1500, 2, 2.5);
    return 0;
}

A. 26250.00 7500.00
B. Nothing will print
C. Error: Multiple declaration of si
D. Garbage values

Answer: Option C

Explanation:

The macro #define SI(p, n, r) float si; si=p*n*r/100; contains the error. To remove this error, we have to modify this macro to

#define SI(p,n,r) p*n*r/100


2. 

Point out the error in the program

#include<stdio.h>

int main()
{
    int i;
    #if A
        printf("Enter any number:");
        scanf("%d", &i);
    #elif B
        printf("The number is odd");
    return 0;
}

A. Error: unexpected end of file because there is no matching #endif
B. The number is odd
C. Garbage values
D. None of above

Answer: Option A

Explanation:

The conditional macro #if must have an #endif. In this program there is no #endif statement written.