1、C++对C做了很多改进,从面向过程成为面向对象的主要原因是(D)。
A.增加了一些新的运算符
B.允许函数重载,并允许设置参数默认值
C.规定函数必须用原型
D.引进了类和对象的概念
2、C++语言规定,必须用(C)作为主函数名。
A.function B.include C.main D.stdio
3.一个C++程序可以包含任意多个不同名的函数,但有且仅有一个(B),一个C++程序总是从(B)开始执行。
A.过程 B.主函数 C.函数 D.include
4.在C++语言中,自定义的标识符(D)。
A.能使用关键字并且不区分大小写
B.不能使用关键字并且不区分大小写
C.能使用关键字并且区分大小写
D.不能使用关键字并且区分大小写
5.下列说法正确的是(D)
A.main函数必须放在C++程序的开头
B.main函数必须放在C++程序的最后
C.main函数必须放在C++程序的中间部分,执行C++程序部分是从程序开头执行的
D.main函数必须放在C++程序的中间部分,执行C++程序部分是从main函数开始的
6.下面选项中不属于面向对象程序设计特征是(C)
A.继承性 B。多态性 C.相似性 D.封装性
7.在C++语言中,每个语句和数据定义是用(C)结束。
A.句号 B.逗号 C.分号 D.括号
8.下列不是C++语言提供的合法关键字的是(B)。
A.switch B.print C.case D.default
9.C++语言提供的合法关键字是(A)。
A.break B.print C.function D.end
10.C++语言提供的合法关键字是(A)
A.continue B.procedure C.begin D.append
1.下例选项中,均为合法的标识符的选项是(B)
A) int a 2b B) name a3 c_e
C) 姓名 C++ Dis D) @email c&d count
2. 以下不属于字符型常量的是(D )。
A) ‘$’ B) ’+’ C) ‘x2A’ D) “B”
3. 设已有说明语句“in a=6;”,则执行语句“a+=a*=a%=3;”后,a的值为 ( C) 。
A) 8 B) 18 C) 0 D) 2
4. 以下选项中不属于C++语言的数据类型是___A__.
A) 复数型 B) 逻辑型 C) 双精度型 D) 字符型
5. 若变量a、i已经正确定义,且i已经正确赋值,则合法的语句为( B )。
A) a==1; B) ++i; C) a=a++5; D) a+=+i;
6. 存储了"Hello"的数组的长度是多少?(B)
A) 5 B) 6 C) 7 D) 8
7. 若变量a是int类型 ,执行a=’A’+32;正确的描述为(B)
A) a的值是字符a B) a的值是整数97
C) 不允许相加 D) 值不确定
8. x和y均为int型变量,且x=1,y=2,则x=y++后,x和y的值分别为(D)
A) x=1, y=2 B) x=2, y=2 C) x=3,y=3 D) x=2, y=3
9. 下列运算符要求操作数必需是整型的是(D)
A) / B) + C) ++ D) %
10. 若定义int a=1; float b=5.5;则a+int(b)值为(B)
A) 6.0 B) 6 C) 6.5 D) 0
11. 不可以用作C++用户标识符的是(B)
A) Printf B) case C) _abc D) scan
12.下列关于单目运算符++、–的叙述中正确的是( D )。
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
13. 常量3.14的数据类型为(D)
A) float B) char C) int D) double
14.以下选项中不属于字符常量的是( B)。
A) ‘C’ B) “C” C)’\XCC’ D) ‘\072’
15. 下列运算符中优先级最低的是(C )
A) % B) %= C) & D) >>
16.下列说法正确的是(D)
A) 隐含类型转换可以从高类型转换为低类型
B) 显式类型转换不可以从低类型转换为高类型
C) 隐含类型转换可以在任何类型之间转换
D) 显式类型转换可以在任何类型之间转换
1.若有定义“int x=4;”,则执行语句“x+=x* =x+1;”后,x的值为( )
A. 5 B.20 C. 40 D.无答案
2. 逻样运算符的运算对象的数据类型( )
A.只能是0或1
B. 只能是true或false
C. 只能是整型或字符型
D. 可以是任何类型的数据
3. 能正确表示x的取值范围为[0, 100] 或[-10, -5]的表达式是( )
A. (x<=-10) (x>=-5) && (x<=0) |I (x>= 100)
B. (x>=-10) && (x<=-5) |I (x>=0) && (x<= 100)
C. (x>=-10) && (x<=-5) && (x>=0) && (x<= 100)
D. (x<=-10) II (x>=-5) && (x<=0) && (x>= 100)
4.判断宇符型变量ch为大写字母的表达式是( )
A. ‘A’<=ch<=‘Z’
B. (ch>=‘A’) & (ch<=‘Z’ )
C. (ch>=‘A’) && (ch<=‘Z’ )
D. (ch>=‘A’) AND (ch<=‘Z’ )
5. 若有以下函数关系:
x<0→y=2x
x>0→ y=x
x=0→y=x+1
下面程序段能正确表示以上关系的是( )
A. y=2x;
if (x!=0)
if (x>0) y=x;
else y=x+1;
B. y=2x;
if (x<=0)
if (x==0) y=x+1;
else y=x;
C. if (x>=0)
if(x>0) y+x;
else y=x+1;
e;se y=2x;
D. y=x+1;
if(x<=0)
if(x<0) y=2x;
else y=x;
6.在c语言中,多分支选择结构语句为:
switch ©
{
case常量表达式1:语句1;
.
.
.
case常量表达式n-1:语句n-1; default : 语句n;
}
其中括号内表达式c的类型( )
A.可以是任意类型
B.只能为整型
C.可以是整型或字符型
D.可以为整型或实型
7.设“inta, b;",则执行以下语句后b的值为( )
a= 1;b= 10;
do
{ b-=a;
a++;
}while (b–<0);
A.9 B.-2 C.-1 D.8
8.执行语勾“for(i=1;i++<4;);”后,变量:的值是( )
A.3 B.4 C.5 D.不定值
9.程序段如下:
int k=-20;
while (k=0) k=k+1;
则以下说法中正确的是()
A. while 循环执行20次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
10.以下能正确计算1x2x3x——x10的程序段是()
A.do{i=1;s=1;s=si; i++;} while(i<=10);B.A.do{i=1;s=0;s=si; i++;} while(i<=10);
C.i=1;s=1; do{s=si; i++;} while(i<=10);D.i=1;s=1; do{s=si; i++;} while(i<=10);
1.在C++语言中,引用数组元素时,其数组下标的数据类型允许是(B )
A.整型常量
B.整型常量或整型表达式
C.整型表达式
D.任何类型的表达式
2.在32 位计算机系统中,一个int 型变量占4个字节的存储单元。若有定义:
int x [10] = {0,2,4}
则数组x在内存中所占字节数为(D)
A. 3
B.6
C.12
D.40
3.下列定义数组正确的是 (A )
A. int a[ ] = { 1, 2, 3, 4, 5 };
B.int b [1]={ 2,5 };
C. int a (10);
D. int 4e [4];
4.假设 array 是一个有 10个元素的整型数组,则下列写法中正确的是 ( A )。
A.array [0] =10
B.array= 0
C.array [10] =0
D.array [-1] =0
5.若有二维数组a [m] [n],则数组中a [i][;] 之前的元素个数为 ( B )
A.jm + i
B.in + i
C.im + j + 1
D.in+j+1
6.以下能正确定义数组并正确赋初值的语句是 ( D)
A.int N=5, b [N] [N];
B.int a [1] [2] ={ {1},{3} };
C.int c [2] [ ] ={ {1 , 2 } {3 , 4} } ;
D.int d [3] [2] = { {1,2}, {3,4} };
7.以下不能对二维数组 a 进行正确初始化的语句是 ©。
A.int a[2][3] ={ 0 };
B.int a[ ][3] ={ {1,2} ,{ 0 } };
C.int a [2] [3] = { { 1,2 },{3,4 } ,{5,6} };
D.int a [ ] [3] = {1, 2,3, 4,5,6 };
8.设有int a[3][4]={ 0 },则下面叙述中正确的是 ( C)。
A.只有元素a [0][0] 可以得到初值0
B.此说明语句不正确
C.数组a中每个元素均可得到初值0
D.数组a每个元素均可得到初值,但值不一定为0
9.下面程序的运行结果是 ( D )。char ec[5] = { ‘ a ’ ,’ b ‘, ‘\0’ , ‘c’ ,’\0’ }; cout<
B: ab\0c\0
C: ab c
D: ab
10.变量的指针,其含义是指该变量的 (B )
A : 值
B:地址
C:名
D: 一个标志
11.设有说明int (*ptr)[M],其中ptr是( C)。
A.M个指向整型变量的指针
B.指向 M 个整型变量的函数指针
C.一个指向具有 M 个整型元素的一维数组的指针
D.具有 M 个指针元素的一维指针数组,每个元素都只能指向整型变量
12.基类型相同的两个指针变量之间,不能进行的运算是 ©。
A.<
B.=
C.+
D.-
13.若有定义: int a [5],则a数组中首元素的地址可以表示为 ( C)。
A.&a
B.a+1
C.a
D.&a[1]
14.若有定义:int *p[4],则标识符p ( B)。
A.是一个指向整型变量的指针
B.是一个指针数组名
C.是一个指针,它指向一个含有 4 个整型元素的一维数组
D.说明不合法
15.若有以下定义,则对a数组元素的引用正确的是 ( D )。
int a [5],p=a;
A. *&a [5]
B.a+2
C. * (p+5)
D. * (a+2)
16.若有下列说明和语句,则对a数组元素的引用正确的是 ( D )。inta[4] [5],(*p) [5]; p= a;、
A.p+1
B. * (p+3)
C. * (p+1)+3
D. * (*p+2)
17.若有以下定义和语句,则输出的结果是 (D )。
int * * pp,*p,a=10 , b=20;
pp=&p;
p=&a;
p=&b;
cout<< * p<<“,” << * * pp<
B:10,10
C:20,10
D:20 20
18.以下程序段输出的结果是(C )
int a=5 , p1 , * * p2;
p1=&a,p2=&p1;
( *p1) ++;
cout<< * * p2<
B:4
C:6
D:不确定
19.下列程序段的输出结果是( C)
static int num 【5】 ={ 2,4,6,8,10};
int n, * m;
n=num;
m=&n;
cout << * (n++) << " ";
cout<< * *m<
B . 2 2
C.2 4
D.4 6
20.执行以下程序段后,y 的值是 ( C )
(int a [ ] = {2,4,6,8,10};
int y=1,x, *p;
p=&a[1];
for (x=0;x<3;x++)
y+= * (p+x);
cout<
B.18
C.19
D.20
1.下面叙述中正确的是(B)
A.对于用户自己定义的函数,在使用前必须加以说明
B.函数可以返回一个值,也可以什么值也不返回
C.说明函数时必须明确其参数类型和返回类型
D.空函数不完成任何操作,所以在程序设计中没有用处
2.下面叙述中错误的是(A)
A.主函数中定义的变量在整个程序中都是有效的
B.在其他函数中定义的变量在主函数中也都不能使用
C.形式参数也是局部变量
D.复合语句中定义的函数只是在该复合语句中有效
3.下面叙述中正确的是(B)
A.全局变量在定义它的文件中的任何地方都是有效的
B.全局变量在程序全部执行过程中一直占用内存单元
C.同一文件中的变量不能重名
D.使用全局变量有利于程序的模块化和可读性的提高
4.若函数的类型和return语句中表达式的类型不一致,则(D)
A.编译时有错
B.运行时出现不确定结果
C.不会出错,且返回值的类型以return语句中表达式的类型为准
D.不会出错,且返回值的类型以函数的类型为准
5.在函数的说明和定义时若没有指出函数的类型,则(A)
A.系统自动认为函数类型为整型
B.系统自动认为函数类型为实型
C.系统自动认为函数类型为字符型
D.编译时会出错
6.C++语言中若不特别声明,则变量的类型被认为时(D)。
A.extern B.static C.register D.auto
7.在函数调用语句fun1 (fun2 (x,y),(x,y),z=x+y)中,fun1的实际参数的个数是(A)
A.3 B. 7 C.4 D.5
8.对函数的调用不可以出现在(C)
A.对一个变量赋初值
B.调用函数时传递的实际参数
C.函数的形式参数
D.引用数组[ ]的运算符中
9.若用数组名作为函数调用的实参,传递给形参的是(A)
A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数
10.在下面的函数声明中,存在着语法错误的是(C)
A.BC (int a,int); B.BC (int, int) C.DC (int, int=5) D.BC (int x, int y);
1.一般情况下,将( ) 函数声明为内联函数。
A.函数的代码量小,调用次数少
B.函数的代码量小,调用次数多
C.函数的代码量大,调用次数少
D.函数的代码量大,调用次数多
2.C++提供的可有效分配对象空间的运算符是 ( )。
A.delete
B.new
C.pos
D.auto
3.不属于类的成员函数的是 ( )。
A.构造函数
B.析构函数
C.友元函数
D.复制构造函数
4.假设 MyClass 是一个类,则该类的拷贝初始化构造函数的声明语句为( )。
A.MyClass& (MyClass x);
B. MyClass ( MyClass x);
C.MyClass (MyClass &x);
D.MyClass ( MyClass *x);
5.对于 C++结构中定义的成员,其隐含的访问权限为 ()
A.public
B,protected
C. private
D.static
6.为类提供对外接口的是( )
A.公有成员函数
B.私有成员函数
C.保护成员函数
D.友元函数
7,对于任意一个类,析构函数的个数为( )。
A.0
B.1
C.2
D.3
8.若类A的构造函数定义为
A (int aa=1, int bb=0) { a = aa; b = bb: }
则执行Ax(4)后,x.a和x.b的值分别是 ( )。
A.1,0
B.1,4
C.4,0
D.4,1
9.具有转换函数功能的构造函数是 ( )。
A. 不带参数的构造函数
B.带有一个参数的构造函数
C.至少带有两个参数的构造函数
D.缺省构造函数
10.类模板的使用实际上是将类模板实例化成一个具体的( )。
A.类
B.对象
C.函数
D.模板类
1.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是
)。
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
2.下面程序的运行结果为 (
class A
{
public:
A () {cout<<“1”; }
~A () { cout<<“2”; }
};
class B: public A
{
public :
B () { cout<<“3”; }
~B () { cout<<“4”; }
};
int main ()
{ B b ;}
A,1234
B.11324
C.1342
D.3142
3.可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是()。
A.私有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.公有继承的公有成员
4.建立派生类对象时,3.种构造函数分别是a(基类的构造函数)、b (成员对象的构造函数)、c(派生类的构造函数),这3种构造函数的调用顺序为()。
A.abc
B.acb
C.cab
D.cba
5.继承机制的作用是 ()。
A.信息隐藏
B.数据封装
C.定义新类
D.数据抽象
6.下面程序的运行结果是 ()。
class base
{
protected :
int a;
public:
base () {cout<<“0” ; }
};
class base1: virtual base
{
public:
base1 ( ) { cout << “1” ;}
};
class base 2 :virtual base
{
public:
base2( ) { cout<<" 2 “}
};
class derived : public base1 , public base2
{
public:
dericved ( ) { cout << “3”;}
};
int main ( )
{
derived obj;
return 0;
}
A.0123
B.3120
C.0312
D .3012
7.下面描述中,表达错误的是 ()。
A.公有继承时基类中的 public 成员在派生类中仍是 public
B.公有继承时基类中的 private成员在派生类中仍是 private
C.公有继承时基类中的 protected 成员在派生类中仍是 protected
D.私有继承时基类中的 public 成员在派生类中是private
8.应在下列程序划线处填入的正确语句是 ( )。
class Base
{
public:
void fun( ) {cout<<” Base : : fun " <
class Derived : public Base
{ void fun ( )
{ __________//显示调用基类函数fun()
cout<<"Derived : : fun "<< endl;}
} ;
A. fun() ;
B.Base.fun();
C.Base : :fun();
D.Base->fun( );
9.派生类的成员函数可以直接访问基类的 ( ) 成员。
A.所有
B.公有和保护
C.保护和私有
D.私有
10.当派生类中有和基类一样名字的成员时,一般来说 ()。
A.将产生二义性
B.派生类的同名成员将覆盖基类的成员
C.是不允许的
D.基类的同名成员将覆盖派生类的成员