1.概念填空题
1.1头文件iostream中定义了 4个标准流对象 cin ios 字符串转数组cout cerr clog 。其中标准输入流对象为 cin ,与 键盘 连用,用于输入; cout 为标准输出流对象,与显示器  连用,用于输出。
1.2用标准输入流对象cin与提取操作符>>连用进行输入时,将 空格  回车 当作分隔符,使用 get()  成员函数进行输入时可以指定输入分隔符。
1.3每一个输入输出流对象都维护一个 流格式状态字 ,用它表示流对象当前的格式状态并控制流的格式。C++提供了使用 格式控制  函数与 操作子 函数来控制流的格式的方法。
1.4 C++根据文件内容的 数据格式 可分为两类: 文本文件  二进制文件 。前者存取的最小信息单位为 字节  ,后者 记录 
1.5文件输入是指从文件向 内存 读入数据;文件输出则指从 内存 向文件输出数据。文件的输入输出首先要 打开文件 ;然后 进行读写  ;最后 关闭文件
1.6文本文件是存储ASCII码字符的文件,文本文件的输入可用 cin 从输入文件流中提取字符实
现。文本文件的输出可用 cout 将字符插入到输出文件流来实现。程序在处理文本文件时 需要  (需要/不需要)对数据进行转换。
1.7二进制文件是指直接将计算机内的数据不经转换直接保存在文件中。二进制文件的输入输出分别采用read()、write() 成员函数。  这两个成员函数的参数都是 2个,分别表示 读写缓冲区    字节数 
1.8设定、返回文件读指针位置的函数分别为 seekg  tellg ;设定、返回文件写指针位置的函数分别为 seekp tellp
2 简答题
2.1  为什么cin输入时,空格和回车无法读入?这时可改用哪些流成员函数?
2.2  文件的使用有它的固定格式,试做简单介绍。
2.3  在ios类中定义的文件打开方式中,公有枚举类型open_mode的各成员代表什么文件打开方式?
2.4  简述文本文件和二进制文件在存储格式、读写方式等方面的不同,各自的优点和缺点。
2.5  文本文件可以按行也可以按字符进行复制,在使用中为保证能完整复制要注意哪些问题?
2.6  文件的随机访问为什么总是用二进制文件,而不用文本文件?
2.7  怎样使用istream和ostream的成员函数来实现随机访问文件?
3.选择题
3.1要进行文件的输出,除了包含头文件iostream外,还要包含头文件(C )。
    A.ifstream            B.fstream        C.ostream        D.cstdio
3.2执行以下程序:
char *str;
cin>>str;
cout<<str;
若输入abcd  1234↙则输出(D)。
    A.abcd        B.abcd 1234        C.1234        D.输出乱码或出错
3.3执行下列程序:
char a[200];
line(a,200,’  ‘);
cout<<a;
若输入abcd  1234↙则输出(A)。
    A.abcd        B.abcd 1234        C.1234        D.输出乱码或出错
3.4定义char *p=”abcd”,能输出p的值(“abcd”的地址)的为(A /D ?)。
    A.cout<<&p;                    B.cout<<p;
    C.cout<<(char*)p;                D.cout<<const_cast<void *>(p);
3.5以下程序执行结果(A)。
cout.fill(‘#’);
cout.width(10);
cout<<setiosflags(ios::left)<<123.456;
    A.123.456###        B.123.4560000    C.####123.456        D.123.456
3.6当使用ifstream定义一个文件流,并将一个打开文件的文件与之连接,文件默认的打开方式为(A)。
    A.ios::in        B.ios::out        C.ios::trunc            D.ios::binary
3.7从一个文件中读一个字节存于char c;正确的语句为(B)。
      A.ad(reinterpret_cast<const char *>(&c), sizeof(c));
      B.ad(reinterpret_cast<char *>(&c), sizeof(c));
      C.ad((const char *)(&c), sizeof(c));
      D.ad((char *)c, sizeof(c);
3.8将一个字符char c=’A’写到文件中错误的语句为(D)。
      A.file.write(reinterpret_cast<const char *>(&c), sizeof(c));
      B.file.write(reinterpret_cast<char *>(&c), sizeof(c));
      C.file.write((char *)(&c), sizeof(c));
      D.file.write((const char *)c, sizeof(c));
3.9读文件最后一个字节(字符)的语句为(B)。
      A.myfile.seekg(1,ios::end);                B.myfile.seekg(-1,ios::end);
        ();                          ();
      C.myfile.seekp(ios::end,0);              D.myfileseekp(ios::end,1);
        ();                          ();
3.10 read函数的功能是从输入流中读取(D )。
  A.一个字符  B.当前字符  C.一行字符  D.指定若干字节
3.11 要求打开文件D:\file.dat,并能够写入数据,正确的语句是( D )。
    A.ifstream infile("D:\\file.dat", ios::in);
    B. ifstream infile("D:\\file.dat", ios::out);
    C. ofstream outfile("D\\file.dat", ios::in);
    D.fstream infile("D\\file.dat", ios::in | ios::out);
3.12 设己定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的每句是( C )。
    A. outfile.write((double*)&data, sizeof (double));
    B.outfile.write((double*)&data, data);
    C. outfile.write((char*)&data, sizeof (double));
    D. outfile.write((char*)&data, data);
4.编程题
4.1 编程实现以下数据输入/输出:
    (1)以左对齐方式输出整数,域宽为12。
    (2)以八进制、十进制、十六进制输入/输出整数。
    (3)实现浮点数的指数格式和定点格式的输入/输出,并指定精度。
    (4)把字符串读入字符型数组变量中,从键盘输入,要求输入串的空格也全部读入,以回车符结束。
    (5)将以上要求用流成员函数和流操作子各做一遍。
Ios类成员函数实现
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    long a=234;
    double b=2345.67890;
    char c[100];
    cout.fill('*');
    cout.flags(ios_base::left);
    cout.width(12);
    cout<<a<<endl;
    cout.fill('*');
    cout.flags(ios::right);
    cout.width(12);
    cout<<a<<endl;
    cout.flags(ios.hex);
    cout<<234<<'\t';
    cout.flags(ios.dec);
    cout<<234<<'\t';
    cout.);
    cout<<234<<endl;
    cout.flags(ios::scientific);
    cout<<b<<'\t';
    cout.flags(ios::fixed);
    cout<<b<<endl;
    (c,99);
    cout<<c<<endl;
    return 0;
}
流操作子实现
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    long a=234;
    double b=2345.67890;
    char c[100];
    cout<<setfill('*');
    cout<<left<<setw(12)<<a<<endl;
    cout<<right<<setw(12)<<a<<endl;
    cout<<hex<<a<<'\t'<<dec<<a<<'\t'<<oct<<a<<endl;
    cout<<scientific<<b<<'\t'<<fixed<<b<<endl;
    return 0;
}
4.2编写一程序,将两个文件合并成一个文件。
#include<iostream>
#include<fstream>
using namespace std;
int main(){
    int i=1;
    char c[1000];
    ifstream ifile1("D:\\10_4_3.cpp");
    ifstream ifile2("D:\\10_4_4.cpp");
    ofstream ofile("D:\\r10_4.cpp");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。