04737C++程序设计
一、单选题
1.对C++语言和C语言的兼容性,描述正确的是(A )
A.C++兼容C      B.C++部分兼容C
C.C++不兼容C    D.C兼容C++
2.在C++中使用流进行输入输出,其中用于屏幕输出的对象是(C)
A.cerr    B.cin      C.cout    D.cfile
3.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)
A.free            B.create
C.delete      D.realse
4.如没有使用private关键字定义类的数据成员,则默认为(A )
A.private        B.public
C.protected    D.friend
5.使用值传递方式将实参传给形参,下列说法正确的是(A)
A.形参是实参的备份        B.实参是形参的备份
C.形参和实参是同一对象        D.形参和实参无联系
6.在函数调用时,如某一默认参数要指明一个特定值,则有(A )
A.其之前所有参数都必须赋值    B.其之后所有参数都必须赋值
C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值
7.设存在函数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));
8.下列哪个类型函数不适合声明为内联函数(A )
A.函数体语句较多        B.函数体语句较少
C.函数执行时间较短        D.函数执行时间过长
9.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);
10.对类中声明的变量,下列描述中正确的是(C)
析构函数的定义
A.属于全局变量
B.只属于该类
C.属于该类,某些情况下也可被该类不同实例所共享
D.任何情况下都可被该类所有实例共享
11.类的私有成员可在何处访问(D)
A.通过子类的对象访问B.本类及子类的成员函数中
C.通过该类对象访问D.本类的成员函数中
12.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是(A)
A.编译器总是自动创建一个不带参数的构造函数
B.这个类没有构造函数
C.这个类不需要构造函数
D.该类不能通过编译
13.一个类可包含析构函数的个数是( B)
A.0个B.1个      C.至少一个  D.0个或多个
14.this指针存在的目的是(B)
A.保证基类公有成员在子类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在子类中可以被访问
D.保证基类私有成员在子类中可以被访问
15.下列关于类的权限的描述错误的是(A)
A.类本身的成员函数只能访问自身的私有成员
B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问
D.一个类可以将另一个类的对象作为成员
16.在编译指令中,宏定义使用哪个指令(B)
A.#include
B.#define
C.#if      D.#else
17.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是(B)
A.A类构造函数先执行
B.成员构造函数先执行
C.两者并行执行
D.不能确定
18.下列描述错误的是(A)
A.在创建对象前,静态成员不存在
B.静态成员是类的成员
C.静态成员不能是虚函数
D.静态成员函数不能直接访问非静态成员
19.对于友元描述正确的是(B )
A.友元是本类的成员函数
B.友元不是本类的成员函数
C.友元不是函数            D.友元不能访问本类私有成员
20.在哪种派生方式中,派生类可以访问基类中的protected成员(B)
A.public和private
B.public和protected
C.protected和private
D.仅protected
21.C++源程序文件扩展名为( A )
B..h
C..1ib
22.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是( B )
<
B.cin
D.cfile
23.包含自定义头文件file.h的预处理指令是( D )
A.#define<file.h>
B.#include file.h
C.#define file.h
D.#include "file.h"
24.用于标识十六进制前缀或后缀是( D )
A.无
B.后缀L或e
C.前缀零
D.前缀0x
25.设存在整型变量int x,则下列语句中与其它三项含义不同的是( A )
A.int* p=&x;
B.int& p=x;
C.int & p=x;
D.int &p=x;
26.在定义类成员时,为产生封装性,则需使用哪个关键字( D )
A.public
B.publish
C.protected
D.private
27.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为( C )
A.10,10
B.10,15
C.15,10
D.15,15
28.函数默认参数在函数原型中说明,默认参数必须放在参数序列的( C )
A.前部
B.中部
C.后部
D.两端
29.设存在函数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);
30.下列函数不能和函数void print(char)构成重载的是( C )
A.int print(int);
B.void print(char,char);
C.int print(char);
D.void print(int,int);
31.在下列成对的表达式中,运算结果类型相同的一对是(  D )
A.7/2和7.0/2.0
B.7/2.0和7/2
C.7.0/2和7/2
D.7.0/2.0和7.0/2
32.内联函数的特点是( D )
A.减少代码量,加快访问速度
B.减少代码量,减缓访问速度
C.增加代码量,减缓访问速度
D.增加代码量,加快访问速度
33.类的私有成员可在何处被访问(  A )
A.本类的成员函数中
B.本类及子类的成员函数中
C.通过对象名在任何位置
D.不可访问
34.类的构造函数在以下什么情况下会被自动调用( B )
A.定义成员函数时
B.定义对象时
C.定义数据成员时
D.定义友元函数时
35.下列关于析构函数描述正确的是( D )
A.可以重载
B.函数体中必须有delete语句
C.返回类型必须是void类型
D.不能指定返回类型
37.下列哪个编译指令属于条件编译指令( C )
A.#include
B.#define
C.#else
D.#pragma
38.关于类的静态成员函数描述错误的是( A )
A.在创建对象前不存在
B.不能说明为虚函数
C.不能直接访问非静态函数
D.不是对象的成员
39.如果类A被声明成类B的友元,则( D )
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员
D.类B不一定是类A的友元
40.派生类的对象可以访问以下那种情况继承的基类成员( D )
A.私有继承的私有成员
B.公有继承的私有成员
C.私有继承的保护成员
D.公有继承的公有成员
41.对C++中主函数描述正确的是( C )
A.名称为main,可为多个
B.名称不限,可为多个
C.名称为main,必须有且只能有一个
D.名称不限,必须有且只能有一个
42.调用声明为int result(int a,int b)的函数时,正确的方法是( A )
43.用于包含C++标准库iostream的预处理指令是( B )
A.#define<iostream>
B.#include<iostream>
C.#define ‘iostream’
D.#include‘iostream’
44.无类型标识符是指( A )
A.void
B.bool
C.short
D.long
45.从本质上看,引用是被引用变量的( B )
A.拷贝
B.别名
C.复制
D.克隆
46.下面关于数组的初始化正确的是( A )
A.char str[ ]={'a','b','c'};
B.char str[2]={'a','b','c'};
C.char str[1][2]={{'a','b'},{'e','d'}};
D.char str[ ][ ]={'a','b','c'};
47.C++类中定义的成员默认访问属性为( B )
A.public
B.private
C.protected
D.friend
48.决定C++语言中函数的返回值类型的是( D )
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
49.函数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
50.声明函数为内联函数时所使用的关键字为( B )
B.inline
C.short
D.signed
51.函数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);
53.下列访问对象成员的方式哪个是正确的( A )
A.对象名.对象成员名
B.对象指针名.对象成员名
C.对象名→对象成员名
D.类名→对象成员名
54.对类A,复制构造函数的原型是( A)
A.A::A(const A&);
B.A::A(const A *);
C.A::A(const A);
D.A::A( );
55.对class point,如使用point * ptr=new point[2];创建对象数组,则删除此数组使用的语句是( B )
A.delete ptr[2];
B.delete[ ] ptr;
C.delete ptr[ ];
D.delete[2] ptr;
56.下列哪个编译指令不属于条件编译指令( D )
A.#if
B.#else
C.#endif
D.#error
57.类A中存在静态数据成员x,设a和b是类A的两个对象,在执行a.x=10之后,b.x
的值为( B )
A.未初始化
B.等于a.x
C.等于0
D.随机
58.使用string.h库操纵字符串时,将两个字符串连接成一个字符串的函数是( C )
A.strlen()
B.strcap()
C.strcat()
D.strcmp()
59.基类中的public成员,通过public派生,其在派生类中的访问权限为( D)
A.不可访问
B.private
C.protected
D.public
60.不同对象调用同名函数,但导致完全不同行为的现象称为( D )
A.抽象
B.封装
C.继承
D.多态性
61.在C++中,头文件扩展名为( B)
A.cpp
B.h
C.1ib
D.obj
62.下列符号中,不属于分隔符的是(B)
A.,
B./
C.;
D.{}
63.可替换#define PI 3.1415926的语句是(B)
A.float PI 3.1415926;
64.布尔类型标识符是(D)
A.void
B.short
C.long
D.bool
65.下列不是C++语言的基本数据类型的是(D)
A.字符类型
B.整数类型
C.逻辑类型
D.枚举类型
66.C++允许在结构中定义函数,这些函数称为(D)
A.静态函数
B.构造函数
C.析构函数
D.成员函数
67.设函数void inc(int)将形参加1,如有整型变量int i=10;则执行inc(i);后,i的值为(B)
A.9
B.10
C.11
D.未知
68.下列哪种默认参数的声明是不正确的(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);
69.设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
70.包含哪种语句的函数不能声明为内联函数(A )
A.循环
B.变量自增自减
lse…
D.变量声明
72.一个类拥有多个构造函数,则这些构造函数间为(A)
A.重载关系
B.重复关系
C.拷贝关系
D.无关系
73.对于拷贝构造函数point::point(point& P),下列说明正确的是(C)
A.该函数只能访问P的私有成员
B.该函数不能访问P的公有成员
C.该函数可以访问P的私有和公有成员
D.该函数不能访问P的成员
74.使用delete[]删除对象数组时,描述正确的是(A)
A.数组中各元素都调用析构函数
B.数组中各元素都调用构造函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。