【无标题】

第二章  引用内联重载

一.选择题

   1、适宜采用inline定义函数情况是(c)

A. 函数体含有循环语句

B. 函数体含有递归语句

C. 函数代码少、频繁调用

D. 函数代码多、不常调用

   2、假定一个函数为A(int i=4, int j=0) {;}, 则执行“A (1);”语句后,i和j的值分别为(A)

A. 1和0

B. 1和4

C. 4和0

D. 4和1

3、下列有关重载函数的说法中正确的是(C)

A. 重载函数必须具有不同的返回值类型

B. 重载函数参数个数必须相同

C. 重载函数必须有不同的形参列表

D. 重载函数名可以不同

 4、两个同名函数构成重载关系,以下那个选项不要求不同。B

A. 参数个数

B. 返回类型

C. 参数类型

D. 函数头后有无const

 

二.填空题

1、C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取__重载函数_____方式

2、执行下列代码

string    str("HelloC++");

cout<,3);

程序的输出结果是_C++__

3、下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。

#include

#define  pi   3.14

_using namespace std________;

int main()

{ double rad;

cout<<"rad=";

cin>>rad;

double l=2.0*pi*rad;

double s=pi*rad*rad;

cout<<"\n The long is:"<

cout<<"The area is:"<

4程序实现大写字母转换成小写字母。

#include

int main()

{ char a;

__ int i=32_____;

cin>>a;

if(___a>='A' && a<='Z'____)

a=a+i;

cout<

}

5、执行下列代码

int i=230;

cout <<"i="<

程序的输出结果为__E6_。

三、编程题

3.1   有以下重载函数定义:

        void  f()

        void  f(int x);

        void  f(int m, int  n);

        void  f(double  d1,  double  d2=3.14);

      则以下调用哪些是错误的,哪些可以并与那个函数匹配,编程验证

         f(‘A’);    错误

         f( 5 ) ;

         f( 5.5 );

         f(10, 20);

         f(10, 23.4)      错误

         f(10.8, 24.87)

 3.2   创建一个函数plus(),它把两个数值加在一起,返回它们的和,提供处理int、doble和string类型的重载版本,测试它们是否能处理下面的调用

        int   n = plus(3,4);

        double  d = plus(3.2,4.2);

            string s = plus(“he”, “llo”);

            string s1 = “aaa” ;  string s2 = “bbb”;

            string s3 = plus(s1,s2);

            思考:(1)给string版本的函数传送参数最有效的方式是什么?

                 (2)double  d = plus(3, 4.2)能否调用 ?

#include 

using namespace std;

int splus(int frist,int second)
{
     int s=frist+second;
     return  s;
}
double splus(double frist,double second)
{
     double s=frist+second;
     return  s;
}
double splus(double frist,int second)
{
    double s=frist+second;
    return  s;
}
double splus(int frist,double second)
{
    double s=frist+second;
    return  s;
}
string splus(string frist,string second)
{
     string s=frist+second;
     return  s;
}
int main()
{
    int   n = splus(3,4);
    double  d = splus(3.2,4.2);
    double  e = splus(3, 4.2);
             string s = splus("he", "llo");
             string s1 = "aaa" ;  string s2 = "bbb";
             string s3 = splus(s1,s2);
    cout << n << endl;
    cout << d << endl;
    cout << e << endl;
    cout << s << endl;
    cout << s3 << endl;
    return  0;
}

【无标题】_第1张图片

1、地址传递

2、有效,参考代码,考虑的有double和int的现象

你可能感兴趣的:(c++,算法,开发语言)