Функция printf() выводит форматированные данные в стандартный поток (экран)

Каждый элемент формата состоит из нескольких полей:

%[флаг][ширина][точность][модификатор_типа] тип_формата

Тип формата:

d – значением аргумента является десятичное целое число

s – значением аргумента является строка символов

f – значением аргумента является вещественное десятичное число с плавающей точкой

Ò Ширина – в данном поле устанавливается минимальная ширина поля в символах. Если число подлежащих выводу символов меньше, чем указано в этом поле, то слева и справа добавляются пробелы для достижения указанного значения. Если перед числом стоит нуль, то вместо пробелов добавляются нули.

Ò Точность – задает число подлежащих выводу десятичных знаков и должно начинаться точкой. Действие поля зависит от типа данных.

Флаг:

- Выравнивание влево выводимого числа в пределах выделенного поля. Если этот знак не указан, то по умолчанию производится выравнивание вправо.
+ Выводится знак числа. Знак минус при отрицательных значениях числа выводится всегда и не зависит от наличия данного флага.

И др.

Функция scanf() выполняет форматированный ввод данных из входного потока.

Ее синтаксис:

%[*][ширина][точность] тип_формата

% - символ начала спецификатора формата.

Если после % стоит *, то вводимое поле не присваивается ни одной из переменных, указанных в списке параметров.

Ширина – положительное десятичное число, которое определяет минимальную ширину поля в символах.

Точность – это поле задает точность для преобразуемых величин.

5. Стандартные функции ввода-вывода символьной строки в ANSI C.

Объяснить формат записи функций управления форматированным вводом-выводом.

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

Для ввода и вывода строк в библиотеке stdio.h содержатся специализированные функции gets и puts.

Функция gets предназначена для ввода строк и имеет следующий заголовок:

   char * gets(char *buffer);

*buffer – указатель на строку

Функция puts предназначена для вывода строк и имеет следующий заголовок:

int puts(const char *string);

*string– указатель на строку

#include <stdio.h>

#include <conio.h>

#include <string.h>

main()

{

char s1[25];

char s2[25];

int d;

puts("Stroka 1:");

gets(s1);

puts("Stroka 2:");

gets(s2);

d=strlen(strcat(s1,s2));

printf("Stroka:%s; Dlina:%d",s1,d);

getch();

}

6. Записать общий вид оператора условного перехода if.

Объяснить схему его выполнения.

Составить программу решения задачи: Вычислить значение функции . Значение x ввести с клавиатуры, результат вывести на экран.

Имеются две формы записи условного оператора:

1. Сокращенная if (логическое условие) оператор1

2. полная if (логическое условие) оператор1 else оператор2

В первом случае вычисляется логическое условие, стоящее в скобках и, если оно истинно, то выполняется оператор1. Иначе (условие ложно) – выполнения действий передается на директиву (оператор), следующий за оператором условного перехода

Во втором случае, если логическое условие – истинно, то выполняется оператор 1, если оно ложно – выполняется оператор 2, который находится после else.

Логическое условие м.б. составным (исходя из условия задачи), т.е. объединено логическими операциями: && (логическое «И»); || (логическое «ИЛИ»); == (равно);!= (не равно).

Следует помнить, что:

По веткам «истина» и «ложь» всегда следует по 1 директиве (оператору) языка. Если необходимо реализация программы, где используется более 1-ой директивы, то используют составной оператор (операторные скобки): {…..}.

7. Записать общий вид оператора выбора switch.

Объяснить схему его выполнения.

Составить программу решения задачи: Вычислить значение функции с использованием оператора switch:

. Значение k ввести с клавиатуры, результат вывести на экран.

Оператор-переключатель switch (переключатель), вызывает передачу управления к одному из нескольких операторов, в зависимости от значения выражения переключатель. Оператор имеет форму:

switch (выражение) {

case выражение: оператор1; break;

case выражение: оператор2; break;

……………………………..

case выражение: оператор n; break;

………………

default: оператор;}

Выражение, следующее за ключевым словом switch в круглых скобках, может быть любым выражением, допустимыми в языке С, значение которого должно быть целым типом.

Схема выполнения оператора switch следующая:

1. Вычисляется выражение в круглых скобках;

2. Вычисленные значения последовательно сравниваются с константными выражениями, следующими за ключевыми словами case;

3. Если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;

4. Если ни одно из константных выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.

Особенность использования оператора switch: конструкция со словом default может быть не последней в теле оператора switch. Ключевые слова case и default в теле оператора switch существенны только при начальной проверке, когда определяется начальная точка выполнения тела оператора switch. Все операторы, между начальным оператором и концом тела, выполняются вне зависимости от ключевых слов, если только какой-то из операторов не передаст управления из тела оператора switch. Таким образом, программист должен сам позаботится о выходе из case, если это необходимо. Чаще всего для этого используется оператор break.

8. Записать общий вид оператора выбора for.

Объяснить схему его выполнения.

Составить программу решения задачи: Из чисел от 10 до 99 вывести те, сумма цифр которых равна n (0 < n < 18). Значение n ввести с клавиатуры, результат вывести на экран.

for (выражение 1; выражение 2; выражение 3) тело цикла;

Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.

Схема выполнения оператора for:

1. Вычисляется выражение 1.

2. Вычисляется выражение 2.

3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.

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

Следует помнить, что в теле цикла допускается только одна директива (оператор) языка, но если есть необходимость использования более 1 директивы (оператора) – используется составной оператор (операторные скобки): {……}

9. Понятие одномерного массива.

Объяснить правила объявления и инициализации одномерного массива.

Составить программу решения задачи: Для одномерного произвольного массива А(10) вычислить сумму его отрицательных элементов. Значения элементов массива ввести с клавиатуры, результат вывести на экран.

Массив – это совокупность элементов одного типа, объединенных одним именем.

При объявлении массива в программе определяется имя массива, тип его элементов, размерность и размер. Размерность массива определяется количеством индексов при обращении к элементам массива. Массивы бывают одномерные, двухмерные, многомерные.

При объявлении одномерного массива необходимо учитывать правила:

Ò Массив должен иметь тип и уникальное имя.

Ò Следует указать количество значений, которые массив будет хранить.

Ò Все сохраняемые в массиве значения должны быть одного и того же типа. Следующее объявление создает массив с именем massiv, который может вмещать 100 целых значений:

int massiv[100];

Инициализация одномерного массива – задание значений элементов массива при объявлении.

int a[5]={1, 2, 3, 4, 5}; //массив с инициализацией его элементов

10. Понятие двумерного массива.

Объяснить правила объявления и инициализации двумерного массива.

Составить программу решения задачи: Для двумерного произвольного массива А(5,5) вычислить произведение элементов главной диагонали. Значения элементов массива ввести с клавиатуры, результат вывести на экран.

Двумерный массив - это массив одномерных массивов. Двумерный массив объявляется следующим образом:

тип имя_массива[размер второго измерения][размер первого измерения];

Следовательно, для объявления двумерного массива целых с размером 10 на 20 следует написать:

int d[10] [20];

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

Ò Инициализация многомерного массива происходит построчно, т.е. в порядке возрастания самого правого индекса.

Ò Инициализация двумерного массива с четырьмя элементами:

Ò int mas[2][2]={23,54,16,43};

11. Понятие строки.

Объяснить правила объявления и инициализации строки.

Составить программу решения задачи: Ввести с клавиатуры произвольную строку, определить, имеется ли в строке заданный символ.

Строка (строковый литерал) - разновидность массива.

В С отсутствует специальный строковый тип. Вместо этого строки представляются, как массив элементов типа char, в конце которого помещен нуль символ ‘\0 ’.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: