РАЗДЕЛ I Задача А2. Какие из приведенных идентификаторов недопустимы? a, _a, la, a-, f_34, MyText, _2in, my test, C++ Ответ: a-, my test, C++. Задача А3. Какие из приведенных идентификаторов недопустимы? a, bi, ck, do, for, If, in, if, for, For, int Ответ: do, for, if, for, int Задача А4. Какие операторы надо записать после строки? char str[ ] = "Эта книга"; чтобы содержанием массива str был текст "Моя книга" // Замена символов str[0] = 'М'; // 'Э' -> 'М' str[1] = 'о'; // 'т' -> 'о' str[2] = 'я'; // 'а' -> 'я' Проверка: Задача А5. Есть ли различия в объеме памяти для 'А' и "А"? Ответ: Да, различия есть, так как 'А' – это односимвольный литерал, "А". Тип данных односимвольного литерала - char. Представляет собой единственный символ и занимает 1 байт памяти. Строковый литерал "A" представляет собой строку, которая включает в себя сам символ 'A' и терминал (нулевой символ \0). Строковый литерал занимает 2 байта памяти: 1 байт для символа 'A' и 1 байт для символа окончания строки \0. Проверим: int main() { // Односимвольный литерал char singleChar = 'A'; std::cout << "Размер односимвольного литерала: " << sizeof(singleChar) << " байт" << std::endl; // Строковый литерал как массив символов const char str[] = "A"; std::cout << "Размер строкового литерала: " << sizeof(str) << " байт" << std::endl; return 0; } Результат работы: Задача А6. Какая строка недопустима? char s[] = "ABC", t[10]; int i =5, j; j=i+6; t="BCD"; Ответ: t ="BCD"; Задача А7. Как вывести содержимое массива s на экран: chars[]="ABCDE"; Ответ: #include <iostream> int main() { char chars[] = "ABCDE"; // Определение массива символов с инициализацией строкой "ABCDE" int i = 0; // Инициализация индекса для цикла // Цикл while, который продолжается до тех пор, пока не встретится термирующий нулевой символ ('\0') while (chars[i] != '\0') { // Вывод текущего символа из массива на экран std::cout << chars[i]; // Инкремент индекса для перехода к следующему символу ++i; } // Вывод символа новой строки после вывода всех символов из массива std::cout << std::endl; return 0; } Результат работы: Задача A8. Как вывести на экран пять символов ABCDE в строку с пробелами между символами Можно использовать цикл для перебора каждого символа и добавления пробела после каждого символа, кроме последнего: Ответ: #include <iostream> int main() { char chars[] = "ABCDE"; int length = sizeof(chars) - 1; // Вычитаем 1 для исключения термирующего нулевого символа for (int i = 0; i < length; ++i) { std::cout << chars[i]; if (i < length - 1) { // Добавляем пробел, если это не последний символ std::cout << " "; } } std::cout << std::endl; return 0; } Результат работы: Задача А9. Как вывести на экран пять символов ABCDE в столбец? Ответ: for (int i = 0; i < length; ++i) { std::cout << chars[i] << std::endl; } Результат работы: Задача А10. Как можно более компактно записать операторы f += d; c *= m; d /= w; a -= g; Ответ: f += d; c *= m; d /= w; a -= g; // f = f + d; // c = c * m; // d = d / w; // a = a - g;