## Structures problems

• 1. Which of the following statements are correct?

1. A struct can contain properties.
2. A struct can contain constructors.
3. A struct can contain protected data members.
4. A struct cannot contain methods.
5. A struct cannot contain constants.

• Options
• A. 1, 2
• B. 3, 4
• C. 1, 2, 4
• D. 3, 5
• 2. Which of the following are true about classes and struct?

1. A class is a reference type, whereas a struct is a value type.
2. Objects are created using new, whereas structure variables can be created either using new or without using new.
3. A structure variable will always be created slower than an object.
4. A structure variable will die when it goes out of scope.
5. An object will die when it goes out of scope.

• Options
• A. 1, 2, 4
• B. 3, 5
• C. 2, 4
• D. 3, 4, 5
• 3. Creating empty structures is allowed in C#.NET.

• Options
• A. True
• B. False
• 4. Which of the following is the correct way of setting values into the structure variable e defined below?

```struct Emp
{
public String name;
public int age;
public Single sal;
}
Emp e = new Emp();```

• Options
• A.
``````e.name = "Amol";
e.age = 25;
e.sal = 5500;``````
• B.
``````With e
{
.name = "Amol";
.age = 25;
.sal = 5500;
}``````
• C.
``````With emp e
{
.name = "Amol";
.age = 25;
.sal = 5500;
}``````
• D.
``````e -> name = "Amol";
e -> age = 25;
e -> sal = 5500;``````
• E.
``````name = "Amol";
age = 25;
sal = 5500;``````
• 5. Which of the following statements are correct about the structure declaration given below?

```struct Book
{
private String name;
protected int totalpages;
public Single price;
public void Showdata()
{
Console.WriteLine(name + " " + totalpages + " " + price);
}
Book()
{
name = " ";
totalpages = 0;
price = 0.0f;
}
}
Book b = new Book();```
1. We cannot declare the access modifier of totalpages as protected.
2. We cannot declare the access modifier of name as private.
3. We cannot define a zero-argument constructor inside a structure.
4. We cannot declare the access modifier of price as public.
5. We can define a Showdata() method inside a structure.

• Options
• A. 1, 2
• B. 1, 3, 5
• C. 2, 4
• D. 3, 4, 5
• 6. How many bytes will the structure variable samp occupy in memory if it is defined as shown below?

```class Trial
{
int i;
Decimal d;
}
struct Sample
{
private int x;
private Single y;
private Trial z;
}
Sample samp = new Sample();```

• Options
• A. 20 bytes
• B. 12 bytes
• C. 8 bytes
• D. 16 bytes
• E. 24 bytes
• 7. When would a structure variable get destroyed?

• Options
• A. When no reference refers to it, it will get garbage collected.
• B. Depends upon whether it is created using new or without using new.
• C. When it goes out of scope.
• D. Depends upon the Project Settings made in Visual Studio.NET.
• E. Depends upon whether we free it's memory using free() or delete().
• 8. Which of the following will be the correct output for the C#.NET program given below?

```namespace CuriousTabConsoleApplication
{
struct Sample
{
public int i;
}
class MyProgram
{
static void Main()
{
Sample x = new Sample();
x.i = 10;
fun(x);
Console.Write(x.i + " ");
}
static void fun(Sample y)
{
y.i = 20;
Console.Write(y.i + " ");
}
}
}```

• Options
• A. 10 20
• B. 10 10
• C. 20 10
• D. 20 20
• E. None of the above
• 9. Which of the following will be the correct output for the program given below?

```namespace CuriousTabConsoleApplication
{
struct Sample
{
public int i;
}
class MyProgram
{
static void Main(string[] args)
{
Sample x = new Sample();
Sample y;
x.i = 9;
y = x;
y.i = 5;
Console.WriteLine(x.i + " " + y.i);
}
}
}```

• Options
• A. 9 9
• B. 9 5
• C. 5 5
• D. 5 9
• E. None of the above
• 10. Which of the following statements is correct?

• Options
• A. A struct never declares a default constructor.
• B. All value types in C# inherently derive from ValueType, which inherits from Object.
• C. A struct never declares a default destructor.
• D. In C#, classes and structs are semantically same.