Exercise: Questions on Structure & Union


Questions on Structure & Union : Question 1 :
 #include 
 int main()
 {
     struct site
     {
         char name[] = "PROcoder";
         int no_of_pages = 300;
     };
     struct site *ptr;
     printf("%d ", ptr->no_of_pages);
     printf("%s", ptr->name);
     getchar();
     return 0;
 }
 

300 PROcoder
300
Runtime Error
Compiler Error
Show Answer
Questions on Structure & Union : Question 2 :
Assume that size of an integer is 32 bit. What is the output of following program?
#include<stdio.h>
struct st
{
    int x;
    static int y;
};

int main()
{
    printf("%d", sizeof(struct st));
    return 0;
}

4
8
Compiler Error
Runtime Error
Show Answer
Questions on Structure & Union : Question 3 :
struct node 
{ 
   int i; 
   float j; 
}; 
struct node *s[10];
The above C declaration define 's' to be (GATE CS 2000)

An array, each element of which is a pointer to a structure of type node
A structure of 2 fields, each field being a pointer to an array of 10 elements
A structure of 3 fields: an integer, a float, and an array of 10 elements
An array, each element of which is a structure of type node.
Show Answer
Questions on Structure & Union : Question 4 :
Consider the following C declaration
struct { 
    short s[5];
    union { 
         float y; 
         long z; 
    }u; 
} t;
Assume that objects of the type short, float and long occupy 2 bytes, 4 bytes and 8 bytes, respectively. The memory requirement for variable t, ignoring alignment considerations, is (GATE CS 2000)

22 bytes
14 bytes
18 bytes
10 bytes
Show Answer
Questions on Structure & Union : Question 5 :
#include<stdio.h> 
struct st 
{ 
    int x; 
    struct st next; 
}; 
  
int main() 
{ 
    struct st temp; 
    temp.x = 10; 
    temp.next = temp; 
    printf("%d", temp.next.x); 
    return 0; 
}

Compiler Error
10
Runtime Error
Garbage Value
Show Answer
Questions on Structure & Union : Question 6 :
Which of the following operators can be applied on structure variables?

Equality comparison ( == )
Assignment ( = )
Both of the above
None of the above
Show Answer
Questions on Structure & Union : Question 7 :
union test
{
    int x;
    char arr[8];
    int y;
};

int main()
{
    printf("%d", sizeof(union test));
    return 0;
}
Predict the output of above program. Assume that the size of an integer is 4 bytes and size of character is 1 byte. Also assume that there is no alignment needed.

12
16
8
Compiler Error
Show Answer
Questions on Structure & Union : Question 8 :
union test
{
    int x;
    char arr[4];
    int y;
};

int main()
{
    union test t;
    t.x = 0;
    t.arr[1] = 'G';
    printf("%s", t.arr);
    return 0;
}
Predict the output of above program. Assume that the size of an integer is 4 bytes and size of character is 1 byte. Also assume that there is no alignment needed.

Nothing is printed
G
Garbage character followed by 'G'
Garbage character followed by 'G', followed by more garbage characters
Compiler Error
Show Answer
Questions on Structure & Union : Question 9 :
 # include <iostream>
 # include <string.h>
 using namespace std;
 
 struct Test
 {
   char str[20];
 };
 
 int main()
 {
   struct Test st1, st2;
   strcpy(st1.str, "PROcoder");
   st2 = st1;
   st1.str[0] = 'S';
   cout << st2.str;
   return 0;
 }
 

Segmentation Fault
coder
PROcoder
Compiler Error
Show Answer
Questions on Structure & Union : Question 10 :
Predict the output of following C program
#include<stdio.h>
struct Point
{
  int x, y, z;
};

int main()
{
  struct Point p1 = {.y = 0, .z = 1, .x = 2};
  printf("%d %d %d", p1.x, p1.y, p1.z);
  return 0;
}

Compiler Error
2 0 1
0 1 2
2 1 0
Show Answer