Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Синтаксис и семантика операторов языка Си
3.1. Перечислить все ситуации, когда в программах на Си используется составной оператор.
3.2. В Си точка с запятой используется в качестве признака конца оператора; в Паскале - в качестве разделителя операторов. Сравните эти решения, сформулируйте возможные «за» и «против».
3.3. Эквивалентны ли следующие фрагменты программы: if (e1) if (e2) S1; else S2; if (e1) { if (e2) S1; else S2; } if (e1) { if (e2) S1; } else S2; if (e1) if (e2) S1; else; else S2; if (e1) if (e2) S1; else S2; else; Замечание: здесь e1 и e2 - выражения допустимого в этом случае типа; S1 и S2 - произвольные операторы.
3.4. Описать в виде блок-схемы семантику каждого оператора цикла в Си (с учетом операторов break и continue, которые, возможно, содержатся в теле цикла). 3.5. Может ли быть определено число итераций цикла for до начала его выполнения? a) в Паскале b) в Си 3.6. Верно ли решена задача: «найти сумму первых 100 натуральных чисел»? a) i = 1; sum = 0; for (; i < = 100; i++) sum += i; b) sum = 0; for (i = 1; i < = 100;) sum += i++; c) for (i = 1, sum = 0; i < = 100; sum += i+, i++); d) for (i = 1, sum = 0; i < = 100; sum += i++); e) for (i = 0, sum = 0; i++, i < = 100; sum += i);
3.7. Выразить семантику цикла for с помощью цикла while. Эквивалентны ли полученные фрагменты программ?
3.8. Эквивалентны ли следующие фрагменты программы: a) for (; e2;) S; и while (e2) S; b) for (;;) S; и while (1) S; Замечание: здесь e2 - выражение допустимого в этом случае типа;
3.9. Можно ли написать фрагмент программы на Си, эквивалентный данному, используя один оператор цикла for с пустым оператором в качестве тела цикла? i = 0; c = getchar(); while (c! = ’ ’ & & c! = ’\n’ & & c! =’ \t’ & & c! = EOF) { i++; c = getchar(); }
3.10. Сравнить семантику операторов repeat в Паскале и do-while в Си.
3.11. Улучшить стиль (структуру) следующих фрагментов программы на Си: a) while (E1) { if (E2) continue; S; } b) do { if (E1) continue; else S1; S2; } while (E2); Замечание: здесь E1, E2 - выражения допустимого в этом случае типа; S, S1, S2 - произвольные операторы.
3.12. Что напечатает следующая программа? # include < stdio.h> main() { int x, y, z; x = y = 0; while (y < 10) ++y; x += y; printf (" x = %d y = %d\n", x, y); x = y = 0; while (y < 10) x += ++ y; printf (" x= %d y = %d\n", x, y); y = 1; while (y < 10) { x = y ++; z = ++y; } printf (" x = %d y = %d z = %d\n", x, y, z); for (y =1; y < 10; y++) x = y; printf (" x= %d y = %d\n", x, y); for (y = 1; (x = y) < 10; y++); printf (" x = %d y = %d\n", x, y); for (x = 0, y = 1000; y > 1; x++, y /= 10) printf (" x = %d y = %d\n", x, y); } 3.13. Сравнить семантику операторов case в Паскале и switch в Си.
3.14. Верны ли следующие утверждения: a) «любое выражение в Си может быть преобразовано в оператор добавлением к нему точки с запятой (;)» b) «пустой оператор в Си - это отсутствие каких-либо символов в том месте конструкции, где по синтаксису может находиться оператор» c) «составной оператор (блок) в Си - это совокупность операторов, заключенная в фигурные скобки { }» d) «оператор присваивания в Си - это выражение вида переменная = выражение» e) «тип выражения в условии в операторе if, в условии завершения цикла в операторах цикла может быть скалярным (т.е. любым целочисленным, любым вещественным либо указателем)» f) «в блоке описания/объявления и операторы могут располагаться в любом порядке; единственное требование - использование не должно предшествовать описанию/объявлению» e) «цикл for (;;) является бесконечным циклом, и поэтому его использование в Си запрещено» f) «семантика операторов цикла while и do-while в Си различается только тем, что тело цикла while может не выполниться ни разу, а тело цикла do-while выполнится хотя бы один раз.» g) «каждая ветвь в операторе switch должна быть помечена одной или несколькими различными целочисленными константами или константными выражениями» h) «если в операторе switch нет ветви default, то значение выражения выбора должно совпадать с одной из констант ветвей case» i) «в операторе switch ветви case и ветвь default можно располагать в любом порядке»
3.15. Верно ли утверждение: «действие оператора continue; в приведенных ниже примерах эквивалентно действию оператора go to next;». a) while (E) { S;... continue;... S; next:; } b) do { S;... continue;... S; } while (E); next:;... c) for (E1; E2; E3) { S;... continue;... S; next:; } d) while (E) { S;... for (E1; E2; E3) { S;... continue;... S; }... S; next:; } e) while (E) { S;... for (E1; E2; E3) { S;... continue;... S; next:; }... S; } f) switch (E) { case C1: S; case C2: S; continue; case C3: S; } next:;... g) switch (E) { case C1: S; case C2: S; continue; case C3: next: S; } h) next: switch (E) { case C1: S; case C2: S; continue; case C3: S; } Замечание: здесь E, E1, E2, E3 - выражения допустимого в этом случае типа; S - произвольный оператор; C1, C2 C3 - константы подходящего типа.
3.16. Верно ли утверждение: «действие оператора break; в приведенных ниже примерах эквивалентно действию оператора go to next;». a) while (E) { S;... break;... S; next:; } b) while (E) { S;... break;... S; } next:;... c) do { S;... break;... S; } while (E); next:;... d) for (E1; E2; E3) { S;... break;... S; next:; } e) while (E) { S;... for (E1; E2; E3) { S;... break;... S; } next:;... S; } f) while (E) { S;... for (E1; E2; E3) { S;... break;... S; }... S; next:; } g) while (E) { S;... for (E1; E2; E3) { S;... break;... S; }... S; } next:; h) switch (E) { case C1: S; case C2: S; break; case C3: S; } next:;... i) switch (E) { case C1: S; case C2: S; break; S; case C3: next: S; } Замечание: здесь E, E1, E2, E3 - выражения допустимого в этом случае типа; S - произвольный оператор; C1, C2 C3 - константы подходящего типа.
|