Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лафоре Р. - Объектно-ориентированное программир...doc
Скачиваний:
50
Добавлен:
01.04.2025
Размер:
40.77 Mб
Скачать

Глава 1

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

  1. Процедурными, объектно-ориентированными.

  2. б.

  3. Данные; совершают действия над ними.

  4. а.

  5. Сокрытием данных.

  6. а, г.

  7. Объекты.

  8. Ложно; организационные принципы различаются.

  9. Инкапсуляция.

  10. г.

  11. Ложно; большинство строк кода на C++ ничем не отличаются от кода на С.

  12. Полиморфизмом.

  13. г.

  14. б.

  15. б, г.

Глава 2

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

    1. б, в.

    2. Круглые скобки.

    3. Фигурные скобки { }.



    1. Это первая функция, вызываемая при запуске программы.

    2. Выражением.

    3. Правильный ответ: // Это комментарий /*Это тоже комментарий*/

    4. а, г.

    5. а) 4; б) 10;

в) 4;

г) 4.

    1. Ложно.

    2. а) целочисленная константа;

б) символьная константа;

в) константа в формате с плавающей запятой;

г) имя переменное или идентификатор;

д) имя функции.

    1. Правильный ответ:

а) cout << 'x';

б) cout << "Jim";

в) cout << 509;

    1. Ложно; они не равны, пока не выполнится оператор.

    2. cout << setw(10) << george;

    3. IOSTREAM

    4. Правильный ответ: cin >> temp;

    5. IOMANIP

    6. Строковые константы, директивы препроцессора.

    7. Истинно.

    8. 2.

    9. Присваивание (=) и арифметические (типа + и *).

    10. Правильный ответ:

temp += 23; temp = temp +23;

    1. 1.

    2. 2020.

    3. Для обеспечения объявлений и других данных библиотечных функций, перегружаемых операций и объектов.

    4. Библиотечных.

Решения упражнений

      1. Верное решение:

// еx2_1.cpp

// переводит галлоны в кубические футы

#include <iostream>

using namespace std;

int main()

{

float gallons, cufeet;

cout << "\nВведите количество в галлонах:";

cin >> gallons;

cufeet = gallons / 7.481;

cout << "Значение в кубических футах: " << cufeet << endl;

return 0;

}

      1. Верное решение:

// ex2_2.cpp

// generates table

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

cout << 1990 << setw(8) << 135 << endl

<< 1991 << setw(8) << 7290 << endl

<< 1992 << setw(8) << 11300 << endl

<< 1993 << setw(8) << 16200 << endl;

return 0;

}

      1. Верное решение:

// ex2_3.cpp

// арифметическое присваивание и декремент #include <iostream> using namespace std;

int main()

{

int var = 10;

cout << var << endl; // переменная равна 10 var *= 2; // ее значение стало 20

cout << var--<< endl; // выводит и декрементирует перем. cout << var << endl; // переменная равна 19

return 0; }

Глава 3

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

        1. б, в

        2. Правильный ответ:

george != sally

        1. -1 — истинно; только 0 — ложно.

        2. Выражение инициализации инициализирует циклическую переменную, выражение опроса переменной тестирует ее, а выражение инкремента — изменяет.

        3. в, г.

        4. Истинно.

        5. Правильный ответ:

For(int j = 00; j <= 110; j++) cout << endl << j;

        1. Фигурными скобками.

        2. в.

        3. Правильный ответ:

int j = 100; while(J <= 110) cout << endl << j++;

        1. Ложно.

        2. По крайней мере, один раз.

        3. Правильный ответ:

int j = 100; do

cout << endl << j++; while(j <= 110);

        1. Правильный ответ: if(age > 21)

cout << "Yes ";

        1. г.

        2. Правильный ответ:

if(age > 21) cout << "Yes "; else cout << "No ";

17 а, в.

          1. '\r'.

          2. Предшествующему, заключен в скобки.

          3. Переформатирования.

          4. Правильный ответ:

switch(ch) {

case 'y': cout << "Да "; break; case 'n': cout << "Нет "; break;

default:

cout << "Неизвестный ответ ";

}

          1. Правильный ответ: ticket =(speed > 55) ? 1 : 0;

          2. г.

          3. Правильный ответ: limit == 55 && speed > 55

          4. Унарные, арифметические, отношения, логические, условные, присваи- вание.

          5. г.

          6. В начало цикла.

          7. б.

Решения упражнений

            1. Верное решение:

// ex3_1.cpp

// выводит произведения чисел

#include <iostream>

#include <iomanip> // для setw()

using namespace std;

int main()

{

unsigned long n; // число

cout << "\nВведите число:";

cin >> n; // получить число

for(int j = 1; j <= 200; j++) // цикл от 1 до 200

{

cout << setw(5) << j*n << " ";// вывести произведение

if(j % 10 == 0) // через каждые 10 чисел

cout << endl; // начинать новую строку

}

return 0;

}

            1. Верное решение:

// ex3_2.cpp

// переводит фаренгейты в градусы и обратно

#include <iostream>

using namespace std;

int main()

{

int response;

double temper;

cout << "\nНажмите 1 для перевода из Фаренгейта в градусы Цельсия,"

<< "\n 2 для обратного перевода:";

cin >> response;

if(response == 1)

{

cout << "Введите температуру (в Фаренгейтах):";

cin >> temper;

cout << "В градусах Цельсия это " << 5.0 / 9.0 * (temper - 32.0);

}

else

{

cout << "Введите температуру в гр. Цельсия:";

cin >> temper;

cout << "В градусах Фаренгейта это " << 9.0 / 5.0 * temper + 32.0;

}

cout << endl;

return 0;

}

3. Верное решение: // ex3_3.cpp

// Создает число из отдельных цифр

#include <iostream>

using namespace std;

#include <conio.h> // для getche()

int main()

{

char ch;

unsigned long total = 0; // в этой переменной — число

cout << "\nВведите число:";

while((ch = getche())!='\r') // выход по нажатию Enter

total = total*10+ch-'0'; // прибавить число к total*10

cout << "\nПолучилось число:" << total << endl;

return 0;

}

4. Верное решение:

// ex3_4.cpp

// Моделирует калькулятор с 4-мя функциями

#include <iostream>

using namespace std;

int main()

{

double n1, n2, ans;

char oper, ch;

do {

cout << "\nВведите первый операнд, операцию, второй операнд:";

cin >> n1 >> oper >> n2;

switch(oper)

{

case '+':ans = n1 + n2;break;

case '-':ans = n1 - n2;break;

case '*':ans = n1 * n2;break;

case '/':ans = n1 / n2;break;

default:ans = 0;

}

cout << "Ответ =" << ans;

cout << "\nПродолжать (Введите 'y' или 'n')?";

cin >> ch;

} while(ch != 'n');

return 0;

}