C语言单项选择题

更新时间:2024-04-16 13:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单项选择题(本大题共20小题,每小题1分,共20分) 1.C++源程序文件扩展名为( A ) A..cpp B..h C..1ib D..obj

5.对使用关键字new所开辟的动态存储空间,释放时必须使用( C ) A.free B.create C.delete

D.realse

6.从本质上看,引用是被引用变量的( B ) A.拷贝 B.别名 C.复制 D.克隆

7.在函数调用时,如某一默认参数要指明一个特定值,则有(B ) A.其之前所有参数都必须赋值

B.其之后所有参数都必须赋值

C.其前、后所有参数都必须赋值 D.其前、后所有参数都不必赋值

8.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是( C ) A.int m = max(22,max(59,70));

B.int m = max(max(22,59),70);

C.int m = max(22,59,70); D.int m = max(59,max(22,70));

9.设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是( B )

A.int m=min(min(15,26),min(15,47)); B.int m=min(15,26,47); C.int m=min(15,min(47,26)); D.int m =min(min(47,26),16);

13.函数int & min(int &,int &)返回参数中较小者,设有两整型变量int a=10;int b=15; 在执行语句min(a,b)--;之后,a,b值分别为( B ) A.9,14 B.9,15 C.10,14 D.10,15

16.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15; 则执行swap(a,b)后,a、b值分别为( C ) A.10,10 C.15,10

B.10,15

D.15,15

17.设函数void swap(int,int)将交换两形参数值,如有两整型变量int a=10;int b=15,则执行swap(a,b);之后,a,b值分别为( C ) A.15,10 B.15,15 C.10,15 D.10,10

18.设函数void subone (int)将形参值减1,如有整形变量int b=10;则执行subone(b)后,b

的值为( B ) A.9 B.10 C.11 D.未知

10.下列函数不能和函数void print(char)构成重载的是( C ) A.int print(int); B.void print(char,char); C.int print(char); D.void print(int,int);

15.函数int sum(int a=l,int b=1,int c=3)可与下列哪个函数同时声明( C ) A.double sum(int); B.char sum(int,int); C.int sum(double); D.int sum(int,int,int); 11.C++类中定义的成员默认访问属性为( B ) A.public B.private C.protected D.friend 12.决定C++语言中函数的返回值类型的是( D ) A.return语句中的表达式类型

B.调用该函数时系统随机产生的类型 C.调用该函数时的主调用函数类型 D.在定义该函数时所指定的数据类型

14.声明函数为内联函数时所使用的关键字为( B ) A.const B.inline C.short D.signed

19.声明函数int Func(int a=0,int b=3,int c=4)相当于声明了几个函数形式( A A.1 B.2 C.3 D.4

20.函数默认参数在函数原型中说明,默认参数必须放在参数序列的( C ) A.前部 B.中部 C.后部 D.两端

21.下列哪个类型函数不适合声明为内联函数( A ) A.函数体语句较多 B.函数体语句较少 C.函数执行时间较短

D.函数执行时间过长

22.int Func(int,int);不可与下列哪个函数构成重载( B ) A.int Func(int,int,int);

B.double Func(int,int);

C.double Func(double,double); D.double Func(int,double);

)23.设函数void inc(int)将形参加1,如有整型变量int i=10;则执行inc(i);后,i的值为( B ) A.9 B.10 C.11 D.未知 24.下列哪种默认参数的声明是不正确的( C ) A. int max(int a,int b,int c,int d=0); B. int max(int a,int b,int c=0,int d=0); C. int max(int a=0,int b,int c=0,int d=0); D. int max(int a,int b=0,int c=0,int d=0);

25.设int &max(int &,int &)返回两参数中较大者,如有两整型变量int a=10;int b=15;在执行max(a,b)++后,a,b值分别为( C ) A.10,15 B.11,15 C.10,16 D.1l,16 26.包含哪种语句的函数不能声明为内联函数( A ) A.循环 B.变量自增自减 C.if...else… D.变量声明

*27.对类中声明的变量,下列描述中正确的是( C ) A.属于全局变量 B.只属于该类

C.属于该类,某些情况下也可被该类不同实例所共享 D.任何情况下都可被该类所有实例共享 28.类的私有成员可在何处访问( D )

A.通过子类的对象访问 B.本类及子类的成员函数中 C.通过该类对象访问

D.本类的成员函数中

29.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是( A ) A.编译器总是自动创建一个不带参数的构造函数 B.这个类没有构造函数 C.这个类不需要构造函数 D.该类不能通过编译

30.一个类可包含析构函数的个数是( B ) A.0个 B.1个

C.至少一个 D.0个或多个

31.定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来( A ) A.<> B.“” C.() D.{}

32.一个类拥有多个构造函数,则这些构造函数间为( A ) A.重载关系 B.重复关系 C.拷贝关系 D.无关系 33.对于拷贝构造函数point::point(point & p),下列说明正确的是( C ) A.该函数只能访问P的私有成员 B.该函数不能访问P的公有成员 C.该函数可以访问P的私有和公有成员 D.该函数不能访问P的成员 34.使用delete[]删除对象数组时,描述正确的是( A ) A.数组中各元素都调用析构函数 B.数组中各元素都调用构造函数 C.不调用析构函数 D.只有首元素调用析构函数

35.this指针存在的目的是( B ) A.保证基类公有成员在子类中可以被访问

B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 C.保证基类保护成员在子类中可以被访问 D.保证基类私有成员在子类中可以被访问 36.下列关于类的权限的描述错误的是( A ) A.类本身的成员函数只能访问自身的私有成员 B.类的对象只能访问该类的公有成员

C.普通函数不能直接访问类的公有成员,必须通过对象访问 D.一个类可以将另一个类的对象作为成员

37.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是( A.A类构造函数先执行 B.成员构造函数先执行 C.两者并行执行

D.不能确定

*38.下列描述错误的是( A ) A.在创建对象前,静态成员不存在 B.静态成员是类的成员

C.静态成员不能是虚函数

D.静态成员函数不能直接访问非静态成员

39.对于友元描述正确的是( B ) A.友元是本类的成员函数 B.友元不是本类的成员函数

C.友元不是函数

D.友元不能访问本类私有成员

*40.在哪种派生方式中,派生类可以访问基类中的protected成员( B )A.public和private B.public和protected C.protected和private D.仅protected

B ) 41.内联函数的特点是( D )

A.减少代码量,加快访问速度 B.减少代码量,减缓访问速度 C.增加代码量,减缓访问速度 D.增加代码量,加快访问速度 42.类的私有成员可在何处被访问( A )

A.本类的成员函数中 B.本类及子类的成员函数中 C.通过对象名在任何位置 D.不可访问

43.假定MyClass为一个类,则该类的复制构造函数的声明语句为( C ) A.MyClass&(MyClass x); B.MyClass(MyClass x); C.MyClass(MyClass &x); D.MyClass(MyClass *x);

44.类的构造函数在以下什么情况下会被自动调用( B ) A.定义成员函数时 C.定义数据成员时

B.定义对象时 D.定义友元函数时

45.下列关于析构函数描述正确的是( D ) A.可以重载 B.函数体中必须有delete语句

C.返回类型必须是void类型 D.不能指定返回类型

46.设有函数T Sum(T x,T y){return x+y;},其中T为模板类型,则下列语句中对该函数错误的使用是( D )

A.Sum(1,2); B.Sum(3.0,2.2); C.Sum(?A?,?C?);

D.Sum(\,\;

*47.关于类的静态成员函数描述错误的是( A ) A.在创建对象前不存在

B.不能说明为虚函数

D.不是对象的成员

C.不能直接访问非静态函数

48.如果类A被声明成类B的友元,则( B ) A.类A的成员即类B的成员 B.类B的成员即类A的成员

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

49.派生类的对象可以访问以下那种情况继承的基类成员( B ) A.私有继承的私有成员 C.私有继承的保护成员

B.公有继承的私有成员 D.公有继承的公有成员

50.函数模板template void Func(T,T)可具有下列哪种实例化形式( B ) A.void Func(float,int) B.void Func(char,char) C.void Func(int,double) D.void Func(bool,float) 13.下列访问成员的方式哪个是正确的( A ) A.对象名.对象成员名 B.对象指针名.对象成员名 C.对象名→对象成员名 D.类名→对象成员名 *51.对类A,复制构造函数的原型是( A ) A.A::A(const A&); B.A::A(const A *); C.A::A(const A); D.A::A( );

52.对class point,如使用point * ptr=new point[2];创建对象数组,则删除此数组使用的语句是( B ) A.delete ptr[2]; B.delete[ ] ptr; C.delete ptr[ ]; D.delete[2] ptr; 53.下列哪个编译指令不属于条件编译指令( D ) A.#if B.#else C.#endif D.#error

54.类A中存在静态数据成员x,设a和b是类A的两个对象,在执行a.x=10之后,b.x 的值为( B ) A.未初始化 B.等于a.x C.等于0 D.随机

55.使用string.h库操纵字符串时,将两个字符串连接成一个字符串的函数是( C ) A.strlen() B.strcap() C.strcat() D.strcmp()

56.基类中的public成员,通过public派生,其在派生类中的访问权限为( D ) A.不可访问 B.private C.protected D.public

57.不同对象调用同名函数,但导致完全不同行为的现象称为( D ) A.抽象 B.封装 C.继承 D.多态性

58.设类Test中存在成员static int x,则下列哪种初始化方式是正确的( C ) A.Test::int x=25; B.int x=25; C.int Test::x=25; D.int Test x=25; 59.下列关于友元的描述错误的是( C ) A.成员函数不可作友元 B.类可以作友元 C.普通函数可以作友元 D.静态函数可以作友元 60.在继承中,派生类拥有的基类个数为( B ) A.0个 B.1个 C.多个 D.至少1个

61.基类中的protected成员,通过public派生,其在派生类中的可见性为( D ) A.不可访问 B.private C.protected D.public 62.下列哪个不是面向对象的关键要素( B ) A.抽象性 B.结构性 C.封装性 D.多态性

63.设函数void subone(int &)将形参减1,如有整型变量int k=10,则执行subone(k);后,k的值为( A ) A.9 B.10 C.11 D.未知

64.对函数int max(int a,int b=0,int c=0,int d=0,int e=0);下列调用方式正确的是( A )

A.int m=max(10,11,12,13,14); B.int m=max(10,,12,13,14); C.int m=max(10,1l,,13,14); D.int m=max(10,11,12,,14); 65.类MyClass的定义如下: class MyClass { public:

MyClass(){}

MyClass(int i){value=new int(i);} int * value; };

若要对value赋值,则下面语句正确的是( B、D ) A.MyClass my;my.value=10; B.MyClass my;*my.value=10; C.MyClass my;my.*value=10; D.MyClass my(10); 66.包含哪种语句的函数不能声明为内联函数( D ) A.变量定义 B.if……else C.位操作 D.switch 67.声明函数模板的关键字是( B ) A.inline B.template C.const D.short

68.对于类中的成员,使用public修饰,表明该成员的访问权限是( A ) A.公有的 B.私有的 C.保护的 D.不可见的

*69.一个类中是否可以允许一个无参数构造函数和一个全部都是默认参数的构造函数共 存( B ) A.不允许 B.允许 C.无法确定 D.视构造函数的函数,可确定 70.析构函数的参数个数为( A ) A.0个 B.1个 C.至少1个 D.多于1个 71.非静态成员函数都会有一个隐含指针,它是( B ) A.self指针 B.this指针 C.current指针 D.one指针 72.下列访问公有静态成员的方式,错误的是( A ) A.类名::静态成员名 B.对象名.静态成员名 C.对象指针->静态成员名 D.对象指针.静态成员名 73.声明友元使用下列哪个关键字( C ) A.class B.const C.friend D.virtual

74.派生类继承了基类的( A ) A.所有成员 B.部分成员 C.数据成员 D.成员函数

75.基类private成员,通过public派生,其在派生类中为( A ) A.private B.protected C.public D.不可访问

76.在哪种派生方式中,派生类可以访问基类中的protected成员( B ) A.public和private B.public和protected C.protected和private D.仅protected

77.对使用关键字new所开辟的动态存储空间,释放时必须使用( C ) A.free B.create C.delete D.realse 78.对于new类型名[size]描述正确的是( C ) A.申请可以存储size个字节的空间 B.申请可以存储1个该数据类型的空间

C.申请可以存储size个该数据类型对象的空间 D.申请可以存储1个字节的空间 79.构造函数用于( B ) A.定义对象 B.初始化对象 C.清除对象 D.普通计算

80.C++中专门定义一个仅在模板中使用的参数类型的关键字是( D )A.const B.inline C.short D.typename

81.对于类中的成员,使用private修饰,表明该成员的访问权限是( B A.公有的 B.私有的 C.保护的 D.不可见的

82.使用new创建的对象,对其生命周期描述正确的是( B ) A.由系统决定 B.由用户控制 C.全局生命周期 D.永久存在 83.析构函数被调用的时间点是( B ) A.对象被创建时 B.对象被销毁时 C.不会被调用 D.主函数被调用时 *84.对象的构造函数调用顺序取决于( C ) A.对象成员在初始化列表中给出的顺序 B.对象成员在类中声明的顺序

C.对象成员与在初始化列表中顺序和类中声明顺序均有关 D.随机顺序

85.下列对静态成员函数描述正确的是( B ) A.静态成员函数中可使用1个this指针 B.静态成员函数中不能使用this指针 C.静态成员函数中可使用多个this指针 D.静态成员函数中只可使用1个that指针 86.友元的声明可出现在( B ) A.类的私有部分 B.类的公有部分

) C.类的保护部分 D.类的任何部分 *87.在下列派生中,子类和父类间是isa关系的是( ) A.private B.protected C.public D.publish 88.面向对象不仅进行功能抽象,还要进行( C ) A.动态抽象 B.消息抽象 C.数据抽象 D.算法抽象 89.如声明对象数组,则下列描述正确的是(A ) A.对每个元素均调用一次构造函数

B.部分元素调用构造函数,其它元素不需调用 C.均不需要调用构造函数 D.只是首元素调用构造函数

*90.不同对象调用同一成员函数时,this指针指向( A ) A.不同对象 B.相同对象 C.无对象 D.不确定 *91.一个类可拥有多少个构造函数( C ) A.0个 B.1个 C.1或多个 D.以上皆对 92.下列哪个要素不是面向对象的关键要素( A ) A.模块化 B.抽象性 C.封装性 D.继承性 93.下列对于类的描述错误的是( C ) A.类要先声明后使用

B.类是具有唯一标识的实体 C.两个类可以使用同一个名称

D.组成类的不仅有数据,还可以有对数据进行操作的函数

*94.使用引用调用方式将实参传给形参,下列说法正确的是( A ) A.形参是实参的备份 B.实参是形参的备份 C.形参和实参共享同一对象 D.形参和实参无联系 95.关于对象的性质,下列描述错误的是( B ) A.同一类对象之间可相互赋值 B.不能使用对象数组 C.对象可以用作函数参数

D.一个对象可以用作另一个类的成员 96.类的私有成员可在哪里被赋值( B ) A.类体中 B.该类的成员函数中 C.A和B D.以上都不是 97.派生类中继承的基类成员初始化如何进行( A ) A.由派生类构造函数调用基类的构造函数进行 B.由派生类构造函数进行

C.由基类构造函数进行,无需派生类构造函数调用 D.以上皆不正确

98.对于多重继承,下列描述正确的是( B ) A.所有基类使用相同的派生方式 B.每个基类可使用不同派生方式

C.只能是public派生 D.只能是protected派生 99.下列关于类的权限描述错误的是( B )

A.类本身的成员函数可以访问自身的任何成员 B.类的对象可以访问该类的所有成员

C.普通函数不能直接访问类的公有成员,必须通过成员函数对其访问 D.一个类可以将另一个类的对象作为成员 100.运算符delete与哪个函数一起运行( B ) A.构造函数 B.析构函数 C.主函数 D.不与任何函数一起工作 101.一个类可以获得另一个类的特性的机制称为( C ) A.抽象 B.封装 C.继承 D.多态性 102.对引用调用描述正确的是( B ) A.分配新存储空间

B.修改已存储空间的名称为引用名 C.引用名与已存在存储空间无任何关联

D.将引用名标识符与一块已存在储区域相关联,没有分配新存储空间

本文来源:https://www.bwwdw.com/article/xj1p.html

Top