安工PTA攀登者11-20题(24级)c语言

7-11 求平方与倒数序列的部分和

#include<stdio.h>

int main() {
    int m, n;
    double sum = 0;
    scanf("%d %d", &m, &n);
    for (int i = m; i <= n; i++) {
        sum += i * i + 1.0 / i;
    }
    printf("sum = %f\n", sum);
    return 0;
}

7-12 求平方根序列前N项和

#include<stdio.h>
#include<math.h>

int main() {
    int n;
    scanf("%d", &n);
    double sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += sqrt(i);
    }
    printf("sum = %.2lf\n", sum);
    return 0;
}

7-13 计算符号函数的值

#include<stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    if (n > 0) {
        printf("sign(%d) = 1", n);
    } else if (n < 0) {
        printf("sign(%d) = -1", n);
    } else {
        printf("sign(%d) = 0", n);
    }
    return 0;
}

7-14 统计学生平均成绩与及格人数

#include<stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    int temp;
    int cnt = 0;
    double sum = 0;
    for (int i = 0; i < n; i++) {
        scanf("%d", &temp);
        sum += temp;
        if (temp >= 60) {
            cnt++;
        }
    }
    if (n == 0) {
        printf("average = %.1f\n", 0);
    } else {

        printf("average = %.1f\n", sum / n);
    }
    printf("count = %d", cnt);
    return 0;
}

7-15 统计字符

#include<stdio.h>

int main() {
    char str[11] = {0};
    int index = 0;
    while (index != 10) {
        str[index++] = getchar();
    }
    int letter = 0, blank = 0, digit = 0, other = 0;
//    printf("%s", str);// 调试用
    for (int i = 0; i < 10; i++) {
        if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z') {
            letter++;
        } else if (str[i] == ' ' || str[i] == '\n') {
            blank++;
        } else if (str[i] >= '0' && str[i] <= '9') {
            digit++;
        } else {
            other++;
        }
    }
    printf("letter = %d, blank = %d, digit = %d, other = %d", letter, blank, digit, other);
    return 0;
}

7-16 输出闰年

#include<stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    if (n < 2001 || n > 2100) {
        printf("Invalid year!");
        return 0;
    }
    int flag = 1;
    for (int i = 2001; i <= n; i++) {
        if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
            printf("%d\n", i);
            flag = 0;
        }
    }
    if (flag) {
        printf("None");
    }
    return 0;
}

7-17 成绩转换

#include<stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    if (n >= 90) {
        printf("A");
    } else if (n >= 80) {
        printf("B");
    } else if (n >= 70) {
        printf("C");
    } else if (n >= 60) {
        printf("D");
    } else {
        printf("E");
    }
    return 0;
}

7-18 查询水果价格

#include<stdio.h>

int main() {
    printf("[1] apple\n"
           "[2] pear\n"
           "[3] orange\n"
           "[4] grape\n"
           "[0] exit\n");
    int n;
    scanf("%d", &n);
    if (n == 1) {
        printf("price = 3.00\n");
    } else if (n == 2) {
        printf("price = 2.50\n");
    } else if (n == 3) {
        printf("price = 4.10\n");
    } else if (n == 4) {
        printf("price = 10.20\n");
    } else if (n == 0) {
        return 0;
    } else {
        printf("price = 0.00\n");
    }
    int cnt = 1;
    while (n != 0 && cnt != 5) {
        cnt++;
        scanf("%d", &n);
        if (n == 1) {
            printf("price = 3.00\n");
        } else if (n == 2) {
            printf("price = 2.50\n");
        } else if (n == 3) {
            printf("price = 4.10\n");
        } else if (n == 4) {
            printf("price = 10.20\n");
        } else if (n == 0) {
            break;
        } else {
            printf("price = 0.00\n");
        }
    }
    return 0;
}

7-19 比较大小

#include<stdio.h>

int main() {
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b) {
        int temp = a;
        a = b;
        b = temp;
    }
    if (b > c) {
        int temp = b;
        b = c;
        c = temp;
    }
    if (a > b) {
        int temp = a;
        a = b;
        b = temp;
    }
    printf("%d->%d->%d", a, b, c);
    return 0;
}

7-20 高速公路超速处罚

#include<stdio.h>

int main() {
    int m, n;
    scanf("%d %d", &m, &n);
    double ans = 0;
    ans = (double) m / n;
    if (ans >= 1.1 && ans < 1.5) {
        printf("Exceed %.0f%%. Ticket 200\n", (ans - 1) * 100);
    } else if (ans >= 1.5) {
        printf("Exceed %.0f%%. License Revoked\n", (ans - 1) * 100);
    } else {
        printf("OK");
    }
    return 0;
}
“华为OD机试 - 攀登者1”是华为公司的一场在线岗位技术面试。在这场机试中,面试者扮演的角色是“攀登者1”,需要展示自己在软件开发和技术问解决方面的能力。 首先,作为攀登者1,必须具备扎实的编程技能。这包括熟练掌握至少一种主流编程语言,并能够在给定的时间内编写出有效的代码。此外,对常见的数据结构和算法也应有一定的了解,以便能够在解决问时选择最优解决方案。 其次,攀登者1需要展示出对软件开发流程的理解。这包括了解需求分析、设计、编码和测试等一系列开发过程,并能够合理地组织和安排自己的开发任务。同时,对于代码质量的重视也是非常重要的,攀登者1需要注意代码的可读性、可维护性和扩展性等方面。 此外,在面试过程中,攀登者1需要展示自己在解决技术问时的思考能力和解决能力。这意味着在面对复杂的技术问时能够有条不紊地分析问、确定解决方案,并能够迅速实施和测试解决方案。同时,攀登者1需要具备快速学习和适应新技术的能力,因为技术的更新换代很快,对新技术的学习和掌握能力是面试中的重要评价指标之一。 总结起来,“华为OD机试 - 攀登者1”是一场测试面试者在软件开发和技术问解决方面能力的机试。面试者需要展示自己的编程技能、软件开发流程理解、问解决能力和学习能力等方面的能力。只有在这些方面能够表现出色,攀登者1才能成功地通过这场机试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值