C Structure & Union C Structure & Union Please wait while the activity loads. If this activity does not load, try refreshing your browser. Also, this page requires javascript. Please visit using a browser with javascript enabled. If loading fails, click here to try again Question 1 Choose the correct output from the options given below: C #include‹stdio.h› int main() { struct site { char name[] = "GeeksQuiz"; int no_of_pages = 200; }; struct site *ptr; printf("%d ", ptr->no_of_pages); printf("%s", ptr->name); getchar(); return 0; } 200 GeeksQuiz 200 Runtime Error Compiler Error C Structure & Union Discuss itQuestion 1-Explanation: When we declare a structure or union, we actually declare a new data type suitable for our purpose. So we cannot initialize values as it is not a variable declaration but a data type declaration. Question 2Assume 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; } 48Compiler ErrorRuntime ErrorC Structure & Union Discuss itQuestion 2-Explanation: In C, struct and union types cannot have static members. In C++, struct types are allowed to have static members, but union cannot have static members in C++ also.Question 3 C 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. C Structure & Union Discuss itQuestion 3-Explanation: It defines an array, each element of which is a pointer to a structure of type node. Question 4 Consider the following C declaration C 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 C Structure & Union 50 C Language MCQs with Answers Discuss itQuestion 4-Explanation: Short array s[5] will take 10 bytes as size of short is 2 bytes. When we declare a union, memory allocated for the union is equal to memory needed for the largest member of it, and all members share this same memory space. Since u is a union, memory allocated to u will be max of float y(4 bytes) and long z(8 bytes). So, total size will be 18 bytes (10 + 8). Question 5 Choose the correct output from the options given below: C #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 C Structure & Union Discuss itQuestion 5-Explanation: A structure cannot contain a member of its own type because if this is allowed then it becomes impossible for compiler to know size of such struct. Although a pointer of same type can be a member because pointers of all types are of same size and compiler can calculate size of struct Question 6 Which of the following operators can be applied on structure variables? Equality comparison ( == ) Assignment ( = ) Both of the above None of the above C Structure & Union 50 C Language MCQs with Answers Discuss itQuestion 6-Explanation: Both of the above: In C, both equality comparison (==) and assignment (=) operators can be applied to structure variables, allowing for comparison and assignment of values between structures when their members support it. 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.12168Compiler ErrorC Structure & Union Discuss itQuestion 7-Explanation: When we declare a union, memory allocated for a union variable of the type is equal to memory needed for the largest member of it, and all members share this same memory space. In above example, \"char arr[8]\" is the largest member. Therefore size of union test is 8 bytes.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 printedGGarbage character followed by \'G\'Garbage character followed by \'G\', followed by more garbage charactersCompiler ErrorC Structure & Union Discuss itQuestion 8-Explanation: Since x and arr[4] share the same memory, when we set x = 0, all characters of arr are set as 0. O is ASCII value of \'\\0\'. When we do \"t.arr[1] = \'G\'\", arr[] becomes \"\\0G\\0\\0\". When we print a string using \"%s\", the printf function starts from the first character and keeps printing till it finds a \\0. Since the first character itself is \\0, nothing is printed.Question 9 # include <iostream> # include <string.h> using namespace std; struct Test { char str[20]; }; int main() { struct Test st1, st2; strcpy(st1.str, "GeeksQuiz"); st2 = st1; st1.str[0] = 'S'; cout << st2.str; return 0; } Segmentation FaultSeeksQuizGeeksQuizCompiler ErrorC Structure & Union Discuss itQuestion 9-Explanation: Array members are deeply copied when a struct variable is assigned to another one. See Are array members deeply copied? for more details.Question 10Predict 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 Error2 0 10 1 22 1 0C Structure & Union Discuss itQuestion 10-Explanation: Refer designated Initialization discussed here. 123 There are 22 questions to complete. You have completed questions question Your accuracy is Correct Wrong Partial-Credit You have not finished your quiz. If you leave this page, your progress will be lost. Correct Answer You Selected Not Attempted Final Score on Quiz Attempted Questions Correct Attempted Questions Wrong Questions Not Attempted Total Questions on Quiz Question Details Results Date Score Hint Time allowed minutes seconds Time used Answer Choice(s) Selected Question Text Need more practice! Keep trying! Not bad! Good work! Perfect! Last Updated : 28 Sep, 2023 Share your thoughts in the comments Add Your Comment Please Login to comment...