
- •1. Базовые и составные типы.
- •2. Циклы, ввод-вывод, операции ветвления и логические выражения.
- •2. Что напечатает следующий фрагмент кода, если использовать его в программе?
- •3. Что напечатает следующий фрагмент кода, если использовать его в программе?
- •4. Что напечатает следующий фрагмент кода, если использовать его в программе?
- •3. Функции, модели памяти и пространства имен
- •4. Классы, наследование и дружественные конструкции
1. Базовые и составные типы.
1. Объявите переменные согласно перечисленным ниже описаниям.
а. Целочисленная переменная short, имеющая значение 80.
б. Целочисленная переменная unsigned int, имеющая значение 42110.
в. Целочисленная переменная, имеющая значение 3 000 000 000.
2. Являются ли следующие два оператора C++ эквивалентными и почему?
char grade = 65;
char grade = 'A';
3. Как в C++ определить, какой символ представляется кодом 88? Сделайте это, по крайней мере, двумя способами.
4. Присваивание значения типа long переменной типа float может привести к ошибке округления. А что произойдет, если присвоить значение long переменной double? И что будет, если присвоить значение long long переменной double?
5. Вычислите следующие выражения:
а. 8 * 9 + 2
б. 6 * 3 / 4
в. 3 / 4 * 6
г. 6.0 * 3 / 4
д. 15 % 4
6. Предположим, что х1 и х2 являются переменными типа double, которые вы хотите просуммировать как целые числа, а полученный результат присвоить целочисленной переменной. Напишите для этого необходимый оператор C++. Что если вы хотите просуммировать их как значения double, а затем преобразовать результат в int?
7. Каким будет тип переменной в каждом из следующих объявлений?
a. auto cars = 15;
б. auto iou = 150.37f;
в. auto level = 'В';
г. auto crat = U'/U00002155' ;
д. auto fract = 8.25f/2.5;
8. Объявите следующие объекты данных и инициализируйте их:
а. actor — массив из 30 элементов char.
б. betsie — массив из 100 элементов short.
в. chuck — массив из 13 элементов float.
г. dipsea — массив из 64 элементов long double.
9. Объявите следующие объекты данных, используя шаблонный класс array вместо встроенных массивов и инициализируйте их:
а. actor — массив из 30 элементов char.
б. betsie — массив из 100 элементов short.
в. chuck — массив из 13 элементов float.
г. dipsea — массив из 64 элементов long double.
10. Объявите массив char и инициализируйте его строкой "cheeseburger".
11. Объявите объект string и инициализируйте его строкой "Waldorf Salad".
12. Разработайте объявление структуры, описывающей рыбу. Структура должна включать вид, вес в полных унциях и длину в дробных дюймах. Объявите переменную типа такой структуры, и инициализируйте ее.
13. Воспользуйтесь enum для определения типа по имени Response с возможными значениями Yes, No и Maybe. Yes должно быть равно 1, No - 0, a Maybe - 2.
14. Предположим, что ted - переменная типа double. Объявите указатель, указывающий на ted, и воспользуйтесь им, чтобы отобразить значение ted.
15. Предположим, что treacle - массив из 10 элементов float. Объявите указатель, указывающий на первый элемент treacle, и используйте его для отображения первого и последнего элементов массива.
16. Напишите фрагмент кода, который запрашивает у пользователя положительное целое число и затем создает динамический массив с указанным количеством элементов типа int. Сделайте это с применением операции new, а затем с использованием объекта vector.
17. Правильный ли код приведен ниже? Если да, что он напечатает?
cout << (int *) "Home of the jolly bytes";
18. Структура, описывающая рыбу, включает Вид, Вес в полных унциях и Длину в дробных дюймах. Напишите фрагмент кода, который динамически выделит память для структуры, и затем прочитает в нее значение для члена Вид.
19. В листинге иллюстрируется проблема, вызванная тем, что числовой ввод следует за строчно-ориентированным вводом.
#include <iostream>
int main()
{
using namespace std;
cout << "What year was your house built?\n";
int year;
cin >> year;
cout << "What is its street address?\n";
char address[80] ;
cin.getline(address, 80);
cout << "Year built: " << year << endl;
cout << "Address: " << address << endl;
cout << "Done!\n";
return 0;
}
Как замена оператора cin.getline(address, 80); оператором cin >> address; повлияет на работу этой программы?
20. Объявите объект vector из 10 объектов string и объект array из 10 объектов string. Покажите необходимые заголовочные файлы и не используйте using. Для количества строк применяйте const.