顺序结构程序设计 - 下

本文详细讲解了顺序结构编程中的基础知识,包括整型、浮点型数据类型存储空间,输入输出精度控制,以及字符处理、算术运算和一些基本算法演示,适合初学者入门练习。
摘要由CSDN通过智能技术生成

顺序结构程序设计 - 下

本部分题解主要顺序结构下的各种基础题目,包括了运算表达式、变量和常量、各种数据类型的输入输出、以及常见模拟数学题的锻炼,不包含任何分支选择循环等复杂结构,非常适合基础锻炼,感受程序的顺序执行过程!

整型数据类型存储空间大小

题目描述

​ 分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。

输入格式

输出格式

  • 一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

样例输入

样例输出

解:

#include<iostream>
using namespace std;

int main() {
    int a = 10;
    short b = 20;
    cout << sizeof(a) << ' ' << sizeof(b);
    return 0;
}

浮点型数据类型存储空间大小

题目描述

​ 分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。

输入格式

输出格式

  • 一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

样例输入

样例输出

解:

#include<iostream>
using namespace std;

int main() {
    float a = 10.0;
    double b = 20.0;
    cout << sizeof(a) << ' ' << sizeof(b);
    return 0;
}

其他基本数据类型存储空间大小

题目描述

​ 分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。

输入格式

输出格式

  • 一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

样例输入

样例输出

解:

#include<iostream>
using namespace std;

int main() {
    bool a = false;
    char b = '1';
    cout << sizeof(a) << ' ' << sizeof(b);
    return 0;
}

浮点数向零舍入

题目描述

​ 输入一个单精度浮点数,将其向零舍入到整数。

说明:向零舍入的含义是,正数向下舍入,负数向上舍入。

提示:可以使用强制类型转换来实现。

输入格式

  • 一个单精度浮点数。

输出格式

  • 一个整数,即向零舍入到整数的结果。

样例输入

2.3

样例输出

2

解:

#include<iostream>
using namespace std;

int main() {
    float x;
    cin >> x;
    int y = x < 0 ? (int)x + 1 : (int)x;
    cout << y;
    return 0;
}

打印ASCII码

题目描述

​ 输入一个除空格以外的可见字符(保证在函数scanf中可使用格式说明符%c读入),输出其ASCII码。

输入格式

  • 一个除空格以外的可见字符。

输出格式

  • 一个十进制整数,即该字符的ASCII码。

样例输入

A

样例输出

65

解:

#include<iostream>
using namespace std;

int main() {
    int y = (int)cin.get();
	cout << y;
    return 0;
}

打印字符

题目描述

​ 输入一个ASCII码,输出对应的字符。

输入格式

  • 一个整数,即字符的ASCII码,保证存在对应的可见字符。

输出格式

  • 一行,包含相应的字符。

样例输入

65

样例输出

A

解:

#include<iostream>
using namespace std;

int main() {
    int x;
	cin >> x;
	cout << (char)x;
    return 0;
}

整型与布尔型的转换

题目描述

​ 将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?

输入格式

  • 一个整型范围内的整数,即初始时整型变量的值。

输出格式

  • 一个整数,经过上述过程后得到的结果。

样例输入

3

样例输出

1

解:

#include<iostream>
using namespace std;

int main() {
	int x;
	cin >> x;
	bool y = (bool)x;
	cout << (int)y;
    return 0;
}

Hello, World!的大小

题目描述

​ 还记得我们曾经输出过的“Hello, World!”吗?

我们可以用sizeof函数获得它所占用的空间大小。

请编程求出它的大小,看看跟你设想的是否一样?

输入格式

输出格式

  • 一个整数,即“Hello, World!”的大小。

样例输入

样例输出

解:

#include<iostream>
using namespace std;

int main() {
    // “Hello, World!”是字符串类型。
    cout << sizeof("Hello, World!");
    return 0;
}

糖果游戏

题目描述

​ 某幼儿园里,有5个小朋友编号为1、2、3、4、5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果(键盘输入),现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果有多余的糖果,则立即吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果。

输入格式

  • 5个小朋友的糖果数。

输出格式

  • 游戏后5个小朋友的糖果数。(按5位宽度输出)

样例输入

8 9 10 11 12

样例输出

11 7 9 11 6

解:

#include<iostream>
#include <iomanip>
using namespace std;

int main() {
    int num[5];
	for (int i = 0; i < 5; i++) {
		cin >> num[i];
	}

	num[0] = num[0] / 3;
	num[1] += num[0];
	num[4] += num[0];
	for (int i = 1; i < 4; i++) {
		num[i] /= 3;
		num[i - 1] += num[i];
		num[i + 1] += num[i];
	}
	num[4] /= 3;
	num[0] += num[4];
	num[3] += num[4];


	for (int i = 0; i < 5; i++) {
		cout << setw(5) << num[i];
	}
    return 0;
}

[编程基础]输入输出练习之精度控制1

题目描述

​ 输入一个单精度浮点数,输出保留三位小数输出

输入格式

  • 一个单精度浮点数

输出格式

  • 对应的三位小数的数字

样例输入

3.14159

样例输出

3.142

解:

#include<iostream>
// #include<iomanip>
using namespace std;

int main() {
    float x;
    cin >> x;
    printf("%.3f", x);  // C风格输出
    
    // cout<<fixed<<setprecision(3)<< x;  // C++风格输出
    return 0;
}

[编程基础]输入输出练习之精度控制2

题目描述

​ 输入一个双精度浮点数,保留12位小数输出

输入格式

  • 一个双精度小数

输出格式

  • 保留12位的数字

样例输入

3.1415926535897932

样例输出

3.141592653590

解:

#include<iostream>
// #include<iomanip>
using namespace std;

int main() {
    double x;
    cin >> x;
    printf("%.12f", x);  // C风格输出
    
    // cout<<fixed<<setprecision(12)<< x;  // C++风格输出
    return 0;
}

[编程基础]输入输出练习之精度控制3

题目描述

​ 输入一个字符,一个数字,一个单精度浮点数,一个双精度浮点数,按顺序输出它们四个

且数字指定占4个字符宽靠右对齐,单精度浮点数保留2位小数,双精度保留12位小数,占一行输出、空格分隔

输入格式

  • 一个字符、一个数字、一个单精度小数、一个双精度小数,空格分隔,占一行

输出格式

  • 按要求输出的四个数据

样例输入

C 99 12.1323 3.14159265358979

样例输出

C 99 12.13 3.141592653590

解:

#include<iostream>
#include<iomanip>
using namespace std;

int main() {
    char a;
	int b;
	float c;
	double d;
	cin >> a >> b >> c >> d;
	cout << a << ' ';
	cout << setw(4) << b << ' ';
	cout << fixed << setprecision(2) << c << ' ';
	cout << fixed << setprecision(12) << d;
    return 0;
}

[编程基础]输入输出练习之浮点数专题

题目描述

​ 输入一个双精度浮点数,输出这个浮点数的%f结果、保留5位小数的结果、%e、%g格式的结果

输入格式

  • 一个双精度浮点数

输出格式

  • 四个结果,各占一行

    第一行,%f的结果

    第二行,%f保留5位小数的结果

    第三行,%e格式的输出

    第四行,%g格式的输出

样例输入

3.14159265358

样例输出

3.141593
3.14159
3.141593e+00
3.14159

解:

#include<iostream>
using namespace std;

int main() {
    double x;
	cin >> x;
	printf("%f\n", x);
	printf("%.5f\n", x);
	printf("%e\n", x);
	printf("%g\n", x);
    return 0;
}

字符菱形

题目描述

​ 给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。

输入格式

  • 输入只有一行, 包含一个字符。

输出格式

  • 该字符构成的菱形。

样例输入

*

样例输出

  *
 ***
*****
 ***
  *

解:

#include<iostream>
using namespace std;

int main() {
    char a = cin.get();
    /*
	int x = 5;  // 菱形的对角线长度
	for (int i = 0; i <= x / 2; i++) {
		for (int o = x / 2 - i; o != 0; o--) {
			cout << ' ';
		}
		for (int o = 0; o < i * 2 + 1; o++) {
			cout << a;
		}
		cout << endl;
	}
	for (int i = x / 2 - 1; i >= 0; i--) {
		for (int o = x / 2 - i; o != 0; o--) {
			cout << ' ';
		}
		for (int o = 0; o < i * 2 + 1; o++) {
			cout << a;
		}
		cout << endl;
	}
	*/
	cout << "  " << a << endl;  // 可直接打印输出
	cout << ' ' << a << a << a << endl;
	cout << a << a << a << a << a << endl;
	cout << ' ' << a << a << a << endl;
	cout << "  " << a << endl;
    return 0;
}

苹果和虫子

题目描述

​ 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

输入格式

  • 输入仅一行,包括n,x和y(均为整数)。输入数据保证y <= n * x。

输出格式

  • 输出也仅一行,剩下的苹果个数。

样例输入

10 4 9

样例输出

7

解:

#include<iostream>
using namespace std;

int main() {
    int n, x, y;
	cin >> n >> x >> y;
	cout << (y % x == 0? n - (y / x): n - (y / x) -1);
    return 0;
}

计算线段长度

题目描述

​ 已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度。

输入格式

  • 共两行。
    第一行是两个实数Xa,Ya,即A的坐标。
    第二行是两个实数Xb,Yb,即B的坐标。
    输入中所有实数的绝对值均不超过10000。

输出格式

  • 一个实数,即线段AB的长度,保留到小数点后3位。

样例输入

1 1

2 2

样例输出

1.414

解:

#include<iostream>
using namespace std;

int main() {
    double ax, ay, bx, by;
	cin >> ax >> ay >> bx >> by;
	double y = pow(ax - bx, 2) + pow(ay - by, 2);
	y = pow(y, 1.0 / 2);
	printf("%.3f", y);
    return 0;
}

计算三角形面积

题目描述

​ 平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。

输入格式

  • 输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。

输出格式

  • 输出也是一行,输出三角形的面积,精确到小数点后两位。

样例输入

0 0 4 0 0 3

样例输出

6.00

解:

#include<iostream>
// #include<iomanip>
using namespace std;

int main() {
    float x1, x2, x3, y1, y2, y3;
	cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
	double a, b, c;
	a = pow(pow(x1 - x2, 2) + pow(y1 - y2, 2), 1.0 / 2);
	b = pow(pow(x2 - x3, 2) + pow(y2 - y3, 2), 1.0 / 2);
	c = pow(pow(x3 - x1, 2) + pow(y3 - y1, 2), 1.0 / 2);
	double d = (a + b + c) / 2;
    // 使用海伦公式
	double y = pow(d*(d - a)*(d - b)*(d - c), 1.0 / 2);
	printf("%.2f", y);  // C风格输出
    
	// cout << fixed << setprecision(2) << y << endl;  // C++风格输出
    return 0;
}

等差数列末项计算

题目描述

​ 给出一个等差数列的前两项a1,a2,求第n项是多少。

输入格式

  • 一行,包含三个整数a1,a2,n。-100 <= a1,a2 <= 100,0 < n <= 1000。

输出格式

  • 一个整数,即第n项的值。

样例输入

1 4 100

样例输出

298

解:

#include<iostream>
using namespace std;

int main() {
    long long a1, a2, n;
	cin >> a1 >> a2 >> n;
	long long o = a2 - a1;
	for (int i = 1; i < n; i++) {
		a1 += o;
	}
	cout << a1;
    return 0;
}

A*B问题

题目描述

​ 输入两个正整数A和B,求A*B。

输入格式

  • 一行,包含两个正整数A和B,中间用单个空格隔开。1 <= A,B <= 50000。

输出格式

  • 一个整数,即A*B的值。

样例输入

3 4

样例输出

12

解:

#include<iostream>
using namespace std;

int main() {
    long long a, b;
	cin >> a >> b;
	long long y = a * b;
	cout << y;
    return 0;
}

计算2的幂

题目描述

​ 给定非负整数n,求2n。

输入格式

  • 一个整数n。0 <= n < 31。

输出格式

  • 一个整数,即2的n次方。

样例输入

3

样例输出

8

解:

#include<iostream>
using namespace std;

int main() {
    short n;
	cin >> n;
	long long y = 2;
	for (int i = 1; i < n; i++) {
		y *= 2;
	}
	cout << y;
    return 0;
}
  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值