Programming in Modern C++ | Week 8
Course Name: Programming in Modern C++
Course Link: Click Here
These are Nptel Programming in Modern C++ Assignment 8 Answers
Quiz
Q1. Consider the program given below.
What will be the output?
a) int float char *
b) int float
c) int ALL
d) int ALL char *
Answer: c) int ALL
Q2. Consider the program given below.
Identify the option/s to fill in the blank at LINE-1 such that output IS NOT
PrinterErrors: :PrinterException.
a) PrinterErrors::Printer::print(-1)
b) PrinterErrors::Printer::print(0)
c) PrinterErrors::Printer::print(5)
d) PrinterErrors::Printer: :print(10)
Answer: c) PrinterErrors::Printer::print(5)
These are Nptel Programming in Modern C++ Assignment 8 Answers
Q3. Consider the following program.
What will be the output?
a) NozzleException CartridgeException CartridgeException
b) PrinterException Some other exception
c) PrinterException PrinterException
d) NozzleException Some other exception
Answer: b) PrinterException Some other exception
Q4. Consider the following program.
What will be the output?
a) NozzleException* PrinterException* CartridgeException*
b) PrinterException* PrinterException* PrinterException*
c) NozzleException*
d) 7
Answer: a) NozzleException* PrinterException* CartridgeException*
These are Nptel Programming in Modern C++ Assignment 8 Answers
Q5. Consider the following code segment.
Which of the following call/s to compare at LINE-1 will result in compiler error?
a) compare(’i’, ’k’)
b) compare (31.46, 34.0)
c) compare (31.46, 34)
d) compare(’A’, 34)
Answer: c, d
Q6. Consider the following code segment.
Choose the appropriate option to fill in the blank at LINE-1 so that the output become:
120 X
120 X
a) template < typename T1, typename T2 >
b) template < typename T1, typename T2 = char >
c) template < typename T1 = char, typename T2 = char >
d) template < typename T1 = int, typename T2 = char >
Answer: d) template < typename T1 = int, typename T2 = char >
These are Nptel Programming in Modern C++ Assignment 8 Answers
Q7. Consider the following program.
Choose the correct option to fill in the blanks at LINE-1 and LINE-2 so that the output becomes
7.85 [12, 23].
a) LINE-1: template < class point > LINE-2: class calculator<>
b) LINE-1: template < class point > LINE-2: class calculator
c) LINE-1: template<> LINE-2: class calculator < point >
d) LINE-1: template<> LINE-2: class calculator
Answer: c) LINE-1: template<> LINE-2: class calculator < point >
Q8. Consider the following code segment.
Choose the appropriate option to fill in the blank at LINE-1 and LINE-2 so that the output
becomes
15 16
a) LINE-1: int operator()
LINE-2: int operator(int j)
b) LINE-1: int data()
LINE-2: int data(int j)
c) LINE-1: int operator() ()
LINE-2: int operator()(imt j)
d) LINE-1: void operator() ()
LINE-2: void operator(int j)()
Answer: c) LINE-1: int operator() ()
LINE-2: int operator()(imt j)
These are Nptel Programming in Modern C++ Assignment 8 Answers
Q9. Consider the following code segment.
Choose the appropriate option to fill in the blank at LINE-1 so that the output becomes
30 -10
a) int caller(int& x, int& y, compute* obj, int(compute::fp) (int, int))
b) int caller(int x, int y, compute* obj, int(compute::*fp)(int, int))
c) int caller(int& x, int& y, compute* obj, int(compute::fp)(int, int))
d) int caller(int x, int y, compute* obj, int*(compute::fp) (int, int))
Answer: b) int caller(int x, int y, compute* obj, int(compute::*fp)(int, int))
Programming Assignment of Programming in Modern C++
Question 1
Consider the program below.
• Fill in the blank at LINE-1 with appropriate template definition for function average.
• Fill in the blank at LINE-2 with appropriate header for function average.
• Fill in the blank at LINE-3 with appropriate declaration of total.
• Fill in the blank at LINE-4 with appropriate declaration of size.
The program must satisfy the given test cases.
Solution:
#include <iostream>
template <typename T, typename U, int N>
void average(T arr[N], U &avg) {
T total = 0 ;
for(int i = 0; i < N; i++)
total += arr[i];
avg = (double)total / N;
}
int main(){
int size = 5;
These are Nptel Programming in Modern C++ Assignment 8 Answers
Question 2
Consider the following program.
• Fill in the blank at LINE-1 with an appropriate template definition.
• Fill in the blank at LINE-2 with appropriate initializer list for the constructor.
• Fill in the blank at LINE-3 with appropriate template definition of function print.
• Fill in the blank at LINE-4 to complete the header of function print.
The program must satisfy the sample input and output.
Solution:
#include<iostream>
template <class type, int N>
class FiveVals{
type *base;
public:
FiveVals(type a[]) : base(a) {
for(int i = 0; i < N; i++)
base[i] = a[i];
}
void print();
};
template <class type, int N>
void FiveVals<type, N>::print(){
These are Nptel Programming in Modern C++ Assignment 8 Answers
Question 3
Consider the following program, in which add function has a generic version along with a specialized version for complex type.
• Fill in the blank at LINE-1 to define the template for the generic version of add function.
• Fill in the blank at LINE-2 to define the template for the specialize version of add function.
• Fill in the blank at LINE-3 with the header of the specialize version of add function.
The program must satisfy the sample input and output.
Solution:
template<typename T>
T add(T n1, T n2){
return n1 + n2;
}
template<>
complex add<complex>(complex n1, complex n2) {
These are Nptel Programming in Modern C++ Assignment 8 Answers
These are Nptel Programming in Modern C++ Assignment 8 Answers
More Solutions of Programming in Modern C++: Click Here
More NPTEL Solutions: https://progiez.com/nptel/
