C++ C++  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Типы, ссылки и const

Тест проверяет не знание таблицы типов, а способность проследить, какой именно объект существует, кто имеет право его менять и когда ссылка или указатель перестаёт быть действительным. Большинство ошибок здесь выглядят безобидно и проявляются лишь после небольшой правки кода.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 20 вопросов, время — 55 минут. Во многих заданиях недостаточно узнать конструкцию: проследите порядок вычислений, время жизни объектов, владение ресурсами и условия, при которых решение остаётся корректным. После завершения откроются правильные ответы, объяснения, общий результат и тематические шкалы.
Вопрос 1 из 20
Какое значение будет выведено?
C++C++20
#include <iostream>
int main() {
    double x = 1 / 2;
    std::cout << x;
}
Вопрос 2 из 20
Какая строка не пройдёт компиляцию из-за сужающего преобразования при списочной инициализации?
Вопрос 3 из 20
На типичной реализации с 32-битным unsigned int что напечатает программа?
C++C++20
#include <iostream>
#include <limits>
int main() {
    unsigned int x = std::numeric_limits<unsigned int>::max();
    std::cout << x + 1u;
}
Вопрос 4 из 20
Какой тип получит переменная value?
C++C++20
auto value = 5 + 2.0;
Вопрос 5 из 20
Какой способ лучше всего выразит требование «ровно 32-битное знаковое целое», если платформа его поддерживает?
Вопрос 6 из 20
Что будет выведено?
C++C++20
#include <iostream>
int main() {
    int x = 10;
    int& ref = x;
    ref = 20;
    std::cout << x;
}
Вопрос 7 из 20
Какое утверждение о переменной copy верно?
C++C++20
int value = 7;
int& alias = value;
auto copy = alias;
Вопрос 8 из 20
Какой дефект времени жизни есть в функции bad()?
C++C++20
const int& bad() {
    int x = 42;
    return x;
}
Вопрос 9 из 20
Как долго живёт временная строка в этом фрагменте?
C++C++20
#include <string>
int main() {
    const std::string& s = std::string("abc");
    // s остаётся действительной здесь
}
Вопрос 10 из 20
Какая сигнатура позволит функции действительно поменять переданный счётчик, не принимая null?
Вопрос 11 из 20
Какое число напечатает программа?
C++C++20
#include <iostream>
int main() {
    int a[] = {10, 20, 30, 40};
    int* p = a;
    std::cout << *(p + 2);
}
Вопрос 12 из 20
Какой кандидат выберет вызов f(nullptr)?
C++C++20
#include <iostream>
void f(int*) { std::cout << "ptr"; }
void f(long) { std::cout << "long"; }
int main() { f(nullptr); }
Вопрос 13 из 20
После какой операции p может стать недействительным?
C++C++20
#include <vector>
std::vector<int> v{1, 2, 3};
int* p = v.data();
v.push_back(4);
Вопрос 14 из 20
Как читается объявление `const int* p`?
C++C++20
int value = 42;
const int* p = &value;

// *p = 7;  // нельзя менять int через p
value = 7;   // сам объект не обязан быть const
p = nullptr; // адрес в p менять можно
Вопрос 15 из 20
Что неверно в освобождении памяти?
C++C++20
int* p = new int[10];
delete p;
Вопрос 16 из 20
Какая перегрузка size() будет вызвана для объекта c?
C++C++20
struct Box {
    int size() { return 1; }
    int size() const { return 2; }
};
const Box c;
int n = c.size();
Вопрос 17 из 20
Зачем поле cache обычно объявляют mutable?
Вопрос 18 из 20
Каково поведение записи через p?
C++C++20
const int x = 5;
int* p = const_cast<int*>(&x);
*p = 9;
Вопрос 19 из 20
Какое утверждение точнее всего описывает различие const и constexpr для переменной?
Вопрос 20 из 20
Какую перегрузку show() выберет std::as_const(x)?
C++C++20
#include <iostream>
#include <utility>
struct X {
    void show() { std::cout << "mutable"; }
    void show() const { std::cout << "const"; }
};
int main() { X x; std::as_const(x).show(); }

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу