考研C语言进阶题库——更新41-50题

目录

41.编写程序要求输出整数a和b若a和b的平方和大于100,则输出a和b的平方和,否则输出a和b的和

42.现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,输出第n项。

43佳佳带着f个水果和m元出去玩,每天房屋的租金为x元,佳佳每天早上必须吃一个水果,佳佳通过询问商店的服务人员得到了水果的价格,每个水果售价批元,请你计算下加价,最多可以在外面待多长时间?

44.我们都喜欢a+b问题,现在我们遇到了一个他的变形问题,给定a+b+c+d=e的形式,并规定abcde都是正整数,现在已经知道了e的大小,请问有多少种不同的a+b+c+d,足a+b+c+d=e abcd与a撇b撇c撇d撇被认为不同,当且仅当a不等于a撇,或b不等于b撇.或c不等于c撇.或d不等于d撇

45.第一行输入员工个数,依次输入n个员工的工资,输出n个员工的平均工资(取整数)

46.为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y与当月用水量x相关,当x不超过15时,每吨收费两元,超过15后对于超出的部分按每吨三元收取。请编写程序实现水费的收入,用水量与输出收费均以整数计

47.依次给出两个正整数m和n,当m小于n时,在同一行从小到大依次输出大于m且不大于n的所有整数,当m不小于n时输出Error

48.一只鸡兔的脚共有80只鸡和兔的总数量是一个20到40的整数X2写一程序计算机兔各有多少只?

49.小明需要从一层爬到第n层n为正整数,小明从一层爬到二层,用时30秒。由于体力下降,之后每爬一层用时都比上一层多了5%。求小明从第一层爬到第n层所需要的时间,保留一位小数?

50.输入一个多位数,将多位数看作一串字符输出,其中奇数数字的个数如输入12345数字中有三个奇数,分别为135并输出3


41.编写程序要求输出整数a和b若a和b的平方和大于100,则输出a和b的平方和,否则输出a和b的和

#include 

int main(){
    //初始化
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d",(a*a+b*b)>100?a*a+b*b:a+b);
    return 0;
}

42.现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,输出第n项。

考研C语言进阶题库——更新41-50题_第1张图片

 

#include

int main()
{
    int i,j,n;
    while(scanf("%d",&n)!=EOF){
        i=1;
        while((1+i)*i/2

43佳佳带着f个水果和m元出去玩,每天房屋的租金为x元,佳佳每天早上必须吃一个水果,佳佳通过询问商店的服务人员得到了水果的价格,每个水果售价批元,请你计算下加价,最多可以在外面待多长时间?

#include 

int main(){
    //初始化
    int f,m,x,p,day;
    scanf("%d%d%d%d",&f,&m,&x,&p);
    //早上吃苹果加上晚上交房租都通过了才算一天,否则不算一天
    for (day = 0; m>x; day++) {
        if(f>0){
            f--;
            m=m-x;
        } else{
            m=m-x-p;
        }
        if(m<0){
            break;
        } else if(m==0){
            day++;
            break;
        }
    }
    printf("%d",day);
    return 0;
}

44.我们都喜欢a+b问题,现在我们遇到了一个他的变形问题,给定a+b+c+d=e的形式,并规定abcde都是正整数,现在已经知道了e的大小,请问有多少种不同的a+b+c+d,足a+b+c+d=e abcd与a撇b撇c撇d撇被认为不同,当且仅当a不等于a撇,或b不等于b撇.或c不等于c撇.或d不等于d撇

#include 
void sum(){
    int e,sum;
    scanf("%d",&e);
    for (int a = 1; a < e; a++) {
        if(a>=e-2){break;}
        for (int b = 1; b < e; b++) {
            if(b>=e-a){break;}
            for (int c = 1; c < e; c++) {
                if(c>=e-a-b){break;}
                for (int d = 1; d < e; d++) {
                    if(d>e-a-b-c){break;}
                    if(a+b+c+d==e){sum++;}
                }
            }
        }
    }
    printf("%d",sum);
}
int main(){
    //初始化
    int n;//想求几个数
    scanf("%d",&n);

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

45.第一行输入员工个数,依次输入n个员工的工资,输出n个员工的平均工资(取整数)

#include 

int main(){
    //初始化
    int n,sum;
    scanf("%d",&n);
    for (int i = 0; i < n; i++) {
        int salary=0;
        scanf("%d",&salary);
        sum=sum+salary;
    }
    printf("%d",sum/n);
    return 0;
}

46.为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y与当月用水量x相关,当x不超过15时,每吨收费两元,超过15后对于超出的部分按每吨三元收取。请编写程序实现水费的收入,用水量与输出收费均以整数计

#include 

int main(){
    //初始化
    int n,sum;
    scanf("%d",&n);
    if(n<=15){
        printf("%d",2*n);
    } else{
        printf("%d",2*15+(n-15)*3);

    }
    return 0;
}

47.依次给出两个正整数m和n,当m小于n时,在同一行从小到大依次输出大于m且不大于n的所有整数,当m不小于n时输出Error

#include 

int main(){
    //初始化
    int m,n;
    scanf("%d%d",&m,&n);
    if(m

48.一只鸡兔的脚共有80只鸡和兔的总数量是一个20到40的整数X2写一程序计算机兔各有多少只?

#include 

int main(){
    //初始化
    int chicken,rabbit,head;
    scanf("%d",&head);
    if(head>=20 && head<=40){
        for (int i = 0; i <= head; i++) {
            if(i*2+(head-i)*4==80){
                printf("鸡:&d,兔:&d");
            }
        }
    } else{
        printf("输入错误!");
    }
    return 0;
}

49.小明需要从一层爬到第n层n为正整数,小明从一层爬到二层,用时30秒。由于体力下降,之后每爬一层用时都比上一层多了5%。求小明从第一层爬到第n层所需要的时间,保留一位小数?

#include 

int main(){
    //初始化
    int  floor;
    scanf("%d",&floor);
    double time,temp=30;
    for (int i = 1; i < floor; i++) {
        time=time+temp;
        temp=temp*1.05;

    }
    printf("%.1lf",time);
    return 0;
}

50.输入一个多位数,将多位数看作一串字符输出,其中奇数数字的个数如输入12345数字中有三个奇数,分别为135并输出3

#include 

int main(){
    //初始化
    int num,count=0;
    scanf("%d",&num);
    while(num){
        if(num%10%2!=0){
            count++;
        }
        num=num/10;
    }
    printf("%d",count);
    return 0;
}

你可能感兴趣的:(白露考研C语言,考研,c语言,算法)