gn="justify"> getch (); 0;
}
Завдання 2
в завданні 1 ми отримали кількість машинних слів, відведений під кожен тип даних. Для того щоб розрахувати діапазон для кожного типу, скористаємося формулою:
(для знакових типів)
(для беззнакових типів), де s - кількість машинних слів.
Отримаємо:
Цілий тіпДіапазонsigned short int - 32768 ... 32 767unsigned short int0 ... 65 535signed long int - 2147483648 ... 2147483 647unsigned long int0 ... 4294967 295signed char - 128 ... 127unsigned char0 ... 255
Завдання 3
1. переповнення типу int викликало зміна значення змінної i на найменше число, можливе для даного типу.
. аналогічно попередньому завданню отримали негативне число через переповнення типу. У даному випадку можна зауважити, що коли число досягає верхньої межі діапазону, при збільшенні на 1 воно стає найменшим. При збільшенні на число n gt; 1, отримуємо число, більше найменшого на n - 1.
. подібно попереднім 2-му частинам третій завдання, в даному випадку отримуємо значення змінної типу char, рівне 94. При виведенні зі специфікатором% d отримуємо 94, при% c отримуємо символ, відповідний коду 94 в таблиці ASCII.
Завдання 4
для специфікатора% f коректно вивелося тільки значення для змінне типу float: всі інші обнулились. Для специфікатора% з отримали всі символи, що відповідають кодам, крім як для значення з плаваючою точкою. Для специфікаторів% u и% d у випадку з цілочисельними типами все відбувається відповідно до результатів завдання 3.
Завдання 5
) int k, i=1; k=1 + (++ i); Відповідь: k=3, i=2;=i + 1=2, потім 1 + 2=3, k=3
) int k, i=1; k +=i ++; Відповідь: k=1, i=2;=k + i=1, k=1, i=i + 1=2
) int k, i=1; k +=k ++; Відповідь: k=1;
Спочатку k=0, k +=0, k + 1=1;
) int k, i=1; k +=++ k; Відповідь: k=2;
Спочатку k=0, k + 1=1, k=k + 1=2;
5) int a, b, c, d, k; b=2; d=3; k=(a=b) + (c=d); Відповідь: k=5; a=2; c=3;=b=2, c=d=3, k=2 + 3=5;
) int a, b, k; a=2; b=1; k=(a!=b)? (a-b ++): (++ a-b); Відповідь: a=2; b=2; k=1; нерівно b?- Так.- gt; k=a-b=2-1=1, b=b + 1=2;
) int a=3; int b=2; float y1, y2, c=3.5; y1=c * a/b; y2=c * (a/b);
Відповідь: y1=5.25; y2=3.5; * a=3.5 * 3=10.5, y1=10.5/2=5.25/b=3/2=1.5, але і a, і b належать до цілочисельного типу, тому a/b=1, y2=c * 1=3.5 * 1=3.5
Висновок
таким чином, вдалося познайомитися з усіма базовими типами мови С та особливостями форматування при введенні/виведенні на стандартний пристрій за допомогою функцій printf/scanf, вивчити пріоритети операцій мови С та особливості їх використання в складних виразах, познайомитися з особливостями використання инкремента.