c++复习_第一天(引用+小众考点)

https://en.cppreference.com/w/cpp/io/manip

参考一下,这一部分比较基础,所以就一遍过

eg1:转16进制

复制代码
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
    int n;
    cout << "请输入一个整数:";
    cin >> n;

    cout << "十六进制输出为:" << showbase << hex << n << endl;
    return 0;
}

eg2:表格对齐

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    // 表头
    cout << left << setw(10) << "姓名"
         << right << setw(5) << "年龄"
         << setw(8) << "成绩" << endl;

    // 学生信息
    cout << left << setw(10) << "张天一"
         << right << setw(5) << 19
         << setw(8) << 85.5 << endl;

    cout << left << setw(10) << "Alice"
         << right << setw(5) << 21
         << setw(8) << 90.0 << endl;

    cout << left << setw(10) << "欧阳中天"
         << right << setw(5) << 22
         << setw(8) << 78.2 << endl;

    return 0;
}

eg3:设置精度

cpp 复制代码
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
    double num;
    cout << "请输入一个浮点数: ";
    cin >> num;

    //设置精度为3
    cout << fixed << setprecision(3);
    cout << "保留三位小数:" << num << endl;

    //恢复默认精度
    cout.unsetf(ios::fixed);
    cout << setprecision(6); //恢复默认精度
    cout << "恢复默认精度" << num << endl;
    return 0;
}

e g4:小数点

cpp 复制代码
//保留小数点后3位
#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
    double num;
    cout << "请输入一个浮点数:";
    cin >> num;

    cout << fixed << setprecision(3);
    cout << "保留3位小数的输出结果为:" << num << endl;

    return 0;
}

eg5://值传递:不会真正交换主函数中的变量

//地址传递,使用指针,交换主函数变量的值

//引用传递,最简单最安全的方式,直接交换主函数变量

cpp 复制代码
#include<iostream>
using namespace std;

//值传递:不会真正交换主函数中的变量
void swapByValue(int a ,int b){
    int temp = a;
    a = b;
    b = temp;
}

//地址传递,使用指针,交换主函数变量的值
void swapByAddress(int *a,int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

//引用传递,最简单最安全的方式,直接交换主函数变量
void swapByReference(int& a,int& b)
{
    int temp = a;
    a = b;
    b = temp;
}
int main()
{
    int x =10,y = 20;
    //值传递
    cout << "初值: x =  " << x <<", y = " << y << endl;
    swapByValue(x,y);
    cout << "main中值传递后: x =  " << x <<", y = " << y << endl;
    //地址传递
    swapByAddress(&x,&y);
    cout << "main中地址传递后: x =  " << x <<", y = " << y << endl;
    //引用传递
    swapByReference(x,y);
    cout << "main中引用传递后: x =  " << x <<", y = " << y << endl;

    return 0;
}

eg6:函数重载

cpp 复制代码
//重载(overload)函数就是在同一个作用域内几个函数名字相同但形参列表不同。一个函数名对应多个不同的代码。
#include<iostream>
using namespace std;

void add(int x,int y)
{
    cout << "int:" << x + y << endl;
}
void add(float x)
{
    cout << "float: " << 10 + x << endl;
}
double add(double x,double y)
{
    return x + y;
}

int main()
{
    add(10.2);
    add(1,3);
    return 0;
}

e g7:默认参数

cpp 复制代码
#include<iostream>
using namespace std;

void greetings(string name,string greeting = "Hello")
{
    cout << greeting << "," << name << endl;
}

int main()
{
    greetings("Alice");
    greetings("Bob","Hi");

    return 0;
}

e g8:函数重载

cpp 复制代码
#include<iostream>
#include<cmath>
#define PI 3.14
using namespace std;

double caculateArea(double radius)
{
    return PI * radius * radius;
}

double caculateArea(double length,double width)
{
    return length * width;
}

double caculateArea(double a ,double b,double c)
{
    double s = (a + b + c)/2.0;
    return sqrt(s*(s-a)*(s-b)*(s-c));
}

int main()
{
    cout << "圆的面积" << caculateArea(5.0) << endl;

    cout << "矩形面积" << caculateArea(4.0,6.0) << endl;

    cout << "三角形面积" << caculateArea(3.0,4.0,5.0) << endl;

    return 0;
}

eg9:字符串

cpp 复制代码
 #include<iostream>
 #include<string>
 using namespace std;
 int main()
 {
    string s;
    //cin >> s; //无法读取含有空格的字符串
    getline(cin,s); //这个就可以读取一行的
    cout << s.length() << endl;
    cout << s.front() << "," << s.back() << endl;
    for(auto& ch : s)
    if(ch == 'a') ch = 'A';
    cout << s << endl;
    return 0;

 }
相关推荐
jeo陽几秒前
04-循环实战:素数、最大公约数、级数求和与枚举法
c语言·开发语言·数据结构
划破黑暗的第一缕曙光17 分钟前
[C++]:2.类和对象(下)
c++·类和对象·对象·类
暖核20 分钟前
kubeadm 集群运维:Worker 节点下线删除、整套集群销毁重建指南
运维·开发语言·php
tachibana21 小时前
Go 语言里的 Context 是什么?
开发语言·后端·golang·go·语言
天桥下的卖艺者1 小时前
R语言使用ggcube包轻松绘制文章中的各类3D图形
开发语言·3d·r语言
slandarer1 小时前
MATLAB | 趣味编程——动态字符串甜甜圈和爱心
数据结构·matlab·趣味编程
黎相思2 小时前
LRU Cache
c++·缓存
UIU1142 小时前
P1003 [NOIP 2011 提高组] 铺地毯
数据结构·c++·算法
爱读书的小胖2 小时前
LeetCode 88. 合并两个有序数组 C 解题分析
c语言·数据结构·算法
唐钰小宝B2 小时前
深度解读 JDK 8、JDK 11、JDK 17 和 JDK 21 的区别
java·开发语言·windows