C - Structure and Union
C - Structure and Union
41. Which of the following will define a type NODE that is a node in a linked list.
- struct node{ noee *next; intx;}; typedef struct node NODE;
- typedef struct NODE { struct NODE *NECT; INT X; };*
- typedef struct node NODE; struct node { NODE *next; intx;};
- typedef struct { NODE *next; int x; } NODE;
42. The size of the following union, where an int occupies 4 bytes of memory is
union arc
{
char x;
int y;
char ax [8];
} ahs;
union arc
{
char x;
int y;
char ax [8];
} ahs;
- 16 bytes
- 13 bytes
- 8 bytes
- 4 bytes
43. union rainbow
{
int a [ 5];
float x [5];
};
union rainbow color [20];
void *ptr = color;
Which of the following is the correct way to increment the variable "ptr" to point to the next member of the array from the sample above /
{
int a [ 5];
float x [5];
};
union rainbow color [20];
void *ptr = color;
Which of the following is the correct way to increment the variable "ptr" to point to the next member of the array from the sample above /
- ptr = ptr + sizeof (rainbow.a);
- ptr = (void*) ((union reainbow*) ptr +1);
- ptr = pr + sizeof (*ptr);
- ++ (int *) ptr;
44. Which is the valid declaration ?
- # typedef struct {int i;} in;
- typedef struct in {int i;};
- # typedef struct int {int i;};
- typedef struct {int i;} in;
45. The following statement is
"The soze of a struct is always equal to the sum of the sizes of its members."
"The soze of a struct is always equal to the sum of the sizes of its members."
- valid
- invalid
- can't say
- insuficient information
46. struct adr
{
char *name;
char *city;
int zip;
};
struct adr *adradr;
whioch are valid references?
(i) adr->name
(ii) adradr->name
(iii) adr. zip
(iv) adradr.zip
{
char *name;
char *city;
int zip;
};
struct adr *adradr;
whioch are valid references?
(i) adr->name
(ii) adradr->name
(iii) adr. zip
(iv) adradr.zip
- options (i) and (iii)
- option (ii) only
- options (ii) and (iv)
- option iv only
47. struct
{
int x;
int y;
}abc;
you cannot access x by the following:
1. abc->x;
2. abc[ 0 ] ->x;
3. abc.x;
4. (abc)->x;
{
int x;
int y;
}abc;
you cannot access x by the following:
1. abc->x;
2. abc[ 0 ] ->x;
3. abc.x;
4. (abc)->x;
- options 1, 2 and 4
- options 2 and 3
- options 1 and 2
- options 1, 3 and 4
48. What is the size of 'q' in the following program ?
Assume int takes 4 bytes.
union {
int x;
char y;
struct
{
char x;
char y;
int xy;
}p;
}q;
Assume int takes 4 bytes.
union {
int x;
char y;
struct
{
char x;
char y;
int xy;
}p;
}q;
- 11
- 6
- 4
- 5
49. What is the output of the following code /
union {
int no;
char ch;
} u;
u. ch = '2';
u.no = 0,
printf ("%d", u.ch);
union {
int no;
char ch;
} u;
u. ch = '2';
u.no = 0,
printf ("%d", u.ch);
- 2
- 0
- null character
- none
50. Which of these are valid declarations ?
(i) union (
int i;
int j;
};
(ii) union u-tag {
int i;
int j;
}u;
(iii) union {
int i;
int j;
FILE *k;
};
(iv) union {
int i;
int j;
} U;
(i) union (
int i;
int j;
};
(ii) union u-tag {
int i;
int j;
}u;
(iii) union {
int i;
int j;
FILE *k;
};
(iv) union {
int i;
int j;
} U;
- all are correct
- options (i), (ii) and (iv)
- options (ii) and (iv)
- option (ii) only