|
Программирование >> Структурное программирование
с) cout << Строка в кавычках ; 11.5. Для каждого из перечисленных ниже операторов, покажите, что будет выведено. a) cout 12345 endl; cout.width(5); cout.fill С *); cout 123 endl 123; b) cout setw(lO) setfill($) 10000; c) cout setw(8) setprecision(3) << 1024.987654; d) cout setiodflags(ios::showbase) oct << 99 endl hex 99; e) cout 100000 endl setiosflags(ios::showpos) 100000; f) cout setw(lO) setprecision(2) setiosflags(ios::scientific) 444.93738; Ответы на упражнения для самопроверки 11.1. а) дружественные. Ь) ios::Ieft, ios::right, ios::internaI. с) потоков, d) setiosflags, resetiosflags. e) iostream.h. f) setf, unsetf g) strstream.h. h) iomanip.h. i) fstream.h. j) endl. k) stdiostream.h. 1) write, m) istream. n) cerr, clog, o) ostream. p) . q) cin, cout, cerr, clog, r) . s) oct, hex, dec. t) 6 разрядам, u) ios::showpos. 11.2. a) Верно. b) Неверно. Операции поместить в поток и взять из потока не перегружены для типов, определенных пользователем. Программист при создании собственного класса обязан специально создать перегруженные функции-операции, чтобы перегрузить операции с потоками для определенных им типов. c) Неверно. Функция-элемент потока flag() без аргумента просто возвращает текущее значение переменной состояния flags. d) Верно. e) Верно. f) Неверно. Для того, чтобы перегрузить операцию поместить в поток , перегруженная функция-операция должна получить в качестве параметров ссылку на класс ostream, ссылку на тип, определенный пользователем, и вернуть ссылку на класс ostream. g) Верно, но до тех пор, пока флаг ios::skipws сброшен. h) Неверно. Все средства ввода-вывода в С-Ь-Ь предоставляются стандартной библиотекой С-Ь-Ь. В самом языке С-Ы- не предусмотрены средства ввода, вывода и обработки файлов. i) Верно, j) Верно, к) Верно. 1) Неверно. Поток cin связан со стандартным устройством ввода компьютера, обычно с клавиатурой. т) Верно. п) Верно. 0) Верно. р) Неверно. Функция-элемент put класса ostream выводит один символьный аргумент. q) Неверно. Манипуляторы потока dec, oct и hex устанавливают основание вывода целых чисел, которое действует до тех пор, пока основание не будет изменено или не завершится программа. г) Неверно. Адреса памяти отображаются по умолчанию в шестнадцатеричном формате. Для того, чтобы отобразить адреса как целые типа long, необходимо привести тип адресов к типу long. 11.3.а) cout Введите ваше имя: ; b) cout.setf(ios::uppercase); c) cout (void *) string; d) cout.setf(ios::scientific, ios::floatfield); e) cout integerPtr; f) cout setiosflags(ios::showbase); g) cout *floatPtr; h) cout.fill(* ); cout setfill(* ) ; 1) cout.put CO ) .putCK ) ; j) cin.peekO ; k) с = cin.get (); cin.get(c); 1) cin.ignore(6); m)cin.read(line, 50); n) cin.get(name, 10, .); cin.getline(name, 10, .); o) cout.write(line, cin.gcount()); p) cout.flush(); cout flush; q) cout 124 18.376 Z 1000000 Строка ; r) coout cout.precisionO ; s) cin months percentageRate; t) cout setprecision(3) 1.92 \t 1.925 \t 1.9258; u) cout oct 100 hex 100 dec 100; v) cout 100 setbase (8) 100 setbase(16) 100; w) cout setw(lO) 234; x) cin.get(line, 20, z); у) cout setw(x) sertprecision(у) 87.4573; 11.4. a) Ошибка: приоритет операции выше приоритета операции отношения <-, поэтому оператор вычисляется неправильно и это приводит к ошибке компилятора. Исправление: для устранения этой ошибки следует заключить условное выражение (х <= у) в круглые скобки. Подобные ошибки будут возникать с любыми выражениями, в которых используются операции с более низким приоритетом, чем приоритет операции , и которые не заключены в круглые скобки. b) Ошибка: в отличие от языка С символы в языке C+-f не обрабатываются как целые. Исправление: чтобы напечатать численное значение символа из набора символов компьютера, символ должен быть приведен к целому значению, например, следующим образом: cout int(c); c) Ошибка. Символы в виде кавычек не могут быть напечатаны в строке, пока не будет использована управляющая последовательность. Поправка: Напечатайте строку одним из следующих способов: cout Строка в кавычках ; cout \ Строка в кавычках\ ; 11.5. а) 12345 **123 123 b) $$$$$100000 c) 1024.988 d) 0143 0x63 e) 100000 100000 f) 4.45е+02 Упражнения 11.6. Напишите по одному оператору, выполняющему следующее: a) Напечатайте целое число 40000 с выравниванием по левой границе поля шириной 15 разрядов. b) Прочитайте строку в переменную символьного массива state. c) Напечатайте число 200 со знаком и без него. d) Напечатайте десятичное значение 100 в шестнадцатеричном формате с предшествующими символами Ох. e) Читайте символы в массив s пока не встретится символ р, но не более 10 символов (включая завершающий нулевой символ). Извлеките указанный ограничитель из входного потока и отбросьте его.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |