一套编程题 选择题 1-40

1.	下列类中(   )不是输入输出流类iostream的派生类。
A、 fstream      B、 ofstream      C、 strstream      D、 ostrstream
答案:BD
解析:ofstream和ostrstream派生自ostream,而不是iostream

2.	在下列选项中(   )不是ostream类的对象。
A、 cin          B、 cerr          C、 clog          D、 cout
答案:A
解析:cin是istream对象

3.read函数的功能是从输入流中读取(   )。
A、一个字符     B、当前字符    C、一行字符      D、指定若干个字节
答案:D
解析:read函数可以通过指定参数的方式读取若干个字符

4.下列选项中,用于清除基数格式位设置以十六进制输出的语句是(   )。
A、cout<<setf(ios::dec,ios::basefield); 
B、cout<<setf(ios::hex,ios::basefield); 
C、cout<<setf(ios::oct,ios::basefield); 
D、cin>>setf(ios::hex,ios::basefield);
答案:B
解析:
1.使用控制符控制输出格式
控制符		作用 
dec   设置整数的基数为10   
hex   设置整数的基数为16   
oct   设置整数的基数为8   
setbase(n)   设置整数的基数为n(n只能是16,10,8之一)   
setfill(c)   设置填充字符c,c可以是字符常量或字符变量   
setprecision(n)   设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效
数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时,
n为小数位数。   
setw(n)   设置字段宽度为n位。   
setiosflags(ios::fixed)   设置浮点数以固定的小数位数显示。   
setiosflags(ios::scientific)   设置浮点数以科学计数法(即指数形式)显示。   
setiosflags(ios::left)   输出数据左对齐。   
setiosflags(ios::right)   输出数据右对齐。   
setiosflags(ios::shipws)   忽略前导的空格。   
setiosflags(ios::uppercase)   在以科学计数法输出E和十六进制输出字母X时,以大写 
表示。   
setiosflags(ios::showpos)   输出正数时,给出“+”号。   
resetiosflags   终止已设置的输出格式状态,在括号中应指定内容。   
2.用流对象的成员控制输出格式
流成员函数   与之作用相同的控制符   作用   
precision(n)   setprecision(n)   设置实数的精度为n位。   
width(n)   setw(n)   设置字段宽度为n位。   
fill(c)   setfill(c)   设置填充字符c。   
setf( )   setiosflags( )   设置输出格式状态,括号中应给出格式状态,内容与控制符
setiosflags括号中内容相同。   
ubsetf( )   resetiosflags( )   终止已设置的输出格式状态。   
cout.width(10); 
cout.setf(ios::hex);
3.设置格式状态的格式标志
格式标志    作用   
ios::left   输出数据在本域宽范围内左对齐   
ios::right   输出数据在本域宽范围内右对齐   
ios::internal   数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充   
ios::dec   设置整数的基数为10   
ios::oct   设置整数的基数为8   
ios::hex   设置整数的基数为16   
ios::showbase   强制输出整数的基数(八进制以0打头,十六进制以0x打头)   
ios::showpoint   强制输出浮点数的小点和尾数0   
ios::uppercase   在以科学计数法输出E和十六进制输出字母X时,以大写表示   
ios::showpos   输出正数时,给出“+”号。   
ios::scientific   设置浮点数以科学计数法(即指数形式)显示   
ios::fixed   设置浮点数以固定的小数位数显示   
ios::unitbuf   每次输出后刷新所有流   
ios::stdio   每次输出后清除stdout,stderr   
以小数形式,保留三位小数输出:
cout<<setprecision(3)<<setiosflags(ios::fixed)<<3.1415926<<endl;

5.下列格式控制符,在iostream.h中定义的是(    ),在iomanip.h中定义的是(   )。
A、endl      B、 setfill          C、 setw          D、 oct
答案:AD BC

6.包含类fstream定义的头文件是(   )。
 	A、fstream.h		B、 ofstream.h     C、 ifstream.h        D、 iostream.h
答案:A

7.要求可打开文件 “D:\file.dat”写入数,正确的语句是(   )。
A、	ifstream infile(“D:\file.dat”,ios::in);
B、	ifstream infile(“D:\\file.dat”,ios::in);
C、	ofstream infile(“D:\file.dat”,ios::out);
D、	fstream infile(“D:\\file.dat”,ios::in | ios::out);
答案:D
解析:A、B是打开文件做读操作
	 C文件名写成’\’,应该写成’\\’

8.假定已定义浮点型变量 data ,以二进制方式把 data 的值写入输出文件对象 outfile中去,正确的
语句是(   )。
A、outfile.write((float *)&data, sizeof(float));
B、outfile.write((float *)&data, data);
C、outfile.write((char *)&data, sizeof(float));
D、outfile.write((char *)&data, data);
答案:C
解析:参加write函数的应用

9. 系统为每个类提供一个this指针,在类的成员函数内,通过this指针可以间接访问这个类的(   )。
A、在public段中声明的友元
B、所有成员
C、友元类的public成员
D、所有派生类中的public成员
答案:B

10. 关于动态分配的对象,下面的说法(   )是正确的?
A、对于数组A[N],如果是静态分配,N必须是常量;如果是动态分配,N可以是变量。
B、动态分配的对象必须由同类型的指针指出,不管该指针是局部的还是全局的,动态分配对象的生命周期随指针的生命期结束而结束。
C、静态和动态分配的对象在生命期结束时,都自动调用析构函数进行析构。
D、如果在某个函数内动态分配了一个对象,那么这个对象只有在这个函数内才能被访问。
答案:C

11. 在继承关系中,虚基类的作用是(   )。
A、实现重载
C、消除二义性
D、使得派生类可以再也不必考虑二义性问题
答案:C

12.  对于有继承关系的父类的构造函数,下面的(   )是正确的。
A、构造函数可以通过虚基类的形式被继承。
B、public的构造函数可以被继承。
D、构造函数必须定义成非私有成员。
答案:D

13.  对于指针,下(   )是正确的。
A、声明为void类型的指针可以指向任何类型的对象,并且通过该指针可以间接访问它所指向的对象。    
B、如果两个指针的类型不是同一个类型,它们就不能相互赋值。(void类型的指针可以与其它类型的指针相互赋值)     
C、一个int 类型的指针既可以指向int类型的对象,又可以指向int类型的函数。     
D、数组名就是指针。
答案:D
解析:A不能用void指针直接访问对象
      B不同类型之间的指针可以互相赋值
      C 指向函数的需要是函数指针

14.  有关析构函数的错误的说法是(   )。
A、一个类的析构函数有且只有一个。   
B、析构函数无函数类型。
C、析构函数和构造函数一样,可以有形参。
D、析构函数的作用是在对象生命期结束时,收回分配给其的内存空间。
答案:C

15.  对于操作符重载,下面(   )的说法是正确的。
A、用户每定义一个类,系统会自动提供一个赋值运算符重载函数,所以完全不必考虑重载赋值运算符函数。
B、运算符重载函数可能既不是成员函数,也不是友元函数。      
C、运算符如果被重载为非成员函数,那么对象就不能利用这个运算符重载函数进行操作。
答案:B 

16.  关于类的友元函数的下述描述中,(   )是正确的。
A、友元函数可以被继承。
B、一个类的友元函数可以访问这个类的所有成员。   
C、一个类的友元函数必须在这个类中定义成内联函数。
D、一个类的友元函数的返回类型必须是这个类的类型标识符。
答案:B

17.   类B的数据成员中“有一个”A类的对象,这种类之间的关系是 (   )。
A、继承关系                   B、间接关系      
C、复合关系                   D、直接关系
答案:C

18.  下列C++标点符号中表示行注释开始的是(    )。
A、#             B、;
C、//			      D、}
答案:C

19.  下列字符串中可以用作C++标示符的是(    )。
A、_256          B、class 
C、delete         D、5char
答案:A
解析:B、C是关键字,D不能以数字开头

20.   下列关于C++函数的描述中正确的是(    )。
A、主函数是程序的入口,它是由用户定义的函数调用。
B、函数是C++中面向对象程序设计框架的基本组成元素。
C、函数在调用前必须先被声明。
D、每个用户定义函数只能被其他函数调用一次。
答案:C
解析:A运行时库会调用主函数
	 B 类
	 D 可以被随意调用

21.   下列关于C++关键字的说法中正确的是(    )。
A、关键字是用户为程序中各种需要命名的“元素”所起的名字。
B、关键字是对程序中的数据进行操作的一类单词。
C、关键字是在程序中起分割内容和界定范围作用的一类单词。
D、关键字是C++中预先定义并实现一定功能得一类单词。
答案:D

22.   每个C++程序都必须由且仅有一个(    )。
A、预处理命令           B、主函数          
C、函数              D、语句
答案:B

23.   下面关于对象概念的描述中,(    )是错误的。
A、对象就是C语言中的结构变量 
B、对象代表着正在创建的系统中的一个实体
C、对象是一个状态和操作(或方法)的封装体
D、对象之间的信息传递是通过消息进行的
答案:A

24.   C++对C语言做了很多改进,下列描述中(    )使得C语言发生了质变,即从面向过程变成面向对象。
A、增加了一些新的运算符
B、允许函数重载,并允许设置默认参数
C、规定函数说明必须用原型
D、引进类和对象的概念
答案:D

25.   下面关于类概念的描述中,(    )是错误的。
A、类是抽象数据类型的实现
B、类是具有共同行为的若干对象的统一描述体
C、类是创建对象的样板
D、类就是C语言中的结构体类型
答案:D
解析:参见C++类和C结构体之间的区别

26.   C++语言是以(    )语言为基础逐渐发展而演变而成的一种程序设计语言。
A、Pascal			B、C
C、Basic			D、Simula67
答案:B

27.   C++语言中规定函数的返回值的类型是由(    )。
A、return语句中的表达式类型所决定的
B、调用该函数式的主调用函数类型所决定的
C、调用该函数式系统临时确定的
D、在定义该函数式所指定的数据类型所决定的
答案:D

28.   下列关于C++与C语言关系的描述中错误的是(    )。
A、C++是C语言的超集
B、C++是C语言进行了扩充
C、C++是C语言都是面向对象的程序设计语言
D、C++包含C语言的全部语法特征
答案:C
解析:C语言是面向过程的程序设计语言

29.   下列字符串中可以用做C++标示符的是(    )。
A、 521       B、computer~1    C、case       D、3var
答案:A

30.   面向对象程序设计思想的主要特征中不包括(    )。
A、封装性        B、多态性
C、继承性        D、功能分解,逐步求精
答案:D

31.   下列C++标点符号中表示一条预处理命令开始的是     A         。
A、#      B、//          C、}     D、;
答案:A

32.   下列关于C++类的描述中错误的是(    )。
A、类与类之间可以通过一些手段进行通信和联络 
B、类用于描述事物的属性和对事物的操作
C、类与类之间必须是平等的关系,而不能组成层次关系
D、类与类之间可以通过封装而具有明确的独立性
答案:C

33.   下列C++标点符号中表示一条语句结束的是(    )。
A、; 
B、//
C、#
D、{
答案:A

34.   下列C++标点符号中表示复合语句结束的标记符是(     )。
A、# 
B、//
C、}
D、;
答案:C

35.   下列C++标点符号中表示复合语句开始的标记符是(      )。
A、{ 
B、//
C、}
D、;
答案:A

36.   下列关键字中,(     )即在C语言中使用,又在C++语言中使用。
A、inline
B、break
C、private
D、public
答案:B

37.   下列字符串中不可以用作C++标示符的是(     )。
A、 521
B、computer123      
C、int          
D、flower
答案:C

38.   下列不正确的选项是()    。
A、C++语言是一种面向对象的程序设计语言,它支持面向对象思想中的3个主要特征     
B、标点符号是在程序中起分割内容和界定范围作用的一类单词     
C、iostream 是一个标准的头文件,定义了一些输入输出流对象
D、类与类之间不可以进行通信和联络
答案:D

39.   下列不正确的选项是 
A、封装是一种信息隐藏技术        
B、标识符是由字母、数字、下划线组成的字符串,必须以数字或下划线开头
C、编译是由源程序文件转换到目标文件的过程     
D、一个C++程序可以认为是函数串
答案:B

40.   下列与流程控制有关的关键字是(    )。
A、goto          
B、static        
C、int          
D、sizeof
答案:A

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值