C++ Quiz - check how good you are

1.
#32 What does the program print?
#include <cstdio>

class A
{
public:
    A(int var) { printf("%d", var);  }
};

int main()
{
    bool var = true;
    A a(var);
}
var
true
1
compile error
2.
#16 What does the program print?
#include <cstdio>

#define GET(v) #v

int main()
{
    const char* var = "123";
    printf("%s\n", GET(var));
}
segmentation fault
var
compile error
123
3.
#27 What does the program print?
#include <cstdio>

int main()
{
    bool b = true;
    printf("%d\n", b);
}
compile error
true
1
0
4.
#67 What does the program print?
#include <cstdio>

int main()
{
    int var = 3;

    switch(var)
    {
        case 3:
            printf("A");
        case 4:
            printf("B");
        default:
            break;
    }
}
A
B
compile error
AB
5.
#42 What does the program print?
#include <cstdio>

class A
{
public:
    A() { printf("A() "); }
    virtual ~A() { printf("~A() "); }
};

class B : public A
{
public:
    B() { printf("B() "); }
    ~B() { printf("~B() "); }
};

int main()
{
    B b;
}
B() ~B()
A() B() ~B() ~A()
A() B() ~A() ~B()
A() ~A()
6.
#75 What does the program print?
#include <iostream>

using namespace std;

int main()
{
    int var = 123;
    int& r = var;
    cout << *r << endl;
}
123
var
compile error
r
7.
#21 What does the program print?
#include <cstdio>

#define ENABLE

int main()
{
#ifdef ENABLE
    printf("enabled");
#else
    printf("disabled");
#endif
}
enabled
compile error
enableddisabled
disabled
8.
#100 What does the program print?
#include <iostream>
#include <set>

using namespace std;

struct classcomp
{
  bool operator() (const int& lhs, const int& rhs) const {return lhs>rhs;}
};

int main()
{
    set<int, classcomp> s;
    s.insert(11);
    s.insert(2);
    s.insert(33);

    for(set<int>::iterator it = s.begin(); it != s.end(); ++it)
    {
        cout << *it;
    }
}
33211
compile error
33112
21133
9.
#84 What does the program print?
#include <iostream>

using namespace std;

int main()
{
    int i = 5;
    cout << (++i)++ << endl;
}
compile error
5
6
7
10.
#46 What does the program print?
#include <cstdio>

class A
{
public:
    void print() { printf("A"); }
};

class B : public A
{
public:
    virtual void print() { printf("B"); }
};

int main()
{
    B b;
    A* a = &b;
    a->print();
}
B
BA
AB
A
11.
#11 What does the program print?
#include <cstdio>

int main()
{
    int** pvar = 0;
    printf("%d\n", pvar);
}
segmentation fault
0
compile error
pvar
12.
#26 What does the program print?
#include <cstdio>

int main()
{
    int i = 123;
    printf("%d\n", i--);
}
121
122
123
compile error
13.
#5 What does the program print?
#include <cstdio>

int main()
{
    int var = 123;
    printf("%d\n", var);
}
123
segmentation fault
compile error
var
14.
#80 What does the program print?
#include <iostream>

using namespace std;

int main()
{
    int& r = 0;

    for(int i = 0; i < 3; ++i)
    {
        r = i;
        cout << r;
    }
}
012
0123
123
compile error
15.
#71 What does the program print?
#include <cstdio>

int main()
{
    int var = 3;

    if(var) printf("A"); var ? printf("B") : printf("C");
    printf("D"); !var ? printf("E") : printf("F");
}
AD
compile error
ABDF
ACDE
16.
#43 What does the program print?
#include <cstdio>

class A
{
public:
    void print() { printf("A"); }
};

class B : public A
{
public:
    void print() { printf("B"); }
};

int main()
{
    B b;
    b.print();
}
B
BA
AB
A
17.
#68 What does the program print?
#include <cstdio>

int main()
{
    int var = 0;

    if(var)
        goto end;

    printf("A");

    end:
        printf("B");
}
compile error
A
AB
B
18.
#99 What does the program print?
#include <iostream>
#include <set>

using namespace std;

struct classcomp
{
  bool operator() (const int& lhs, const int& rhs) const {return lhs<rhs;}
};

int main()
{
    set<int, classcomp> s;
    s.insert(11);
    s.insert(2);
    s.insert(33);

    for(set<int>::iterator it = s.begin(); it != s.end(); ++it)
    {
        cout << *it;
    }
}
11233
21133
33211
33112
19.
#18 What does the program print?
#include <cstdio>

#define GET(v) "456"

int main()
{
    const char* var = "123";
    printf("%s\n", GET(var));
}
compile error
456
123
segmentation fault
20.
#51 What does the program print?
#include <cstdio>

void print() { printf("A"); }

void print(const char * m) { printf(m); }

int main()
{
    print("B");
}
compile error
B
A
AB



Wszystkie pytania i kody są właśnością autora i nie mogą być powielane bez jego zgody. Kody były kompilowane i uruchamiane w środowisku Linux (x86, C++98 gcc 4.4.7, C++11 gcc 4.7.2). Fragmenty kodu są w standardzie C++98 chyba, że podano inaczej w treści pytania. Dokładałem wszelkiej staranności aby pytania były pozbawione błędów, ale jeżeli jakieś błędy zostaną wykryte proszę o kontakt. Pozdrawiam Autor.