实验01 顺序程序设计(2022级)
1. (程序题)
表达式计算。
问题描述:编写程序,计算并输出如下表达式的值:
y=
其中a,x,y均为float类型,取值为3.1415926。输出结果要求保留小数点后3位。
提示:使用数学函数应括入math.h头文件,正弦、余弦和求绝对值对应的数学函数名分别为sin,cos和fabs。注意区分C语言表达式与数学表达式的差别哦。
输入:依次输入a和x
输出: y的值
样例1:
输入:3.1 40
输出:1.006
样例2:
输入:1.6 21
输出:0.025
样例3:
输入:-4.2 40
输出:0.996
#include <stdio.h>
#include<math.h>
int main() {
float a, x, y;
float pi = 3.1415926;
scanf("%f %f", &a, &x);
y = sin(x) / (a * x) + fabs(cos(pi * x / 2));
printf("%.3f", y);
}
2. (程序题)
题目编号:Exp01-Basic01,GJBook3-02-03
题目名称:前驱后继字符
题目描述:编写程序,输入一个大写字母,然后顺序输出该字母的前驱字母、该字母本身、它的后继字母,此题不考虑输入字母为‘A’和‘Z’的情况。
输入:从键盘输入任何一个不是‘A’或‘Z’的大写字母。题目已保证测试数据符合要求。
输出:所输入字母的前驱、本身和后继三个字母,字母间无间隔符号。
样例1:
输入: B
输出: ABC
样例2:
输入: W
输出: VWX
#include <stdio.h>
int main() {
char a;
scanf("%c", &a);
printf("%c%c%c", a - 1, a, a + 1);
}
3. (程序题)
题目编号:Exp01-Basic02,GJBook3-02-04【计2015级期中试题】
题目名称:温度转换
题目描述:已知摄氏温度(℃)与华氏温度(℉)的转换关系是:
编写一个摄氏温度(℃)与华氏温度(℉)进行转换的程序,输入摄氏温度,输出华氏温度。
输入:从键盘随机输入一个摄氏温度数据。题目保证测试数据符合要求。
输出:输出对应的华氏温度数据,保留小数点后3位。
提示:OJ环境要求程序运行时输入和输出要和样例一模一样,因此在此平台上提交的程序不要有多余的输入提示信息和换行,否则会判错哦。
样例1:
输入:
5
输出:
41.000
样例2:
输入:
27
输出:
80.600
#include <stdio.h>
int main() {
float C, F;
scanf("%f", &C);
F = 9.0 * C / 5 + 32;
printf("%.3f", F);
}
4. (程序题)
题目编号 :Exp01-Basic04,GJBook3-02-05题目名称:五则运算题目描述:
编写程序,输入两个整数,分别求它们的和、差、积、商、余数并输出。
输入:
从键盘随机输入两个整数。题目保证测试数据符合要求。
输出:
依次为所输入的两个整数的和、差、积、商和余数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("%d %d", &a, &b);
printf("%d %d %d %d %d", a + b, a - b, a * b, a / b, a % b);
}
5. (程序题)
题目编号 :Exp01-Enhance01,GJBook3-02-11
题目名称:点到平面距离
题目描述:
从点(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 x1, x2, x3,A,B,C,D;
float d;
scanf("%f %f %f\n", &x1, &x2, &x3);
scanf("%f %f %f %f", &A, &B, &C, &D);
d = (1.0 * fabs(A * x1 + B * x2 + C * x3 + D) / sqrt(A * A + B * B + C * C));
printf("%.3f", d);
}
6. (程序题)
题目编号 :Exp01-Enhance02
题目名称:时间转换
题目描述:编程序,输入午夜后的某秒数,输出该秒的小时:分种:秒。
输入:从键盘输入秒数。
输出:秒数转换后的小时:分种:秒,其中小时、分钟、秒都都是两位整数,数位不足用零补充。
样例1:
输入: 50000
输出: 13:53:20
样例2:
输入: 96
输出: 00:01:36
#include <stdio.h>
int main() {
int total, h, m, s;
scanf("%d", &total);
h = total / 3600;
if (h >= 24) { h = h % 24; }
m = (total % 3600) / 60;
s = (total % 3600) % 60;
printf("%02d:%02d:%02d", h, m, s);
}