超星高级语言程序设计实验作业
第01 顺序程序设计
注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流。
另:本人写代码用的是Visual Studio 2019,有些地方可能在其他编译器上无法运行。
1.前驱后继字符
题目描述:编写程序,输入一个大写字母,然后顺序输出该字母的前驱字母、该字母本身、它的后继字母,此题不考虑输入字母为‘A’和‘Z’的情况。
输入:从键盘输入任何一个不是‘A’或‘Z’的大写字母。题目已保证测试数据符合要求。
输出:所输入字母的前驱、本身和后继三个字母,字母间无间隔符号。
样例1:
输入:B
输出:ABC
样例2:
输入:W
输出:VWX
#include<stdio.h>
int main() {
char ch;
scanf("%c",&ch);
printf("%c%c%c", ch-1, ch, ch+1);
return 0;
}
2.温度转换
题目描述:已知摄氏温度(℃)与华氏温度(℉)的转换关系是:
编写一个摄氏温度(℃)与华氏温度(℉)进行转换的程序,输入摄氏温度,输出华氏温度。
输入:从键盘随机输入一个摄氏温度数据。题目保证测试数据符合要求。
输出:输出对应的华氏温度数据,保留小数点后3位。
提示:OJ环境要求程序运行时输入和输出要和样例一模一样,因此在此平台上提交的程序不要有多余的输入提示信息和换行,否则会判错哦。
样例1:
输入:5
输出:41.000
样例2:
输入:27
输出:80.600
#include<stdio.h>
int main() {
float c;
scanf("%f", &c);
printf("%.3f", c*9/5+32);
return 0;
}
3.求平均值
题目描述:编写程序,输入3个浮点数,求它们的平均值并输出。
输入:从键盘随机输入3个浮点数。
输出:输出3个浮点数的平均值,小数点后保留3位。
样例1:
输入:1.5 1.7 3.1
输出:2.100
样例2:
输入:1 2 3
输出:2.000
#include<stdio.h>
int main() {
float a, b, c;
scanf("%f %f %f", &a, &b, &c);
printf("%.3f", (a + b + c) / 3);
return 0;
}
😀
前期的题目还是挺简单的,要注意的不多。
4.五则运算
题目描述:编写程序,输入两个整数,分别求它们的和、差、积、商、余数并输出。
输入:从键盘随机输入两个整数。题目保证测试数据符合要求。
输出:依次为所输入的两个整数的和、差、积、商和余数5个整数, 数字之间以1个英文空格间隔。
样例1:
输入:10 3
输出:13 7 30 3 1
样例2:
输入:9 2
输出:11 7 18 4 1
#include<stdio.h>
int main() {
int a, b;
scanf_s("%d%d", &a, &b);
printf("%d %d %d %d %d", a + b, a - b, a * b, a / b, a % b);
}
干就完了 难度都不大。。
5.点到平面距离
题目描述:从点(x, y, z ) 到平面 Ax+By+Cz+D=0 的距离 d 的公式是
编程序,输入点的坐标 x、y、z及平面方程系数 A 、B 、C 、D,计算并输出d。
提示:math.h头文件中包含fabs和sqrt函数分别用来求解绝对值和平方根。
输入:从键盘随机第一行输入一个三维点坐标,第二行依次读入直线方程系数A、B、C和D。
输出:输出对应的点到面的距离,保留小数点后3位。
样例1:
输入:
1 1 1
1 2 3 4
输出:2.673
样例2:
输入:
-3.1 0.2 3.4
5.3 1.8 0.1 0
输出:2.810
#include<stdio.h>
#include<math.h>
int main() {
float A, B, C,D,x,y,z,d;
scanf("%f %f %f %f %f %f %f", &x, &y, &z,&A,&B,&C,&D);
d = fabs(A * x + B * y + C * z + D) / sqrt(A * A + B * B + C * C);
printf("%.3f", d);
return 0;
}
6.时间转换
题目描述:编程序,输入午夜后的某秒数,输出该秒的小时:分种:秒。
输入:从键盘输入秒数。
输出:秒数转换后的小时:分种:秒,其中小时、分钟、秒都都是两位整数,数位不足用零补充。
样例1:
输入:50000
输出:13:53:20
样例2:
输入:96
输出:00:01:36
#include<stdio.h>
int main() {
int s, m,h;
scanf_s("%d", &s);
h = s / 3600;
s = s % 3600;
m = s / 60;
s = s % 60;
if (h>=24){
h = h % 24;
}
printf("%02d:%02d:%02d", h, m, s);
return 0;
}
程序是挺简单的但是要注意,秒数换算后有可能超过24小时。
因此需要小时h除24取余。
ps:有很多小伙伴 (包括我) 都掉坑里了
h = h % 24;
注意这里用到了读入的秒数d直接除3600赋值给小时h,相信大家都知道h是int类型只会赋值运算后的整数部分。