Find Output Of Program

Question 21 :

What will be the output of the program ?

#include < stdio.h >
#include < string.h >
int main()
{
    int i, n;
    char *x="Alice";
    n = strlen(x);
    *x = x[n];
    for(i=0; i<=n; i++)
    {
        printf("%s ", x);
        x++;
    }
    printf("\n", x);
    return 0;
}


A). Alice
B). ecilA
C). Alice lice ice ce e
D). lice ice ce e
Answer : Option D

Explanation :

If you compile and execute this program in windows platform with Turbo C, it will give "lice ice ce e".

It may give different output in other platforms (depends upon compiler and machine). The online C compiler given in this site will give the Option C as output (it runs on Linux platform).


Question 22 :

What will be the output of the program ?

#include < stdio.h >
int main()
{
    int i, a[] = {2, 4, 6, 8, 10};
    change(a, 5);
    for(i=0; i<=4; i++)
        printf("%d, ", a[i]);
    return 0;
}
void change(int *b, int n)
{
    int i;
    for(i=0; i < n; i++)
        *(b+1) = *(b+i)+5;
}


A). 7, 9, 11, 13, 15
B). 2, 15, 6, 8, 10
C). 2 4 6 8 10
D). 3, 1, -1, -3, -5
Answer : Option B

Question 23 :

If the size of integer is 4bytes, What will be the output of the program?

#include < stdio.h >

int main()
{
    int arr[] = {12, 13, 14, 15, 16};
    printf("%d, %d, %d\n", sizeof(arr), sizeof(*arr), sizeof(arr[0]));
    return 0;
}


A). 10, 2, 4
B). 20, 4, 4
C). 16, 2, 2
D). 20, 2, 2
Answer : Option B