C谭浩强总复习试卷(共21页)_第1页
C谭浩强总复习试卷(共21页)_第2页
C谭浩强总复习试卷(共21页)_第3页
C谭浩强总复习试卷(共21页)_第4页
C谭浩强总复习试卷(共21页)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上习题五一、 填空题1、C+中的I/O操作是通过一组标准( )或( )来实现的。2、I/O流库中的两个基础类是( )类和( )类。其中( )类用来处理与硬件设备有关的操作;而另一类用来处理( )操作。3、C+中,有四个流对象已预先定义好,以便用户直接使用,分别为:( )、( )、 ( )、( )。4、插入操作符是( ),流提取操作符是( )。5、成员函数put()把( )写入输出流中。6、流操作器( )、( )和( )分别指定整数按八进制、十六进制、十进制格式显示。7、默认的输出对齐方式是( )对齐。8、操作器( )控制输出宽度。9、输入成员函数getline读取( )

2、字符。10、C+程序中的“endl”在输出语句中起( )作用。11、C+中的文件按存储格式可以分为两类,分别是( )和( ),根据存取方式可以把文件分为( )和( )。12、文件名由( )和( )两部分组成,它们之间用圆点分开。13、在C+中打开一个文件,就是将这个文件与一个( )建立关联,关闭一个文件,就是取消这个关联。14、C+中数据文件分为二进制文件和( )文件两类。15、C+有3种文件流,分别是( )、( )和( )。16、随机文件有时需要确定文件指针的当前位置,可以使用( )和( )成员函数获取文件指针的当前位置。17、C+在异常的处理中,使用( )语句检测是否发生异常。二、 选择题

3、1、以下不可以作为输出流对象的是( )。A. 文件B. 内存C. 键盘D. 显示器2、若在I/O流的输出中使用控制符setfill()设置填充字符,应包括的头文件是( )。A. stdlib.hB. iostream.hC. fstream.hD. iomanip.h3、以下程序的输出结果是( )。cout<<setw(3)<<25<<oct<<25<<hex<<endl; A. 25 25B. 2531C. 31 19D. 25 314、C+流中重载了运算符<<,它是一个( )。A. 用于输出操作的成员函数。

4、B. 用于输入操作的成员函数。C. 用于输出操作的非成员函数。D. 用于输入操作的非成员函数。5、以下关于ios的叙述中正确的是( )。A. 它是istream类和ostream类的虚基类。B. 它只是istream类的虚基类。C. 它只是ostream类的虚基类。D. 它是iostream类的虚基类。6、在进行了任何C+流的操作后,都可以用C+流的有关成员函数检测流的状态,其中只能用于检测输入操作函数的函数名是( )。A. failB. eofC. badD. good7、使用setw()这样的操纵符对数据进行格式输出时,应包括的头文件是( )。A. stdlib.hB. iostream.

5、hC. fstream.hD. iomanip.h8、以下语句中,输出结果与众不同的一个是( )。A. cout<<"1. "<<setfill(' ')<< "Hello! "<<endl;B. cout<<"1. "<<' ' <<"Hello! n"C. cout<<"1. Hello! "<<endl;D. cout<<"1.

6、"<<setw(7)<< "Hello! "9、运行以下程序,则输出结果是( )。#include<iostream.h> #include<iomanip.h> void main() cout.fill('*');cout.width(10);cout<<setiosflags(ios:left)<<123.45<<endl;A. *123.45B. *123.45*C. 123.45*D. *123.45*10、运行以下程序,若输入This is a book

7、.<回车>,则程序的输出结果是( )。#include<iostream.h> void main() char line10;cin>>line;cout<<line<<endl;A. ThisB. This isC. This is aD. This is a book11、在文件操作中,代表以追加方式打开文件的模式是( )。A. iso:ateB. iso:appC. iso:outD. iso:trunc12、下列打开文件的表达式中,( )是错误的。A. ofstream ofile; ofile.open("abc

8、.txt",ios:binary);B. fstream iofile; iofile.open("abc.txt",ios:ate);C. ifstream ifile("abc.txt");D. cout.open("abc.txt",ios:binary);13、以下关于文件操作的叙述中,不正确的是( )。A. 打开文件的目的是使文件对象与磁盘文件建立联系B. 文件的读写过程中,程序将直接与磁盘文件进行数据交换C. 关闭文件的目的之一是保证输出的数据写入硬盘文件D. 关闭文件的目的之一是释放内存中的文件对象14、以下不

9、能正确创建输出文件对象并使其与磁盘文件相关联的语句是( )。A. ofstream myfile; myfile.open("d:ofile.txt");B. ofstream *myfile=new ofstream; myfile->open("d:ofile.txt");C. ofstream myfile("d:ofile.txt");D. ofstream *myfile=new ("d:ofile.txt");15、下列关于getline()函数的表述中,( )是错误的。A. 该函数是用来从键盘上

10、读取字符串的B. 该函数读取的字符串长度是受限制的C. 该函数读取字符串时与终止符停止D. 该函数中所使用的终止符只能是换行符16、下列关于read()函数的描述中,( )是正确的。A. 是用来从键盘输入中读取字符串的B. 所读取的字符串长度是不受限制的C. 只能用于文件操作中D. 只能按规定读取值定数目的字符17、下列关于write()函数的描述中,( )是正确的。A. 可以写入任意数据类型的数据B. 只能写二进制文件C. 只能写字符串D. 可以使用“(char *)”的方式写数组18、已定义结构Score,并用Score定义变量grade,已知用二进制方式打开输出文件流ofile,下列写入

11、grade的方式中,()是正确的。A. ofile.write (char *) & Score , sizeof (grade);B. ofile.write (char ) & Score , sizeof (grade);C. ofile.write (char *) grade , sizeof (grade);D. ofile.write (char *) & grade , sizeof (grade);三、 判断题1、C+流中重载运算符<<是一个用于输入操作的成员函数。2、read()函数用来从键盘输入中获取字符串。3、cout是I/O流库预定

12、义的常量。4、ios类是iostream类的基类。5、进行文件操作时需要包含stdio.h文件。6、在C+中,打开一个文件就是将这个文件与一个流建立关联,关闭一个文件就是取消这种关联。7、控制格式输入/输出操作符中,setfill()是设置填充字符的。8、在ios中提供控制格式的标志位中,oct是转换为八进制形式的标志位。9、C+中的输入/输出是以字节流的形式实现的。10、C+在异常的处理中,使用try语句检测是否发生异常。四、 分析题1、#include<iomainp.h> void main() cout<<setfill('#');int k=1

13、23;cout<<setw(5)<< '('<<k<<')'<<endl;2、#include<iostream.h>void main()cout.fill('*');cout.width(10);cout<<123.45<<endl;cout.width(8);cout<<123.45<<endl;cout.width(6);cout<<123.45<<endl;3、#include <iost

14、ream>#include <fstream>using namespace std;void main() int i=8,j;double x=12.45,y;fstream outfile("d:cc.dat",ios:out|ios:binary);outfile.write(char *)&i,sizeof(i);outfile.write(char *)&x,sizeof(x);outfile.close();fstream infile("d:cc.dat",ios:in|ios:binary);infil

15、e.read(char *)&j,sizeof(j);infile.read(char *)&y,sizeof(y);cout<<j<<" "<<y<<endl;infile.close();4、#include <iostream>#include <fstream>using namespace std;void main() int a5=1,2,3,4,5,i,x;ofstream outfile("d:data.dat",ios:out);for(i=0;i

16、<5;i+)outfile<<ai<<" "outfile.close();ifstream infile("d:data.dat",ios:in);for(i=0;i<5;i+)infile>>x;if(x%2=0)cout<<x<<" "cout<<endl;infile.close();5、#include<iomanip.h>void main()cout.fill('*');cout.width(10);cout&

17、lt;<setiosflags(ios:left)<<"123.45"<<endl;cout.width(8);cout<<"123.45"<<endl;cout.width(4);cout<<"123.45"<<endl;6、#include <iostream.h>int a10=1,2,3,4,5,6,7,8,9,10;int fun(int i);void main()int i,s=0;for(i=0;i<=10;i+)trys=

18、s+fun(i);catch(int)cout<<"数组下标越界!"<<endl;cout<<"s="<<s<<endl;int fun(int i)if(i>=10)throw i;return ai;7、#include <iostream.h>int Div(int x,int y);void main( )trycout<<"5/2="<<Div(5,2)<<endl;cout<<"8/0=&

19、quot;<<Div(8,0)<<endl;cout<<"7/1="<<Div(7,1)<<endl;catch(int)cout<<"Exception of deviding zero."<<endl;cout<<"That is ok."<<endl;int Div(int x,int y)if(y=0) throw y;return x/y;五、 编程题1、输入一个整数,分别用八进制、十进制、十六进制字母按大写的格式输出

20、。2、从输入流中获取一个字符。3、输出并删除字符串中的前5个字符。4、用成员函数read给char 类型数组ch输入20个字符。5、编写一段程序,从屏幕输入一段文字,在C盘上建立新文件test.dat,并把从键盘输入的文字输出到该文件中。6、编写一段程序,从键盘输入学生姓名、学号和语文、数学、英语考试成绩,计算出总成绩,将原有数据和计算出的总成绩存放在磁盘文件“result”中。将“result”中的数据读出,按总成绩排序处理,并将排序后的数据存入新文件“sort”中。7、假定一个文件中存有学生的序号、姓名、学号、年龄、性别、总成绩等数据,输出指定序号的学生数据。8、编写求函数表达式f(x,y

21、)=sqrt(x-y)的值,并能够处理各种异常。习题答案一、 填空题1、输入/输出函数,输入/输出流2、streambuf,ios,ios,缓冲区3、cin ,cout ,cerr ,clog4、<< , >>5、一个字符6、oct ,hex ,dec7、左8、setw( )9、从输入流中读入整行10、换行并清空流11、文本文件,二进制文件,顺序存取文件,随机存取文件12、主文件名,扩展名13、文件流对象14、文本文件15、输入流类ifstream ,输出流ofstream ,输入/输出流类fstream16、seekg ,seekp17、catch二、 选择题1、C2

22、、D3、B4、A5、A6、B7、D8、B9、C10、A11、B12、C13、D 14、D15、D16、D17、D18、D三、 判断题1、2、3、×4、5、×6、7、8、9、10、×四、 分析题1、 1.62、*123.45*123.45123.453、8 12.454、245、123.45*123.45*123.456、数组下标越界!s=557、5/2=2Exception of deviding zero.That is ok.五、 编程题1、#include<iostream.h>void main()int a;cout<<"

23、;input a:"cin>>a;cout<<"dec:"<<dec<<a<<endl;cout.unsetf(ios:dec);cout.setf(ios:uppercase|ios:hex);cout<<"hex:"<<a<<endl; cout<<"oct:"<<oct<<a<<endl;cout<<endl;2、#include<iostream.h>

24、void main()char c;cout<<"enter a sentence:"c=cin.get();cout<<"从流中读取一个字符为:"cout<<c;cout<<endl;3、#include<iostream.h>void main()char ch20;cout<<"enter a sentence:"cin.getline(ch,6);cout<<"要删除的前五个字符为:"<<ch<<en

25、dl;cin.getline(ch,20);cout<<"删除后的字符串为:"<<ch;4、#include<iostream.h>void main()char ch20;cout<<"enter a sentence:"cin.read(ch,20);for(int i=0;i<20;i+)cout<<chi;cout<<endl;5、#include<iostream.h>#include<fstream.h>#include<stdlib.

26、h>void main() ofstream outfile("c:test.dat",ios:out); if(!outfile) cerr<<"open test.dat error!"<<endl;exit(0); char c80; cout<<"enter a sentence:" cin.getline(c,80); for(int i=0;ci!=0;i+) outfile.put(ci); outfile.close();6、#include<iostream.h>

27、#include<fstream.h>#include<stdlib.h>class studentprivate:struct studchar name20;int num;float yuwen;float shuxue;float yingyu;float zongfen;srec;public:void cretefile();void sortfile();void getData();float getzongfen();void student:cretefile()ofstream outfile("D:2007-2008(2)sqresul

28、t.dat",ios:binary|ios:trunc);if(!outfile)cerr<<"-open error!"<<endl;abort();for(int i=0;i<3;i+) /写入文件getData();outfile.write(char*)&srec,sizeof(stud); outfile.close();void student:sortfile() stud st3;ifstream infile("D:2007-2008(2)sqresult.dat",ios:binary)

29、;if(!infile)cerr<<"*open error!"<<endl;abort();for(int j=0;j<3;j+)infile.read(char*)&stj,sizeof(stud); /读出文件infile.close();int k;stud t;for(int i=0;i<3;i+) /外循环,控制循环次数k=i; /预置本轮次最大元素的下标值for(j=i+1;j<3;j+) /内循环,筛选出本轮次最大的元素if(stj.zongfen>stk.zongfen) k=j; /存在更大元素,保

30、存其下标if(k!=i)t=sti; /交换位置sti=stk;stk=t; ofstream outfile1("D:2007-2008(2)sqsort.dat",ios:binary); / 将排好序的数据写入文件sort.datif(!outfile1)cerr<<"open error!*"<<endl;abort();for( i=0;i<3;i+)outfile1.write(char*)&sti,sizeof(stud);outfile1.close();void student:getData()c

31、out<<"Enter student information:"<<endl;cout<<"输入姓名,学号,语文成绩,数学成绩,英语成绩:"<<endl;cin>>>>srec.num>>srec.yuwen>>srec.shuxue>>srec.yingyu; srec.zongfen=srec.yuwen+srec.shuxue+srec.yingyu;float student:getzongfen()return sre

32、c.zongfen;void main()student stud;stud.cretefile();stud.sortfile(); 7、#include<iostream.h>#include<fstream.h>#include <stdlib.h>class studentprivate: struct stud int number;char name20;char xuehao20;int age;char sex4;int score;srec;public:void createfile(); void outNumStu();void st

33、udent:createfile()ofstream outfile("D:2007-2008(2)sqinfor.txt",ios:trunc);if(!outfile)cerr<<"-open error!"<<endl;abort();for(int i=0;i<3;i+)cout<<"Enter student information:"<<endl; cout<<"输入序号,姓名,学号,年龄,性别,总成绩:"<<endl; cin>>srec.number>>>>srec.xuehao>>srec.age>

温馨提示

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

评论

0/150

提交评论