顺序结构程序设计 - 上
本部分题解主要顺序结构下的各种基础题目,包括了运算表达式、变量和常量、各种数据类型的输入输出、以及常见模拟数学题的锻炼,不包含任何分支选择循环等复杂结构,非常适合基础锻炼,感受程序的顺序执行过程!
文章目录
求圆的面积
题目描述:
题目很简单,已知半径r,求一个圆的面积是多大。
公式不用提了吧~~
输入格式
- 输入一个半径,浮点类型~
输出格式
- 输出它对应的面积大小,保留两位小数哦!
样例输入
2
样例输出
12.57
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
double PI = 3.1415926;
double r;
cin >> r;
printf("%.2f", PI * (r * r)); // C风格输出
// cout<<fixed<<setprecision(2)<< PI * (r * r); // C++风格输出
return 0;
}
拆分位数
题目描述:
学完算数运算符了,今天的作业是让你拆分一个三位数的个位、十位、百位!
你已经完全可以做了哦!
输入格式
- 输入一个三位数
输出格式
- 逆序输出这个三位数,输出个位、十位、百位,三个数字,用空格分开
样例输入
356
样例输出
6 5 3
解:
#include<iostream>
using namespace std;
int main() {
int a;
cin >> a;
for (; a > 10; a = a/10) {
cout << a % 10 << " ";
}
cout << a % 10;
return 0;
}
学习ASCII码
题目描述:
刚开始学C语言,ASCII码可是必须要会的哦!那么问题来了,要求你用熟悉的printf输出字符常量 ’ t ’ 的ASCII以及ASCII码值63对应的字符!
注意,是两个结果,一个数字,一个字符,用空格隔开!
输入格式
- 无
输出格式
- 字符常量 ’ t ’ 的ASCII以及ASCII码值63对应的字符!
样例输入
无
样例输出
无
解:
#include<iostream>
using namespace std;
int main() {
printf("%d %c", 't', 63);
return 0;
}
printf基础练习
题目描述:
继续练习printf函数,要求你输出123456789这个数字的八进制与十六进制,不要忘记他们的前缀哦!
输入格式
- 无
输出格式
-
123456789这个数字的八进制和十六进制数
两个结果占一行,空格分开
样例输入
无
样例输出
无
解:
#include<iostream>
using namespace std;
int main() {
int a = 123456789;
printf("%o\n", a, a);
printf("%x", a);
return 0;
}
交换值
题目描述:
输入两个正整数a和b,试交换a、b的值(使a的值等于b,b的值等于a)。
输入格式
- 输入两个正整数a和b。
输出格式
- 输出a与b交换值后的结果。
样例输入
2 3
样例输出
3 2
解:
#include<iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << b << ' ' << a;
return 0;
}
整数的和
题目描述:
求3个整数的和。
输入a、b、c这3个整数,求它们的和。
输入格式
- 3个整数,空格分开
输出格式
- 三个数的和
样例输入
1 2 3
样例输出
6
解:
#include<iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a + b + c);
return 0;
}
买图书
题目描述:
已知小明有n元,他买了一本书,这本书原价为m元,现在打8折出售。求小明还剩多少钱(保留2位小数)。
输入格式
- 输入n,m,空格分隔
输出格式
- 小明还剩多少钱(保留2位小数)。
样例输入
100 100
样例输出
20.00
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
double y = n - (m * 0.8);
printf("%.2f", y); // C风格输出
// cout<<fixed<<setprecision(2)<< y; // C++风格输出
return 0;
}
整型与布尔型的转换
题目描述:
将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?
输入格式
- 一个整型范围内的整数,即初始时整型变量的值。
输出格式
- 一个整数,经过上述过程后得到的结果。
样例输入
3
样例输出
1
解:
#include<iostream>
using namespace std;
int main() {
int a;
cin >> a;
a = (bool)a;
cout << a;
return 0;
}
Hello, World!的大小
题目描述:
还记得我们曾经输出过的“Hello, World!”吗?
我们可以用sizeof函数获得它所占用的空间大小。
请编程求出它的大小,看看跟你设想的是否一样?
输入格式
- 无
输出格式
- 一个整数,即“Hello, World!”的大小。
样例输入
无
样例输出
无
解:
#include<iostream>
using namespace std;
int main() {
// “Hello, World!”是字符串类型。
cout << sizeof("Hello, World!");
return 0;
}
计算(a+b)*c的值
题目描述:
给定3个整数a、b、c,计算表达式(a+b)*c的值。
输入格式
- 输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。
(-10,000 < a,b,c < 10,000)
输出格式
- 输出一行,即表达式的值。
样例输入
2 3 5
样例输出
25
解:
#include<iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a + b) * c;
return 0;
}
计算(a+b)/c的值
题目描述:
给定3个整数a、b、c,计算表达式(a+b)/c的值,/是整除运算。
输入格式
- 输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,000 < a,b,c < 10,000, c不等于0)
输出格式
- 输出一行,即表达式的值。
样例输入
1 1 3
样例输出
0
解:
#include<iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a + b) / c;
return 0;
}
带余除法
题目描述:
给定被除数和除数,求整数商及余数。
此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。看看程序运行结果与数学上的定义有什么不同?
输入格式
- 一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。
输出格式
- 一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
样例输入
10 3
样例输出
3 1
解:
#include<iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << (int)a / b << ' ';
cout << (int)a % b;
return 0;
}
计算分数的浮点数值
题目描述:
两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点后9位)。
输入格式
- 输入仅一行,包括两个整数a和b(b不为0)。
输出格式
- 输出也仅一行,分数 a/b 的浮点数值(双精度浮点数,保留小数点后9位)。
样例输入
5 7
样例输出
0.714285714
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
double a, b;
cin >> a >> b;
double y = a / b;
printf("%.9f", y); // C风格输出
// cout<<fixed<<setprecision(9)<< y; // C++风格输出
return 0;
}
鸡兔同笼问题
题目描述:
数学中经典的“鸡兔同笼”问题,已知头共x个,脚共y只,问笼中的鸡和兔各有多少只?
输入格式
- 头和脚的数量
输出格式
- 鸡和兔各自数量。一个空格隔开。
样例输入
30 90
样例输出
15 15
解:
#include<iostream>
using namespace std;
int main() {
int x, y;
cin >> x >> y;
int b = (y - 2 * x) / 2;
cout << x - b << " " << b;
return 0;
}
甲流疫情死亡率
题目描述:
甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
输入格式
- 输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
输出格式
- 输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
样例输入
10433 60
样例输出
0.575%
提示:输出%可以使用printf(“%%”);
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
double n , m;
cin >> m >> n;
double y = (n / m) * 100;
printf("%.3f%%", y); // C风格输出
// cout<<fixed<<setprecision(3)<< y; // C++风格输出
return 0;
}
计算多项式的值
题目描述:
对于多项式f(x) = ax^3 + bx^2 + cx + d 和给定的a, b, c, d, x,计算f(x)的值。
输入格式
- 输入仅一行,包含5个实数,分别是x,及参数a、b、c、d的值,每个数都是绝对值不超过100的双精度浮点数。数与数之间以一个空格分开。8.316 9.24
输出格式
- 输出一个实数,即f(x)的值,保留到小数点后7位。
样例输入
2.31 1.2 2 2 3
样例输出
33.0838692
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
double x, a, b, c, d;
cin >> x >> a >> b >> c >> d;
double x2 = x * x;
double y = (a * x * x2) + b * x2 + c * x + d;
printf("%.7f", y); // C风格输出
// cout<<fixed<<setprecision(7)<< y; // C++风格输出
return 0;
}
二级C语言-温度转换
题目描述:
输入一个华氏温度,要求输出摄氏温度。公式为
保留两位小数
输入格式
- 无
输出格式
- 无
样例输入
-40
样例输出
-40.00
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
double a = 5.0 / 9.0;
double x;
cin >> x;
printf("%.2f", a * (x - 32)); // C风格输出
// cout<<fixed<<setprecision(2)<< a * (x - 32); // C++风格输出
return 0;
}
与圆相关的计算
题目描述:
给出圆的半径,求圆的直径、周长和面积。
输入格式
- 输入包含一个实数r(0 < r <= 10,000),表示圆的半径。
输出格式
- 输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。
样例输入
3.0
样例输出
6.0000 18.8495 28.2743
提示:如果圆的半径是r,那么圆的直径、周长、面积分别是2*r、2 * pi * r、pi * r * r,其中约定pi=3.14159。
可以使用printf(“%.4lf”, …)实现保留小数点后4位。
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
float pi = 3.14159;
int r;
cin >> r;
double x = 2 * r;
double y = 2 * r * pi;
double z = r * r * pi;
printf("%.4lf %.4lf %.4lf", x, y, z); // C风格输出
// cout<<fixed<<setprecision(4)<< x << ' ' << y << ' ' << z; // C++风格输出
return 0;
}
计算并联电阻的阻值
题目描述:
对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下:
R = 1/(1/r1 + 1/r2)
输入格式
- 两个电阻阻抗大小,浮点型,以一个空格分开。
输出格式
- 并联之后的阻抗大小,结果保留小数点后2位。
样例输入
1 2
样例输出
0.67
**提示:**计算过程使用float类型
解:
#include<iostream>
// #include<iomanip>
using namespace std;
int main() {
float r1, r2;
cin >> r1 >> r2;
float r = 1 / (1 / r1 + 1 / r2);
printf("%.2f", r); // C风格输出
// cout<<fixed<<setprecision(2)<< r; // C++风格输出
return 0;
}
成绩
题目描述:
牛牛最近学习了 C++入门课程,这门课程的总成绩计算方法是:
总成绩 = 作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%
牛牛想知道,这门课程自己最终能得到多少分。
输入格式
- 只有 1 行,包含三个非负整数A、B、C,分别表示牛牛的作业成绩、小测 成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100 分。
输出格式
- 只有 1 行,包含一个整数,即牛牛这门课程的总成绩,满分也是 100 分。
样例输入
100 100 80
样例输出
90
解:
#include<iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (int)(a * 0.2 + b * 0.3 + c * 0.5);
return 0;
}
题目描述:
输入格式
输出格式
样例输入
样例输出
解:
#include<iostream>
using namespace std;
int main() {
return 0;
}
r2;
float r = 1 / (1 / r1 + 1 / r2);
printf(“%.2f”, r); // C风格输出
// cout<<fixed<<setprecision(2)<< r; // C++风格输出
return 0;
}
### 成绩
**题目描述**:
牛牛最近学习了 C++入门课程,这门课程的总成绩计算方法是:
总成绩 = 作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%
牛牛想知道,这门课程自己最终能得到多少分。
**输入格式**
- 只有 1 行,包含三个非负整数A、B、C,分别表示牛牛的作业成绩、小测 成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100 分。
**输出格式**
- 只有 1 行,包含一个整数,即牛牛这门课程的总成绩,满分也是 100 分。
**样例输入**
>100 100 80
**样例输出**
>90
解:
```c++
#include<iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (int)(a * 0.2 + b * 0.3 + c * 0.5);
return 0;
}