PTA平台———2023年软件设计综合实践_2(基础语法)

第一题7-1 游客检票 - C/C++ 变量及简单数据类型

题目描述
假设张家界景区的游客抵达检票口的速度是恒定的。某国庆长假日清晨景区开门时检票口已积聚了一定数量的游客,且随时间流逝,不断有新的游客抵达。如果打开8个检票口,m分钟刚好可以完成全部游客的检票放行;如果使用6个检票口,则需要n (n>m)分钟才能完成。请编程计算:如果使用10个检票口,需要多少时间才能将景区入口的待检票人数清零?

【分析】

这是小学奥数中著名的“牛吃草”问题。现假设每个检票口每分钟可以完成1份游客的检票放行任务。设景区开门时积聚的游客数量为x份,设每分钟有y份游客抵达检票口。然后列出方程组,根据方程组求解x,y。

然后,设使用10个检票口时,需要z分钟清零,根据x,y列方程,求出z。

输入格式:

m
n

说明:m,n为整数且n>m,且该输入确保问题有解。

输出格式:

原有排队游客份数:A, 每分钟新到游客份数:B, 10口同开需C分钟清零待检票游客.

说明:A, B, C均为保留1位小数的浮点数。

输入样例:

180
300

输出样例:

Original number of visitors: 900.0
New arriavlas per minute: 3.0
Check time when 10 gates are opened: 128.6

注意:从数学角度上看,900.0, 30.0均为份数,不是游客人数。

选择c++(g++)

#include <bits/stdc++.h>
using namespace std;
int m, n;
float x, y, z;
int main() {
    cin >> m >> n;
    y = (8.0 * m - 6.0 * n) / (m - n);
    x = (8.0 - y) * m;
    z = x / (10.0 - y);
    printf("Original number of visitors: %.1f\n", x);
    printf("New arriavlas per minute: %.1f\n", y);
    printf("Check time when 10 gates are opened: %.1f", z);
    return 0;
}

第二题7-2 温度单位转换 - C/C++ 语法基础

从键盘读取华氏温度,转换成摄氏温度并输出,保留1位小数。
转换公式为:c=5/9*(f-32), 其中,f为华氏温度,c为摄氏温度。

输入格式:

华氏温度

输出格式:

摄氏温度

输入样例:

100

输出样例:

37.8

选择c++(g++) 

#include<bits/stdc++.h>
using namespace std;
int main(){
    float f,c;
    cin>>f;
    c=5*(f-32)/9;
    printf("%.1f",c);
    return 0;
}

第三题7-3 分苹果 - C/C++ 语法基础

现有n个苹果,均分给5位同学,剩下的苹果交还老师。请编写程序,解决下述问题:

  • 每位同学能分得几个苹果?
  • 一共分出去多少个苹果?
  • 交还老师的苹果有几个?

输入样例:

17

输出样例:

Everyone have 3 apples.
15 apples have been taken in total.
returned 2 apples to the teacher.

选择c++(g++) 

#include<bits/stdc++.h>
using namespace std;
int n;
int main() {
    cin >> n;
    int a, b, c;
    a = n / 5;
    b = 5 * a;
    c = n % 5;
    printf("Everyone have %d apples.\n", a);
    printf("%d apples have been taken in total.\n", b);
    printf("returned %d apples to the teacher.", c);

    return 0;
}

 

7-4 绩点计算 - C/C++ 语法基础

某大学的GPA(绩点)计算规则如下:

课程百分制成绩90分对应绩点4.0,超过90分的,按90分计;如不足90分,则课程绩点 = 4.0 * 分数/90。
学生综合绩点按该生已修的各门课程绩点结合学分加权平均而得。
现有步步同学入学后的已修课程(共5门)成绩表如下,请编程计算其GPA。

输入格式:

第1门课程百分制分数 学分

第2门课程百分制分数 学分

第3门课程分制分数 学分

第4门课程百分制分数 学分

第5门课程百分制分数 学分

说明:百分制分数和学分均为整数。

输出格式:

请参考输出样例。其中,GPA值保留两位小数。

输入样例:

78 3
91 5
65 4
95 3
60 2

输出样例:

GPA:3.49
#include<bits/stdc++.h>
using namespace std;
float gpa;
struct course {
    int fenshu;
    int xuefen;
    float jidian;
}c[5];
int main() {
    for (int i = 0; i < 5; i++) {
        cin >> c[i].fenshu >> c[i].xuefen;
        if (c[i].fenshu > 90) c[i].fenshu = 90;
        c[i].jidian = 4.0 * c[i].fenshu / 90;
    }
    int zong=0;
    for (int i = 0; i < 5; i++) {
        zong += c[i].xuefen;
    }
    for (int i = 0; i < 5; i++) {
        gpa += c[i].jidian * c[i].xuefen / zong;
    }
    printf("GPA:%.2f", gpa);
    return 0;
}

 7-5 和与平均 - C/C++ 语法基础

 

编程从键盘读入3个整数,输出它们的和与平均值。其中,平均值保留2位小数。

输入格式:

整数1
整数2
整数3

输出格式:

和,平均值

输入样例:

1
2
3

输出样例:

6,2.00
#include<bits/stdc++.h>
using namespace std;
int a, b, c;
int sum;
float ave;
int main() {
    cin >> a >> b >> c;
    sum = a + b + c;
    ave = 1.0*sum / 3;
    printf("%d,%.2f", sum, ave);
    return 0;
}

 7-6 菲姐游泳 - C/C++ 语法基础

游泳奥运冠军菲姐刻苦训练,从早上a时b分开始下水训练,直到当天的c时d分结束。请编程计算:菲姐当天一共训练多少小时多少分钟?

输入格式:

一行之内输入以空格分隔的4个非负整数,分别对应a,b,c,d。其中,0 ≤a<c ≤24;b和d均不大于60。

输出格式:

h:m。其中,整数h表示小时数,整数m表示分钟数,m应小于60。

输入样例:

6 30 23 20

输出样例:

16:50
#include<bits/stdc++.h>
using namespace std;
int a, b, c, d;
int h, m;
int main() {
    cin >> a >> b >> c >> d;
    int time;
    time = c * 60 + d - a * 60 - b;
    h = time / 60;
    m = time % 60;
    cout << h << ":" << m;
    return 0;
}

 7-7 对角线 - C/C++ 语法基础

编写程序,实现下述功能:

从键盘读入矩形的长,以厘米为单位,应为小数;
从键盘读入矩形的宽,以厘米为单位,应为小数;
使用勾股定理计算对角线的长度并输出,保留1位小数。

输入格式:


输出格式:

参见输出样例

输入样例:

5.1
4.3

输出样例:

The diagonal legnth is: 6.7 cm.
#include<bits/stdc++.h>
using namespace std;
float c, k,l;
int main() {
    cin >> c >> k;
    l=pow(c * c + k * k, 0.5);
    printf("The diagonal legnth is: %.1f cm.",l);
    return 0;
}

 7-8 海伦-秦九韶 - C/C++ 语法基础

编程序实现功能:输入三角形的三条边边长,求三角形面积,其中面积计算使用用户自定义函数实现。
输出的面积保留两位小数。

输入格式:

边长1
边长2
边长3

输出格式:

当三条边可能构成合法的三角形时,输出应为:

面积

当三条边无法构成合法的三角形时,输出:

Error Input.

输入样例:

3.1
4
5

输出样例:

6.20
#include<bits/stdc++.h>
using namespace std;
float l[3];
int main() {
    for (int i = 0; i < 3; i++) {
        cin >> l[i];
    }
    sort(l, l + 3);
    if (l[0] + l[1] <= l[2]) cout << "Error Input.";
    else {
        float p, s;
        p = (l[0] + l[1] + l[2]) / 2;
        s = pow(p * (p - l[0]) * (p - l[1]) * (p - l[2]), 0.5);
        printf("%.2f", s);
    }
    return 0;
}

 7-9 最短跑道长度 - C/C++ 语法基础

假设某飞机的加速度是a,起飞的速度是v,下述公式可以计算出该飞机起飞所需的最短跑道长度: L = v²/(2a)。编写一个程序,提示用户输入起飞速度v(m/s)和加速度a(m/s²),计算飞机起飞的最短跑道长度,输出时保留2位小数。计算过程宜封装成一个函数,该函数接受参数v和a,返回计算所得的L。

输入样例:

100.1
5.0

输出样例:

The shortest length of run  way: 1002.00
#include<bits/stdc++.h>
using namespace std;
float length(float a, float v) {
    float l = v * v / 2 / a;
    return l;
}
float x, y;
float l;
int main() {

    cin >> x >> y;
    l = length(y, x);
    printf("The shortest length of run  way: %.2f", l);

    return 0;
}

7-10 橡皮泥 - C/C++ 语法基础 

 

将两块球形橡皮泥揉在一起,捏成一个正方体。请编程,完成下述功能:

从键盘读入第1个球形橡皮泥的直径,该直径为浮点数;
从键盘读入第2个球形橡皮泥的直径,该直径仍为浮点数;
求正方体的边长,并保留两位小数输出;

输入格式:

第一个球的直径
第二个球的直径

输出格式:

请参考输出样例。

输入样例:

3.2
5.553

输出样例:

Side length of cube: 4.74

提示:圆球的体积 V = 4/3 * π r³

#include<bits/stdc++.h>
using namespace std;
float l1, l2, l;
int main() {
    cin >> l1 >> l2;
    float pai = 3.1415;
    float s1 = 0, s2 = 0, s = 0;
    s1 = 4 * pai * pow(l1 / 2, 3) / 3;
    s2 = 4 * pai * pow(l2 / 2, 3) / 3;
    l = pow(s1 + s2, 1.0 / 3);
    printf("Side length of cube: %.2f", l);
    return 0;
}

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值