c练习题(带答案)_第1页
c练习题(带答案)_第2页
c练习题(带答案)_第3页
c练习题(带答案)_第4页
c练习题(带答案)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——c练习题(带答案)一、选择题

1.C++语言属于(C)。

A)自然语言B)机器语言C)面向对象语言D)汇编语言2.下面选项中不属于面向对象程序设计特征的是(C)。

A)继承性B)多态性C)相像性D)封装性3.可用作C++语言用户标识符的一组标识符是(B)。

A)voiddefine+WORDB)a3_b3_123YNC)for-abcCasea[2][1]的值为(A)。

A)0B)4C)8D)6

5.以下状况中,哪一种状况不会调用拷贝构造函数(B)

A)用派生类的对象去初始化基类对象时B)将类的一个对象赋值给该类的另一个对象时

C)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象,函数执行返回调用者时6.以下哪一关键字可用于重载函数的区分(C)

A)extern

B)static

C)const

D)virtual

7.以下有关数组的表达中,正确的是(B)

A)C++中数组的存储方式为列优先存储B)数组名可以作为实参赋值给指针类型的形参C)数组下标索引从1开始,至数组长度n终止

D)数组指针的语法形式为:类型名*数组名[下标表达式];8.以下有关继承和派生的表达中,正确的是(C)

A)派生类不能访问通过私有继承的基类的保护成员B)多继承的虚基类不能够实例化

C)假使基类没有默认构造函数,派生类就应当声明带形参的构造函数D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现9.实现运行时多态的机制是(A)

A)虚函数

B)重载函数

C)静态函数

D)模版函数

10.若有下面的函数调用:

D)2aDOsizeof

4.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};〞,则元素

fun(a+b,3,max(n-1,b));其中实参的个数是(A)A)3

B)4

C)5

D)6

11.以下关于this指针的说法正确的是(B)

A)this指针存在于每个函数之中

B)在类的非静态函数中this指针指向调用该函数的对象C)this指针是指向虚函数表的指针D)this指针是指向类的函数成员的指针

12.在以下关于C++函数的表达中,正确的是(C)

A)每个函数至少要有一个参数

B)每个函数都必需返回一个值

C)函数在被调用之前必需先声明D)函数不能自己调用自己13.以下运算符中,不能重载的是(C)

A)inti=0;

intfun(intn){

staticinta=2;a++;

returna+n;}

voidmain(){

intk=5;{

inti=2;k+=fun(i);}

k+=fun(i);coutusingnamespacestd;classA{

public:

A(inti){x=i;}

voiddispa(){coutusingnamespacestd;classBase{

public:

Base(inti){coutusingnamespacestd;classBase{

public:

virtualvoidf(){coutf();p->g();}

A)f+g+

B)f0+g+

C)f+g0+

D)f0+g0+

19.下面程序的输出结果是(C)

#includeusingnamespacestd;classSample{

friendlongfun(Samples){

if(s.xusingnamespacestd;intfun(char*s){char*p=s;while(*p!='\\0')p++;return(p-s);}

voidmain(){

cout{i++;

if(i==10)break;if(i%2==0)coutGetValue()D)x.GetValue()25.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体

外定义,则函数头为(A)。

A)intAA::a()B)intAA:a()C)AA::a()D)AA::inta()26.有如下程序:

#includeusingnamespacestd;classTest{public:Test(){}

~Test(){coutusingnamespacestd;classMyClass{public:

MyClass(inti=0){coutusingnamespacestd;classpoint{public:

staticintnumber;public:

point(){number++;}~point(){number--;}};

intpoint::number=0;voidmain(){point*ptr;pointA,B;{}

pointC;delete[]ptr;cout1)#include

usingnamespacestd;intf(int);intmain(){intn,s;

cout>n;

s=f(n);

coutusingnamespacestd;classBase{

public:

virtual~Base(){cout#includeusingnamespacestd;classCD{charname[20];intnumber;

public:voidInit(char*aa,intbb){strcpy(name,aa);number=bb;}char*Getname(){returnname;}intGetnumber(){returnnumber;}voidOutput(){coutusingnamespacestd;

intf(inta){return++a;}

intg(int}

voidmain(){intm=0,n=0;m+=f(g(m));

n+=f(f(n));

coutusingnamespacestd;classDemo{

public:Demo(){coutA)操作数类型B)操作数个数C)优先级D)结合性^^A

~~01|14|1|1

^^在C++语言中,数据封装要解决的问题是(D)。A)数据的规范化B)便于数据转换C)避免数据丢失D)防止不同模块之间数据的非法访问^^D

~~01|13|1|1

^^对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,以下不是访问控制属性的是(D)。

A)公有类型B)私有类型C)保护类型D)友元类型^^D

~~01|11|1|1

^^在类的定义中,用于为对象分派内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(C)。

A)友元函数B)虚函数C)构造函数D)析构函数^^C

~~01|11|1|1

^^类的析构函数的作用是(D)。A)一般成员函数的初始化B)类的初始化C)对象的初始化D)删除类创立的对象^^D

~~01|13|1|1

^^以下说法正确的是(B)。

A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方

C)类的内联函数必需在类体内定义

D)类的内联函数必需在类体外通过加关键字inline定义^^B~~01|12|1|1

^^以下对派生类的描述中,错误的是(D)。A)一个派生类可以作为另一个派生类的基类

B)派生类至少有一个基类

C)派生类的成员除了自己的成员外,还包含了它的基类的成员D)派生类中继承的基类成员的访问权限到派生类保持不变^^D

~~01|12|1|1

^^运算符的重载是对已有的运算符赋予多重含义,因此(A)。A)可以对基本类型(如int类型)的数据,重新定义“+〞运算符的含义

B)可以改变一个已有运算符的优先级和操作数个数C)只能重载C++中已经有的运算符,不能定义新运算符D)C++中已经有的所有运算符都可以重载^^A

~~01|13|1|1

^^假使类A被说明成类B的友元,则(D)。

A)类A的成员即是类B的成员B)类B的成员即是类A的成员C)类A的成员函数不得访问类B的成员D)类B不一定是类A的友元^^D

~~01|13|1|1

^^不能作为重载函数的调用的依据是(D)。

A)参数的个数B)参数的类型C)函数的类型D)函数的名称^^D

~~01|13|1|1

^^在C++语言的面向对象设计框架中,类是程序的基本组成单元。^^类

~~01|13|1|1

^^继承的方式的公有继承、私有继承和保护继承三种。

^^保护继承

~~01|13|1|1·在用class定义一个类时,数据成员函数的默认访问权限是私有的)。

^^私有的

~~01|13|1|1

^^类的构造函数是在定义对象时调用的。^^定义对象

~~01|13|1|1

^^类模板的使用实际上是将类模板实例化成一个具体的(对象)。^^对象

~~01|13|1|1

^^假使类B继承了类A,则称类A为类B的基类,类B称为类A的(派生类)。

^^派生类

~~01|13|1|1

假使要把返回值为void的函数A声明为B类的友元数,则应在类B的定义中参与语句是(12)。~~02|10|1|1

^^有如下定义:classMA{

intvalue;public:

MA(intn=0){value=n;};MA*ta,tb;

其中MA类的对象名标识符是(tb)。^^tb

~~02|12|1|1

^^用来派生新类的称为(基类),而派生出的新类称为它的子类或派生类。^^基类

~~02|12|1|1

^^面向对象的程序设计的主要特征是继承性、封装性和多态性。

^^封装性

~~02|10|1|1

^^向对象的模型中,最基本的概念是对象和(类)。

^^类

~~03|14|1|1

^^通过使用new和delete两个运算符进行的分派为静态存储分派。()^^F

~~03|14|1|1

^^重载的运算符保持其原有的操作符个数、优先级和结合性不变。()^^T

~~03|10|1|1

^^在面向对象方法中,类之间共享属性和操作的机制称为多态性。()^^F

~~03|12|1|1

^^可以用p.a的形式访问派生类对象P的基类成员a,其中a是公有继承的公有成员。()^^T

^^C++语言相对于C语言的最根本的变化是引进了类和对象的概念。()

^^T

~~03|10|1|1

^^类的析构函数的作用是删除类创立的对象。()

^^T

~~02|13|1|2

^^动态分派内存空间操作符〞new〞和()使用时必需成对出现。^^delete

~~02|12|1|2

^^用以说明类中保护成员的关键字是()。^^protected

~~02|11|1|2

^^对于任意一个类,析构函数的个数最多为()个。^^1

~~02|08|1|2

^^若有以下定义语句:Structdata{

inti;char;doublef;}b;

则结构体变量占用的内存字节数是()。^^3.14*r*r~~03|02|1|2

^^分号是C++语句的必要组成部分。()^^T

~~03|12|2|2

^^公有派生时,基类中所有成员在公有派生类中保持各个成员的访问权限。(^^T

~~04|12|2|2

^^以下程序中横线处正确的语句应当是。#includeusingnamespacestd;classBase{

public;voidfun()

{cout

~~04|11|2|2

^^写出以下程序的运行结果。

#includeclassA{public:

A(){coutvoidmian(){

intn=10;int*pn=int*

温馨提示

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

评论

0/150

提交评论