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