Задачи по языку С



         

Пояснения:


Основные типы 2.1

i = l = f = d = 100/3
(i=(l=(f=(d=(100/3))))) Вычисляем выражение справа налево.
(i=(l=(f=(d=33)))) Так как оба числа 100 и 3 - целые, то операция деления есть деление целых, поэтому у частного отбрасывается дробная часть.
(i=(l=(f=(double)33))) и d=33 Напоминаем, что значение, вырабатываемое операцией присваивания, есть значение правой части, преобразованное к типу, задаваемому левой частью.
(i=(l=(float)33)) и f=33 (i=(long)33) и l=33 (integer)33 и i=33 33 целое

Основные типы 2.2

d = f = l = i = 100/3 (d=(f=(l=(i=(100/3))))) (d=(f=(l=(integer)33))) и i=33 (d=(f=(long)33)) и l=33 (d=(float)33) и f=33 (double)33 и f=33 33 двойной точности

Основные типы 2.3

i = l = f = d = 100/3. (i=(l=(f=(d=(100/3.)))))
(i=(l=(f=(double)33.333333))) и d=33.333333 Число 3. двойной точности, поэтому и частное будет двойной точности.
(i=(l=(float)33.333333)) и f=33.33333x В этой программе в printf используется формат %.8g, который задает печать числа с точностью до 8 значащих цифр. Но на самом деле на машинах PDP-1 и VAX максимальная точность для чисел с плавающей точкой не более 7 значащих цифр, так что точность до 8 цифр недостижима. Конечно, количество значащих цифр в числе зависит от машины.
(i=(long)33.33333x))и l=33 Преобразование чисел с плавающей точкой в длинные целые происходит с помощью отбрасывания дробной части.
(integer)33 и i=33 33 целое

Основные типы 2.4

d = f = l = i = (double)100/3
(d=(f=(l=(i=((double)100)/3))))) Заметьте, что операция приведения имеет более высокий приоритет, чем операция /.
(d=(f=(l=(i=(100./3))))) (d=(f=(l=(integer)33.333333))) и i=33 (d=(f=(long)33)) и l=33 (d=(float)33) и f=33 (double)33 33 двойной точности

Основные типы 2.5

i = l = f = d = (double)(100000/3) (i=(l=(f=(d=((double)(100000/3))))))
(i=(l=(f=(d=(double)33333)))) Операндом для операции приведения служит частное от деления 100000 на 3.
(i=(l=(f=(double)33333))) и d=33333 (i=(l=(float)33333)) и f=33333 (i=(long)33333) и l=33333 (integer)33333 и i=33333 или переполнение Число 33333 нельзя представить в виде 16-разрядного целого со знаком. Многие реализации языка спокойно допускают и переполнение, и потерю значимости числа. Если ваши вычисления могут в принципе превзойти границы, присущие данной машине, то будет разумным вставить явные проверки на попадание чисел в отводимый диапазон.
33333 целое или переполнение
<


Содержание  Назад  Вперед