• 2005计算机885编程题


    第一题:

    #include <stdio.h>
    #include <math.h>
    void deal(int a,int b,int c){
        if(a==0&&b==0&&c==0)
           printf("a=%d,b=%d,c=%d时方程为无穷解
    ",a,b,c);
        else if(a==0&&b==0&&c!=0)
           printf("a=%d,b=%d,c=%d时方程无解
    ",a,b,c);
        else
          printf("a=%d,b=%d,c=%d时方程无解
    ",a,b,c);
    }
    void deal(int a,int b,int c,double x1){
        printf("a=%d,b=%d,c=%d时方程为单解x=%lf
    ",a,b,c,x1);
    }
    void deal(int a,int b,int c,double x1,double x2){
        printf("a=%d,b=%d,c=%d时方程解为x1=%lf,x2=%lf
    ",a,b,c,x1,x2);
    }
    int main(){
        int a,b,c;
        printf("please input the a,b,c:
    ");
        scanf("%d%d%d",&a,&b,&c);
        if(a==0&&b==0&&c==0){
            deal(a,b,c);
        }else if(a==0&&b==0&&c!=0){
            deal(a,b,c);
        }else if(a==0&&b!=0&&c==0){
            deal(a,b,c,0);
        }else if(a!=0&&b==0&&c==0){
            deal(a,b,c,0);
        }else if(a==0&&b!=0&&c!=0){
            deal(a,b,c,c*1.0/b);
        }else if(a!=0&&b!=0&&c==0){
            deal(a,b,c,0,-b*1.0/a);
        }else if(a!=0&&b==0&&c!=0){
            double dis=b*b-4.0*a*c;
            if(dis<0) deal(a,b,c);
            else deal(a,b,c,sqrt(a*1.0/c),-sqrt(a*1.0/c));
        }else if(a!=0&&b!=0&&c!=0){
            double dis=b*b-4*a*c;
            if(dis<0) deal(a,b,c);
            else deal(a,b,c,(-b-sqrt(dis))/(2*a),(-b+sqrt(dis))/(2*a)); 
        } 
        return 0;
    }

    第二题:

    #include <stdio.h>
    #define N 5
    int a[N][N];
    void Input();//输入数组
    int AnDian();//寻找安点 
    int main(){
        printf("请输入五阶矩阵:
    ");
        Input();
        int k=AnDian();
        if(k==0){
            printf("NO FIND!
    ");
        }
        return 0;
    }
    void Input(){
         int i,j;
         for(i=0;i<N;i++){
             for(j=0;j<N;j++){
                 scanf("%d",&a[i][j]);
             }
         }    
    }
    //寻找安点; 
    int AnDian(){
        int i,j,k,r,c,value,count=0;
        for(i=0;i<N;i++){//
            value=a[i][0];
            r=i;c=0;
            for(j=0;j<N;j++){//找出每行的最大值 
                if(value<a[i][j]){
                    value=a[i][j];
                    r=i;c=j;
                } 
            }
            for(k=0;k<N;k++){//遍历行最小值的所在列,判断是否依然是列的最小值 
                if(value>a[k][c]){
                    value=a[k][c];
                    r=k;
                }
            }
            if(r==i){//如果最终行没有变化则说明行的最大值也是列的最小值。 
                printf("%d(%d,%d)
    ",value,r+1,c+1);
                count++;
            }
        }
        if(count==0) return 0;
        else return 1;
    }

    第三题:

    #include <stdio.h>
    #include <math.h>
    int main(){
        int fz=2,fm=1,i,j,t;
        double sum=0.0;
        for(i=1;i<=20;i++){
            sum+=1.0*fz/fm;
            t=fz;
            fz=fz+fm;
            fm=t;
        }
        printf("%lf
    ",sum);
        return 0;
    } 

    第四题:

    #include <stdio.h>
    #include <math.h>
    #define M 30
    struct student{
        int no;//学号
        char name[20];//姓名
        double score[5];//成绩 
    }stu[M];
    void OneAvg();
    void GradeL();
    void AvgMore();
    int main(){
        int i,j;
        printf("请输入30个学生的信息
    ");
        for(i=0;i<M;i++){
            printf("请输入第%d个学生的信息:
    ",i+1);
            scanf("%d%s",&stu[i].no,stu[i].name);
            for(j=0;j<5;j++){
                scanf("%lf",&stu[i].score[j]);
            }
        }
        OneAvg(); 
        GradeL();
        AvgMore();
        return 0;
    }
    void OneAvg(){
        int i,j;
        double sum=0;
        for(i=0;i<M;i++)
          sum+=stu[i].score[0];
        printf("第一门课的平均分是%lf
    ",sum/M);
    }
    void GradeL(){//有两门课不及格的学生的信息 
        int i,j;
        printf("有两门课成绩不合格的学生信息如下:
    ");
        printf("学号	姓名	课程1	课程2	课程3	课程4	课程5
    ");
        for(i=0;i<M;i++){
            int count=0;
            for(j=0;j<5;j++){
              if(stu[i].score[j]<60) count++;    
            }
            if(count>2){
                printf("%d	%s	",stu[i].no,stu[i].name);
                for(j=0;j<5;j++){
                    printf("%lf	",stu[i].score[j]);
                }
                printf("
    ");
            }
        } 
    }
    void AvgMore(){//平均分超90或者所有的课程成绩都在85以上 
        int i,j; 
        printf("平均分大于90或者课程成绩都在85以上的学生:
    ");
        printf("学号	姓名	课程1	课程2	课程3	课程4	课程5
    ");
        for(i=0;i<M;i++){
            double sum=0;
            int count=0;
            for(j=0;j<5;j++){
                sum+=stu[i].score[j];
                if(stu[i].score[j]>85) count++;
            }
            if((sum/5>90)||(count==5)){
                printf("%d	%s	",stu[i].no,stu[i].name);
                for(j=0;j<5;j++){
                    printf("%lf	",stu[i].score[j]);
                }
                printf("
    ");
            }
        } 
    } 

    测试数据

    2001 liu 85 85 85 76 100
    2002 bao 90 90 90 90 90
    2003 wang 100 100 100 100 70
    2004 chen 70 100 80 90 60
    2005 hu 100 50 100 90 100
    2006 xu 70 90 90 90 90
    2007 hua 10 10 10 10 10
    2008 ma 20 20 20 20 20
    2009 luo 30 30 30 30 30
    2010 l1 40 40 40 40 40
    2011 l2 50 50 50 50 50
    2012 l3 60 60 60 60 60
    2013 l4 70 70 70 70 70
    2014 l5 80 80 80 80 80
    2015 l6 90 90 90 90 90
    2016 l7 40 40 40 40 40
    2017 l8 50 50 50 50 50
    2019 l9 60 60 60 60 60
    2020 l10 70 70 70 70 70
    2021 l11 80 80 80 80 80
    2022 l12 90 90 90 90 90
    2023 l13 40 40 40 40 40
    2024 l14 50 50 50 50 50
    2025 l15 60 60 60 60 60
    2026 l41 70 70 70 70 70
    2027 l51 80 80 80 80 80
    2028 l61 90 90 90 90 90
    2029 l52 80 80 80 80 80
    2030 l62 90 90 90 90 90
    2031 l62 90 90 90 90 90

      收录于《考研计算机885复习》

  • 相关阅读:
    查看网站上保存的密码
    前端图片预览
    Amaze UI的一点总结
    简单实现图片验证码
    获取网页数据的例子
    谈谈网页中的ajax
    网页小技巧-360doc个人图书馆复制文字
    Js中的4个事件
    网页页面蒙版实现
    Spring+SprinMVC配置学习总结
  • 原文地址:https://www.cnblogs.com/byczyz/p/13814167.html
Copyright © 2020-2023  润新知