Что обозначается ключевым словом catch?
Что обозначается ключевым словом catch?
Чем классы отличаются от структур?
1) Наличием функции-членов
2) Модификатором доступа к полям и функциям-членам, предполагаемым по умолчанию
3) Наличием полей разных типов
4) Наличием имени
Чем классы отличаются от структур?
1) Наличием функции-членов
2) Модификатором доступа к полям и функциям-членам, предполагаемым по умолчанию
3) Наличием полей разных типов
4) Наличием имени
В каких строках содержатся ошибки (компиляции, времени выполнения, 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
Что выведет на экран следующая программа?
#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;
}
// 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) выдаст ошибку в режиме выполнения
Пусть имеется система в которой 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;
В какой строке выполнено неправильное преобразование?
#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;
}
Что будет выведенно на экранн в результате работы данной программы?
#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);
}
Выберите правильные утверждения о конструкторе класса:
1) Конструктор имеет то же имя, что и класс.
2) Конструктор объявляется в точности так же, как и обычный метод класса.
3) Конструктор не возвращает значения.
4) Имя конструктора начинается с символа ~.
5) Конструктор может иметь любое имя.
Выберите правильные утверждения о конструкторе класса:
1) Конструктор имеет то же имя, что и класс.
2) Конструктор объявляется в точности так же, как и обычный метод класса.
3) Конструктор не возвращает значения.
4) Имя конструктора начинается с символа ~.
5) Конструктор может иметь любое имя.
Чему равно значение переменной 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& ref[10];
Объявляет ли данная строка массив ссылок, если мы правильно их проинициализируем?
int& ref[10];
Скомпилируется ли следующий код?
int foo();
char foo();
Скомпилируется ли следующий код?
int foo();
char foo();
Что будет выведено на экран?
#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;
}
Существует ли в C++ разница между объявлением функции c пустыми скобками - func(), и объявлением с использованием ключевого слова void - func(void)?
Существует ли в C++ разница между объявлением функции c пустыми скобками - func(), и объявлением с использованием ключевого слова void - func(void)?
Может ли структура иметь чисто виртуальную функцию?
Может ли структура иметь чисто виртуальную функцию?
Какой модификатор доступа следует указать для члена класса, если вы хотите, чтобы член класса был доступен только самому классу и классам, наследуемым от него?
Какой модификатор доступа следует указать для члена класса, если вы хотите, чтобы член класса был доступен только самому классу и классам, наследуемым от него?
Что будет выведено на экран?
#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;
}
В какой строке данного фрагмента кода допущена ошибка?
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) В этом коде нет ошибок
Что будет выведено при выполнении следующего фрагмента кода?
int x;
while(x < 100) {
cout << x << " ";
x++;
}
Что будет выведено при выполнении следующего фрагмента кода?
int x;
while(x < 100) {
cout << x << " ";
x++;
}
Отметьте синтаксически корректные вызовы функции:
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);