- •Вопросы к экзамену по дисциплине
- •6. Типы данных: целый, вещественный, символьный. Размеры данных.
- •7.Правила определения переменных в программе. Инициализация переменных.
- •10.Операции сдвига.
- •11.Операции отношения, логические операции.
- •Int I, j, k;
- •15.Приоритет операций и порядок вычисления выражений.
- •16.Функция форматированного вывода printf.
- •18.Операторы преобразования данных и операторы управления. Оператор простой и составной, блок.
- •(Последовательно выполняемые операторы)
- •19.Виды управляющих конструкций программы.
- •20.Операторы ветвления, условный оператор.
- •21.Оператор переключения(Switch).
- •22.Оператор цикла с заданным числом повторений.
- •23.Оператор цикла с предусловием.
- •24.Оператор цикла с постусловием.
- •25.Операторы прерывания и продолжения цикла.
- •26.Одномерные и многомерные массивы, их инициализация.
- •27.Указатели. Связь между указателями и массивами.
- •28.Операции над указателями и массивами.
- •29.Операции взятия адреса, обращения по адресу.
- •30.Определение функции. Возвращение значения: оператор return. Описание функции, вызов функции.
- •31.Аргументы функции: формальные и фактические. Передача аргументов, стек.
- •32.Рекурсивные программы.
- •33.Функции для работы со строками: сравнение, копирование.
- •47. Функции для работы со строками: поиск в строке.
- •34.Функции для работы со строками: преобразование форматов.
- •35.Локальные и глобальные переменные.
- •36.Классы памяти. Автоматические переменные. Внешние и статические переменные.
- •37. Декларация структур.
- •38. Инициализация и доступ к элементам структуры.
- •39. Вложенные структуры и массивы структур.
- •40. Указатели на структуры.
- •41.Файлы.Функции работы с указателем текущей позиции файла.
- •43.Функция чтения и записи в файл в построчном режиме.
- •44.Функция чтения и записи в файл в посимвольном режиме.
- •45.Функция чтения и записи двоичных файлов.
- •46.Списки.Операции над списками. Односвязные и двусвязные списки.
- •47.Реализация списка на основе массива структур.
- •48.Реализация списка на основе массива данных.
- •49.Очереди. Операции над очередями.
- •50.Реализация очереди на основе массива.
- •51.Стеки. Операции над стеками.
- •52.Реализация стека на основе массива.
- •53.Сортировка методом обмена(пузырька).
- •Анализ пузырьковой сортировки. Пузырьковая сортировка обладает несколькими характеристиками:
- •54.Методом выбора.
- •55.Методом вставки.
- •56.Методом Шелла.
- •57.Метод быстрой сортировки(Хоара).
16.Функция форматированного вывода printf.
Формат функции форматного вывода на экран:
printf( управляющая строка , список объектов вывода);
В управляющей строке, заключенной в кавычки, записывают: текст, выводимый на экран ; спецификаторы форматов, указывающие компилятору способ вывода объектов (каждый спецификатор формата начинается с символа '%' ).
В списке объектов вывода указываются выводимые на экран переменные, константы или выражения, разделенные запятыми. Список объектов вывода может отсутствовать.
Каждый из спецификаторов формата соответствует своему объекту из списка вывода, в порядке следования. Поэтому количество и порядок следования спецификаторов форматов должны совпадать с количеством и порядком следования выводимых объектов. Функция printf выполняет вывод данных в соответствии с указанными форматами. Весь остальной (кроме спецификаторов форматов) текст управляющей строки выводится на экран без изменений.
Имеется большое количество различных спецификаторов формата. Основные из них:
%d (%i) – десятичное целое число;
%f – вещественное число, запись с фиксированной точкой;
%е – вещественное число, экспоненциальная запись;
%g – вещественное число, запись с фиксированной точкой либо экспоненциальная запись, в зависимости от значения величины;
%o – восьмеричное число без знака;
%x – шестнадцатеричное целое число без знака (малые буквы a-f);
%X – шестнадцатеричное целое число без знака (большие буквы A-F);
%c – один символ;
%s – строка символов (массив char).
Для "длинных" типов чисел добавляется символ l : %ld – long (длинное целое), %lf – double (вещественное число с удвоенной точностью). Для еще более длинных типов чисел вместо l добавляется L : %Ld - long long, %Lg - long double в соответствии с форматом %g.
Если нужно напечатать сам символ %, то его нужно указать 2 раза:
printf ("Только %d%% предприятий не работало. \n",5);
Получим: Только 5% предприятий не работало.
Пример:
int number = 5; float but = 255; int cost = 11000;
printf(" %d студентов съели %f бутербродов. \n", number, but);
printf(" Значение числа pi равно %f. \n", M_PI);
printf(" Стоимость этой вещи %d %s. \n", cost, "Руб.");
. . .
В спецификаторах формата функции printf после символа % можно указывать число, задающее минимальную ширину поля вывода, например, %5d – для целых, %4.2f – для вещественных (означает поле общей шириной 4 символа, две цифры после запятой). Недостающие позиции будут слева заполнены пробелами (если нужно заполнить их нулями, перед шириной поля надо поставить символ '0' , например: %05d ). Если, наоборот, указанных позиций не хватает для вывода целой части числа, то происходит автоматическое расширение поля до нужной ширины.
Если после «%» указан знак «минус», то выводимое значение будет выравниваться по левой (а не по правой) позиции поля вывода заданной ширины, например: % – 10d.
Использование функции printf для преобразования данных:
1) printf("%d", 336.65); получим: 336;
2) printf("%o", 336); получим: 520, т.е. 5*8**2+2*8+0*1 = 336;
3) printf("%x", 335); получим: 14f (шестнадцатеричное).
Можно использовать функцию printf для нахождения кода ASCII некоторого символа:
printf (" %c – %d\n", 'a', 'a');
получим десятичный код ASCII символа а: a – 65 .
17.Функция форматированного ввода информации scanf.
Функция scanf предназначена для форматированного ввода исходной информации с клавиатуры:
scanf (управляющая строка , список адресов объектов ввода);
Список адресов объектов ввода представляет собой имена переменных, разделенные запятыми, перед каждой из которых указывается символ &, обозначающий здесь операцию «взять адрес».
В управляющей строке (заключенной в кавычки) указывается список спецификаторов форматов. Каждый спецификатор формата начинается с символа '%', за которым следует тип спецификатора, указывающий компилятору способ ввода объекта. Функция scanf() использует практически тот же набор модификаторов форматов, что и printf(), отличия от функции вывода следующие: форматы %f, %e, %g – эквивалентны. Для ввода коротких целых чисел (short) введен модификатор формата %h.
Вводить данные с клавиатуры можно как в одной строке через пробелы, так и в форме разных строк, нажимая после ввода текущего объекта клавишу Enter.
Поэтому функцией scanf() по формату %s строка вводится только до первого пробела.