Бьерн Страуструп. Язык программирования С++ Второе дополненное издание



Pdf көрінісі
бет65/256
Дата11.07.2022
өлшемі2,87 Mb.
#37591
1   ...   61   62   63   64   65   66   67   68   ...   256
Байланысты:
Бьерн Страуструп. Язык программирования С . М Бином, 2011

2.7 Упражнения 
1. (*1) Запустить программу "Hello, world" (см. $$1.3.1). 
2. (*1) Для каждого описания из $$2.1 сделать следующее: если описание не является определением, то 
написать соответствующее определение; если же описание является определением, написать для него 
описание, которое не являлось бы одновременно и определением. 
3. (*1) Напишите описания следующих объектов: указателя на символ; массива из 10 целых; ссылки на 
массив из 10 целых; указателя на массив символьных строк; указателя на указатель на символ; целого-
константы; указателя на целое-константу; константного указателя на целое. Описания снабдить 
инициализацией. 
4. (*1.5) Напишите программу, которая печатает размеры основных типов и типа указателя. 
Используйте операцию sizeof. 
5. (*1.5) Напишите программу, которая печатает буквы от 'a' до 'z' и цифры от '0' до '9' и их целые 
значения. Проделайте то же самое для других видимых символов. Проделайте это, используя 
шестнадцатеричную запись. 
6. (*1) Напечатайте последовательность разрядов представления указателя 0 на вашей машине. 
Подсказка: см.$$2.6.2. 
7. (*1.5) Напишите функцию, печатающую порядок и мантиссу параметра типа double. 
8. (*2) 
Каковы на используемой вами машине наибольшие и наименьшие значения следующих типов: char, 
short,int,long, float, double, long double, unsigned, char*, int* и void*? Есть ли какие-то особые 
ограничения на эти значения? Например, может ли int* быть нечетным целым? Как выравниваются в 
памяти объекты этих типов? Например, может ли целое иметь нечетный адрес? 
9. (*1) Какова максимальная длина локального имени, которое можно использовать в вашей реализации 
С++ ? Какова максимальная длина внешнего имени? Есть ли какие-нибудь ограничения на символы, 
которые можно использовать в имени? 
10. (*1) Напишите функцию, которая меняет местами значения двух целых. В качестве типа параметров 
используйте int*. Напишите другую функцию с тем же назначением, используя в качестве типа 
параметров int&. 


Бьерн Страуструп.
Язык программирования С++ 
 
69 
11. (*1) Каков размер массива str в следующем примере: char str[] = "a short string"; Какова длина 
строки "a short string"? 
12. (*1.5) Составьте таблицу из названий месяцев года и числа дней в каждом из них. Напишите 
программу, печатающую ее. Проделайте это дважды: один раз - используя массивы для названий 
месяцев и количества дней, а другой раз - используя массив структур, каждая из которых содержит 
название месяца и количество дней в нем. 
13. (*1) С помощью typedef определите типы: unsigned char, константный unsigned char, указатель на 
целое, указатель на указатель на символ, указатель на массив символов, массив из 7 указателей на 
целое, указатель на массив из 7 указателей на целое и массив из 8 массивов из 7 указателей на целое. 
14. (*1) Определить функции f(char), g(char&) и h(const char&) и вызвать их, используя в качестве 
параметров 'a', 49, 3300, c, uc, и sc, где c - char, uc - unsigned char и sc - signed char. Какой вызов 
является законным? При каком вызове транслятору придетсязавести временную переменную? 


Бьерн Страуструп.
Язык программирования С++ 
 
70 


Достарыңызбен бөлісу:
1   ...   61   62   63   64   65   66   67   68   ...   256




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет