Загрузил KingDog

Ответы на вопросы

реклама
РАЗДЕЛ 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;
Скачать