В какой строке выполнено неправильное преобразование?
#include <stdio.h>
class A
{
virtual void print() = 0;
};
class B: public A
{
void print()
{
printf("B");
}
};
class C: public A
{
void print()
{
printf("C");
}
};
int main()
{
A *a1 = new B(); //1
A *a2 = new C(); //2
B *b1 = dynamic_cast<B *>(a1); //3
B *b2 = dynamic_cast<B *>(a2); //4
return 0;
}
В какой строке выполнено неправильное преобразование?
#include <stdio.h>
class A
{
virtual void print() = 0;
};
class B: public A
{
void print()
{
printf("B");
}
};
class C: public A
{
void print()
{
printf("C");
}
};
int main()
{
A *a1 = new B(); //1
A *a2 = new C(); //2
B *b1 = dynamic_cast<B *>(a1); //3
B *b2 = dynamic_cast<B *>(a2); //4
return 0;
}
В каких строках содержатся ошибки (компиляции, времени выполнения, undefined behavior), если они есть?
char a[] = "123"; //1
char b[5] = "123"; //2
const char *c = "123"; //3
a[3] = '3'; //4
b[4] = '3'; //5
c[2] = '5'; //6
В каких строках содержатся ошибки (компиляции, времени выполнения, undefined behavior), если они есть?
char a[] = "123"; //1
char b[5] = "123"; //2
const char *c = "123"; //3
a[3] = '3'; //4
b[4] = '3'; //5
c[2] = '5'; //6
// Example program (С++11)
#include <iostream>
class A{
const int val = 1;
friend void f(A& a) { std::cout << a.val; }
};
int main()
{
A a;
f(a);
}
При компиляции и запуске данная программа:
1) выведет на экран цифру 1
2) программа успешно компилируется но при запуске ничего не напечатает
3) выдаст ошибку компиляции
4) выдаст ошибку в режиме выполнения
// Example program (С++11)
#include <iostream>
class A{
const int val = 1;
friend void f(A& a) { std::cout << a.val; }
};
int main()
{
A a;
f(a);
}
При компиляции и запуске данная программа:
1) выведет на экран цифру 1
2) программа успешно компилируется но при запуске ничего не напечатает
3) выдаст ошибку компиляции
4) выдаст ошибку в режиме выполнения
Что будет выведенно на экранн в результате работы данной программы?
#include <iostream>
template <class T>
void f(T)
{
std::cout<<"base ";
}
template <>
void f<int>(int)
{
std::cout<<"int ";
}
template <>
void f<long>(long)
{
std::cout<<"long ";
}
int main()
{
short int i = 1;
long l = 2;
f(i);
f(l);
f(i * i);
f(l * l);
}
Что будет выведенно на экранн в результате работы данной программы?
#include <iostream>
template <class T>
void f(T)
{
std::cout<<"base ";
}
template <>
void f<int>(int)
{
std::cout<<"int ";
}
template <>
void f<long>(long)
{
std::cout<<"long ";
}
int main()
{
short int i = 1;
long l = 2;
f(i);
f(l);
f(i * i);
f(l * l);
}
Чему равно значение переменной res?
#define F(x) (2*x*x)
int main() {
int a = 1, b = 2;
int res = F(a + b);
return 0;
}
Чему равно значение переменной res?
#define F(x) (2*x*x)
int main() {
int a = 1, b = 2;
int res = F(a + b);
return 0;
}
Скомпилируется ли следующий код?
int foo();
char foo();
Скомпилируется ли следующий код?
int foo();
char foo();
Чем классы отличаются от структур?
1) Наличием функции-членов
2) Модификатором доступа к полям и функциям-членам, предполагаемым по умолчанию
3) Наличием полей разных типов
4) Наличием имени
Чем классы отличаются от структур?
1) Наличием функции-членов
2) Модификатором доступа к полям и функциям-членам, предполагаемым по умолчанию
3) Наличием полей разных типов
4) Наличием имени
Выберите правильные утверждения о конструкторе класса:
1) Конструктор имеет то же имя, что и класс.
2) Конструктор объявляется в точности так же, как и обычный метод класса.
3) Конструктор не возвращает значения.
4) Имя конструктора начинается с символа ~.
5) Конструктор может иметь любое имя.
Выберите правильные утверждения о конструкторе класса:
1) Конструктор имеет то же имя, что и класс.
2) Конструктор объявляется в точности так же, как и обычный метод класса.
3) Конструктор не возвращает значения.
4) Имя конструктора начинается с символа ~.
5) Конструктор может иметь любое имя.
В какой строке данного фрагмента кода допущена ошибка?
int a = 3;
int i; // 2
for (i = 0; i < 3; i++) { // 3
a++; // 4
}
Варианты ответов:
1) Во второй: переменная i должна быть проинициализирована
2) В третьей: переменная i должна быть объявлена в конструкции for
3) В четвертой: результат выражения a++ игнорируется
4) В этом коде нет ошибок
В какой строке данного фрагмента кода допущена ошибка?
int a = 3;
int i; // 2
for (i = 0; i < 3; i++) { // 3
a++; // 4
}
Варианты ответов:
1) Во второй: переменная i должна быть проинициализирована
2) В третьей: переменная i должна быть объявлена в конструкции for
3) В четвертой: результат выражения a++ игнорируется
4) В этом коде нет ошибок
Что обозначается ключевым словом catch?
Что обозначается ключевым словом catch?
Что будет выведено на экран?
#include <iostream>
int main(int argc, char* argv[])
{
const int a = 1;
int* pa = const_cast<int*>(&a);
*pa = 2;
std::cout << a << *pa;
return 0;
}
Что будет выведено на экран?
#include <iostream>
int main(int argc, char* argv[])
{
const int a = 1;
int* pa = const_cast<int*>(&a);
*pa = 2;
std::cout << a << *pa;
return 0;
}
Пусть имеется система в которой int занимает 4 байта, а char занимает 1 байт. Будет ли отличаться (i2 - i1) от (c2 - c1) в фрагменте кода ниже.
int a[10];
int* i1 = &a[4];
int* i2 = &a[6];
char* c1 = (char*)i1;
char* c2 = (char*)i2;
Пусть имеется система в которой int занимает 4 байта, а char занимает 1 байт. Будет ли отличаться (i2 - i1) от (c2 - c1) в фрагменте кода ниже.
int a[10];
int* i1 = &a[4];
int* i2 = &a[6];
char* c1 = (char*)i1;
char* c2 = (char*)i2;
Отметьте синтаксически корректные вызовы функции:
int f(const char*, int, ...);
1)
int n = f("ABC",1,"nm",1.1);
2)
int n = f("ABC");
3)
int n = f("ABC",1,2,3);
4)
f("ABC",1);
Отметьте синтаксически корректные вызовы функции:
int f(const char*, int, ...);
1)
int n = f("ABC",1,"nm",1.1);
2)
int n = f("ABC");
3)
int n = f("ABC",1,2,3);
4)
f("ABC",1);
Что будет выведено на экран?
#include <iostream>
int main() {
int x = 5;
0[&x] = x + x;
std::cout << x;
return 0;
}
Что будет выведено на экран?
#include <iostream>
int main() {
int x = 5;
0[&x] = x + x;
std::cout << x;
return 0;
}
Существует ли в C++ разница между объявлением функции c пустыми скобками - func(), и объявлением с использованием ключевого слова void - func(void)?
Существует ли в C++ разница между объявлением функции c пустыми скобками - func(), и объявлением с использованием ключевого слова void - func(void)?
Что выведет на экран следующая программа?
#include <iostream>
enum Num {zero, one, two = 37, three, four};
int main(void) {
Num number = three;
int intNum = static_cast<int>(number);
std::cout << intNum;
return 0;
}
Что выведет на экран следующая программа?
#include <iostream>
enum Num {zero, one, two = 37, three, four};
int main(void) {
Num number = three;
int intNum = static_cast<int>(number);
std::cout << intNum;
return 0;
}
Объявляет ли данная строка массив ссылок, если мы правильно их проинициализируем?
int& ref[10];
Объявляет ли данная строка массив ссылок, если мы правильно их проинициализируем?
int& ref[10];
Может ли структура иметь чисто виртуальную функцию?
Может ли структура иметь чисто виртуальную функцию?
Какой модификатор доступа следует указать для члена класса, если вы хотите, чтобы член класса был доступен только самому классу и классам, наследуемым от него?
Какой модификатор доступа следует указать для члена класса, если вы хотите, чтобы член класса был доступен только самому классу и классам, наследуемым от него?
Что будет выведено при выполнении следующего фрагмента кода?
int x;
while(x < 100) {
cout << x << " ";
x++;
}
Что будет выведено при выполнении следующего фрагмента кода?
int x;
while(x < 100) {
cout << x << " ";
x++;
}