}
A.num=600ref=650 B.num=600ref=100
C.num=500ref=650 D.num=500ref=100
A//ref和num指向同一地址
(3)C++中可以声明只读常量的关键字是( )
A.float B.const C.char D.include
B
(4)C++程序的执行过程中,生成的机器能够理解和可执行的机器指令叫( )
A.链接程序 B.目标程序
C.可执行程序 D.源程序
C
(5)面向对象程序设计的( )特征使得程序设计中出错的可能性减少?
A.抽象 B.封装 C.多态 D.派生
B
(6)下列各项中不属于OOP语言特征的是( )
A.数据抽象、数据封装 B.继承性、多态性
C.数据抽象、数据归纳 D.数据封装、继承性
C//“数据归纳”不属于OOP语言的特征
(7)面向对象系统中的封装单位是( )
A.类 B.结构 C.联合 D.对象
D//因为面向对象系统中的封装单位是对象
(8)在有继承关系的类间,不应有的特性是( )
A.具有共享性 B.具有细微差别
C.具有层次结构 D.具有相同名称
D//C和C++中都不允许出现具有相同名称的元素
(9)下面关于多态性的叙述中,不正确的说法是( )
A.多态性的使用大大提高了解决复杂性问题的能力
B.实现动态多态性的手段之一是函数重载
C.有静态和动态两种多态性
D.调用相同名称的函数导致完全不同行为的现象称为多态性
B//函数重载是实现静态多态性的手段之一
(10)下列各项中不属于使用const定义常量优于使用define处( )
A.有自己的数据类型 B.可用于结构、类和数组中
C.可使用小写字母 D.避免使用define时的错误
C//“可使用小写字母”不属于使用const定义常量优于使用define处
(11)下列有关内联函数的说法中,不正确的是( )
A.内联函数的使用较使用带参宏代换更安全
B.内联函数必须在调用前先声明
C.内联函数必须在main()之前定义
D.内联函数必须使用标识符inline标识
B//因为内联函数必须在主函数main()之前定义,故在调用前已定义了
(12)下列带缺省值参数的函数说明中,正确的说明是( )
A.intFun(intx,inty=2,intz=3);
B.intFun(intx=1,inty,intz=3);
C.intFun(intx,inty=2,intz);
D.intFun(intx=1,inty,intz=3);
A//按带缺省值参数的函数说明中参数安排规则
(13)下列各项中不符合函数重载必须满足的条件的是( )
A.必须有不同的参数个数 B.对应的参数类型必须不相同
C.A和B必须同时满足 D.A和B只要满足一个即可
C//因为函数重载必须满足“有不同的参数个数”和“对应的参数类型必须不相同”之一即可
(14)下列关于动态空间分配的操作中,错误的是( )
A.当分配空间时,必须先定义所需空间数据类型的指针
B.当给数组分配空间时,必须给出各维的元素个数
C.当删除数组时,在被删指针前必须加符号[]
D.用new对任意类型的数据分配空间并进行初始化
D//由于可以使用new给任意类型的数据分配空间,但并不是任意类型的数据都能进行初始化的,如数组就不能在分配空间的同时被初始化
(15)引用不能用作( )
A.数组的别名 B.变量的别名
C.函数的参数 D.函数的返回值
A//因为引用不能用作数组的别名
(16)下面对引用的操作中,不正确的操作是( )
A.inti=5;B.inti=20,j=30;
int&j=i;int&k=i;
i=10;i=j;
C.inti=j=30;D.inti=10,j=30;
int&k=i;int&k=i;
int&k=j;int&l=j;
C//因为“引用”不能被重新定义
二、填空:
(1)面向对象的程序设计方法要求语言必须具备_____,_____,_____和_____等这几个关键要素。
抽象、封装、继承和多态性
(2)条件编译指令是_____,_____,_____,_____和_____,它们构成类似于C++和C中的if选择结构。
#if,#else,#elif,#error和#endif
(3)在C语言中,动态内存分配是通过系统函数malloc( )、free( )和运算符sizeof来实现的。
在C++中,动态内存分配是通过_____和_____两个运算符进行内存分配的。
new和delete
(4)C++语言由六类语法标记组成,它们是_____,_____,_____,_____,_____,_____.
关键字,标识符,常量,串,运算符,特殊符号
(5)在面向对象的程序中,对象之间通过_____实现互相通信.
函数调用
(6)数据封装是把数据的_____与_____隐藏起来。
表示方式,对数据的操作细节
(7)继承的作用包括_____和_____两个方面。
减少代码冗余,减少相互间的接口与界面
(8)C++中,动态分配空间使用_____运算符,若需给一个整数分配内存并初始化为20,则语句必须
使用语句_____。
new,int*p=new(20)
三、程序分析题
分析如下程序,并给出它的输出结果。
#include
intf(inti)
{return++i;}
intg(int&i)
{return++i;}
voidmain()
{inta=0,b=0,c=0,d=0;
a+=f(g(a));
b+=g(g(b));
c+=g(f(c));
d+=f(f(d));
cout<<"a="<}
输出为:
a=1;b=1;c=0;d=0
四、指出下面程序的错误:
#include
voidmain( )
{charx[5]=“abcdefghij”;
cout< x=“klmno”;
cout<}
共两处错误:
第一处:
charx[5]=“abcdefghij”;数组只能提供五个字符空间。
第二处:
x=“klmno”;不能把一个字符串给一个数组。
五、程序填空
#include<______1______>
voidchange(int&,int&);
voidmain( )
{intm=5,n=20;
change(m,n);
cout<<”m=”<}
voidchange(_____2_____,_____3_____)
{inttemp=_____4_____;
m=_____5_____;
n=_____6_____;
}
1:
iostream.h
2:
int&m
3:
int&n
4:
m
5:
n
6:
temp
面向对象程序设计>>第一章>>本章小结
本章首先介绍了面向过程和面向对象这两个基本概念,面向对象程序设计的基础知识,讨论了C++语言突出的一些新特点,包括:
抽象、继承、封装和多态性等,这是我们学习以后各章内容的基础。
在第二部分中,讨论了C++的基本程序结构、作用域限定符:
:
、类型修饰符、函数原型、内联函数、带缺省值参数函数、动态内存的分配、引用、编译指令等,请能熟练地应用这些知识,以便能编制出符合C++要求的程序。
尤其C++的基本程序结构、函数原型、内联函数、带缺省值参数函数、动态内存的分配、引用等内容也是考试中的重点内容,希望学生能够结合实际编程掌握这些内容。
类型修饰符和编译指令,虽然是要求领
会,但是,我们认为它们也是很重要的内容,希望学有余力的同学能够掌握它们的深意。
对于面向对象程序设计基础知识,改变习惯重新思考只需识记,了解一下。
我们强调的是前两部分内容,也是考纲的重点内容。
面向对象程序设计>>第二章>>内容提要
一、类
C++语言的类就是一种用户自定义的数据类型,和其它数据类型不同的是,组成这种类型的不仅可以有数据,而且可以有对数据进行操作的函数,它们分别叫做类的数据成员和类的函数成员。
正是由于类拥有这两类成