【PTA-C语言】实验一-顺序结构

7-1 逆序的三位数(分数 10)

作者 翁恺
单位 浙江大学

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:
每个测试是一个3位的正整数。

输出格式:
输出按位逆序的数。

输入样例:

123

输出样例:

321

鸣谢安阳师范学院软件学院李康康同学补充数据!

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include <stdio.h>

int main()
{
    int a, b, c, d;
    scanf("%d", &a);
    b=a/100;
    c=a/10%10;
    d=a%10;
    printf("%d", d*100+10*c+b);
    return 0;
}

7-2 求整数均值(分数 10)

作者 乔林
单位 清华大学

本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。

输入格式:
输入在一行中给出4个整数,其间以空格分隔。

输出格式:
在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。

输入样例:

1 2 3 4

输出样例:

Sum = 10; Average = 2.5

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>
main()
{
    int a, b, c, d, s;
    float ave;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    s=a+b+c+d;
    ave = 1.0*s/4;
    printf("Sum = %d; Average = %.1f", s, ave);
    return 0;
}

7-3 日期格式化(分数 10)

作者 陈越
单位 浙江大学

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。

输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。

输入样例:

03-15-2017

输出样例:

2017-03-15

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>
int main()
{
    int year, month, day;
    scanf("%d-%d-%d", &month, &day, &year);
    printf("%d-%02d-%02d", year, month, day);
    return 0;
}

7-4 混合类型数据格式化输入(分数 10)

作者 乔林
单位 清华大学

本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。

输入格式:
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

输入样例:

2.12 88 c 4.7

输出样例:

c 88 2.12 4.70

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include <stdio.h>
int main()
{
    char c;
    int d;
    double f1, f2;
    scanf("%lf%d %c%lf", &f1, &d, &c, &f2);
    printf("%c %d %.2f %.2f", c, d, f1, f2);
    return 0;
}

7-5 然后是几点(分数 10)

作者 翁恺
单位 浙江大学

有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 530 分表示为 530030 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。

输入格式:
输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 530 分表示为 530030 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。

输出格式:
输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例:

1310

鸣谢燕山大学穆运峰老师、用户任钰补充数据!

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d%d", &a, &b);
    c = a/100*60+a%100;
    c = c+b;
    c = c/60*100+c%60;
    printf("%03d", c);
    return 0;
}

7-6 计算存款利息(分数 10)

作者 颜晖
单位 浙大城市学院

本题目要求计算存款利息,计算公式为 i n t e r e s t = m o n e y × ( 1 + r a t e ) y e a r − m o n e y interest=money×(1+rate)^{year} − money interest=money×(1+rate)yearmoney,其中 i n t e r e s t interest interest为存款到期时的利息(税前), m o n e y money money是存款金额, y e a r year year是存期, r a t e rate rate是年利率。

输入格式:
输入在一行中顺序给出三个正实数 m o n e y money money y e a r year year r a t e rate rate,以空格分隔。

输出格式:
在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。

输入样例:

1000 3 0.025

输出样例:

interest = 76.89

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

# include<stdio.h>
# include<math.h>
int main()
{
    double interest, money, rate, year;
    scanf("%lf %lf %lf", &money, &year, &rate);
    interest = money*pow(1+rate,year)-money;
    printf("interest = %0.2lf", interest);
    return 0;
}

7-7 计算并联电阻的阻值(分数 10)

作者 吕曦
单位 武汉理工大学

对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下: R = 1/(1/r1 + 1/r2),编程计算并联电阻的阻值。

输入格式:
两个电阻阻值大小,实数,以一个空格分开。

输出格式:
并联之后的阻值大小,实数,保留小数点后两位。

输入样例:

2 3

输出样例:
在这里给出相应的输出。例如:

1.20

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>
int main()
{
    double r1, r2, R;
    scanf("%lf %lf", &r1, &r2) ;
    R=1.0/(1.0/r1 + 1.0/r2);
    printf("%.2f", R);
    return 0;
}

7-8 每天进步一点点(分数 10)

作者 周永
单位 西南石油大学

1.01的365次方约等于37.78,意思是每天进步一点点,连续进步一年,进步的量非常可观。从键盘接收一个整数n,假定输入的n一定在360到366之间(包含边界)。计算1.01的n次方,记为a;计算0.99的n次方,记为b。再计算a在b中占的百分比,就是用a乘以100后除以b。输出三个数据时,前两个数据保留两位小数,最后一个数据保留一位小数

输入格式:
输入一个整数,该整数一定在360到366之间。

输出格式:
两个小数和一个百分比数据,三者之间都用一个空格分开。

输入样例:
用户输入365后敲回车键,代表一年的天数。

365

输出样例:
前两个数据保留两位小数,第三个数据保留一位小数且跟上了一个百分号,数据之间有且仅有一个空格。所谓保留是指四舍五入。

37.78 0.03 148066.0%

代码长度限制
4 KB
时间限制
4000 ms
内存限制
100 MB

参考代码

#include<stdio.h>
#include<math.h>
int main()
{
    double n, a=1.00, b=1.00;
    scanf("%lf", &n);
    a = pow((1.01), n);
    b = pow((0.99), n);
    printf("%.2lf %.2lf %.1lf%\n", a, b, a/b*100);
    return 0;
}
  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谛凌

本人水平有限,感谢您支持与指正

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值