Вторая глава в книжке Стивена Прата “C Primer Plus”. Тут уже появляются первые практические задания; хоть и крайне простые, на запоминание базового синтаксиса; поэтому отдельно их результат вывода приводить не буду. Перед заданиями небольшая памятка:
5 типов операторов в языке C
- Оператор объявления
- Оператор присваивания
- Функция
- Управляющий оператор
- Пустой оператор
Упражнения по программированию
1) Напишите программу, которая использует первый вызов функции printf () для вывода своего имени и фамилии в одной строке, второй вызов printf (), чтобы вывести имя и фамилию в двух строках, и еще два вызова printf () для вывода имени и фамилии в одной строке. Выходные данные должны иметь следующий вид (но с указанием ваших персональных данных):
Иван Иванов
← Первый оператор вывода
Иван
← Второй оператор вывода
Иванов
← По-прежнему второй оператор вывода
Иван Иванов
← Третий и четвертый операторы вывода
Программа:
#include <stdio.h>
int main (void)
{
printf("Ivan Ivanov\n");
printf("Ivan\nIvanov\n");
printf("Ivan ");
printf("Ivanov");
getchar();
return 0;
}
2. Напишите программу, выводящую ваше имя и адрес.
#include <stdio.h>
int main (void)
{
printf("My name is Ivan Ivanov\n");
printf("My address is Moscow");
getchar();
return 0;
}
3. Напишите программу, которая преобразует ваш возраст в полных годах в количество дней и отображает на экране оба значения. Не обращайте внимания на високосные годы.
#include <stdio.h>
int main (void)
{
int years, days;
years = 34;
days = years * 365;
printf("I live already %d years which is %d days", years, days);
getchar();
return 0;
}
4. Напишите программу, которая производит следующий вывод:
Он веселый молодец!
Он веселый молодец!
Он веселый молодец!
Никто не может это отрицать!
Вдобавок к функции main () в программе должны использоваться две определенные пользователем функции: jolly (), которая выводит сообщение “Он веселый молодец!» один раз, и deny (), выводящая сообщение в последней строке.
#include <stdio.h>
void jolly();
void deny();
int main (void)
{
jolly();
jolly();
jolly();
deny();
getchar();
return 0;
}
void jolly()
{
printf("He is funny good lad!\n");
}
void deny()
{
printf("No one can't deny it!\n");
}
5. Напишите программу, которая производит следующий вывод:
Бразилия, Россия, Индия, Китай
Индия, Китай,
Бразилия, Россия
Вдобавок к функции main () в программе должны использоваться две определенные пользователем функции: br (), выводящую строку “Бразилия, Россия” один раз, и ic (), которая один раз выводит строку “Индия, Китай». Функция main () должна позаботиться о любых дополнительных задачах вывода.
#include <stdio.h>
void br();
void ic();
int main(void)
{
br();
printf(", ");
ic();
printf("\n");
ic();
printf("\n");
br();
printf("\n");
getchar();
return 0;
}
void br()
{
printf("Brazil, Russia");
}
void ic()
{
printf("India, China");
}
6. Напишите программу, которая создает целочисленную переменную по имени toes (англ. — пальцы ног). Программа должна присвоить переменной toes значение 10. Наряду с этим, программа должна вычислить удвоенное значение toes и квадрат toes. Программа должна вывести все три значения, снабдив их соответствующими пояснениями.
#include <stdio.h>
int main(void)
{
int toes = 10;
int toes_2x;
int toes_sqrt;
toes_2x = 2 * toes;
toes_sqrt = toes * toes;
printf("Human got %d toes\n", toes);
printf("Two humans got %d toes\n", toes_2x);
printf("Ten humans got %d toes", toes_sqrt);
getchar();
return 0;
}
7. Многие исследования показывают, что улыбка способствует успеху. Напишите
программу, которая производит следующий вывод:
Улыбайся!Улыбайся!Улыбайся!
Улыбайся!Улыбайся!
Улыбайся!
В программе должна быть определена функция, которая отображает строку
“Улыбайся!» один раз. Эта функция должна вызываться столько раз, сколько необходимо
#include <stdio.h>
void smile();
int main(void)
{
smile(); smile(); smile();
printf("\n");
smile(); smile();
printf("\n");
smile();
printf("\n");
getchar();
return 0;
}
void smile()
{
printf("Smile!");
}
8. В языке С одна функция может вызывать другую. Напишите программу, которая вызывает функцию по имени one_three ( ) . Эта функция должна вывести слово “один» в одной строке, вызвать функцию two (), а затем вывести слово “три» тоже в одной строке. Функция two () должна отобразить слово “два» в одной строке. Функция main () должна вывести слово “начинаем:» перед вызовом функции one_three () и слово “порядок!» после ее вызова. Таким образом, выходные данные должны иметь следующий вид:
начинаем:
один
два
три
порядок!
#include <stdio.h>
void one_three();
void two();
int main()
{
printf("start:\n");
one_three();
printf("good!\n");
getchar();
return 0;
}
void one_three()
{
printf("one\n");
two();
printf("three\n");
}
void two()
{
printf("two\n");
}
Буду рад вашим комментариям!