作业6

来源:互联网 发布:linux telnet 传输文件 编辑:程序博客网 时间:2024/05/07 00:13
  • 实验作业

1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;

2.编程实现课本每一个编程习题。

3. 编程实现输入两个4X5矩阵和5X3矩阵,定义函数并在主函数中调用计算它们的积。

4.编程计算S[n]=1!+21+3!+...n!。要求定义两个函数,一个计算n!,一个计算s[n],在后一个函数中调用前一个函数。然后在主程序中输入数n的值,然后调用定义函数输出结果。

5.编写一个函数,输入一个十六进制数,输出相应的十进制数。

(1)

#include<iostream>using namespace std;void display(){cout<<"This is an example."<<endl;} int main() { display();  return 0;}

(2)

#include<iostream>using namespace std;double min (double x,double y){return x<y?x:y;}int main(){cout<<min(6.0,5.0)<<endl;return 0;}

(3)

#include<iostream>using namespace std;double circleArea(double);int main(){double area=circleArea(5.0);cout<<"area="<<area<<endl;    return 0;}double circleArea(double r){double pi=3.14;double area=pi*r*r;return area;}

(4)

#include<iostream>using namespace std;int sum(int x,int y){int temp;temp=x+y;return temp;}int main(){int a,b,c;a=10;b=5;c=sum(a,b);cout<<a<<"+"<<b<<"="<<c<<endl;    return 0;}

(5)

#include<iostream>using namespace std;int ncomp(int i,int j){if(i>j)return 1;if(i==j)return 0;return-1;}int main(){int k=2;int n=ncomp(k,++k);cout<<n;    return 0;}

(6)

#include<iostream>using namespace std;int max(int u,int v){int w;w=u>v?u:v;return w;}int main(){int a,b,c;cout<<"please input two numbers:";cin>>a>>b;c=max(a,b);cout<<"a="<<a<<"b="<<b<<endl;cout<<"Max is"<<c<<endl;    return 0;}

(7)

#include<iostream>using namespace std;int sqr(int x){x=x*x;return x;}int main(){int t=10;int s=sqr(t);cout<<"t="<<t<<'\t'<<"sqr("<<t<<")="<<s<<endl;    return 0;}

(8)

#include<iostream>using namespace std;void swap(int u,int v);int main(){int a=3;int b=4;cout<<"a="<<a<<"\tb="<<b<<endl;swap(a,b);cout<<"a="<<a<<"\tb="<<b<<endl;    return 0;}void swap(int u,int v){int temp;temp=u;u=v;v=temp;}


(9)

#include<iostream>using namespace std;void swap(int &u,int &v);int main(){int a=3;int b=4;cout<<"a="<<a<<"\tb="<<b<<endl;swap(a,b);cout<<"a="<<a<<"\tb="<<b<<endl;    return 0;}void swap(int &u,int &v){int temp=v;v=u;u=temp;}


(10)

#include<iostream>using namespace std;void display(int x,float y){cout<<x<<" "<<y;return;}int main(){float a;int b;cin>>b>>a;display(b,a);    return 0;}

(11)

#include<iostream>#include<cmath>using namespace std;void GetRoots(/*in*/double,/*in*/double,/*in*/double,  /*out*/double&,/*out*/double&); //函数GetRoots用于求一元二次方程的两个根//前三个形参为流入参数,是值调用,分别用于接收主调函数传递的三个系数值//后两个形参为流出参数,是引用调用,将计算后的两个根回传给主调函数int main(){double a,b,c;double root1,root2;cout<<"输入方程的三个系数a,b,c:"<<endl;cin>>a>>b>>c;GetRoots(a,b,c,root1,root2);//a,b,c作为值调用的三个实参,必须要有初始值//root1,root2作为引用调用的两个实参,可以没有初始值cout<<"root1="<<root1<<"root2="<<root2<<endl;    return 0;}void GetRoots(/*in*/double a,/*in*/double b,/*in*/double c,  /*out*/double&root1,/*out*/double&root2){double temp;temp=b*b-4.0*a*c;root1=(-b+sqrt(temp))/(2.0*a);    root2=(-b-sqrt(temp))/(2.0*a);}//注意GetRoots函数中没有return语句


(12)

#include<iostream>using namespace std;void swap(int &u,int &v);int main(){int a=3;int b=4;cout<<"a="<<a<<"\tb="<<b<<endl;swap(a,b);cout<<"a="<<a<<"\tb="<<b<<endl;    return 0;}void swap(/*inout*/int &u,/*inout*/int &v)//两个参数均为流入流出参数,是引用调用,对应实参必须是变量且具有初始值{int temp=v;v=u;u=temp;}

(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;}

(14)

#include<iostream>#include<cmath>using namespace std;float f(float x);//求函数值float root(float x1,float x2);//求方程的根float point(float x1,float x2);//求与x轴的交点int main(){float x1,x2,y1,y2,x;do//输入x1,x2,知道f(x1)与f(x2)异号{cout<<"请输入根所在的范围:";cin>>x1>>x2;y1=f(x1);y2=f(x2);cout<<"两端点的值为["<<y1<<","<<y2<<"]"<<endl;}while(y1*y2>=0);x=root(x1,x2);//求(x1,x2)取件的根cout<<"在"<<x1<<"与"<<x2<<"之间,方程的解为"<<x<<endl;return 0;}float f(float x){return(x*x*x-4*x*x+6*x-10);}float root(float x1,float x2){float y1,x,y;y1=f(x1);do{x=point(x1,x2);y=f(x);if(y*y1>0){y1=y;x1=x;}else x2=x;}while(fabs(y)>=0.0001);return x;}float point(float x1,float x2){float y;y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));return y;}

(15)

#include<iostream>using namespace std;double Factorial(int n);int main(){int a;double f;cout<<"input an integer number:";cin>>a;f=Factorial(a);cout<<a<<"!="<<f<<endl;return 0;}double Factorial(int n){double fact;if(n==0)fact=1;elsefact=n*Factorial(n-1);return fact;}

(16)

#include<iostream>using namespace std;const N=8;long fibo(int n);int main(){long f=fibo(N);cout<<"Fibonacci数列第8项的值为:"<<f<<endl;return 0;}long fibo(int n){if(n==1) return 1L;else if(n==2) return 1L;elsereturn fibo(n-1)+fibo(n-2);}

(17)

#include<iostream>using namespace std;int i;//文件作用域int main(){i=5;//给文件作用域的变量i赋值{int i;//块作用域i=7;cout<<"内层i="<<i<<endl;//输出7}cout<<"外层i="<<i<<endl;//输出5return 0;}

(18)

#include<iostream>using namespace std;int i=1;//定义具有文件作用域的变量iint main(){cout<<"i="<<i<<endl;//输出具有文件作用域的变量i的值1int i=5;//定义局部变量i,此时覆盖文件作用域变量icout<<"i="<<i<<endl;//此时输出上一条语句定义的局部变量i的值5{int i=7;//定义块作用域变量i,此时覆盖前面定义的两个变量icout<<"i="<<i<<endl;//输出块作用域变量i的值7cout<<"i="<<::i<<endl;//输出文件作用域变量i的值1}cout<<"i="<<i<<endl;//输出局部变量i的值5cout<<"i="<<::i<<endl;//输出文件作用域变量i的值1return 0;}

(19)

#include<iostream>using namespace std;int max(int x,int y){int z;z=x>y?x:y;return z;}int main(){extern int a,b;//外部变量说明cout<<max(a,b)<<endl;return 0;}int a=13,b=-8;//全局变量定义

(20)

#include<iostream>using namespace std;void sort(int);void echoa();int a[5]={6,3,9,8,2};//定义全局数组aint 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=1;for(j=i+1;j<n;j++)if(a[j]<a[min])min=j;temp=a[i];a[i]=a[min];a[min]=temp;}}

(21)

#include<iostream>using namespace std;int a=3,b=5;//定义a,b全局变量int main(){int a=8;//a是局部变量int c;c=a>b?a:b;//此时,a=8,b=5cout<<c<<endl;return 0;}

(22)

#include<iostream>using namespace std;int f(int a){auto int b=0;//b为自动局部变量static int c=3;//c为静态局部变量b++;c++;return(a+b+c);}int main(){int a=2,i;for(i=0;i<3;i++)//三次调用f函数cout<<f(a)<<endl;return 0;}

(23)

#include<iostream>using namespace std;int fun(int);int main(){int i,k;cout<<"请输入一个非负整数:";cin>>k;for(i=1;i<=k;i++)cout<<i<<"!="<<fun(i)<<endl;return 0;}int fun(int n){static int f=1;//f位静态局部变量,每一次函数执行后i!的值都会保留f=f*n;return f;}

(24)

#include<iostream>using namespace std;int fun(int);int main(){int i,k;cout<<"请输入一个非负整数:";cin>>k;for(i=1;i<=k;i++)cout<<i<<"!="<<fun(i)<<endl;return 0;}int fun(int n){register int i, f=1;//变量i和f是寄存器变量for(i=1;i<=n;i++)f=f*i;return f;}

(25)

//file1.cpp#include<iostream>using namespace std;int a;//全局变量int power(int n);//原型说明int main(){int b=3,c,d,m;cout<<"enter a and m:"<<endl;cin>>a>>m;c=a*b;cout<<"a="<<a<<"\tb="<<b<<"\tc="<<c<<endl;d=power(m);//调用power函数,求a的m次方cout<<"a="<<a<<"\tm="<<m<<"\td="<<d<<endl;return 0;}//file2.cppextern int a;int power(int n)//该函数功能为求a的n次方{int i,y=1;for(i=1;i<=n;i++)y*=a;return y;}

2

(1)

#include<iostream>  #include<cmath>  using namespace std;    double squ(double x);    int main()  {      double x;      cout<<"please input x:";      cin>>x;                           cout<<"The square root of"<<x<<"is"<<squ(x)<<endl;           return 0;  }double squ(double x)  {      double s1,s2;      s1=0.5*(1.0+x);      do      {          s2=s1;                              s1=(s2+x/s2)*0.5;              }while(fabs(s2-s1)>1.0E-6);                                           return s1;  }  

(2)

#include<iostream>  using namespace std;  long intPower(int base,int exponent);  int main()  {      int base,exponent;      cout<<"请输入一个函数:"<<endl;      cin>>base;      cout<<"请输入该函数的次幂:"<<endl;      cin>>exponent;      cout<<endl;      cout<<"该幂整数的值是:"<<intPower(base,exponent)<<endl;;        return 0;    }  long intPower(int base,int exponent)  {      long a;      int i;      a=1;      for(i=1;i<=exponent;i++)          a*=base;            return a;    }  


0 0
原创粉丝点击