Условие:
Практическая работа № 1. «Структура программы, ввод/вывод»
Цель работы - изучить структуру программы на Си, научиться использовать переменные различных типов, освоить функции форматного ввода и вывода, операции присваивания и арифметические операции.
Постановка задачи
Набрать текст программы, представленный Листингом.
Проанализировать значения переменных после каждой операции присваивания. Проверить порядок выполнения операций в одном из выражений, содержащих несколько операций присваивания, разделив этот оператор-выражение на несколько операторов, выполняемых последовательно. В функциях ввода и вывода изменить спецификаторы типов, проанализировать полученные результаты.
Листинг
#include <stdio.h>
int main (void)
{
int a, b = 5, c;
float x, y = -.5, z;
printf("a=");
scanf("%d", &a);
x = c = a;
printf("a=%d, c=%d, x=%f\n",a,c,x);
a += b;
printf("a=%d\n", a);
x += b+a;
printf("x=%f\n", x);
b += a--;
printf("b=%d\n", b);
x -= ++c;
printf("x=%f\n",x);
c = a/b;
printf("c=%4d\n",c);
c = a%b;
printf("c=%d\n",c);
x = 5.3;
y += ((--x-1)/x++);
printf("x = %f\ty = %.2f\n\n x = %.0f\ty = %.0f\n ", x - 1, y, x, y - 1);
z = a/2;
printf(" z = %f\n", z);
z = (float) a/2;
printf(" z = %f\n", z);
y = x/2;
printf(" y = %f\n", y);
y = (int)x/2;
printf(" y = %f\n", y);
z = a%2 - (x+b)/c + (x-y)/(a-1) + 1/4*a - y+++++b/3.;
printf("a = %d b = %d c = %d x = %f y = %f z = %f\n", a, b, c, x, y, z);
return 0;
}
Решение:
Ниже приведён подробный пошаговый разбор работы программы при условии, что пользователь ввёл число 10. Объявляются переменные: • Для целых чисел: a, b, c. При этом b сразу инициализируется значением 5. • Для чисел с плавающей запятой: x, y, z. При этом y = –0.5. 1. Программа выводит на экран приглашение a= и ждёт ввода пользователя. Пусть введённое значение будет 10, то есть a = 10. 2. Оператор x = c = a присваивает сначала значение a переменной c, а затем – переменной x. После этой строки: a = 10, c = 10, x = 10.0. 3. Вывод в строке printf(a=%d, c=%d, x=%f\n,a,c,x) покажет: a=10, c=...
