Ответы
1. Выражения истинны в вопросах а и г
2. a. number > = 1
&& number < 9б. ch != 'q'
&& ch != kв. number > 1
&& number < 9 && number != 5г. !(number > 1 && number < 9)
или number < = 1 || number > = 93. Строка 5: должна выглядеть так scanf(" %d %d", &weight, &height)
. He забывайте указывать символы в качестве префиксов имен переменных в функции scanf( ). Кроме того, данной строке должна предшествовать строка, предлагающая ввести данные.Строка 9: подразумеваемое выражение должно выглядеть так: (height < 72 && height > 64)
. Однако первая часть этого выражения необязательна, поскольку величина height, если поток управления достигнет записи else-if, будет обязательно меньше 72. Поэтому более простое условие (height > 64) в данном случае служит той же цели.Строка 11: избыточное условие; второе подвыражение (отрицание условия "величина weight
меньше или равна 300") означает то же, что и первое. В действительности данное условие записывается так: (weight > 300). Но неприятности на этом не кончаются. Строка 11 относится к ошибочному оператору if. Очевидно, что эта часть else ассоциируется с оператором if, расположенным в строке 6, но, согласно правилу, связывающему ее с ближайшим отрицанием условия, содержащегося в if, она будет ассоциироваться с оператором if на строке 9. Поэтому условие, помещенное на строке 11, будет проверяться в том случае, когда величина weight меньше 100, а величина height меньше или равна 64. Это делает невозможным превышение переменной weight значения 300 при выполнении данного оператора.Строки 7-9 должны быть заключены в фигурные скобки. Тогда строка 11 станет альтернативой оператору, расположенному на строке 6, а не на строке 9.
Строка 12: данное выражение необходимо упростить так: (height
< 48)Строка 14: это ключевое слово else
относится к последнему оператору if, раcположенному на строке 12. Операторы, помещенные на строках 12 и 13, необходимо заключить в фигурные скобки, тогда else будет относиться к оператору if на строке 11. Обратите внимание, что последнее сообщение будет напечатано для тех, чей вес заключен между 100 и 300 фунтами.8. Циклы и другие управляющие средства
При усложнении решаемых задач ход выполнения программ становится более запутанным. Чтобы иметь возможность управлять процессом выполнения программ и его организацией, вам попадаютя структуры и некоторые специальные операторы. Язык предоставляет эффективные средства реализации таких требований. Мы уже смогли убедиться в чрезвычайной ценности цикла if
в том случае, когда необходимо повторить некоторую операцию несколько раз. В языке Си, кроме того, реализовано еще два вида циклов: цикл for и цикл do ... while. В данной главе рассматриваются принципы работы управляющих структур и даются рекомендации, каким образом лучше всего применять каждую из них. Обсудим операторы break, continue, goto и операцию "запятая" все они могут использоваться для управления ходом выполнения программы. Кроме того, мы расскажем вам еще немного о свойствах, которые часто используются вместе с циклами.ЦИКЛ while
В предшествующих главах мы интенсивно пользовались этой формой цикла, сейчас же хотим рассмотреть его работу в случае простой, возможно, даже примитивной программы, угадывающей число.