加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

《 C++ 》课后题参考答案(详细版 第 9 章)

(2011-01-04 18:04:43)
标签:

校园

分类: ❀.学习の栈

第九章 习题

一、选择填空

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;

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有