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

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

四、写出每个函数的功能

1int  WC(int  a[] , int  n , int  k) {

      int  c=0;

      for  (int  i=0; i<n;  i++) if (a[i]>=k) c++;

      return  c;

  }

功能:

    统计数组a中值大于等于K的元素的个数并返回。

    2int  SC(int  a , int  b , int  c) {

           if  (a>=b && a>=c)  return  a;

           if  (b>=a && b>=c)  return  b;

           if  (c>=a && c>=b)  return  c;

       }

功能:

    求出abc三个数中的最大值并返回。

    3bool  WB(int  a[ ] , int  n , int  x) {

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

              if (a[i] == x)  return  true ;

           return  false ;

       }

功能:

    从数组a中顺序查找值为x的元素,如查找成功则返回真,否则返回假。

    4. #include<iostream.h>

       int LJ(int a[], int n) {

           int k=0;

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

               if(a[i]>a[k]) k=i;

           return a[k];

       }

功能:

求出数组an 个元素中的最大值并返回

    5template <class  Type>

       int  WE(Type  a[ ] , Type  b[ ] , int  n) {

           int  c = 0;

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

              if (a[i] == b[i])  c++;

           return  c;

       }

功能:

    模板函数,比较数组a和数组b的对应元素的值,若对应元素值相等,则统计个数,返回统计结果。

    6void  LK(int  a[ ] , int  n , int & m) {

           float  s = 0;  int  i;

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

           s /= n;

           m = 0;

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

       }

功能:

    求出数组an 个元素中大于平均值的元素个数用引用变量m带回统计值。

       7#include <iostream.h>

      void  LI(int  n) {

int  *a=new  int[n];

for (int  i=0; i<n; i++)  cin  >>a[i];

for ( i=n-1; i>=0; i--)  cout  <<*(a+i)<<’  ‘;

cout  <<’/n’;

delete []a;

      }

功能:

建立一个含有n 个元素的数组,从键盘为各元素赋初值,按下标从大到小的次序输出数组a中的n个元素的值

    8int  SC(int  a , int  b , int  c) {

           if (a>b) a = b;

           if (a>c) a = c;

           return  a;

       }

功能:

求出a,b,c三个数中的最小值并返回。

    9int  SC(int  a , int  b , int  c) {

           if (a<b) a = b;

           if (a<c) a = c;

           return  a;

       }

功能:

       求出a,b,c三个数中的最大值并返回。

    10# include <iostream.h>

       template <class  TT>

       TT  WG(TT  a , TT  b) {

           if (a>b)  return  1;

           else  if (a == b)  return  0;

           else  return  -1;

       }

功能:

     模板函数,比较两个变量ab的大小,若a>b则返回1,若a=b则返回0,若a<b则返回-1.

    11// struct  Worker {

       //     char  name[15];     // 姓名

       //     int  age;           // 年龄

       //     float  pay;          // 工资

       // };

       istream & operator>>(istream & istr , Worker & x) {

           cout  <<”请输入一个职工记录:姓名、年龄、工资”<<endl;

           istr  >>x.name>>x.age>>x.pay;

           return  istr;

       }

功能:

重载提取操作符,用于从输入流中输入一个Worker类型的记录到引用参数x中。

12Struct  StrNode {

           char  name[15];    // 字符串域

           StrNode * next;     // 指针域

       };

       void  QB(StrNode * & f , int  n) {

           if (n == 0) { f = NULL ;  return ; }

           f = new  StrNode;

           cin  >>f->name;

           StrNode * p = f;

           while ( --n ) {

               p = p->next = new  StrNode;

               cin  >>p->name;

           }

           p->next = NULL;

       }

功能:

    建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针用引用变量f带回。

13

功能:

    建立一个具有n个结点的链表,每个结点的实数值由键盘输入,链表的表头指针由引用变量f带回。

    14. 假定结构类型Dnode中的data域为结点值域,next域为结点指针域。

       DNode* QB(int n)

       {

           if(n==0) {return NULL;}

           DNode* f=new DNode;

           cin>>f->data;

           DNode* p=f;

           while(--n) {

               p=p->next=new DNode;

               cin>>p->data;

           }

           p->next=NULL;

           return f;

       }

功能:

建立一个具有n个结点的链表,每个结点的data域的值由键盘输入,返回链表的表头指针f

    15double  FI(double  n) {

            // n为大于等于1的整数

            double  x , y = 0;

            do {

                cin  >> x;

                n--;  y += x;

            } while (n>0);

            return  y;

        }

功能:

   求出从键盘上输入的n个实数之和并返回

    16int  LK(int  a[] , int  n) {

            float  s = 0;  int  i;

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

               s += a[i];

            s /= n;

            int  m = 0;

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

               if (a[i]<s) m++;

            return  m;

        }

功能:

   求出数组an 个元素中小于平均值的元素个数并返回

    17# include <iostream.h>

        template <class  Type>

        Type  WD(Type  a[] , int  n) {

            Type  m = a[0];

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

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

            return  m;

        }

功能:

    模板函数,从数组an个元素中求出最大值并返回。

18#include<iomanip.h>

       #include<fstream.h>

       struct student {char name[10]; int age;};  //学生记录类型

       void JC(char* fname, int n)

       {

           ofstream fout(fname, ios::out | ios::binary);

           student x;

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

               cin>>x.name>>x.age;

               fout.write((char*)&x, sizeof(x));

           }

           fout.close();

       }

功能:

从键盘向二进制文件fname输入的n学生的信息(name域值和age域值)

    19# include <iomanip.h>

        # include <fstream.h>

        void  JD(char * fname)

            // 可把以fname所指字符串作为文件标识符的文件称为fname

            // 文件,假定该文件保存着一批整数。

        {

            ifstream  fin(fname , ios::in | ios::nocreate | ios::binary);

            int  x , s = 0 , n = 0;

            while (fin.read((char * ) & x , sizeof(x))) {

                s += x;  n++;

            }

            cout  <<n<<’ ’<<s<<’ ’<<float(s)/n<<endl;

            fin.close( );

        }

功能:

    从二进制文件fname中输入所有整数,计算并显示出所有整数的个数、总和与平均值。

20# include <iomanip.h>

       # include <fstream.h>

       # include <string.h>

       void  JA(char * fname)

       // 可把以fname所指字符串作为文件标识符的文件称为fname文件

       {

           ofstream  fout(fname);

           char  a[20];    cin  >>a;

           while (strcmp(a , “end”) != 0) {

               fout  <<a<<endl;

               cin  >>a;

           }

           fout.clase( );

       }

功能:

从键盘上向文件fname写入一批字符串,以“end”作为结束输入的标志。

    21.假定以fname所指字符串为文件名的文件中保存着一批字符串,每个字符串的长度均小于20

       #include<iomanip.h>

       #include<fstream.h>

       #include<string.h>

       int JB(char* fname,char* key)

       {

           ifstream fin(fname);

           char a[20];

           int i=0;

           while(fin>>a)

               if(strcmp(a,key)==0) i++;

           fin.close();

           return i;

       }

功能:

求出字符串文件fname中保存的所有字符串中与给定字符串key相等的字符串个数并返回。

  22#include<iomanip.h>

       #include<fstream.h>

       void JB(char* fname)

           //可把以fname所指字符串作为文件标识符的文件称为fname文件,

           //假定该文件中保存着一批字符串,每个字符串的长度均小于20

       {

           ifstream fin(fname);

           char a[20];

           int i=0;

           while(fin>>a) {

               cout<<a<<endl;

               i++;

           }

           fin.close();

           cout<<"i="<<i<<endl;

       }

功能:

从文件fname中依次读取每个字符串并输出到屏幕上显示出来,同时统计并显示出文件中的字符串个数。

 23

功能:

    求出数组an个元素的最大值元素,返回该元素的地址。

24

功能:

    遍历f单链表,即从表头结点开始依次输出f单链表中每个结点的值。

25

功能:

    向二进制文件fname写入由键盘输入的n个整数。  

  

26. double SF(double x, int n) {

             //n为大于等于0的整数

           double p=1,s=1;

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

               p*=x;

               s+=p/(i+1);

           }

           return s;

       }

功能:

计算的值并返回。

  27. float FH() {

           float x,y=0,n=0;

           cin>>x;

           while(x!=-1) {

               n++; y+=x;

               cin>>x;

           }

           if(n==0) return y; else return y/n;

       }

功能:

求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。

   28. #include<iostream.h>

       void WA(int a[], int n) {

           for(int i=0;i<n-1;i++) {

               int k=i;

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

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

               int x=a[i]; a[i]=a[k]; a[k]=x;

           }

       }

功能:

 采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。

版权声明

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

分享: