C Quiz - 109

    Last Updated :
    Discuss
    Comments

    Question 1

    In the following program snippet, both s1 and s2 would be variables of structure type defined as below and there won't be any compilation issue.

    C
    typedef struct Student
    {
     int rollno;
     int total;
    } Student;
    
    Student s1;
    struct Student s2;
    
    • Both s1 and s2 are valid variables of the same structure type, and the code compiles without any error

    • s1 is valid, but s2 causes a compilation error because the struct tag name and typedef name cannot be the same.

    • s2 is valid, but s1 causes a compilation error because Student can only be used with the struct keyword

    • The code compiles, but s1 and s2 are of different types because typedef creates a new unrelated type.

    Question 2

    Find out the correct statement for the following program. C
    #include "stdio.h"
    
    int * arrPtr[5];
    
    int main()
    {
     if(*(arrPtr+2) == *(arrPtr+4))
     {
       printf("Equal!");
     }
     else
     {
      printf("Not Equal");
     }
     return 0;
    }
    
    • Compile Error
    • It’ll always print Equal.
    • It’ll always print Not Equal.
    • Since elements of arrPtr aren’t initialized in the program, it’ll print either Equal or Not Equal.

    Question 3

    Pick the best statement for the following program. C
    #include "stdio.h"
    
    int foo(int a)
    {
     printf("%d",a);
     return 0;
    }
    
    int main()
    {
     foo;
     return 0;
    }
    
    • It’ll result in compile error because foo is used without parentheses.
    • No compile error and some garbage value would be passed to foo function. This would make foo to be executed with output “garbage integer”.
    • No compile error but foo function wouldn’t be executed. The program wouldn\'t print anything.
    • No compile error and ZERO (i.e. 0) would be passed to foo function. This would make foo to be executed with output 0.

    Question 4

    Find out the correct statement for the following program. C
    #include "stdio.h"
    
    typedef int (*funPtr)(int);
    
    int inc(int a)
    {
     printf("Inside inc() %d\\n",a);
     return (a+1);
    }
    
    int main()
    {
    
     funPtr incPtr1 = NULL, incPtr2 = NULL;
    
     incPtr1 = &inc; /* (1) */
     incPtr2 = inc; /* (2) */
    
     (*incPtr1)(5); /* (3) */
     incPtr2(5); /* (4)*/
    
     return 0;
    }
    
    • Line with comment (1) will give compile error.
    • Line with comment (2) will give compile error.
    • Lines with (1) & (3) will give compile error.
    • Lines with (2) & (4) will give compile error.
    • No compile error and program will run without any issue.

    Question 5

    Find out the correct statement for the following program. C
    #include "stdio.h"
    
    int * gPtr;
    
    int main()
    {
     int * lPtr = NULL;
    
     if(gPtr == lPtr)
     {
       printf("Equal!");
     }
     else
     {
      printf("Not Equal");
     }
    
     return 0;
    }
    
    • It’ll always print Equal.
    • It’ll always print Not Equal.
    • Since gPtr isn’t initialized in the program, it’ll print sometimes Equal and at other times Not Equal.
    Tags:

    There are 5 questions to complete.

    Take a part in the ongoing discussion