CPA – Programming Essentials in C++ Chapter 2 Module 4

Question 1:
What is the output of the following snippet?
#include <iostream>
   
using namespace std;
   
string operator>(float l, float r) { if(int(l) > int(r)) return "true"; else return "false"; }
   
int main() {
    float l = 2.0, r=2.9999;
    cout << (l > r);
    return 0;
}
 
Answer: It prints an empty string
 
Question 2: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
    Int &operator--() {
        ++v;
        return *this;
    }
};
   
ostream &operator <<(ostream &o, Int &a) {
    return o << --a.v;
}
    
int main() {
    Int i = 2;
    cout << i;
    return 0;
}
 
Answer: 1
 
Question 3: What is the output of the following snippet?
#include <iostream>
#include <string>
    
using namespace std;
    
class N {
public:
    float x;
    N() { x = 0.0; }
    N(float a) { x = a; }
    N(N &n) { x = n.x; }
    string operator==(float f) { if(int(x) == int(f)) return "true"; else return "false"; }
};
    
int main() {
    N a(1.1);
    cout << (a == 1.9);
    return 0;
}
 
Answer: True
 
Question 4: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
    Int &operator--() {
        ++v;
        ++v; 
        return *this;
    }
};
    
ostream &operator <<(ostream &o, Int &a) {
    return o << a.v++;
}
    
int main() {
    Int i = 0;
    cout << --i;
    return 0;
}
 
Answer: 2
 
Question 5: What is the output of the following snippet?
#include <iostream>
using namespace std;
   
enum T { A, B, C };
    
class Int {
public:
    T v;
    Int(T a) { v = a; }
        
};
    
ostream &operator <<(ostream &o, Int &a) {
    return o << a.v;
}
    
int main() {
    Int i = B;
    cout << i;
    return 0;
}
 
Answer: 1
 
Question 6: What is the output of the following snippet?
#include <iostream>
#include <string>
    
using namespace std;
    
class N {
public:
    float x;
    N() { x = 0.0; }
    N(float a) { x = a; }
    N(N &n) { x = n.x; }
    string operator==(N &n) { if(this != &n) return "true"; else return "false"; }
};
    
int main() {
    N a(1.1), *b = &a;
    cout << (a == *b);
    return 0;
}
 
Answer: False
 
Question 7: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
    Int &operator++(int x) {
        v+=2;
        return *this;
    }
        
};
    
ostream &operator <<(ostream &o, Int &a) {
    return o << a.v;
}
    
int main() {
    Int i = 0;
    cout << i++ << i.v;
    return 0;
}
 
Answer: 22
 
Question 8: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
    Int &operator[](int x) {
        v+=x;
        return *this;
    }
        
};
    
ostream &operator <<(ostream &o, Int &a) {
    return o << a.v;
}
    
int main() {
    Int i = 2;
    cout << i.v << i[2];
    return 0;
}
 
Answer: 33
 
Question 9: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
};
    
int main() {
    Int i = 1;
    cout << i;
    return 0;
}
 
Answer: Compilation fails
 
Question 10: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
};
    
ostream &operator <<(Int &a) {
    return cout << a.v;
}
    
int main() {
    Int i = 1;
    cout << i;
    return 0;
}
 
Answer: Compilation fails
 
Question 11: What is the output of the following snippet?
#include <iostream>
using namespace std;
    
enum T { A = 2, B = -1, C };
    
class Int {
public:
    T v;
    Int(T a) { v = a; }
    Int & operator++() { v = C; return *this; }
};
    
ostream &operator <<(ostream &o, Int &a) {
    ++a;
    return o << a.v;
}
    
int main() {
    Int i = B;
    cout << i;
    return 0;
}
 
Answer: 0
 
Question 12: What is the output of the following snippet?
#include <iostream>
#include <string>
using namespace std;
class X {
public:
    string n; 
    X(string s) : n(s) {}
        void operator() (X x) {
            cout << x.n;
        }
};
int main(void) {
        X x("a"),y("b");
        x(y);
    y(x);
    return 0;
}
 
Answer: ba
 
Question 13: What is the output of the following snippet?
#include <iostream>
    
using namespace std;
    
class N {
public:
    float x;
    N() { x = 0.0; }
    N(float a) { x = a; }
    N(N &n) { x = n.x; }
};
  
N &operator=(N &y,float f) { return *new N(f); }
    
int main() {
    N a;
    a = 2.0;
    cout << a.x;
    return 0;
}
 
Answer: Compilation fails
 
Question 14: What is the output of the following snippet?
#include <iostream>
    
using namespace std;
    
enum T { A = 2, B = -1, C };
    
class Int {
public:
    T v;
    Int(T a) { v = a; }
    Int & operator++() { v += 2; return *this; }
};
    
ostream &operator <<(ostream &o, Int &a) {
    ++a;
    return o << a.v;
}
    
int main() {
    Int i = B;
    cout << i;
    return 0;
}
 
Answer: Compilation fails
 
Question 15: What is the output of the following snippet?
#include <iostream>
    
using namespace std;
    
class N {
public:
    float x;
    N() { x = 0.0; }
    N(float a) { x = a; }
    N(N &n) { x = n.x; }
    N &operator<<(N &y) { return *new N(x * 10); }
};
    
int main() {
    N a(2.0),b(4.0);
    N c = a << 1;
    cout << c.x;
    return 0;
}

Answer: Compilation fails
 
Question 16: What is the output of the following snippet?
#include <iostream>
    
using namespace std;
    
class N {
public:
    float x;
    N() { x = 0.0; }
    N(float a) { x = a; }
    N(N &n) { x = n.x; }
    N &operator=(float f) { x = f - 1; return *this; }
};
    
int main() {
    N a;
    a = 2.0;
    cout << a.x;
    return 0;
}           
 
Answer: 1
 
Question 17: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
    Int &operator--() {
        ++v;
        return *this;
    }
    Int &operator--(int v) {
        v+=2;
        return *this;
    }
     
};
   
ostream &operator <<(ostream &o, Int &a) {
    return o << a.v++;
}
   
int main() {
    Int i = 0;
    cout << --i << i--;
    return 0;
}
 
Answer: 21
 
Question 18: What is the output of the following snippet?
#include <iostream>
    
using namespace std;
    
class N {
public:
    float x;
    N() { x = 0.0; }
    N(float a) { x = a; }
    N(N &n) { x = n.x; }
    N &operator%(N &y) { return *new N((int)x % (int)y.x); }
};
    
int main() {
    N a(2.0),b(4.0);
    N c = a % b;
    cout << c.x;
    return 0;
}
 
Answer: 2
 
Question 19: What is the output of the following snippet?
#include <iostream>
using namespace std;
class Int {
public:
    int v;
    Int(int a) { v = a; }
};
    
ostream &operator <<(ostream &o, Int &a) {
    return o << --a.v;
}
    
int main() {
    Int i = 1;
    cout << i;
    return 0;
}
 
Answer: 0
 
Question 20: What is the output of the following snippet?
#include <iostream>
    
using namespace std;
    
enum T { A = 2, B = -1, C };
 
T operator+(T t, int i) {
    switch(t) {
        case A: return T(0);
        case B: return static_cast<T>(2);
    default:return (T)1;
    }
}
    
int main() {
    T i = A + 2;
    cout << i;
    return 0;
}
 
Answer: 0

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.