КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Циклы, ввод-вывод, операции ветвления и логические выражения.
1. Что напечатает следующий фрагмент кода, если использовать его в программе? int i; for (i = 0; i < 5; i + +) cout << i; cout << endl; 2. Что напечатает следующий фрагмент кода, если использовать его в программе? int j; for (j = 0; j < 11; j += 3) cout << j; cout << endl << j << endl; 3. Что напечатает следующий фрагмент кода, если использовать его в программе? int j = 5; while (++j < 9) cout << j++ << endl; 4. Что напечатает следующий фрагмент кода, если использовать его в программе? int k = 8; do cout << " k = " << k << endl; while (k++ < 5); 5. Напишите цикл for, который печатает значения 1 2 4 8 16 32 64, увеличивая вдвое значение переменной счетчика на каждом шаге. 6. Правилен ли следующий оператор? Если нет, то почему? Если да, то что он делает? int х = (1,024); А правилен ли такой оператор? int у; у = 1,024; 7. Чем отличается cin >> ch от cin.get(ch) и ch = cin.get() с точки зрения ввода? 8. Приведены два фрагмента кода для подсчета пробелов и переводов строк: // Версия 1 while (cin.get(ch)) // завершение по eof { if (ch == ' ') spaces++; if (ch == '\n') newlines++; } // Версия 2 while (cin.get(ch)) // завершение по eof { if (ch == ' ') spaces++; else if (ch == '\n') newlines++; } Какие преимущества (если они есть) у второй формы перед первой? 9. Какой эффект даст замена в листинге выражения ++ch на ch+1? #include <iostream> int main() { char ch; std::cout << "Type, and I shall repeat.\n"; std::cin.get(ch); while(ch!= '.') { if (ch = '\n') std::cout << ch; else std::cout << ++ch; std::cin.get(ch); } std::cout << "\nPlease excuse the slight confusion.\n"; return 0; } 10. Изучите следующую программу: #include <iostream> using namespace std; int main() { char ch; int ct1, ct2; ct1 = ct2 = 0; while ((ch = cin.get())!= '$') { cout << ch; ct1++; if (ch = '$') ct2++; cout << ch; } cout << "ct1 = " << ct1 << ", ct2 = " << ct2 << "\n"; return 0; } Предположим, что вы вводите следующие две строки, нажимая клавишу <Enter> в конце каждой строки: Hi! Send $10 or $20 now! Каким будет вывод? 11. Напишите программу, которая запрашивает целое число и затем отображает его в десятичной, восьмеричной и шестнадцатеричной формах. Отобразите все формы в одной и той же строке, в полях шириной по 15 символов, с применением префиксов C++ для оснований систем счисления. 12. Напишите программу, которая запрашивает следующую информацию и форматирует ее, как показано ниже: Enter your name: Billy Gruff Enter your hourly wages: 12 Enter number of hours worked: 7.5 First format: Billy Gruff: $ 12.00: 7.5 Second format: Billy Gruff: $12.00:7.5 13. Пусть имеется следующая программа: #include <iostream> int main() { using namespace std; char ch; int ct1 = 0; cin >> ch; while(ch!= 'q') { ct1++; cin >> ch; } int ct2 = 0; cin.get(ch); while(ch!= 'q') { ct2++; cin.get(ch); } cout << "ct1 = " << ct1 << "; ct2 = " << ct2 << "\n"; return 0; } Что она напечатает, если получит следующий ввод: I see a q<Enter> I see a q<Enter> Здесь <Enter> означает нажатие одноименной клавиши. 14. Оба следующих оператора читают и отбрасывают символы, вплоть до конца строки, включая его. Чем различается их поведение? while (cin.get()!= '\n') continue; cin.ignore(80, '\n'); 15. Постройте логические выражения для представления перечисленных ниже условий. а. weight больше или равно 115, но меньше 125. б. ch равно q или Q. в. х - четное, но не равно 26. г. х - четное, но не кратно 26. д. donation находится в диапазоне 1000-2000 или guest равно 1. е. ch - буква в нижнем или верхнем регистре. (Предполагается, что буквы нижнего регистра кодируются последовательно и буквы верхнего регистра также кодируются последовательно, но между буквами нижнего и верхнего регистров имеется промежуток.) 16. Постройте условное выражение, которое эквивалентно нахождению модуля значения переменной. 17. Перепишите следующий фрагмент с применением switch: if (ch == 'А') a_grade++; else if (ch == 'B') b_grade++; else if (ch == 'C') c_grade++; else if (ch == 'D') d_grade++; else f_grade++; 18. Приведен следующий фрагмент кода: int line = 0; char ch; while (cin.get(ch)) { if (ch == 'Q') break; if (ch!= '\n') continue; line++; } Перепишите этот код так, чтобы в нем не использовались операторы break и continue. 19. Напишите программу, которая подсчитывает количество символов в строке вплоть до первого встретившегося символа $. 20. Напишите программу, которая копирует клавиатурный ввод в файл.
Дата добавления: 2017-02-01; Просмотров: 128; Нарушение авторских прав?; Мы поможем в написании вашей работы! |