Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 семестр / Прорешаные билеты.pdf
Скачиваний:
0
Добавлен:
28.03.2025
Размер:
1.79 Mб
Скачать

cout << x << "\n";

}

Ответ: 1

19.

#include <iostream> using namespace std; void main()

{

int x, y; x = y = 0;

while (y < 10)x += ++y;

cout << x << " " << y << "\n";

}

Ответ: 55 10

20.

#if — это директива препроцессора

Выполняется на этапе компиляции (до запуска программы).

Используется для условной компиляции кода.

Проверяет значения, определенные с помощью макросов (например, через #define).

Работает только с константными значениями, известными на этапе компиляции.

Пример использования #if:

#include <iostream>

#define DEBUG 1

int main() { #if DEBUG

std::cout << "Debug mode is ON.\n"; #else

std::cout << "Debug mode is OFF.\n";

#endif return 0;

}

Объяснение:

Если DEBUG определен как 1, код внутри #if DEBUG будет скомпилирован и выполнен.

Если DEBUG определен как 0 или вообще не определен, будет выполнен код внутри #else. Ответ: управляет компиляцией...

21.

Комментарий: setw: Например, если вы используете setw(10), это означает, что следующий элемент, который вы выведете, будет занимать как минимум 10 символов. Если элемент меньше этого размера, он будет дополнен пробелами слева (по умолчанию).

Setprecision: Если вы используете setprecision(n), это указывает на то, сколько значащих цифр следует выводить. При этом поведение зависит от состояния формата: по умолчанию setprecision оперирует значащими цифрами, но если используется флаг std::fixed, то он будет работать с количеством цифр после запятой.

Ответ: setw; setw; setprecision; fixed.

22.

Ответ: вывод информации из файла на экран.

23.

#include <iostream> #include <fstream> void main() {

int x,y;

for (x = 0, y = 1000; y > 1; x++, y /= 10) std::cout << "_" << x << "_" << y;}

Ответ: _0_1000_1_100_2_10

24.

Ответ: указатель на массив из 5 значений типа double.

25.

В приведенном вами фрагменте кода есть несколько ошибок, которые могут повлиять на его выполнение. Однако, если рассмотреть только логику инкрементов в switch-операторе, то при вводе символа 'a' будет выполнено следующее:

-case 'A': не будет выполнен, так как вводимая буква — это 'a', а не 'A'.

-case 'a': будет выполнен, и произойдет инкремент переменной lettera.

-Поскольку в switch-операторе отсутствует break, выполнение продолжится в следующем случае, что приведет к инкременту переменной total.

- deafult: (правильное написание — default:) также не будет выполнен, так как это не сработает, если предыдущий case был выполнен.

Таким образом, при вводе символа 'a' будет выполнено два оператора инкремента: один для lettera и один для total. Переменная capa не будет инициализирована, и ее инкремент вызовет неопределенное поведение, если она не была инициализирована ранее.

Итак, ответ: два оператора инкремента будут выполнены.

Ответ: 2.

26.

#include <iostream> using namespace std; int main()

{

int x, y, z; x = y = 2;

z += -x++ + ++y; cout << x << ' ' << z << "\n";

}

Ответ:3 1

27.

28.

Ответ: отсутствуют синтаксические ошибки

29.

Комментарий:

1.Значения переменных в десятичной системе:

a.x = 3 00000011 (в двоичной системе).

b.y = 2 00000010 (в двоичной системе).

c.z = 1 00000001 (в двоичной системе).

2.Вычисление выражения:

a.~z: Побитовая инверсия z.

z = 00000001, инверсия ~z = 11111110 (дополнительное представление с учетом 32-битного значения).

b.y & ~z: Побитовое "И" между y и ~z.

y = 00000010, ~z = 11111110.

Результат: 00000010.

c. x | (y & ~z): Побитовое "ИЛИ" между x и результатом (y & ~z).

x = 00000011, (y & ~z) = 00000010.

Результат: 00000011.

3.Итоговое значение:

a. (x | y & ~z) = 3.

Ответ: (x|y&~z)=3.

30.

Ответ: соединение перед компиляцией отдельных файлов в один большой файл

31.

#include <iostream> void main()

{int x, y, z;

x = 2; y = 1; z = 0;

x = x && y || z; std::cout << x << "\n";}

Ответ: 1.

32.

#include <iostream>

int a[] = { 0,1,2,3,4 };

int main(){

int i, * p;

for (p = a + 4; p >= a; p--) std::cout << a[p - a] << '_';}

Ответ: 4_3_2_1_0.

33.