第九章 习题
一、选择填空
1.
进行文件操作时需要包含(
)文件。
A.
iostream.h;
B. fstream.h; C.
stdio.h;
D.stdlib.h。
2.
使用操作符对数据进行格式输出时,应包含(
)文件。
B.
iostream.h;
B. fstream.h; C.
iomanip.h;
D.stdlib.h。
3.
已知:int
a,*pa=&a;;输出指针pa十进制的地址值的方法是(
)。
C.
cout<<pa;
B.
cout<<*pa; C.
cout<<&pa;
D. cout<<long(pa)。
4.
下列输出字符’A’的方法中,(
)是错误的。
D.
cout<<put(‘A’); B.
cout<<’A’; C. cout.put(‘A’)
;
D. char A=’A’;cout<<A;
5.
关于getline()函数的下列描述中,(
)是错的。
E.
该函数是用来从键盘上读取字符串的;
F.
该函数读取的字符串长度是受限制的;
G.
该函数读取字符串时遇到终止符便停止;
H.
该函数中所使用的终止符只能是换行符。
6.
关于read()函数的下列描述中,(
)是对的。
I.
该函数只能从键盘输入中获取字符串;
J.
该函数所获取的字符多少是不受限制的;
K.
该函数只能用于文本文件的操作中;
L.
该函数只能按规定读取所指定的字符数。
7.
在ios中提供控制格式的标志位中,(
)是转换为十六进制形式的标志位。
M.
hex;
B. oct; C. dec; D.
left。
8.
控制格式输出输入的操作符中,(
)是设置域宽的。
N.
ws;
B. oct; C.
setfill();
D.setw()。
9.
磁盘文件操作中,打开磁盘文件的访问方式常量中,(
)是以追加方式打开文件的。
O.
in;
B. out; C. app; D.
ate。
10.
下列函数中,(
)是对文件进行写操作。
P.
get();
B. read(); C.
seekg(); D.
put()
二、判断下列描述的正确性,对者划√,错者划×。
1.使用提取符(<<)可以输出各种类型的变量的值,也可以输出指针值。
2.预定义的插入符从键盘上接收数据是不带缓冲区的。
3.预定义的提取符和插入符是可以重载的。
4.记录流的当前格式化状态的标志字中每一个用于记录一种格式,这种格式是不能被设置或清除的。
5.设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是cout。
6.操作符本身是一个对象,它可以直接被提取符或插入符操作。
7.get()函数不能从流中提取终止字符,终止字符仍留在流中。getline()函数从流中提取终止字符,但终止字被丢弃。
8.ios类的成员函数clear()是用来清除整个屏幕的。
9.使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象。
10.
使用关闭文件函数close()关闭一个文件时,但流对象仍存在。
11.
以app方式打开文件时,当前的读指针和写指针都定位于文件尾。
12.
打开ASCII码流文件和二进制流文件时,打开方式是相同的。
13.
read()和write()函数可以读写文本文件,也可以读写二进制文件。
14.
流的状态包含流的内容、长度和下一次提取或插入操作的当前位置。
15.
seekg()函数和seekp()函数分别用来定位读指针和写指针的。如果使用seek()函数可以同时定义读写指针。
三、分析下列程序的输出结果。
1、
#include
<iostream.h>
#include
<fstream.h>
#include
<stdlib.h>
void main()
{
fstream
outfile,infile;
outfile.open(“text.dat”,ios::out);
if
(!outfile)
{
cout<<”text.dat can’t
open.\n”;
abort();
}
outfile<<”123456789\n”;
outfile<<”aaabbbbbbccc\n”<<”dddddfffeeeeggggghhh\n”;
outfile<<”ok!\n”;
outfile.close();
infile.open(“text.dat”,ios::in);
if(!infile)
{
cout<<”file can’t
open.\n”;
abort();
}
char textline[80];
while(!infile.eof())
{
infile.getline(textline,sizeof(textline));
cout<<textline<<endl;
}
}
2、
#include
<iostream.h>
#include
<fstream.h>
#include
<stdlib.h>
void main()
{
fstream
file1;
file1.open(“text1.dat”,ios::out|ios::in);
if (!file1)
{
cout<<”text1.dat can’t
open.\n”;
abort();
}
char
textline[]=”123456789abcdefghijkl.\n\0”;
for(int
i=0;i<sizeof(textline);i++)
file1.put(textline[i]);
file1.seekg(0);
char ch;
while(file1.get(ch))
cout<<ch;
file1.close();
}
3、
#include <strstrea.h>
void main()
{
ostrstream ss;
ss<<”Hi,good
morning!”;
char *buf=ss.str();
cout<<buf<<endl;
delete[] buf;
}
4、
#include <iostream.h>
#include <strstrea.h>
char a[]=”1000”;
void main()
{
int dval,oval,hval;
istrstream
iss(a,sizeof(a));
iss>>dec>>dval;
iss.seekg(ios::beg);
iss>>oct>>oval;
iss.seekg(ios::beg);
iss>>hex>>hval;
cout<<”decVal:
“<<dval<<endl;
cout<<”octVal:
“<<oval<<endl;
cout<<”hexVal:”<<hval<<endl;
}
加载中,请稍候......