Programming in Modern C++ | Week 11

Course Name: Programming in Modern C++

Course Link: Click Here

These are Nptel Programming in Modern C++ Assignment 11 Answers


Quiz

Q1. Consider the program (in C++11) given below.
Choose the appropriate option to fill in the blank at LINE-1 so that the output becomes

base – lvalue : 10
base – rvalue : 20

a) LINE-1: a1_(n1), a2_(n2)
b) LINE-1: a1_(std::forward< T1 >(n1)), a2_(std::forward< U >(n2))
c) LINE-1: a1_(n1), a2 (std::forward< U >(n2))
d) LINE-1: a1_(std::forward< T1 >(n1)), a2_(n2)

Answer: b, c


Q2. Consider the code segment (in C++11) given below.
Identify the line/s where && indicates a universal reference.

a) LINE-1
b) LINE-2
c) LINE-3
d) LINE-4

Answer: b, d


These are Nptel Programming in Modern C++ Assignment 11 Answers


Q3. Consider the following code segment (in C++11).
Identify the statement /s which are true for the given program.

a) It generates compiler error at LINE-1
b) It generates compiler error at LINE-2
c) It generates compiler error at LINE-3
d) It generates the output true

Answer: b, c


Q4. Consider the following code segment.
Identify the appropriate code block to be placed at code-block-1 such that the output is 60
50 40 20 10 .

a) bool compare(int a, int b){ return a > b; }
b) struct compare{
bool operator() (int a, int b){ return a > b; }
}
c) class compare{
bool operator() (int a, int b){ return a > b; }
}
d) bool operator() (int a, int b){ return a > b; }

Answer: b) struct compare{
bool operator() (int a, int b){ return a > b; }
}


These are Nptel Programming in Modern C++ Assignment 11 Answers


Q5. Consider the following code segment (in C++11).
Which of the following line/s generate/s compiler error/s?

a) LINE-1
b) LINE-2
c) LINE-3
d) LINE-4

Answer: a, c


Q6. Consider the following code segment (in C++11).
What will be the output?

a) #1
b) #2 #1
c) #4 #2 #1
d) #1 #2 #4

Answer: c) #4 #2 #1


These are Nptel Programming in Modern C++ Assignment 11 Answers


Q7. Consider the following program (in C++14).
What will be the output?

a) 254, 254
b) 10000, 10000
c) 10000, 254
d) 254, 10000

Answer: c) 10000, 254


Q8. Consider the following A expression (in C++11).
Identify the most appropriate option that define the equivalent closure object for the above lambda function.

a)
b)
c)
d)

Answer: b)


These are Nptel Programming in Modern C++ Assignment 11 Answers


Q9. Consider the following code segment (in C++11).
Which of the following lines will generate compiler error/s?

a) LINE-1
b) LINE-2
c) LINE-3
d) LINE-4

Answer: a, b, c, d


Programming Assignment of Programming in Modern C++

Question 1

Consider the following program (in C++11).
    • Fill in the blanks at LINE-1 and LINE-3 with appropriate template definitions.
    • Fill in the blanks at LINE-2 and LINE-4 with appropriate parameters for findMax function.
The program must satisfy the sample input and output.

Solution:

#include <iostream>

template<typename T>

double findMax(T num){ return num; }

template<typename T, typename... Args>

double findMax(T num, Args... nums){

    return num >= findMax(nums...) ? num : findMax(nums...);
}

These are Nptel Programming in Modern C++ Assignment 11 Answers


Question 2

Consider the following program (in C++11). Fill in the blanks as per the instructions given below:
    • Fill in the blank at LINE-1 with an appropriate template declaration for the function  wrapper.    
    • Fill in the blank at LINE-2 with an appropriate header for function wrapper.
    • Fill in the blank at LINE-3 with an appropriate return statement for function wrapper.
The program must satisfy the sample input and output.

Solution:

template<typename T, typename U, typename V>
  double wrapper (V&& v, Summation<T, U> s, const std::vector<T>& v1, const std::vector<U>& v2){
  return s(v, v1, v2);
}
template<typename T, typename U, typename V>
  double wrapper (V&& v, Summation<T, U> s, std::vector<T>&& v1, std::vector<U>&& v2){
  return s(v, std::move (v1), std::move (v2));
}

These are Nptel Programming in Modern C++ Assignment 11 Answers


Question 3

Consider the following program (in C++11) to find factorials of 3 integers. Fill in the blanks as per the instructions given below:
    • Fill in the blank at LINE-1 to complete the λ function for computing factorial.
    • Fill in the blank at LINE-2 to complete the λ function for printing the vector v2.
The program must satisfy the sample input and output.

Solution:

for (auto i : v1)
{
  long long factorial = 1;
  for (int j = 1; j <= i; j++)
  {
    factorial *= j;
  }
  v2.push_back (factorial);
}
for (auto i : v2)
{
  std::cout << i << " ";
}
return 0;
}

These are Nptel Programming in Modern C++ Assignment 11 Answers



These are Nptel Programming in Modern C++ Assignment 11 Answers

More Solutions of Programming in Modern C++: Click Here

More NPTEL Solutions: https://progiez.com/nptel/


These are Nptel Programming in Modern C++ Assignment 11 Answers