Программирование >>  Структурное программирование 

1 ... 224 225 226 [ 227 ] 228 229 230 ... 342


с) 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 символов (включая завершающий нулевой символ). Извлеките указанный ограничитель из входного потока и отбросьте его.



1 ... 224 225 226 [ 227 ] 228 229 230 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика