Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_практикум_ч1_2007.DOC
Скачиваний:
15
Добавлен:
10.11.2019
Размер:
379.9 Кб
Скачать

Контрольные вопросы

  1. Как определяются в С операнды, операции, выражения, операторы?

  2. Какие группы операций существуют в С? Какие арифметические операции и операции присваивания вы знаете в С?

  3. Как определяются операции отношения и логические операции в С?

  4. Какие побитовые операции вы знаете? Как определяется операция запятая и операция вычисления размера?

  5. Опишите порядок выполнения операций. Как определяется приоритетность выполнения операций?

Лабораторная работа № 4

Написание программы на ЯП С на ввод-вывод данных с использованием различных манипуляторов и разделителей

Цель работы: формирование знаний и умений по работе с операторами ввода-вывода данных, приобретение практических навыков работы с различными манипуляторами и разделителями.

Краткие теоретические сведения

Функция форматного вывода данных PRINTF()

К наиболее простым и распространенным функциям ввода-вывода данных языка С относятся функции printf() и scanf().

Рассмотрим функцию вывода данных на экран – printf(). Данную функцию можно использовать для вывода любой комбинации символов, целых и вещественных чисел, строк, беззнаковых целых, длинных целых и беззнаковых длинных целых. Например, чтобы вывести некоторое сообщение на экран, достаточно использовать вызов этой функции:

printf ("Это-вывод на экран сообщения \n ");

Список параметров (аргументов) идет вслед за именем функции в круглых скобках. В данном случае аргументом служит строковая константа - любая последовательность символов, в кавычках. Комбинация " \n " означает переход на новую строку. В общем случае параметры функции printf ( ) имеют вид:

printf (" управляющая строка " [ ,список аргументов ]);

Управляющая строка содержит символы, которые следует напечатать, спецификации преобразования и управляющие символы, перед которыми стоит обратная косая черта.

Вид спецификации преобразования следующий:

% [Флаг] [w][d] f

  • Флаг - (минус) указывает, что выводимое значение выравнивается в отдельном поле влево, по умолчанию вправо.

  • W- число, задающее минимальный размер поля вывода. Если указанного поля для вывода недостаточно, оно будет увеличено. В избыточных позициях поля печатаются пробелы.

  • D - указывает количество цифр после запятой для данных вещественных типов float или double. Для строк D задает число печатаемых символов строки в поле шириной W.

  • F- определяет формат преобразования.

Формат преобразования определяется символом. Все возможные символы формата приведены в таблице.

Символ формата

Тип выводимого объекта

%с - char

Символ

%s - string

Строка

%d - int

целое число

%u - unsigned int

целое беззнаковое значение

%o - int

беззнаковое число в восьмеричном представлении

%x - int

беззнаковое число в шестнадцатеричном представлении

%ld - long

длинное число в десятичном представлении

%lo - long

длинное число в восьмеричном представлении

%lx - long

длинное число в шестнадцатеричном представлении

%lu - unsigned long

беззнаковое длинное число

%f - float/double

число с фиксированной точкой

%e - float/double

число в экспоненциальной форме

%g - float/double

в виде f или е в зависимости от значения

%lf - long float

длинное число с фиксированной точкой

%le - long float

длинное число в экспоненциальной форме

%р - pointer

указатель (шестнадцатеричный адрес)

Каждая спецификация преобразования соответствует одному из аргументов, которые следуют за форматной строкой.

Управляющие символы имеют вид:

\b - возврат курсора на шаг назад

\f - новая страница

\n - новая строка

\r - возврат каретки

\t - табуляция, переход курсора в табличную позицию

\v - вертикальная табуляция

\" - кавычка

\' - апостроф

\\ - обратная наклонная черта

\ddd - восьмеричный код ASCI

\0*dd - шестнадцатеричный код ASCI.

Список аргументов функции printf() содержит имена переменных, констант или выражения, которые необходимо вывести на экран. Например, при следующей записи на С

printf(" %c = %d \n",g,g);

значение переменной g выводиться как символ алфавита, а после знака равенства - как числовое значение, соответствующее машинному коду этого символа. Перед символом преобразования может стоять цифра, явно указывающая количество позиций в выводимой строке, отведенных для элемента вывода:

printf(" %c = %5d \n",g,g);

Пример:

#include <stdio.h>

#include <conio.h>

main()

{

int age;

float doxod;

age=23;

doxod=100;

printf("\n Возраст Андрея - %d. Его доход в $ составляет %.2f",age,doxod);

getch();

}

В данном примере последовательность символов "Возраст Андрея - " будет выведена с начала новой строки. Символы %d - это спецификация для целой переменной age. Вместо этой спецификации в выводимой строке будет подставляться целое число 23. %2f - это спецификация (символ преобразования формата) для вещественного значения переменной doxod, а также указание формата для вывода только двух цифр после десятичной точки. Таким образом, после выполнения программы на экране будет отображено:

Возраст Андрея-23. Его доход в $ составляет 100.00.