(C)。
A.0 B.100
C.300 D.200
37.对do-whie语言错误的说法是(C)
A.可构成多重循环结构 B.循环次数不可能为0
C.循环次数可能为0 D.先执行后判断
38.静态成员函数没有(B)
A.返回值 B.this指针
C.指针参数 D.返回类型
39.在类中说明的成员可以使用关键字( A )进行修饰。
A.public B.extern
C.cpu D. register
40.下列不是描述类的成员函数的是(C)
A.构造函数B.析构函数
C.友元函数D.拷贝构造函数
41.若inta[3]={1,2,3},*p;则下列赋值语句中
正确的是( D )
A. p=&a; B. *p=a;
C. *(a+1)=a; D. p=a+1
42.若p1、p2都是指向整型的指针,p1已经指向数量x,
要使p2也指向x,正确的是( A )
A. p2=p1; B. p2=**p1;
C. p2=&p1; D. p2=*p1;
43.在类中说明的成员可以使用关键字(A)进行修饰。
A.private B.extern
C.auto D.register
44.在inta=3,*p=&a;中,*p的值是(D)。
A.变量a的地址值 B.无意义
C.变量p的地址值 D.3
45.假定AB为一个类,则执行ABx;语句时将自动调用该类的(B)。
A.有参构造函数B.无参构造函数
C.拷贝构造函数D.赋值构造函数
46.如果class类中的所有成员在定义时都没有使用关键字pubilc,
private,protected,则所有成员缺省定义为:
(C)。
A.public B.protected
C.private D.static
47. 语句int(*p)();的含义是(A)
A.p是一个指向函数的指针变量,该函数的返回值是一个整型数据
B.p是指针变量,指向一个整型数据
C.p是一个指向一维数据的指针变量
D.p是指针函数
48.在C++中实现封装是借助于(B)
A.枚举 B.类
C.数组 D.函数
49.设inta=3,b=4,c=5;表达式(a+b)>c&&b==c的值是( C )。
A.2 B.-1
C.0 D.1
50.设intx[]={1,2,3,4,5,6},*p=x;则值为3的表达式是
( B )
A.p+=2,*++p
B.p+=2,*p++
C.p+=3,*p
D.p+=2,++*p
51.关于类概念的描述中,( D)是错误的。
A.类是抽象数据类型的实现;B.类是具有共同行为的若干对象的统一描述体;
C.类是创建对象的样板; D.类不是C++中的一种数据类型;
52.在32位机中,double型字宽为(D )字节。
A.2;B.4;C.6;D.8
53.在inta[][3]={{1,0},{3,2},{4,5,6},{0}};中a[2][2]的值是( C )。
A.0;B.5;C.6;D.2
54.对于double(*p)[10];的描述,(A)是正确的。
A.p是一个指向数组的指针,所指向的数组是10个double型元素;
B.p是一个指向某个数组中第10个元素的指针,该元素是double型变量;
C.p[5]表示某个数组的第10个元素的值;
D.p是一个具有10个元素的指针数组,每个元素是一个double型指针;
55.下述关于开关语句的描述中,(A)是正确的。
A.开关语句中default子句可以没有,也可以有一个;
B.开关语句中每个语句序列中必须有break语句;
C.开关语句中default子句只能放在最后;
D.开关语句中case子句后面的表达式可以是整形表达式。
56.下列( D )是引用调用;
A.形参是指针,实参是地址值;B.形参和实参都是变量;
C.形参是数组名,实参是数组名;D.形参是引用,实参是变量。
57.(A)是析构函数的特征。
A.一个类中只能定义一个析构函数;B.析构函数与类名不同;
C.析构函数的定义只能在类体内;D.析构函数可以有各个或多个参数。
;
58.关于new运算符的下列描述中,(D)是错的。
A.它可以用来动态创建对象和对象数组;
B.使用它创建的对象或对象数组可以使用运算符delete删除;
C.使用它创建对象时要调用构造函数;
D.使用它创建对象数组时必须指定初始值。
59.已知fun(int)是类Test的公有成员函数,p是指向成员函数fun()的指针,采用(D )是正确的:
A.p=fun;B.p=Test:
:
fun();C.p=fun();D.p=Test:
:
fun;
60.关于对象概念的描述中,(A)是错误的。
A.对象就是C语言中的结构变量;
B.对象代表着正在创建的系统中的一个实体;
C.对象是一个状态和操作(或方法)的封装体;
D.对象之间的信息传递是通过消息进行的;
61.下列给字符数组进行初始化中,(A)是正确的。
A.chars1[]="12345abcd";B.chars2[3]="xyz";
C.chars3[][3]={'a','x','y'};D.chars4[2[3]={"xyz","mnp"};
62.对于int*pa[5];的描述,(D)是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素;
B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;
C.pa[5]表示某个数组的第5个元素的值;
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;
63.下述静态数据成员的特征中,(D)是错误的。
A.说明静态数据成员时前边要加修饰符static;
B.静态数据成员要在类体外进行初始化;
C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符;
D.静态数据成员不是所有对象所共用的。
64、下列的各类函数中,(C)不是类的成员函数。
A.构造函数;B.析构函数;C.友元函数;D.拷贝构造函数;
二、填空题
1、一个基本语句的最后一个字符是( ; ).
2、与intx=100; while(x>0) {cout<<’P’;x--; } 等效的for语句是( for(x=100;x>0;x--) )。
3、执行for(inti=1;i<30;i++)cout<<”*”;将输出( 29 )个*号。
4、数学函数sqrt(49)的结果为( 7 ),pow(3,3)的结果为:
( 27 )。
5、C++程序主要有三种基本控制结构,分别是顺序结构、条件分支结构和
( 循环结构 )。
6.在c++中,除具有循环、switch语句的函数不能说明为内联函数外,其它函数都可以说明为内联函数。
7.在c++中,封装可以由public、private和protect等关键字提供。
8.若example是已定义的类,在程序结束之前,共计存在2个对象。
#include”example”
main()
{exampleX(0);
X=5;X.print();
X=example(10);
X.print();
}
9.在c++中,如果在多条继承路径有一个公共的基类,如果想使这个公共的基类只产生一个拷贝,则可以将这个基类说明为虚基类。
使用关键字virtual说明。
10.静态成员为该类的所有对象共享,它们被存储于一个中。
15在C语言中,编程的单位是__函数___;在C++语言中,编程的单位是_对象____。
16类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的
__数据成员___,共同行为被描述为类中的___函数成员___。
17类的具体表现是通过定义_成员函数______来操作的。
18对类中的成员函数和属性的访问是通过__①public___、__②private____和__③protect___这3个关键字来控制的。
19一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为__private___权
限,而把成员函数(方法)定义为__public____权限。
20)在类定义中,数据和成员函数默认权限是___private______。
21类中构造函数有___一个或多__个,析构函数有____一__个。
22类中的构造函数是一个特殊的成员函数,它由类的对象___生成时__调用,它的作用
是___初始化___。
23在定义类的对象时,C++程序将自动调用该对象的_构造函数_函数初始化对象自身。
24在撤销类的对象时,C++程序将自动调用该对象的__析构____函数。
25___new__运算符对指定类型对象动态分配内存并返回____true或false___。
26____delete____运算符删除(25)题中的运算符所动态分配的内存空间。
27假定用户没有给一个名为MyClass的类定义构造函数,则系统为其定义的默认构造
函数形式为__MyClass(){};____。
28假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构
函数形式为_~MyClass(){};_____。
29在类中定义和实现的函数称为__内联函数______。
30非成员函数应声明为类的_友元函数(friend)_______才能访问这个类的private成员。
31若要把类FriendClass定义为类MyClass的友元类,则应在类MyClass的定义中加入
语句__friendFriendClass;______。
32若要把函数voidFriendFunction()定义为类MyClass的友元函数,则应在类MyClass
的定义中加入语句__friendFriendFunction();_____。
33下面的类中定义了一个关于星期的枚举类型,请完成下面的程序。
classMyClass
{
public: