1. 程式人生 > >實驗2_2 C++對C的擴充(1)

實驗2_2 C++對C的擴充(1)

三、實驗步驟

1.閱讀下面的程式,寫出程式的執行結果。

#include <iostream.h>

int max_def(int x, int y)

{

return (x>y?x:y);

}

int max_def(int x, int y, int z)

{

int temp = 0;

return (temp=(x>y?x:y))>z?temp:z;

}

double max_def(double x, double y)

{

return (x>y?x:y);

}

int main()

{

int x1 = 0;

int x2 = 0;

double d1 = 0.0;

double d2 = 0.0;

x1 = max_def(5,6);

x2 = max_def(2,3,4);

d1 = max_def(2.1,5.6);

d2 = max_def(12.3,3.4,7.8); 

cout<<"x1="<<x1<<endl;

cout<<"x2="<<x2<<endl;

cout<<"d1="<<d1<<endl;

cout<<"d2="<<d2<<endl;  

return 0;

}

該程式的執行結果是

2. 閱讀下面的程式,寫出程式的執行結果。

#include <iostream.h>

void swap(int a, int b)

{

int temp = a;

a = b;

b = temp;

}

void swap(int *a, int *b)

{

int temp = *a;

*a = *b;

*b = temp;

}

int main()

{

int i = 5;

int j = 10;

cout<<"Before swap: i="<<i<<",j="<<j<<endl;

swap(i,j); 

cout<<"After the first swap: i="<<i<<",j="<<j<<endl;

swap(&i,&j); 

cout<<"After the second swap: i="<<i<<",j="<<j<<endl;

return 0;

}

該程式的執行結果是

3.以下程式的功能是:

# include <iostream.h>

const int size=9;                                 

int *init()                  //返回指標值的函式

{

return  new int[size];   //分配空間將首地址返回

}

void readin(int *a)      //從a指向的儲存單元開始讀入資料

{

int i;

cout<<"請輸入"<<size<<"個整數:"<<endl;

for (i=0;i<size;i++)

        cin>>*(a+i);      //讀入資料到a+i指向的儲存單元

}

void product(int *arr ,int  size,int *result)

                      //計算從arr指向的儲存單元開始的

                      //連續size個儲存單元的乘積

{   int m,i;

for (m=1,i=0;size>0;size--,i++)

m=m*(*(arr+i));

*result=m; //乘積的結果放入result指向的儲存單元

}

int main()

{

int *x,res;

if ((x=init())==NULL)

return 1;

readin(x);

product(x,size,&res);

cout<<"the  product  is :"<<res<<endl;

delete[ ] x;

return 0;

}

  1. 設計一個函式:exchange(float x, float y, float z),當呼叫exchange(a,b,c)時,將a的內容賦值給b,b的內容賦值給c,c的內容賦值給a,要求採用引用的方式來實現。

4. 編寫過載函式max1可分別求取2個整數,3個整數,2個浮點數,3個浮點數的最大值。