An Introduction to Programming Through C++ | NPTEL 2022 | Week 9 Answers

This set of MCQ(multiple choice questions) focuses on the An Introduction to Programming Through C++ NPTEL 2022 Week 9 Answers.

Course layout

Answers COMING SOON! Kindly Wait!

NOTE: You can check your answer immediately by clicking show answer button. An Introduction to Programming Through C++ NPTEL 2022 Week 9 Assignment Answers” contains 12 questions.

Now, start attempting the quiz.

An Introduction to Programming Through C++ NPTEL 2022 Week 9 Assignment Answers

Consider the following piece of code:
struct x {
int y;
int z;
};

Q1. Which of the following is true

a) The code creates a structure type named x.
b) The code creates a structure variable named x.
c) The code creates variables y and z.
d) The code has a syntax error.

Answer: a) The code creates a structure type named x.

Q2. What is the value of Q.x?

Answer: 60

Q3. What is the value of L2.p1.y?

Answer: 12

Q4. Which of the following statements will be syntactically incorrect following the code given above?

a) L1 = L2;
b) L1.p1 = L2;
c) L1.p2 = L2.p1;
d) L2.p2.x = L2.p1.y;

Answer: b) L1.p1 = L2;

Q5. What should blank1 be?

Answer: marklist[i].name[0]

An Introduction to Programming Through C++ NPTEL Week 9 Assignment Answers

Q6. What should blank2 be?

Answer: marklist[i].marks

Q7. What is the first number printed?

Answer: 12

An Introduction to Programming Through C++ NPTEL Week 9 Assignment Answers

Q8. What is the second number printed?

Answer: 9

Q9. Which of these lines give a compiler error:

a) Line 1, Line 2
b) Line 2, Line 3
c) Only Line 3
d) Only Line 1

Answer: c) Only Line 3

Q10. We can prevent the compiler error by:

a) Writing a constructor for the Counter class
b) Changing the access specifier for the member variable x
c) Changing the access specifier for the member function inc
d) Including iostream in the program

Answer: b) Changing the access specifier for the member variable x

An Introduction to Programming Through C++ NPTEL week 9 Assignment Solutions

Q11. Which the following is true?

a) The second statement will cause a compile-time error because the assignment operator was not defined for the class rational.
b) The second statement will cause a compile-time error because the addition operator was not defined for the class rational.
c) The second statement will cause a compile-time error for some different reason.
d) The second statement will not cause a compile-time error.

Answer: b) The second statement will cause a compile-time error because the addition operator was not defined for the class rational.

Q12. Which of the following is true?

a) The third statement will cause a compile-time error because there is no constructor for rational that does not take any arguments.
b) The third statement will cause a compile-time error because I have not defined a destructor for the rational.
c) The third statement will not cause a compile-time error.

Answer: a) The third statement will cause a compile-time error because there is no constructor for rational that does not take any arguments.

Q13. What is the first number printed by this code?

Answer: 15

Q14. What is the second number printed by this code?

Answer: 5

Q15. What is the third number printed by this code?

Answer: 16

Q16. What is the fourth number printed by this code?

Answer: 5

An Introduction to Programming Through C++ NPTEL Week 9 Programming Assignment Answers

Programming Assignment 9.1

Define a class for storing time durations. A time duration is a triple h, m, s of non negative integers, respectively denoting the number of hours, minutes and seconds. The numbers should satisfy the natural condition that h >= 0, 60 > m >=0, and 60 > s >= 0. Define constructors that create a duration given arguments h, m, s, and also a constructor with no arguments which creates a duration of 0 hours 0 minutes 0 seconds. It should be possible to add durations but in the result duration you should ensure that the natural condition is satisfied. Similarly it should be possible to multiply a duration D by a non negative integer I, this should result in a duration that is I time as large as D. Again the result should satisfy the natural constraints. Thus 4 times 1 hour 30 minutes 23 seconds should give the duration 6 hours 1 minute 32 seconds. Finally the class should support a member function print which prints h,m,s i.e. only with intervening commas and no spaces nor new lines.

CODE:

class Duration
 {
    int hour, min, sec;

    public:
    Duration(int h, int m, int s)
 {
    
        hour = h;
        min = m;
        sec = s;
    }

    Duration()
 {
        hour = 0;
        min = 0;
        sec = 0;
    }

    void format()
 {
        min = min + sec / 60;
        hour = hour + min / 60;
        sec = sec % 60;
        min = min % 60;
    }

    Duration operator +(Duration &d)
 {
        Duration t;
        t.sec = sec + d.sec;
  
        t.min = min + d.min;
        t.hour = hour + d.hour;
        t.format();
        return (t);
    }

    Duration operator *(int i)
 {
        Duration t;
        t.sec = sec*i;
        t.min = min*i;
        t.hour = hour*i;
        t.format();
        return(t);
    }

    void print()
 {
        cout << hour << "," << min << "," << sec;
}
};

Programming Assignment 9.2

Rectangles whose sides are parallel to the coordinate axes can be represented by specifying the coordinates of diagonally opposite vertices.Suppose the southwest and northeast corners are (x1, y1) and (x3, y3). Clearly these 4 numbers determine the other two corners as well:they will be (x1, y3) and(x3 , y1). Define a struct Rect with integer members x1, y1, x3, y3. Define a function intersect which takes 2rectangles as arguments and returns a rectangle that is the intersection of the area spanned by the two rectangles. If the intersection is empty thenthe returned rectangle should have all coordinates 0. Note that, by “rectangle” we are only talking about the inside of the rectangle withoutincluding the boundary. So if two rectangles were to touch just at one edge, then their intersection is still empty.

CODE:

struct Rect
{
   int x1, y1, x3, y3;
};
struct Rect intersect(struct Rect r1, struct Rect r2)
{
   struct Rect r;
   if((r1.x1 >= r2.x3) || (r2.x1 >= r1.x3) || (r1.y1 >= r2.y3) || (r2.y1 >= r1.y3))
   {
      r.x1 = r.x3 = r.y1 = r.y3 = 0;
   }
   else
   {
      if(r1.x1 > r2.x1)
         r.x1 = r1.x1;
      else
         r.x1 = r2.x1;
      if(r1.y1 > r2.y1)
         r.y1 = r1.y1;
      else
         r.y1 = r2.y1;
      if(r1.x3 < r2.x3)
         r.x3 = r1.x3;
      else
         r.x3 = r2.x3;
      if(r1.y3 < r2.y3)
         r.y3 = r1.y3;
      else
         r.y3 = r2.y3;
   }
   return (r);
}

<< Prev- An Introduction to Programming Through C++ Week 8 Solutions

>> Next- An Introduction to Programming Through C++ Week 10 Solutions


DISCLAIMER: Use these answers only for the reference purpose. Quizermania doesn't claim these answers to be 100% correct. So, make sure you submit your assignments on the basis of your knowledge.

For discussion about any question, join the below comment section. And get the solution of your query. Also, try to share your thoughts about the topics covered in this particular quiz.

Leave a Comment

Your email address will not be published. Required fields are marked *