第五章 函数学习要求和实验
- 学习要求:
理解函数定义的意义。
掌握函数定义格式。
了解函数调用方式:值调用和引用调用。
掌握函数嵌套调用方法。
掌握数组作为函数的参数的使用。
理解全局变量、局部变量,动态变量、静态变量的概念,掌握不同变量的作用域与生命周期。
进一步积累程序调试经验。- 实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
3. 编程实现输入两个4X5矩阵和5X3矩阵,定义函数并在主函数中调用计算它们的积。
4.编程计算S[n]=1!+21+3!+...n!。要求定义两个函数,一个计算n!,一个计算s[n],在后一个函数中调用前一个函数。然后在主程序中输入数n的值,然后调用定义函数输出结果。
5.编写一个函数,输入一个十六进制数,输出相应的十进制数。
例题
3
#include<iostream>
using namespace std;
double p(double);
int main()
{
double s = p(5.0);
cout<<"面积为"<<s<<endl;
return 0;
}
double p(double r)
{
double pi =3.14;
double s =pi *r*r;
return s; }
4
#include<iostream>
using namespace std;
int sum(int x,int y)
{
int t;t=x+y;
return t;}
int main()
{
int a,b,c;
a=15,b=20;
c=sum(a,b);
cout<<a<<"+"<<b<<"="<<c<<endl;
return 0;
}
4
#include<iostream>
using namespace std;
int sum(int x,int y)
{
int t;t=x+y;
return t;}
int main()
{
int a,b,c;
a=15,b=20;
c=sum(a,b);
cout<<a<<"+"<<b<<"="<<c<<endl;
return 0;
}
7
#include<iostream>
using namespace std;
int p(int x)
{ x=x*x;
return x;}
int main()
{int t=10;int s=p(t);
cout<<"t="<<t<<'\t'<<"p("<<t<<")="<<s<<endl;
return 0;
}
13
#include<iostream>
using namespace std;
long f2(int);
long f1(int p)
{
int k;
long r;
k=p*p;
r= f2(k);
return r;
}
long f2(int q)
{
long fact = 1;
for(int i =1;i<=q;i++)
fact *= i;
return fact;
}
int main()
{
int i;
long sum =0;
for(i =2; i<=3;i++)
sum += f1(i);
cout<<"sum = "<<sum<<endl;
return 0;
}
15
#include<iostream>
using namespace std;
float F(int n);
int main()
{
int a;
float p;
cout<<"input an integer number:";
cin>>a;
p =F(a);
cout<<a<<"! ="<<p<<endl;
return 0;
}
float F(int n)
{
float fact;
if(n == 0)
fact = 1;
else
fact = n * F(n-1);
return fact;
}
20
#include<iostream>
using namespace std;
void sort(int);
void echoa();
nt a[5] ={6,3,9,8,2};
int main()
{
echoa();
sort(5);
echoa();
return 0;
}
void echoa()
{
for(int i =0;i<5;i++)
cout<<a[i]<<'\t';
cout<<endl;
}
void sort(int n)
{
int i,j,min,temp;
for(i =0;i<n-1;i++)
{
min =i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
min = j;
temp = a[i];a[i]=a[min];a[min]=temp;
} }
23
#include<iostream>
using namespace std;
int f(int);
int main()
{
int i,k;
cout<<"输入一个非负整数:";
cin>>k;
for(i=1;i<=k;i++)
cout<<i<<"!="<<f(i)<<endl;
return 0;}
int f(int n)
{
static int f=1;f=f*n;
return f;
}