1. (程序题)
题目编号:Exp01-Basic02,GJBook3-02-04【计2015级期中试题】
题目名称:温度转换
题目描述:已知摄氏温度(℃)与华氏温度(℉)的转换关系是:
编写一个摄氏温度(℃)与华氏温度(℉)进行转换的程序,输入摄氏温度,输出华氏温度。
输入:从键盘随机输入一个摄氏温度数据。题目保证测试数据符合要求。
输出:输出对应的华氏温度数据,保留小数点后3位。
提示:OJ环境要求程序运行时输入和输出要和样例一模一样,因此在此平台上提交的程序不要有多余的输入提示信息和换行,否则会判错哦。
样例1:
输入:
5
输出:
41.000
样例2:
输入:
27
输出:
80.600
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double c,
f;
cin >> c;
f = (9.0 / 5.0)*c + 32;
cout << fixed << setprecision(3) << f << endl;
system("pause");
return 0;
}
ps:有细心的小伙伴一定看到了多了一个<iomanip>的头文件,它其实是帮助我们输出保留小数点后3位的华氏温度
C++里面标准输出控制小数点后几位稍微有些麻烦
不像C里那么直接用printf输出即可(c++也可以用这种方法)
printf("%.3f",f);
2. (程序题)
题目编号 :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 <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
double x, y, z,d;
double A,B,C,D;
cin >> x >> y >> z;
cin >> A >> B >> C >> D;
d = fabs(A * x + B * y + C * z + D) / sqrt(A * A + B * B + C * C);
cout << fixed << setprecision(3) << d << endl;
return 0;
}
<cmath>头文件用于进行数学公式运算
3. (程序题)
题目编号 :Exp01-Basic04,GJBook3-02-05题目名称:五则运算题目描述:
编写程序,输入两个整数,分别求它们的和、差、积、商、余数并输出。
输入:
从键盘随机输入两个整数。题目保证测试数据符合要求。
输出:
依次为所输入的两个整数的和、差、积、商和余数5个整数, 数字之间以1个英文空格间隔。
样例1:
输入: 10 3
输出: 13 7 30 3 1
样例2:
输入: 9 2
输出: 11 7 18 4 1
#include <iostream>
using namespace std;
int main()
{
int x, y;
cin >> x >> y;
cout << x + y << " " << x - y << " " << x * y << " " << x / y << " " << x % y;
return 0;
}
4. (程序题)
题目编号 :Exp01-Enhance02
题目名称:时间转换
题目描述:编程序,输入午夜后的某秒数,输出该秒的小时:分种:秒。
输入:从键盘输入秒数。
输出:秒数转换后的小时:分种:秒,其中小时、分钟、秒都都是两位整数,数位不足用零补充。
样例1:
输入: 50000
输出: 13:53:20
样例2:
输入: 96
输出: 00:01:36
ps:不要把简单问题复杂化(看到有的同学开始用if条件了)
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a;
int x, y, z;
cin >> a;
x = a % (3600 * 24) / 3600;
y = a % 3600 / 60;
z = a % 60;
cout << setfill('0') << setw(2) << x << ":";
cout << setfill('0') << setw(2) << y << ":";
cout << setfill('0') << setw(2) << z << endl;
return 0;
}
ps:
C++数位不足用0补充的方法:<iomanip>头文件
setfill('x')设置填充字符
stew() 设置
C数位不足用0补充就直接用printf即可
printf("%0ad",n);
0代表不够位数用0补充
a表示输出长度为a的整数
5. (程序题)
题目编号:Exp01-Basic03,GJBook3-02-06
题目名称:求平均值
题目描述:
编写程序,输入3个浮点数,求它们的平均值并输出。
输入:
从键盘随机输入3个浮点数。
输出:
输出3个浮点数的平均值,小数点后保留3位。
样例1:
输入: 1.5 1.7 3.1
输出: 2.100
样例2:
输入: 1 2 3
输出: 2.000
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double a, b, c;
double d;
cin >> a >> b >> c;
d = (a + b + c) / 3;
cout << fixed << setprecision(3) << d << endl;
return 0;
}
6. (程序题)
题目编号:Exp01-Basic01,GJBook3-02-03
题目名称:前驱后继字符
题目描述:编写程序,输入一个大写字母,然后顺序输出该字母的前驱字母、该字母本身、它的后继字母,此题不考虑输入字母为‘A’和‘Z’的情况。
输入:从键盘输入任何一个不是‘A’或‘Z’的大写字母。题目已保证测试数据符合要求。
输出:所输入字母的前驱、本身和后继三个字母,字母间无间隔符号。
样例1:
输入: B
输出: ABC
样例2:
输入: W
输出: VWX
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char a,b,c = 0;
cin >> a;
b = a - 1;
c = a + 1;
cout << b << a << c << endl;
return 0;
}
ASCII码入门