C++ Programming MCQ – Structures

This section on C++ interview questions and answers focuses on “Structures”. One shall practice these interview questions to improve their C++ programming skills needed for various interviews (campus interviews, walk-in interviews, company interviews), placements, entrance exams and other competitive exams. These questions can be attempted by anyone focusing on learning C++ programming language. They can be a beginner, fresher, engineering graduate or an experienced IT professional. Our C++ interview questions come with the detailed explanation of the answers which helps in better understanding of C++ concepts.

Here is a listing of C++ interview questions on “Structures” along with answers, explanations and/or solutions:

1. The data elements in the structure are also known as what?
a) objects
b) members
c) data
d) objects & data
View Answer

Answer: b
Explanation: Variables declared inside a class are called as data elements or data members.

2. What will be used when terminating a structure?
a) :
b) }
c) ;
d) ;;
View Answer

Answer: c
Explanation: While terminating a structure, a semicolon is used to end this up.

3. What will happen when the structure is declared?
a) it will not allocate any memory
b) it will allocate the memory
c) it will be declared and initialized
d) it will be declared
View Answer

Answer: a
Explanation: While the structure is declared, it will not be initialized, So it will not allocate any memory.
advertisement
advertisement

4. The declaration of the structure is also called as?
a) structure creator
b) structure signifier
c) structure specifier
d) structure creator & signifier
View Answer

Answer: c
Explanation: The structure declaration with open and close braces and with a semicolon is also called structure specifier.

5. What will be the output of the following C++ code?

  1.     #include <iostream>
  2.     #include <string.h>
  3.     using namespace std;
  4.     int main()
  5.     {
  6.         struct student 
  7.         {
  8.             int num;
  9.             char name[25];
  10.         };
  11.         student stu;
  12.         stu.num = 123;
  13.         strcpy(stu.name, "John");
  14.         cout << stu.num << endl;
  15.         cout << stu.name << endl;
  16.         return 0;
  17.     }

a)

123
john
advertisement

b)

john
john

c) compile time error
d) runtime error
View Answer

Answer: a
Explanation: We are copying the value john to the name and then we are printing the values that are in the program.
Output:

advertisement
$ g++ stu.cpp
$ a.out
123
john

6. What will be the output of the following C++ code?

  1.     #include <iostream>
  2.     using namespace std;
  3.     struct Time 
  4.     {
  5.         int hours;
  6.         int minutes;
  7.         int seconds;
  8.     };
  9.     int toSeconds(Time now);
  10.     int main()
  11.     {
  12.         Time t;
  13.         t.hours = 5;
  14.         t.minutes = 30;
  15.         t.seconds = 45;
  16.         cout << "Total seconds: " << toSeconds(t) << endl;
  17.         return 0;
  18.     }
  19.     int toSeconds(Time now)
  20.     {
  21.         return 3600 * now.hours + 60 * now.minutes + now.seconds;
  22.     }

a) 19845
b) 20000
c) 15000
d) 19844
View Answer

Answer: a
Explanation: In this program, we are just converting the given hours and minutes into seconds.
Output:

$ g++ stu1.cpp
$ a.out
Total seconds:19845

7. What will be the output of the following C++ code?

  1.     #include <iostream>
  2.     using namespace std;
  3.     int main()
  4.     {
  5.         struct ShoeType 
  6.         {
  7.            string style;
  8.            double price;
  9.         };
  10.          ShoeType shoe1, shoe2;
  11.          shoe1.style = "Adidas";
  12.          shoe1.price = 9.99;
  13.          cout << shoe1.style << " $ "<< shoe1.price;
  14.          shoe2 = shoe1;
  15.          shoe2.price = shoe2.price / 9;
  16.          cout << shoe2.style << " $ "<< shoe2.price;
  17.          return 0;
  18.     }

a) Adidas $ 9.99Adidas $ 1.11
b) Adidas $ 9.99Adidas $ 9.11
c) Adidas $ 9.99Adidas $ 11.11
d) Adidas $ 11.11Adidas $ 11.11
View Answer

Answer: a
Explanation: We copied the value of shoe1 into shoe2 and divide the shoe2 value by 9, So this is the output.
Output:

$ g++ stu2.cpp
$ a.out
Adidas $ 9.99
Adidas $ 1.11

8. What will be the output of the following C++ code?

  1.     #include <iostream>
  2.     using namespace std;
  3.     struct sec 
  4.     {
  5.         int a;
  6.         char b;
  7.     };
  8.     int main()
  9.     {
  10.         struct sec s ={25,50};
  11.         struct sec *ps =(struct sec *)&s;
  12.         cout << ps->a << ps->b;
  13.         return 0;
  14.     }

a) 252
b) 253
c) 254
d) 262
View Answer

Answer: a
Explanation: In this program, We are dividing the values of a and b, printing it.
Output:

$ g++ stu5.cpp
$ a.out
252

9. Which of the following is a properly defined structure?
a) struct {int a;}
b) struct a_struct {int a;}
c) struct a_struct int a;
d) struct a_struct {int a;};
View Answer

Answer: d
Explanation: option struct {int a;} is not correct because name of structure and ;(after declaration) are missing. In option struct a_struct {int a;} ; is missing. In option struct a_struct int a; {} are missing.

10. Which of the following accesses a variable in structure *b?
a) b->var;
b) b.var;
c) b-var;
d) b>var;
View Answer

Answer: a
Explanation: Because arrow operator(->) is used to access members of structure pointer whereas dot operator(.) is used to access normal structure variables.

Sanfoundry Global Education & Learning Series – C++ Programming Language.

To practice all areas of C++ language, here is complete set of 1000+ Multiple Choice Questions and Answers.

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.