《C++语言程序设计》网考复习资料(4)

所属学校:全国通用 科目:C++语言程序设计 2013-08-09 12:04:00
 

五、编写程序

1.编一个递归函数 int  FF(int  a[ ] , int  n),求出数组a中所有n个元素之积并返回。

程序如下:

int  FF(int  a[ ] , int  n)

{

int  p;

if  (n<1)    {cout<<N值输入有错误!; break;}

else   if  (n==1)    p=a[0] ;

else   p=FF(a,n-1)*a[n-1] ;

return   p;

}

2.假定一个函数声明为“double fun();”,要求从键盘上输入一个44列的实数矩阵到一个二维数组a[4][4]中,然后求出并返回主对角线上的元素值之和。

程序如下:

double  fun( )

{

double   a[4][4];

int  i,j;

cout<<”输入一个4 * 4的数值矩阵:”;

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

for (j=0;j<4;j++)     cin>> a[i][j];

double   s=0;

for (i=0;i<4;j++)    s+= a[i][i];

return   p;

}

3.编写一个函数fun( ),首先从键盘上输入一个44列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上的元素值之乘积,最后返回这个乘积。

程序如下:

double  fun( )

{

double   a[4][4];

int  i,j;

cout<<”输入一个4 * 4的数值矩阵:”;

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

for (j=0;j<4;j++)     cin>> a[i][j];

double   p=1;

for (i=0;i<4;j++)    p*= a[i][i];

return   p;

}

4.假定函数声明为“void Print(int a[], int n);”,在函数体中按下标从大到小的次序输出数组a中的n个元素的值,并要求每行输出6个元素,当然最后一行可不足6个。

程序如下:

void Print(int  a[], int n)

{

int  i, m=0;

for ( i=n-1; i>=0; i--) 

{

cout  <<*(a+i)<<’  ’;

m++;

if(m % 6==0) cout<<endl;

}

}

5.已知6a3015b36,编一程序求出满足不定方程 2a+5b = 126 的全部整数组解。如(13 , 20)就是其中的一组解。

程序如下:

#include<iostream.h>

void  main( )

{

int  a,b;

for (a=6;a<=30;a++)

for (b=15;b<=36;b++)

if(2*a+5*b==126)      cout<<’(’<<a<<’,’<<b<<’)’<<endl;

}

6.编一程序计算并输出12+22+…+n2的值,其中n值由键盘输入。

程序如下:

#include<iostream.h>

void  main( )

{

int  i;

int  s=0;

int  n;

cin>>n;

for (i=1;i<=n;i++)

s=s+ i*i;

cout<<”s=”<<s<<endl;

}

7.编写一个函数void  SelectSort(int  a[],int  n),采用选择排序的方法按升序排列数组a中的n个元素。

程序如下:

void   SelectSort(int  a[], int n)

{

int  i,j,k;

int  x;

for (i=1;i<n;i++)

{

k= i-1;

for (j=i;j<n;j++)

if  (a[j]< a[k])     k=j;

x= a[i-1]; a[i-1]= a[k]; a[k]=x;

}

}

8.编写一个函数,显示出整数形参x的除1和本身之外的所有因数,并返回所有因数的个数。

程序如下:

int   Locateys (int  x)

{

int  i, m=0;

cout<<”x的所有因数为:”<<endl;

for (i =2; i <x; i ++)

{  if (x % i ==0)  continue;

 cout<<x<<’  ’;

 m++;

}

return   m;

}

9.编写程序,从保存整数的文本文件a:xxk1.dat中依次取出每个数据并显示出来,同时统计并显示出所有数据的个数。

程序如下:

#include<fstream.h>

#include<stdlib.h>

void  main( )

{

ifstream    fin(“a:xxk1.dat”,ios::nocreate);

if(!fin)

 {

cerr<<”文件没有打开!”<<endl;

exit(1);

}

int   x, i=0;

while(fin>>x)

{cout<<x<<’  ’;

i++;

}

fin.close ( );

cout<< endl<<”文件中所有数据个数为:”<< i<< endl;

}

10.假定一个函数声明为“void AD(inta[]int n);”,要求把数组a中的n个元素值按相反的次序仍保存在数组a中。

程序如下:

void  AD(int  a[]int n)

{

int  i, k,x;

k=n/2;

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

{ x= a[i]; a[i]=a [n-i-1]; a [n-i-1]=x;

}

}

11编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回它。

程序如下:

int Count(double  a[], int n)

{

       double  m=0;

       int  i;

       for(i=0;i<n;i++)  m+=a[i];

   m=m/n;

       int c=0;

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

              if(a[i]>=m)  c++;

       return c;

}

版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: