Point Out Correct Statements

Question 1 :

Which of the following statements correctly declare a function that receives a pointer to pointer to a pointer to a float and returns a pointer to a pointer to a pointer to a pointer to a float?


A). float **fun(float***);
B). float *fun(float**);
C). float fun(float***);
D). float ****fun(float***);
Answer : Option D

Question 2 :

Which of the statements is correct about the program?

#include < stdio.h >
int main()
{
    int i=10;
    int *j=&i;
    return 0;
}


A). j and i are pointers to an int
B). i is a pointer to an int and stores address of j
C). j is a pointer to an int and stores address of i
D). j is a pointer to a pointer to an int and stores address of i
Answer : Option C

Question 3 :

Which of the statements is correct about the program?

#include < stdio.h >
int main()
{
    float a=3.14;
    char *j;
    j = (char*)&a;
    printf("%d\n", *j);
    return 0;
}


A). It prints ASCII value of the binary number present in the first byte of a float variable a.
B). It prints character equivalent of the binary number present in the first byte of a float variable a.
C). It will print 3
D). It will print a garbage value
Answer : Option A

Question 4 :

In the following program add a statement in the function fun() such that address of a gets stored in j?

#include < stdio.h >
int main()
{
    int *j;
    void fun(int**);
    fun(&j);
    return 0;
}
void fun(int **k)
{
    int a=10;
    /* Add a statement here */
}


A). **k=a;
B). k=&a;
C). *k=&a
D). &k=*a
Answer : Option C

Question 5 :

Which of the following statements correct about k used in the below statement?
char ****k;


A). k is a pointer to a pointer to a pointer to a char
B). k is a pointer to a pointer to a pointer to a pointer to a char
C). k is a pointer to a char pointer
D). k is a pointer to a pointer to a char
Answer : Option B

Question 6 :

Which of the statements is correct about the program?

#include < stdio.h >
int main()
{
    int arr[3][3] = {1, 2, 3, 4};
    printf("%d\n", *(*(*(arr))));
    return 0;
}


A). Output: Garbage value
B). Output: 1
C). Output: 3
D). Error: Invalid indirection
Answer : Option D

Question 7 :

Which statement will you add to the following program to ensure that the program outputs "IndiaPARINAM" on execution?

#include < stdio.h >
int main()
{
    char s[] = "IndiaPARINAM";
    char t[25];
    char *ps, *pt;
    ps = s;
    pt = t;
    while(*ps)
        *pt++ = *ps++;
    /* Add a statement here */
    printf("%s\n", t);
    return 0;
}


A). *pt='';
B). pt='\0';
C). pt='\n';
D). *pt='\0';
Answer : Option D

Question 8 :

In the following program add a statement in the function fact() such that the factorial gets stored in j.

#include < stdio.h >
void fact(int*);
int main()
{
    int i=5;
    fact(&i);
    printf("%d\n", i);
    return 0;
}
void fact(int *j)
{
    static int s=1;
    if(*j!=0)
    {
        s = s**j;
        *j = *j-1;
        fact(j);
        /* Add a statement here */
    }
}


A). j=s;
B). *j=s;
C). *j=&s;
D). &j=s;
Answer : Option B