- 1.执行以下代码,输出x的值是( )。
- 2.以下关于指针的说法,正确的是( ).
- 3.在vs2017中,以Debug方式编译,以下代码运行结果是( )。
- 4.下面描述正确的是( ).
- 5.下列关于new运算符描述错的是( )。
- 6.使用 char* p = new char[100]申请一段内存,然后使用delete p释放,有什么问题( )。
- 7.下面的函数定义不构成重载的是( )。
- 10.在C++中, 下列哪一个选项可以做为对象继承之间的转换( )。
- 11.以下程序的输出结果是( )。
- 12.下面有关类的静态成员和非静态成员,说法错误的是( )。
- 13.如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( )。
- 14.下面有关友元函数与成员函数的区别,描述错误的是( )。
- 15.有A,B两个类,如果A想使用B中的私有成员,以下做法正确的是( )。
- 16.对于++运算符的重载,如何区分前置后置
- 17.以下运算符重载必须重载为成员函数的是
- 18.下面重载乘法运算符的函数原型声明中错误的是:
- 19.下列代码输出结果为()。
- 20.关于C++的描述错误的是()
1.执行以下代码,输出x的值是( )。
enum values{
x1, x2, x3 = 10, x4, x5,
}x;
void main(){
x = x1;
printf(“%d”, x);
}
0 枚举就是顺序排列的一堆常量,除非指定固定的值
12
随机数
5
2.以下关于指针的说法,正确的是( ).
const int p与int const p等价
const int p与int const p等价
int const p与int const p等价
int p[10]与int (p)[10]等价
3.在vs2017中,以Debug方式编译,以下代码运行结果是( )。
const int Index=99; C++支持这样定义数组,C不支持
int array[Index]={0};
printf(“0x%x”,array[Index]); 输出第100个元素
0xCCCCCCCC
程序运行时崩溃
0 如果定义在全局就是0:
4.下面描述正确的是( ).
int p1 = new int[5];
int p2 = new int5;
p1和p2申请的空间里的值都已经初始化
p1申请的空间里的值是随机值,p2申请的空间里的值已经初始化
p1和p2申请的空间里面的值都是随机值
p1申请的空间里的值已经初始化,p2申请的空间里的值是随机值
5.下列关于new运算符描述错的是( )。
它可以用来动态创建对象或对象数组
使用它创建对象数组时必须指定初始值
使用它创建对象时会调用构造函数 创建对象都会调用构造函数
使用它创建的对象或对象数组后需要使用运算符delete或delete[]进行对应释放
6.使用 char* p = new char[100]申请一段内存,然后使用delete p释放,有什么问题( )。
不会有内存泄露,但不建议用 普通类型不会有内存泄漏,如果是类类型
编译就会报错,必须使用delete []p; 不会报错
会有内存泄露
编译没问题,运行会直接崩溃
7.下面的函数定义不构成重载的是( )。
long hoo( long m, long n = 0 ); long hoo( const long m );
long hoo( const long m ); double hoo( const long n);
long hoo( long m ); long hoo( const long n ); vs2017是认为重载,但要加*号,vc6.0测试也可以
long hoo( long m = 0, long n = 0 ); long hoo( long m = 0 );
重载:参数的个数不同,类型不同,类型的顺序不同
8.下说法错误的是( )。
如果参数是引用类型,是不能给其设置默认参数的 可以
但是默认参数不能是个常量
要想形参改变实参的话,可以使用引用传参
定义引用变量时,必须初始化
C++支持设置默认参数
9.以下对C++中的输入输出流说法错误的是( )。
cin,cout是被包含在std命名空间的
cout是iostream类的对象 是ostream 怎么找ostream,看说明文档
istream和ostream是iostream的父类
使用输入输出流需要包含头文件 iostream
10.在C++中, 下列哪一个选项可以做为对象继承之间的转换( )。
static_castconst_cast
dynamic_cast
reinterpret_cast
(重新解释)
11.以下程序的输出结果是( )。
class CTemp
{
public:
CTemp(int a,int b):m_a(a),m_b(b),m_c(a+b){}
void Print()
{
cout << m_c;
}
private:
int m_c;
int m_b;
int m_a;
}
int main()
{
CTemp temp(1,2);
temp.Print();
return 0;
}
3
随机值
4
5
12.下面有关类的静态成员和非静态成员,说法错误的是( )。
非静态成员函数可以直接访问类中静态的成员变量
普通可以访问全局的
非静态成员的生存期决定于该类对象的生存期,而静态成员跟全局变量的生存期是一样的
静态成员函数能直接访问非静态的成员变量
成员函数加了修饰如静态就不再属于这个类,只是用的时候受作用域影响
静态成员在实例化之前就已存在于内存,非静态成员需要实例化才会分配内存
13.如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( )。
14.下面有关友元函数与成员函数的区别,描述错误的是( )。
类的成员函数是属于类的,调用的时候是通过指针this调用的
友元函数可以让本类和友元类对象调用
友元函数和类的成员函数都可以访问类的私有成员变量或者是成员函数
友元函数是有关键字friend修饰,调用的时候也是通过指针this调用的
15.有A,B两个类,如果A想使用B中的私有成员,以下做法正确的是( )。
将B中私有成员声明成静态的
在A中定义B类对象成员
在B中声明A是其友元类
在B中定义A类对象成员
16.对于++运算符的重载,如何区分前置后置
通过char参数区分重载,有参数为前置,无参数为后置
通过int参数区分重载,有参数为后置,无参数为前置
通过char参数区分重载,有参数为后置,无参数为前置
通过int参数区分重载,有参数为前置,无参数为后置
17.以下运算符重载必须重载为成员函数的是
18.下面重载乘法运算符的函数原型声明中错误的是:
friend MyClass operator (double ,MyClass);
friend MyClass operator (MyClass ,MyClass);
friend MyClass operator (double ,double); 必须要有一个类类型,不能对基本类型进行重载
friend MyClass operator (MyClass ,double);
19.下列代码输出结果为()。
int main()
{
int m[]={1,2,3,4,5,6,7,8,9,0};
int (p)[4]=(int()[4])m;
printf(“%d”,p[1][2]); ( (p+1)+2) 指针p加多少字节sizeof(int p[4])*4
return 0;
}
9
0
6
7
20.关于C++的描述错误的是()
C++是解释型语言 编译型语言
C++是一门支持面向对象设计的语言
C++具有三大特性,封装性,多态性,继承性
C++完全兼容C