Find Output Of Program

Question 1 :

What will be the output of the program?

#include < stdio . h >
#include < stdlib . h >

int main()
{
    int *p;
    p = (int *) malloc (20); /* Assume p has address of 1314 */
    free(p);
    printf("%u", p);
    return 0;
}


A). 1314
B). Garbage value
C). 1316
D). Random address
Answer : Option A

Question 2 :

What will be the output of the program (16-bit platform)?

#include < stdio . h >
#include < stdlib . h >
int main()
{
    int *p;
    p = (int *) malloc (20);
    printf("%d\n", sizeof (p));
    free(p);
    return 0;
}


A). 4
B). 2
C). 8
D). Garbage value
Answer : Option B

Question 3 :

What will be the output of the program?

#include < stdio . h >
#include
int main()
{
    char *s;
    char *fun();
    s = fun();
    printf("%s\n", s);
    return 0;
}
char *fun()
{
    char buffer[30];
    strcpy(buffer, "RAM");
    return (buffer);
}


A). 0xffff
B). Garbage value
C). 0xffee
D). Error
Answer : Option B

Explanation :

The output is unpredictable since buffer is an auto array and will die when the control go back to main. Thus s will be pointing to an array , which not exists.


Question 4 :

What will be the output of the program?

#include < stdio . h >
#include < stdlib . h >
int main()
{
    union test
    {
        int i;
        float f;
        char c;
    };
    union test *t;
    t = (union test *)malloc(sizeof(union test));
    t->f = 10.10f;
    printf("%f", t->f);
    return 0;
}


A). 10
B). Garbage value
C). 10.100000
D). Error
Answer : Option C

Question 5 :

Assume integer is 2 bytes wide. How many bytes will be allocated for the following code?

#include < stdio . h >
#include < stdlib . h >
#define MAXROW 3
#define MAXCOL 4

int main()
{
    int (*p)[MAXCOL];
    p = (int (*) [MAXCOL]) malloc (MAXROW *sizeof(*p));
    return 0;
}


A). 56 bytes
B). 128 bytes
C). 24 bytes
D). 12 bytes
Answer : Option C