實驗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;
}
- 設計一個函式:exchange(float x, float y, float z),當呼叫exchange(a,b,c)時,將a的內容賦值給b,b的內容賦值給c,c的內容賦值給a,要求採用引用的方式來實現。
4. 編寫過載函式max1可分別求取2個整數,3個整數,2個浮點數,3個浮點數的最大值。