c++流类库与输入输出习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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.flags(ios.oct); cout<<234<<endl; cout.flags(ios::scientific); cout<<b<<'\t'; cout.flags(ios::fixed); cout<<b<<endl; cin.get(c,99); cout<<c<<endl; return 0; } 流操作子实现 #include<iostream> #include<iomanip> using namespace std; int main(){ long a=234;
1.概念填空题 1.1 头文件 iostream 中定义了 4 个标准流对象 cin , 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]; cin.getline(a,200,’ ‘);
Leabharlann Baidu
ifile.getline(text,999); rows++; i=0; while(text[i]!=0){ if(!isalph(text[i])) inword=false; else if(isalph(text[i]) && inword==false){ words++; inword=true; } i++; } } cout<<"rows= "<<rows<<endl; cout<<"words= "<<words<<endl; ifile.close (); return 0; } bool isalph(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 c[1000]; ifstream ifile("D:\\10_4_3.cpp"); ofstream ofile("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(){
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.file.read(reinterpret_cast<const char *>(&c), sizeof(c)); B.file.read(reinterpret_cast<char *>(&c), sizeof(c)); C.file.read((const char *)(&c), sizeof(c)); D.file.read((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.get(); c=myfile.get(); C.myfile.seekp(ios::end,0); D.myfileseekp(ios::end,1); c=myfile.get(); c=myfile.get(); 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);
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"); while(!ifile1.eof()){ ifile1.getline(c,999); ofile<<c<<endl; } while(!ifile2.eof()){ ifile2.getline(c,999); ofile<<c<<endl; } 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:\\lenovo\\english\\daily.doc"); char text[1000]; bool inword=false; int rows=0,words=0; int i; while(!ifile.eof()){
相关文档
最新文档