Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1страница 2страница 3 ... страница 12страница 13

3.УПРАВЛЕНИЕ

3.1 Синтаксис и семантика операторов языка Си

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 до начала его выполнения?



  1. в Паскале

  2. в Си

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. Эквивалентны ли следующие фрагменты программы:

  1. for ( ; e2 ; ) S; и while ( e2 ) S;

  2. for ( ; ; ) S; и while (1) S;

Замечание: здесь e2 - выражение допустимого в этом случае типа;
S - произвольный оператор.
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

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; ».

  1. while ( E ) { S; ... continue; ... S; next: ; }

  2. do { S; ... continue; ... S; } while ( E ); next: ; ...

  3. for ( E1; E2; E3) { S; ... continue; ... S; next: ; }

  4. while ( E) { S; ... for (E1;E2;E3) { S; ... continue; ... S; } ... S; next:; }

  5. while ( E) { S; ... for (E1;E2;E3) { S; ... continue; ... S; next: ; } ... S;}

  6. switch ( E ) { case C1: S;

case C2: S; continue;

case C3: S; }

next:; ...


  1. switch ( E ) { case C1: S;

case C2: S; continue;

case C3: next: S; }



  1. 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 - константы подходящего типа.


    1. <предыдущая страница | следующая страница>


Учебное пособие для студентов II курса Москва 1999

Представлены задачи и упражнения по языку Си и программированию на нем. Рассматриваемая версия Си соответствует международному и ansi-стандарту этого языка

1074.47kb.

08 10 2014
13 стр.


Учебное пособие Москва Издательство Российского университета дружбы народов 1999 Утвержден о рис ученого совета

К 46 Гигиена труда и профилактика профессиональных заболеваний в отдельных отраслях промышленности: Учеб пособие. М.: Изд-во рудн, 1999. 95 с

1763.61kb.

11 09 2014
7 стр.


Учебное пособие для старших классов мирос москва 1999 Еськов К. Ю. История Земли и жизни на ней: Экспериментальное учебное пособие для старших классов. М.: Мирос, 1999 с.: ил

История Земли и жизни на ней: Экспериментальное учебное пособие для старших классов. – М.: Мирос, 1999 – с.: ил

3595.22kb.

15 09 2014
22 стр.


Учебное пособие для студентов экономических специальностей Павлодар (075. 8) Ббк 65. 290 2 я 73 с 50

Учебное пособие предназначено для изучения курса «Управление рисками» студентами экономических специальностей вузов

1528.71kb.

16 12 2014
8 стр.


Учебное пособие Для студентов факультета журналистики Москва

П 54 Международное гуманитарное право и средства массовой информации: Учеб пособие. — М.: Импэ им. А. С. Грибоедова, 2003. — 40 с

738.43kb.

06 10 2014
3 стр.


Учебное пособие по части курса «Вычислительные системы, сети и телекоммуникации» для студентов специальности 080801

Попов, Ф. А. Вычислительные машины: общие принципы построения и архитектуры: учебное пособие по части курса «Вычислительные системы, сети и телекоммуникации» для студентов специаль

1448.13kb.

24 09 2014
6 стр.


Учебное пособие для студентов высших и средних специальных учебных заведений / Пер с англ. В. Н. Егорова. 2-е изд. М.: Юнити, 2002. 595 с. 13 экз

Вяткин Л. А. Туризм и спортивное ориентирование: Учебное пособие для студентов вузов. – М.: Academia, 2001. – 208 с. 11 экз

60.92kb.

14 10 2014
1 стр.


Учебное пособие для студентов специальности 240706 «Автоматизированное производство химических предприятий»

Учебное пособие предназначено для студентов очной и очно-заочной форм обучения специальности 240706, изучающих дисциплину «Машины и агрегаты для переработки и изготовления смесей»

484.57kb.

09 09 2014
4 стр.