c++流类库与输入输出习题答案_第1页
c++流类库与输入输出习题答案_第2页
c++流类库与输入输出习题答案_第3页
c++流类库与输入输出习题答案_第4页
c++流类库与输入输出习题答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.概念填空题1.1头文件iostream中定义了 4个标准流对象 cin , cout , cerr , clog 。其中标准输入流对象为 cin ,与 键盘 连用,用于输入; cout 为标准输出流对象,与显示器 连用,用于输出。1.2用标准输入流对象cin与提取操作符>>连用进行输入时,将 空格 与 回车 当作分隔符,使用 get() 成员函数进行输入时可以指定输入分隔符。1.3每一个输入输出流对象都维护一个 流格式状态字 ,用它表示流对象当前的格式状态并控制流的格式。C+提供了使用 格式控制 函数与 操作子 函数来控制流的格式的方法。1.4 C+根据文件内容的 数据格式 可

2、分为两类: 文本文件 和 二进制文件 。前者存取的最小信息单位为 字节 ,后者 记录 。1.5文件输入是指从文件向 内存 读入数据;文件输出则指从 内存 向文件输出数据。文件的输入输出首先要 打开文件 ;然后 进行读写 ;最后 关闭文件 。1.6文本文件是存储ASCII码字符的文件,文本文件的输入可用 cin 从输入文件流中提取字符实现。文本文件的输出可用 cout 将字符插入到输出文件流来实现。程序在处理文本文件时 需要 (需要/不需要)对数据进行转换。1.7二进制文件是指直接将计算机内的数据不经转换直接保存在文件中。二进制文件的输入输出分别采用read()、write() 成员函数。 这两

3、个成员函数的参数都是 2个,分别表示 读写缓冲区 和 字节数 。1.8设定、返回文件读指针位置的函数分别为 seekg , tellg ;设定、返回文件写指针位置的函数分别为 seekp , tellp 。2 简答题2.1 为什么cin输入时,空格和回车无法读入?这时可改用哪些流成员函数?2.2 文件的使用有它的固定格式,试做简单介绍。2.3 在ios类中定义的文件打开方式中,公有枚举类型open_mode的各成员代表什么文件打开方式?2.4 简述文本文件和二进制文件在存储格式、读写方式等方面的不同,各自的优点和缺点。2.5 文本文件可以按行也可以按字符进行复制,在使用中为保证能完整复制要注意

4、哪些问题?2.6 文件的随机访问为什么总是用二进制文件,而不用文本文件?2.7 怎样使用istream和ostream的成员函数来实现随机访问文件?3选择题3.1要进行文件的输出,除了包含头文件iostream外,还要包含头文件(C )。 AifstreamBfstreamCostreamDcstdio3.2执行以下程序:char *str;cin>>str;cout<<str;若输入abcd 1234则输出(D)。 AabcdBabcd 1234 C1234D输出乱码或出错3.3执行下列程序:char a200;cin.getline(a,200, );cout<

5、;<a;若输入abcd 1234则输出(A)。 AabcdBabcd 1234 C1234D输出乱码或出错3.4定义char *p=”abcd”,能输出p的值(“abcd”的地址)的为(A /D ?)。 Acout<<&p;Bcout<<p; Ccout<<(char*)p; Dcout<<const_cast<void *>(p);3.5以下程序执行结果(A)。cout.fill(#);cout.width(10);cout<<setiosflags(ios:left)<<123.456; A1

6、23.456#B123.4560000 C#123.456D123.4563.6当使用ifstream定义一个文件流,并将一个打开文件的文件与之连接,文件默认的打开方式为(A)。 Aios:inBios:outCios:trunc Dios:binary3.7从一个文件中读一个字节存于char c;正确的语句为(B)。 Afile.read(reinterpret_cast<const char *>(&c), sizeof(c); Bfile.read(reinterpret_cast<char *>(&c), sizeof(c); Cfile.rea

7、d(const char *)(&c), sizeof(c); Dfile.read(char *)c, sizeof(c);3.8将一个字符char c=A写到文件中错误的语句为(D)。 Afile.write(reinterpret_cast<const char *>(&c), sizeof(c); Bfile.write(reinterpret_cast<char *>(&c), sizeof(c); Cfile.write(char *)(&c), sizeof(c); Dfile.write(const char *)c, s

8、izeof(c);3.9读文件最后一个字节(字符)的语句为(B)。 Amyfile.seekg(1,ios:end);Bmyfile.seekg(-1,ios:end); c=myfile.get(); c=myfile.get(); Cmyfile.seekp(ios:end,0); Dmyfileseekp(ios:end,1); c=myfile.get(); c=myfile.get();3.10 read函数的功能是从输入流中读取(D )。 A.一个字符 B.当前字符 C.一行字符 D.指定若干字节3.11 要求打开文件D:file.dat,并能够写入数据,正确的语句是( D )。

9、A.ifstream infile("D:file.dat", ios:in); B. ifstream infile("D:file.dat", ios:out); C. ofstream outfile("Dfile.dat", ios:in); D.fstream infile("Dfile.dat", ios:in | ios:out);3.12 设己定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的每句是( C )。 A. outfile.write(doubl

10、e*)&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)把字符串读入字符型数组变量中,从键盘输入,要求输入串的空格也全部

11、读入,以回车符结束。 (5)将以上要求用流成员函数和流操作子各做一遍。Ios类成员函数实现#include<iostream>#include<iomanip>using namespace std;int main()long a=234;double b=2345.67890;char c100;cout.fill('*');cout.flags(ios_base:left);cout.width(12);cout<<a<<endl;cout.fill('*');cout.flags(ios:right);co

12、ut.width(12);cout<<a<<endl;cout.flags(ios.hex);cout<<234<<'t'cout.flags(ios.dec);cout<<234<<'t'cout.flags(ios.oct);cout<<234<<endl;cout.flags(ios:scientific);cout<<b<<'t'cout.flags(ios:fixed);cout<<b<<end

13、l;cin.get(c,99);cout<<c<<endl;return 0;流操作子实现#include<iostream>#include<iomanip>using namespace std;int main()long a=234;double b=2345.67890;char c100;cout<<setfill('*');cout<<left<<setw(12)<<a<<endl;cout<<right<<setw(12)<&

14、lt;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

15、 namespace std;int main()int i=1;char c1000;ifstream ifile1("D:10_4_3.cpp");ifstream ifile2("D:10_4_4.cpp");ofstream ofile("D:r10_4.cpp");while(!ifile1.eof()ifile1.getline(c,999);ofile<<c<<endl;while(!ifile2.eof()ifile2.getline(c,999);ofile<<c<<e

16、ndl;ifile1.close();ifile2.close();ofile.close();return 0;4.3编写一程序,统计一篇英文文章中单词的个数与行数。#include<iostream>#include<fstream>using namespace std;bool isalph(char);int main()ifstream ifile("E:lenovoenglishdaily.doc");char text1000;bool inword=false;int rows=0,words=0;int i;while(!ifil

17、e.eof()ifile.getline(text,999);rows+;i=0;while(texti!=0)if(!isalph(texti)inword=false;else if(isalph(texti) && inword=false)words+;inword=true;i+;cout<<"rows= "<<rows<<endl;cout<<"words= "<<words<<endl;ifile.close ();return 0;bool isalp

18、h(char c)return (c>='A' && c<='Z') | (c>='a' && c<='z');4.4编写一程序,将C+源程序每行前加上行号与一个空格。#include<iostream>#include<fstream>using namespace std;int main()int i=1;char c1000;ifstream ifile("D:10_4_3.cpp");ofstream ofile(&quo

19、t;D:r10_4_3.cpp");while(!ifile.eof()ofile<<i+<<": "ifile.getline(c,999);ofile<<c<<endl;ifile.close();ofile.close();return 0;4.5编写一程序,输出 ASCII码值从20到127的ASCII码字符表,格式为每行10个。#include<iostream>using namespace std;int main()int i,l;for(i=32;i<127;i+)cout<

20、<char(i)<<" "l+;if(l%10=0)cout<<endl;cout<<endl;return 0;4.6将第8章习题7.6 ClockwithDate类对象以”年-月-日 时:分:秒”格式,以文本形式输出之文件,并对插入操作符<<进行重载。ostream& operator<<(ostream& out,ClockwithDate& CD)out<<CD.Year<<"年"<<CD.Month<<&qu

21、ot;月"<<CD.Day<<"日 "<<CD.Hour<<":"<<CD.Minute<<":"<<CD.Second;out<<(CD.Ap=1 ? "上午" : "下午")<<endl;return out;4.7定义一个Student类,其中含学号、姓名、成绩数据成员。建立若干个Student类对象,将它们保存到文件Record.dat中。然后显示文件中的内容。#incl

22、ude <iostream.h> #include <string.h>#include <fstream.h>/using namespace std; class Studentchar Id10;char Name10;int Score;public:Student();Student(char *id,char *name,int score);Student(Student &s);Student();friend ostream& operator<<(ostream&,Student&);Stude

23、nt:Student()strcpy(Id,"00000000");strcpy(Name,"noname");Score=-1;Student:Student(char *id,char *name,int score)strcpy(Id,id);strcpy(Name,name);Score=score;Student:Student(Student &s)strcpy(Id,s.Id);strcpy(Name,s.Name);Score=s.Score;Student:Student()ostream& operator<<(ostream& out,Student& stu)out<<stu.Id <<'t'<<stu.Name <<'t'<<stu.Score <<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论