面向对象程序设计复习试题(答案) 下载本文

word完美格式

语法扩充

1.1选择题

在C++中用( D )能够实现将参数值带回。

a)数组 b)指针 c)引用 d)上述ABC都可

考虑函数原型void test(int a,int b=7,char *ch=\下面的函数调用中,属于不合法调用的是:( C )

A)test(5) B)test(5,8) C)test(6,\; 已知: int m=10;下列表示引用的方法中,正确的是:( C )

A)int &Z; B)int &t=10; C)int &X=m; D)float &f=&m; 下列不是函数重载所要求的条件是:( D ) A)函数名相同 B)参数个数不同 C)参数类型不同 D)函数返回值类型不同

在C++中执行以下4条语句后输出rad值为:( C ) static int hot=200; int &rad=hot; hot=hot+100; cout<

A) 0 B) 100 C) 300 D) 200

系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:( D ) A)参数个数 B)参数类型 C)函数名称 D)函数的返回值类型 对C++语言和C语言的兼容性,描述正确的是:( A )

A)C++兼容C B)C++部分兼容C C)C++不兼容C D)C兼容C++ 在C++中使用流进行输入输出,其中用于屏幕输出的对象是:( C ) A)cerr B)cin C)cout D)cfile

对使用关键字new所开辟的动态存储空间,释放时必须使用( C ) A)free B)create C)delete D)realse

在函数调用时,如某一默认参数要指明一个特定值,则有( A ) A)其之前所有参数都必须赋值 B)其之后所有参数都必须赋值 C)其前、后所有参数都必须赋值 D)其前、后所有参数都不必赋值 下列哪个类型函数不适合声明为内联函数( A ) A)函数体语句较多 B)函数体语句较少 C)函数执行时间较短 D)函数执行时间过长

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); 下面的哪个保留字不能作为函数的返回类型( C ) A)void B)int C)new D)long

一个函数功能不太复杂,但要求被频繁调用,选用( A )。

A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数

已知函数f的原型为:void f (int&a,char*b);变量s,t的定义是:int s;char

精心整理 学习帮手

word完美格式

t[ ]=\;

把s和t分别作为第一参数和第二参数来调用函数f,正确的调用语句是( C ) A f(&s,&t); B f(&s,t); C f(s,t); D f(s,&t); 若定义cin>>str; 当输入

Microsoft Visual Studio 6.0! 所得结果是str=(B)。

A、 Microsoft Visual Studio 6.0! B、 Microsoft

C、 Microsoft Visual

D、 Microsoft Visual Studio 6.0 .函数模板(C)。 A、代表某一具体函数

B、与模板函数是同一个函数 C、与某一个具体的数据类型连用 D、是模板函数实例化的结果

在C++中,关于下列设置参数默认值的描述中,正确的是(C) A、不允许设置参数的默认值

B、设置参数默认值只能在定义函数时设置

C、设置参数默认值时,应该是先设置右边的再设置左边的 D、设置参数默认值时,应该全部参数都设置 下列表示引用的方法中,(A)是正确的。 已知: k=1000;

A、int &x=k; B、char &y; C、int &z=1000; D、float &t=&k; 有如下模板定义:

template T fun(T x,T y){return x*x+y*y;} 在下列对fun的调用中,错误的是:( C )

A)fun(2,8) B)fun(2.0,8.2) C)fun(2.3,8) D)fun (‘2’,’8’) 通常情况下,函数模板中的类型参数个数不能是( A ) A)0个 B)1个 C)2个 D)3个

1.2填空题

1、 假定有如下定义:int x;,若要将整型变量y定义为变量x的引用,则应使用的定义语句是_int &y=x;________。

具有相同函数名但具有不同参数表的函数称为 重载函数。'

2、 在进行函数调用时,将把参数的值传递给值参数,把参数的_地址_传递给引用参数。 3、 执行完下列三条语句后,指针变量c指向__b___。 Int a,b,*c=&a; int *&p=c; p=&b;

4、 假设有如下函数定义:void Fun(int x,int y=100);则语旬Fun(5)语句__ Fun(5,100)_等价。

精心整理 学习帮手

word完美格式

5、 在一个C++程序中,每个变量都必须遵循__先定义后使用__的原则。

6、 下面是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。

函数TotalSum 计算数组元素之和。请完成下列程序。 #include

__ int Totalsum(int array[],int len)__ ; void main() {

int a[5]={2,3,6,8,10}; __int Total ___;

Total =Totalsum(a,5);

cout<<\}

int Totalsum(int array[],int len) {

____int sum =0____ ;

for(int I=0;____I

7、 下面的函数Fun未使用中间变量实现了对两个数的交换,请完成下列函数的定义。 Void Fun (int &x,int &y) {

x+ = y;

y =___x-y____ ; __x = x - y_____ ; }

8、 定义一个函数时,若只允许函数体访问形参的值而不允许修改它的值,则应把该形参声明为__常量__,即在该形参声明的前面加上__const__关键字进行修饰。

9、 在一个函数的定义或声明前加上关键字__inline__时,该函数就声明为内联函数。

1.3简答题

A、.内联函数的含义

在函数前加上关键字inline说明了一个内联函数,这使一个函数在程序行里进行代码扩展而不被调用。这样的好处是减少了函数调用的开销,产生较快的执行速度。但是由于重复编码会产生较长代码,所以内联函数通常都非常小。如果一个函数在类说明中定义,则将自动转换成内联函数而无需用inline说明。 B、.函数重载的含义

在同一作用域范围内,相同的函数名通过不同的参数类型或参数个数可以定义几个函数,编译时编译器能够识别实参的个数和类型来决定该调用哪个具体函数。需要注意的是,如果两个函数仅仅返回类型不同,则编译时将会出错,因为返回类型不足以提供足够的信息以使编译程序判断该使用哪个函数。所以函数重载时必须是参数类型或者数量不同。 C、引用与指针的区别

精心整理 学习帮手

word完美格式

D、内联函数使用上的限制

E、定义带默认参数值函数的规则 F、指针与常量的关系

1.4程序阅读题

1)写出下列程序的运行结果。 #include void main() {

int x; int &p=x; x=10; p=x+10;

cout<

结果:20,20

2)写出下列程序的运行结果。 #include int f(int a) {

return ++a; }

int g(int &a) {

return ++a; }

void main() {

int m=0,n=0; m+=f(g(m)); n+=f(f(n));

cout<<\ cout<<\}

结果: m=3 n=2

3) 写出下列程序的运行结果。 #include void Fun() {

int num=20;

cout<<\

精心整理 学习帮手