• C++入门刷题练习(附代码、思路以及相关拓展)


    CPP1 定义变量

    定义变量

    描述

    按顺序分别定义char、int、long、double类型的变量,并用sizeof()依次输出这几个变量在内存中所占用的字节数。

    思路

    算个开胃菜,熟悉一下CPP的打印输出

    代码

    #include 
    using namespace std;
    
    int main()
    {
    	cout << sizeof(char) << endl;
    	cout << sizeof(int) << endl;
    	cout << sizeof(long) << endl;
    	cout << sizeof(double) << endl;
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    CPP2实现四舍五入

    实现四舍五入

    描述

    将浮点数转换为整数类型,要求四舍五入。

    思路

    一个正数四舍五入,给它加上0.5再转为整形即可,一个负数四舍五入,减0.5再转为整形即可,可以套几个数字试试。

    关于浮点型转为整形,有两种风格,一种是C风格,一种是C++风格的,这里补充一下C++风格的:C++的四种类型转换

    代码

    #include 
    using namespace std;
    
    int main() {
    
    	double d;
    	cin >> d;
    
    	// write your code here......
    	
    	if (d>=0)
    	{
    		cout << (int)(d + 0.5) << endl;//C语言风格的类型转换
    		//cout << static_cast(d + 0.5) << endl;//C++风格的类型转换     
    	}
    	else
    	{
    		cout << (int)(d - 0.5) << endl;
    		//cout << static_cast(d - 0.5) << endl;//C++风格的类型转换
    	}
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    CPP3 两数求和

    两数求和

    描述

    键盘录入两个整数 a 和 b,并对 a 和 b 求和,输出结果。

    思路

    题目链接里有具体描述,里面说a和b的范围是[-1000,1000],所以不会溢出,所以我们先输入两个整数再直接输出即可。

    代码

    #include 
    using namespace std;
    
    int main() {
    
    	// write your code here......
    	int a, b;
    	cin >> a >> b;
    	cout << a + b << endl;
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    CPP4 获取两数中的较大值

    获取两数中的较大值

    描述

    键盘录入两个整数 a 和 b,获取这两个整数中的较大值,并输出。

    思路

    比较两个数,可以用if else语句,还可以用一些接口,比如algorithm里面的max接口,这里我使用三目表达式。

    代码

    #include 
    using namespace std;
    
    int main() {
    
        // write your code here......
        int a,b;
        cin>>a>>b;
        cout<<(a>b?a:b)<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    CPP5 简单运算

    简单运算

    描述

    键盘输入两个 int 范围的正整数 a 和 b,范围为[1, 9999],输出这两个 int 范围的正整数的和,差,积,商,模(若 a > b 则输出 a - b,a / b,a % b 的值反之输出 b - a,b / a,b % a 的值,不考虑小数)

    思路

    这题也是考虑判断,a>b和a

    代码

    #include 
    using namespace std;
    
    int main() {
    
    	// write your code here......
    	int a, b;
    	cin >> a >> b;
    	cout << (a + b) << " ";
    	cout << ((a > b) ? (a - b) : (b - a))<<" ";
    	cout << (a * b) << " ";
    	cout << ((a > b) ? (a / b) : (b / a)) << " ";
    	cout << ((a > b) ? (a % b) : (b % a)) <<endl;
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    CPP6 交换两个变量的值

    交换两个变量的值

    描述

    实现交换两个int类型变量的值

    思路

    交换两个数,很多种做法,一般有三角交换,按位异或和加减等方法。如果我们自定义一个swap函数,就得注意实参和形参(这里我们都写在主函数内,操作的都是实参,所以不用考虑形参的问题)

    代码

    三角交换

    #include 
    using namespace std;
    
    int main() {
    
        int a = 0;
        int b = 0;
        cin >> a;
        cin >> b;
    
        //write your code here.......
        //三角交换
        int tmp=a;
        a=b;
        b=tmp;
        
        
    
        cout << a << " " << b << endl;
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    按位异或,这种方法的好处是不会溢出,且不用定义第三个变量。

    #include 
    using namespace std;
    
    int main() {
    
        int a = 0;
        int b = 0;
        cin >> a;
        cin >> b;
    
        //write your code here.......
        a=a^b;
        b=a^b;
        a=a^b;        
        cout << a << " " << b << endl;    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    CPP7 获取三个数中的最大值(三元表达式实现)

    获取三个数中的最大值(三元表达式实现

    描述

    键盘录入三个整数 a、b、c,获取这三个整数中的最大值,并输出。(要求使用三元表达式实现)

    思路

    这题的麻烦点在于题目要求不用if else,而是用一个三目运算符完成三个数的比较。

    所以第一步(a>b?a:b),再把这个表达式当做一个整体去与第三个数c比较

    代码

    #include 
    using namespace std;
    
    int main() {
        
        int a, b, c;
        cin >> a;
        cin >> b;
        cin >> c;
    
        // write your code here......
         cout<<((a>b?a:b)>c?(a>b?a:b):c)<<endl;
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    CPP8 计算商品打折结算金额

    计算商品打折结算金额_

    描述

    牛牛商场促销活动:

    满100打9折;

    满500打8折;

    满2000打7折;

    满5000打6折

    牛阿姨算不清楚自己应该付多少钱,请你帮忙算一下

    思路

    这题可以用if else,也可以用switch实现,这里采用if else,因为if else更好控制。

    题目要求保留小数点后一位,题目给的代码板子初始化就为我们控制好了输出的格式,如果我们要自己控制的话可以**使用printf(“%.1f”,xxx);**来实现保留小数点后一位

    代码

    #include 
    #include 
    using namespace std;
    
    int main() {
    
    	double price;
    	cin >> price;
    
    	double cost = 0.0;
    
    	// write your code here.......
    	if (price>=5000)//打六折
    	{
    		cost = price * 0.6;
    	}
    	else if(price >= 2000)//打七折
    	{
    		cost = price * 0.7;
    	}
    	else if (price >= 500)//打八折
    	{
    		cost = price * 0.8;
    	}
    	else if (price >= 100)//打九折
    	{
    		cost = price * 0.9;
    	}
    	else//不打折
    	{
    		cost = price;
    	}
    	cout << setiosflags(ios::fixed) << setprecision(1) << cost << endl;//控制格式化输出
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    CPP9 判断身材状态

    判断身材状态_

    描述

    体重指数(BMI)是世界卫生组织(WHO)推荐国际统一使用的肥胖分型标准,即BMI=体重/身高2(kg/m2)。小于 18.5 属于"偏瘦",大于等于 18.5 小于 20.9 属于"苗条",大于等于 20.9 小于等于 24.9 属于"适中",超过 24.9 属于"偏胖"。下面由你来编写一段逻辑,输入用户的身高和体重,计算出对应的体重指数,并返回他们的身材状态。

    思路

    先根据题目给的公式算出BMI,再判断BMI是哪个范围的给出对应的答案即可。可以根据这个算算自己的BMI是多少😳

    代码

    #include 
    using namespace std;
    
    int main() {
    
    	double weight;
    	double height;
    
    	cin >> weight;
    	cin >> height;
    
    	// write your code here......
    	double bmi = weight / height / height;
    	if (bmi<18.5)
    	{
    		cout << "偏瘦" << endl;
    	}
    	else if (bmi < 20.9)
    	{
    		cout << "苗条" << endl;
    	}
    	else if (bmi < 24.9)
    	{
    		cout << "适中" << endl;
    	}
    	else
    	{
    		cout << "偏胖" << endl;
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    CPP10 判断成绩等级

    判断成绩等级

    描述

    键盘录入一个成绩(整数),判断并输出成绩的等级,如果用户输入成绩不合法(小于0或者大于100)则输出成绩不合法。

    90-100 优秀
    80-89 良
    70-79 中
    60-69 及格
    0-59 差

    思路

    和上面题目的思路大同小异,也是判断一个数是否在某特定区间内。

    代码

    #include 
    using namespace std;
    
    int main() {
    
    	int score;
    	cin >> score;
    
    	// write your code here......
    	if (score<0)
    	{
    		cout << "成绩不合法" << endl;
    	}
    	else if(score <= 59)
    	{
    		cout << "差" << endl;
    	}
    	else if (score <= 69)
    	{
    		cout << "及格" << endl;
    	}
    	else if (score <= 79)
    	{
    		cout << "中" << endl;
    	}
    	else if (score <= 89)
    	{
    		cout << "良" << endl;
    	}
    	else if (score <= 100)
    	{
    		cout << "优秀" << endl;
    	}
    	else
    	{
    		cout << "成绩不合法" << endl;
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
  • 相关阅读:
    什么是信号处理?如何处理信号?
    Python优缺点总结
    如何使用 Docker 部署 Appsmith 低代码平台
    基于粒子群优化算法的最优潮流(IEEE30节点(Matlab代码实现)
    Java容器之Map
    redis的原理和源码-事务机制
    springcloud05——Zookeeper实现支付微服务
    基于spring boot的医疗管理系统 /基于java的医疗系统
    【LeetCode刷题-双指针】--16.最接近的三数之和
    深入理解java虚拟机-Java内存区域与内存溢出异常
  • 原文地址:https://blog.csdn.net/m0_53005929/article/details/126533696