logo

CuriousTab

CuriousTab

Discussion


Home C Programming Structures, Unions, Enums Comments

  • Question
  • What will be the output of the program?
    #include<stdio.h>
    
    int main()
    {
        struct value
        {
            int bit1:1;
            int bit3:4;
            int bit4:4;
        }bit={1, 2, 13};
    
        printf("%d, %d, %d\n", bit.bit1, bit.bit3, bit.bit4);
        return 0;
    }
    


  • Options
  • A. 1, 2, 13
  • B. 1, 4, 4
  • C. -1, 2, -3
  • D. -1, -2, -13

  • Correct Answer
  • -1, 2, -3 

    Explanation
    Note the below statement inside the struct:

    int bit1:1; --> 'int' indicates that it is a SIGNED integer.

    For signed integers the leftmost bit will be taken for +/- sign.

    If you store 1 in 1-bit field:

    The left most bit is 1, so the system will treat the value as negative number.

    The 2's complement method is used by the system to handle the negative values.

    Therefore, the data stored is 1. The 2's complement of 1 is also 1 (negative).

    Therefore -1 is printed.


    If you store 2 in 4-bits field:

    Binary 2: 0010 (left most bit is 0, so system will treat it as positive value)

    0010 is 2

    Therefore 2 is printed.


    If you store 13 in 4-bits field:

    Binary 13: 1101 (left most bit is 1, so system will treat it as negative value)

    Find 2's complement of 1101:

    1's complement of 1101 : 0010
    2's complement of 1101 : 0011 (Add 1 to the result of 1's complement)

    0011 is 3 (but negative value)

    Therefore -3 is printed.

    Structures, Unions, Enums problems


    Search Results


    • 1. What will be the output of the program given below in 16-bit platform?
      #include<stdio.h>
      
      int main()
      {
          enum value{VAL1=0, VAL2, VAL3, VAL4, VAL5} var;
          printf("%d\n", sizeof(var));
          return 0;
      }
      

    • Options
    • A. 1
    • B. 2
    • C. 4
    • D. 10
    • Discuss
    • 2. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          union a
          {
              int i;
              char ch[2];
          };
          union a u;
          u.ch[0]=3;
          u.ch[1]=2;
          printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i);
          return 0;
      }
      

    • Options
    • A. 3, 2, 515
    • B. 515, 2, 3
    • C. 3, 2, 5
    • D. 515, 515, 4
    • Discuss
    • 3. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          int i=4, j=8;
          printf("%d, %d, %d\n", i|j&j|i, i|j&j|i, i^j);
          return 0;
      }
      

    • Options
    • A. 12, 12, 12
    • B. 112, 1, 12
    • C. 32, 1, 12
    • D. -64, 1, 12
    • Discuss
    • 4. What will be the output of the program?
      #include<stdio.h>
      
          struct course
          {
              int courseno;
              char coursename[25];
          };
      int main()
      {
          struct course c[] = { {102, "Java"}, 
                                {103, "PHP"}, 
                                {104, "DotNet"}     };
      
          printf("%d ", c[1].courseno);
          printf("%s\n", (*(c+2)).coursename);
          return 0;
      }
      

    • Options
    • A. 103 DotNet
    • B. 102 Java
    • C. 103 PHP
    • D. 104 DotNet
    • Discuss
    • 5. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          enum days {MON=-1, TUE, WED=6, THU, FRI, SAT};
          printf("%d, %d, %d, %d, %d, %d\n", ++MON, TUE, WED, THU, FRI, SAT);
          return 0;
      }
      

    • Options
    • A. -1, 0, 1, 2, 3, 4
    • B. Error
    • C. 0, 1, 6, 3, 4, 5
    • D. 0, 0, 6, 7, 8, 9
    • Discuss
    • 6. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          enum days {MON=-1, TUE, WED=6, THU, FRI, SAT};
          printf("%d, %d, %d, %d, %d, %d\n", MON, TUE, WED, THU, FRI, SAT);
          return 0;
      }
      

    • Options
    • A. -1, 0, 1, 2, 3, 4
    • B. -1, 2, 6, 3, 4, 5
    • C. -1, 0, 6, 2, 3, 4
    • D. -1, 0, 6, 7, 8, 9
    • Discuss
    • 7. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          struct byte
          {
              int one:1;
          };
          struct byte var = {1};
          printf("%d\n", var.one);
          return 0;
      }
      

    • Options
    • A. 1
    • B. -1
    • C. 0
    • D. Error
    • Discuss
    • 8. What will be the output of the program in Turbo C (under DOS)?
      #include<stdio.h>
      
      int main()
      {
          struct emp
          {
              char *n;
              int age;
          };
          struct emp e1 = {"Dravid", 23};
          struct emp e2 = e1;
          strupr(e2.n);
          printf("%s\n", e1.n);
          return 0;
      }
      

    • Options
    • A. Error: Invalid structure assignment
    • B. DRAVID
    • C. Dravid
    • D. No output
    • Discuss
    • 9. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          enum status {pass, fail, absent};
          enum status stud1, stud2, stud3;
          stud1 = pass;
          stud2 = absent;
          stud3 = fail;
          printf("%d %d %d\n", stud1, stud2, stud3);
          return 0;
      }
      

    • Options
    • A. 0, 1, 2
    • B. 1, 2, 3
    • C. 0, 2, 1
    • D. 1, 3, 2
    • Discuss
    • 10. Point out the error in the program?
      typedef struct data mystruct;
      struct data
      {
          int x;
          mystruct *b;
      };
      

    • Options
    • A. Error: in structure declaration
    • B. Linker Error
    • C. No Error
    • D. None of above
    • Discuss


    Comments

    There are no comments.

Enter a new Comment