考研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项。](#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撇](#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的和

cpp 复制代码
#include <stdio.h>

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项。

cpp 复制代码
#include<stdio.h>

int main()
{
    int i,j,n;
    while(scanf("%d",&n)!=EOF){
        i=1;
        while((1+i)*i/2<n){//前n项和公式
            i++;
        }
        j=n-i*(i-1)/2;//求第i行的第几个元素
        if(i%2==0){
            //偶数列从上往下走,奇数列相反
            printf("%d/%d\n",j,(i+1)-j);//(i+1)为分子分母之和
        } else{
            printf("%d/%d\n",(i+1)-j,j);
        }
    }

    return 0;
}

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

cpp 复制代码
#include <stdio.h>

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撇

cpp 复制代码
#include <stdio.h>
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个员工的平均工资(取整数)

cpp 复制代码
#include <stdio.h>

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后对于超出的部分按每吨三元收取。请编写程序实现水费的收入,用水量与输出收费均以整数计

cpp 复制代码
#include <stdio.h>

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

cpp 复制代码
#include <stdio.h>

int main(){
    //初始化
    int m,n;
    scanf("%d%d",&m,&n);
    if(m<n){
        for (int i = m+1; i <= n; i++) {
            printf("%d",i);
        }
    } else{
        printf("Error ");
    }
    return 0;
}

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

cpp 复制代码
#include <stdio.h>

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层所需要的时间,保留一位小数?

cpp 复制代码
#include <stdio.h>

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

cpp 复制代码
#include <stdio.h>

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;
}
相关推荐
马浩同学33 分钟前
【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程
c语言·单片机·嵌入式硬件·mcu
我要学编程(ಥ_ಥ)37 分钟前
一文详解“二叉树中的深搜“在算法中的应用
java·数据结构·算法·leetcode·深度优先
埃菲尔铁塔_CV算法39 分钟前
FTT变换Matlab代码解释及应用场景
算法
一个没有本领的人44 分钟前
win11+matlab2021a配置C-COT
c语言·开发语言·matlab·目标跟踪
一只自律的鸡1 小时前
C项目 天天酷跑(下篇)
c语言·开发语言
许野平1 小时前
Rust: enum 和 i32 的区别和互换
python·算法·rust·enum·i32
长安——归故李1 小时前
【C语言】成绩等级制
c语言·开发语言
chenziang12 小时前
leetcode hot100 合并区间
算法
chenziang12 小时前
leetcode hot100 对称二叉树
算法·leetcode·职场和发展
szuzhan.gy2 小时前
DS查找—二叉树平衡因子
数据结构·c++·算法