加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

作业:c++练习题----程序题

(2007-10-31 21:30:19)
标签:

学习公社

分类: 学习地带

五、指出程序或函数的功能
    1. void f2(double a[], int n)
        {
          int i; double sum=0;
          for(i=0;i<n;i++) sum+=a;
          sum/=n;
          for(i=0;i<n;i++)
            if(a>=sum) cout<<a<<' ';
          cout<<endl;
        }

    2. void f4(char a[M][N])
        {
          int c1,c2,c3;
          c1=c2=c3=0;
          for(int i=0;i<M;i++)
            if(strlen(a)<5) c1++;
            else if(strlen(a)>=5 && strlen(a)<15) c2++;
            else c3++;
          cout<<c1<<' '<<c2<<' '<<c3<<endl;
        }

    3. void fun3(int a[][N], int m, int n, int& row, int& col)
        {
          int x=a[0][0];
            row=col=0;
          for(int i=0;i<m;i++)
            for(int j=0;j<n;j++)
                    if(a[j]>x) {
                x=a[j]; row=i; col=j;
              }
        }

    4. int fun6(int m, int n, int b=2)
        {
          if(m<b && n<b) return m*n;
          else if(m%b==0 && n%b==0) return b*fun6(m/b,n/b,b);
          else return fun6(m,n,++b);
        }

    5. char* f8(char* str1, const char* str2)
        {
            int i=0,j=0;
            while(str1) i++;
            while(str2[j]) str1[i++]=str2[j++] ;
            str1='\0';
            return str1;
        }

    6. int f8(const char* str1, const char* str2)
        {
            int i=0;
            while(str1 && str2)
            if(str1==str2) i++;
            else if(str1>str2) return 1;
            else return -1;
          if(str1==str2) return 0;
          else if(str1>str2) return 1;
          else return -1;
        }

    7. IntNode* FindMax(IntNode *f)
        {
          if(!f) return NULL;
          IntNode *p=f;
          f=f->next;
          while(f) {
            if(f->data>p->data) p=f;
            f=f->next;
          }
          return p;
        }
    假定IntNode的类型定义为:
        struct IntNode {
          int data;       //结点值域
          IntNode* next;  //结点指针域
        };

    8. int Count(IntNode *f)
        {
          if(!f) return 0;
          int c=0;
            while(f) {
            c++;
            f=f->next;
          }
           return c;
        }
    假定IntNode的类型定义为:
        struct IntNode {
          int data;       //结点值域
          IntNode* next;  //结点指针域
        };

    9. void Output(IntNode *f)
        {
          if(!f) return;
            while(f) {
            cout<<f->data<<’ ’;
            f=f->next;
          }
            cout<<endl;
        }
    假定IntNode的类型定义为:
        struct IntNode {
          int data;       //结点值域
          IntNode* next;  //结点指针域
        };

    10. void Input(IntNode*& f)
        {
            int n;
            cout<<”从键盘给n输入一个整数:”;
            do cin>>n; while(n<0);
          if(n==0) {f=NULL; return;}
            f=new IntNode;
            IntNode* p=f;
            cout<<”从键盘输入”<<n<<”个整数:”;
            while(n--) {
             p=p->next=new IntNode;
                cin>>p->data;
          }
            p->next =NULL;
            p=f; f=f->next; delete p;
        }
    假定IntNode的类型定义为:
        struct IntNode {
          int data;       //结点值域
          IntNode* next;  //结点指针域
        };

    11. int f(const char *s)
        {
            int i=0;
            while(*s++)i++;
            return i;
        };

六、编程
    1. 求出从键盘上输入的10个整数中的最大值,要求输入变量用x表示,存储最大值的变量用max表示。

    2. 已知6≤a≤30,15≤b≤36,求满足不定方程2a+5b=126的全部整数组解。如(13, 20)就是一个整数组解,并以(x,y)样式输出每个解。

    3. 某班级学生进行百米跑测试,规定成绩在12秒以内(含12秒)为优秀,在12秒以上至15秒为达标,在15秒以上为不达标,编一程序,从键盘上输入每个人的成绩,以x作为输入变量,并以小于0的任何数作为终止标志,分别用变量c1,c2和c3统计并输出成绩为优秀、达标和不达标的人数。

    4. 编写一个函数,分别求出由指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中。

    5. 按照下面函数原型语句编写一个函数,返回二维数组a[m][n]中所有元素的平均值,假定采用变量v存放平均值。
        double Mean(double a[M][N],int m,int n);

    6. 按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。
int f(int a[],int n);

    7. 按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
55555
4444
333
22
1

    8. 按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
1
22
333
4444
55555

    9. 根据下面类中Count函数成员的原型和注释写出它的类外定义。
class AA {
  int* a;
  int n;
  int MS;
public:
  void InitAA(int aa[], int nn, int ms) {
    if(nn>ms) {cout<<"Error!"<<endl; exit(1);}
    MS=ms;
    n=nn;
    a=new int[MS];
    for(int i=0; i<n; i++) a=aa;
  }
  int Count(int x);  //从数组a的前n个元素中统计出其
                       //值等于x的个数并返回。
};

    10. 根据下面类中Search函数成员的原型和注释写出它的类外定义。
class AA {
  int* a;
  int n;
  int MS;
public:
  void InitAA(int aa[], int nn, int ms) {
    if(nn>ms) {cout<<"Error!"<<endl; exit(1);}
    MS=ms;
    n=nn;
    a=new int[MS];
    for(int i=0; i<n; i++) a=aa;
  }
    int Search(int x); //从数组a的前n个元素中顺序查找值为x的第一个元素,
                     //若查找成功则返回元素的下标,否则返回-1。
};

    11. 根据下面类中MaxMin 函数成员的原型和注释写出它的类外定义。
class AA {
  int* a;
  int n;
  int MS;
public:
  void InitAA(int aa[], int nn, int ms) {
    if(nn>ms) {cout<<"Error!"<<endl; exit(1);}
    MS=ms;
    n=nn;
    a=new int[MS];
    for(int i=0; i<n; i++) a=aa;
  }
int MaxMin(int& x, int& y); //从数组a的前n个元素中求出
         //最大值和最小值,并分别由引用参数x和y带回,
         //同时若n大于0则返回1,否则返回0。
};

    12. 根据下面类中Compare 函数成员的原型和注释写出它的类外定义。
class AA {
  int* a;
  int n;
  int MS;
public:
  void InitAA(int aa[], int nn, int ms) {
    if(nn>ms) {cout<<"Error!"<<endl; exit(1);}
    MS=ms;
    n=nn;
    a=new int[MS];
    for(int i=0; i<n; i++) a=aa;
  }
int Compare(AA b); //比较*this与b的大小,若两者中
        //的n值相同,并且数组中前n个元素值对应
        //相同,则认为两者相等返回1,否则返回0。
};

    13. 根据下面类中CompareBig 函数成员的原型和注释写出它的类外定义。
class AA {
  int* a;
  int n;
  int MS;
public:
  void InitAA(int aa[], int nn, int ms) {
    if(nn>ms) {cout<<"Error!"<<endl; exit(1);}
    MS=ms;
    n=nn;
    a=new int[MS];
    for(int i=0; i<n; i++) a=aa;
  }
int CompareBig(AA b);  //比较*this与b的大小,从前向后按两数组
           //中的对应元素比较,若*this中元素值大则返回1,若b中
           //元素值大则返回-1,若相等则继续比较下一个元素,直到
           //一个数组中无元素比较,此时若两者的n值相同则返回0,
           //否则若*this中的n值大则返回1,若b中的n值大则返回-1。
};

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有