CPP基本语法笔记(上)

简介: CPP基本语法笔记

cpp基本语法笔记


一.变量、输入输出、表达式和顺序语句


1.固定格式


#include<iostream>
using namespace std;
int main()
{
    cout << "Hello World" << endl;
    return 0;
}u


2.变量类型


常用


类型 字节
bool – > false / true – > 0/1 1byte
char ‘c’, ‘a’, ’ ', ‘\n’ 1byte
int -1247483648 ~ 2147483647 4byte
float 1.23, 2.5, 1.235e2 6~7位有效数字 4byte
double 15~16位有效数字 8byte


更长


类型 字节
long long //-2^63 ~ 2^63-1 8byte
long double //18~19位有效数字 16byte


3.输入输出


a+b


cin输入 cout输出


#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin >> a >> b; //输入,方向 >>
    cout << a + b << a * b << endl;  //输出,方向 <<,   endl->回车
    return 0;
}


scanf输入 printf输出


#include<cstdio>
using namespace std;
int main()
{
    int a,b;
    scanf("%d%d", &a, &b); //%d读入整数类型,加&符号 
    printf("a + b =%d\na * b= %d\n", a + b, a * b);
    return 0;
}


浮点数:


#include<cstdio>
using namespace std;
int main()
{
    float a,b;
    scanf("%f%f", &a, &b); //%d读入整数类型,加&符号 
    printf("a + b =%.2f\na * b= %.3f\n", a + b, a * b);  //浮点数用%f,保留几位小数就在中间加点几
    return 0;
}


char型:


#include<cstdio>
using namespace std;
int main()
{
    char a,b;
    scanf("%c%c", &a, &b); //%c读入字符型,%c会读入空格,cin不会
    printf("%c%c", a , b);  
    return 0;
}


double/longlong型:


#include<cstdio>
using namespace std;
int main()
{
    double a,b;
    scanf("%lf%lf", &a, &b); 
    printf("%lf%lf", a , b);  
    long long a,b;
    scanf("%lld%lld", &a, &b); 
    printf("%lld%lld", a , b); 
    return 0;
} 


总结


int: %d


float: %f


double: %lf


char: %c


long long: %lld


4.表达式


b+=a -->b = b+a


b-=a -->b = b-a


b*=a -->b = ba


b/=a -->b = b/a


强制类型转换


int->float float->int(取整)


int ->char (ASCII字符表,相互转换)


5.顺序结构


从前往后,从上往下


二、printf语句与判断结构


1.printf输出格式


使用printf时最好加头文件


printf保留小数点后几位


#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    double f = 138682436874;
    printf("%.7lf\n", f);
    return 0;
}


左右对齐,保留小数点,空位补零


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int a = 1;
    int b = 23;
    int c = 456;
    double d = 12.45;
    printf("%5d!\n", a);  //占5个空位,右对齐
    printf("%-5d!\n", b); //占5个空位,左对齐
    printf("%05d!\n", c); //空位填补0,右对齐
    printf("%5.1lf!", d);   //占5位且保留小数位数为1
    return 0;
}


2.if语句


①最基本语法if-else


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int score;
    cin >> score;
    if (score >= 60)
    {
        cout << "及格" << endl;
    } //一条语句可以省略{}
    else
    {
        cout << "不及格" << endl;
    }
    cout << "结束" << endl;
    return 0;
}


②比较运算符


大于 a > b


小于 a < b


大于等于 a >= b


小于等于 a <= b


等于 a == b


不等于a != b


③if-else if


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int grade;
    cin >> grade;
    if (grade >= 85) cout << 'A' << endl;
    else //蕴含着grade<85
    {
        if (grade >= 70) cout << 'B' << endl;
        else //蕴含着grade<70
        {
            if (grade >= 60) cout << 'C' << endl;
            else //蕴含着grade<60
            {
                cout << 'D' << endl;
            }
        }
    }
}
可优化为——————>(c和cpp中不根据缩进判断语句结束(Python),根据分号判断)
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int grade;
    cin >> grade;
    if (grade >= 85) cout << 'A' << endl;
    else if (grade >= 70) cout << 'B' << endl;
    else if (grade >= 60) cout << 'C' << endl;
    else cout << 'D' << endl;
}


3.条件表达式


(1)与 && and


(2)或 || or


(3)非 ! not


#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    if (a > b && (c > d || a > d)) cout << "" << endl;
    if (a > b || c > d && a > d) cout << "" << endl;
    if (!(a > b)) cout << "" << endl;
    return 0;
}


三、C++中的循环结构


循环语句——代码执行顺序


1.while循环


可以简单理解为循环版的if语句。if语句是判断一次,如果条件成立,则执行后面的语句;while是每次判断,如果成立,则执行循环体中的语句,否则停止。


求1~100中所有数的立方和


#include<iostream>
using namespace std;
int main()
{
    int i = 1;
    int sum = 0;
    while (i <= 100)
    {
        sum += i * i * i;
        i++;
    }
    cout << sum << endl;
    return 0;
}


斐波那契数列(水仙花)


f(1) = 1 f(2) = 1


f(n) = f(n-1) + f(n-2) n>=3


#include<iostream>
using namespace std;
int main()
{
   int a = 1, b = 1;
   int n;
   cin >> n;
   int i = 0;
   while (i < n - 1)
   {
       int c = a + b;
       a = b;
       b = c;
       i++;
   }
   cout << a <<endl;
   return 0;
}


避免写出死循环


2.do while循环


do while语句与while语句非常相似。唯一的区别是,do while语句限制性循环体后检查条件。不管条件的值如何,我们都要至少执行一次循环。(不常用)


3.for循环


for (init-statement : condition: expression) //init语句; 条件语句; 表达式
{
    statement
}


init-statement可以是声明语句、表达式、空语句,一般用来初始化循环变量;


condition是条件表达式,和while中的条件表达式作用一样;可以为空,空语句表示true;


expression一般负责修改循环变量,可以为空。


#include <iostream>
using namespace std;
int main()
{
    for (int i = 0; i < 10; i ++ )
    {
        cout << i << endl;
    }
    return 0;
}


相关文章
|
16天前
|
传感器 人工智能 供应链
智能体未来发展趋势:对标国家“十四五”AI规划的技术方向研判
《智能体技术发展白皮书(2024)》指出,自主、多模态、行业化智能体将成为未来三年核心方向。自主智能体实现动态决策,提升制造效率;多模态智能体优化人机交互,覆盖智能家居等场景;行业化智能体深度融合医疗、金融、教育等领域,推动数字化转型。预计2027年行业市场规模超800亿元,助力国家人工智能战略落地。(238字)
|
3月前
|
C++
什么是单项式
单项式是代数式中的一种
|
存储 安全 数据库
双重防护,无懈可击!Python AES+RSA加密方案,构建最强数据安全堡垒
【8月更文挑战第3天】在数字时代,数据安全至关重要。Python AES+RSA加密方案提供了一种强大且可靠的数据保护方式。AES以高效安全著称,适用于大量数据的快速加密;RSA作为非对称加密技术,确保了密钥传输的安全性。二者结合形成“内外兼修”的加密策略:AES加密数据内容,RSA保护AES密钥,共同构建起数据安全的双重保险。通过示例代码展示了这一加密流程,强调了加密后密钥与密文的安全传输和存储的重要性。在实际应用中,应采用HTTPS等安全协议进行传输,并将数据安全存储于加密的数据库或文件系统中。
277 12
|
传感器 网络协议 安全
基于STM32的智能饮水机系统设计
随着智能化的迅速发展,人们对于生活中的各类设备也越来越有智能化的需求,其中智能饮水机是一种比较常见的设备。智能饮水机不仅可以提供饮用水,还可以通过智能化的技术满足人们对于水质、水温、出水量等方面的需求。因此,当前设计了一种基于STM32的智能饮水机系统,以满足人们对智能化饮水机的需求。
702 1
|
Linux
Linux系统查看文件大小
在 Linux 操作系统中,经常需要检查文件的大小,文件实际的大小和文件占用磁盘的大小往往是不一致的,下面梳理记录集中常见的查看文件大小的方法。
418 0
Spring(06)——单例注入多例之ApplicationContext
6 单例注入多例之注入ApplicationContext Spring bean容器中的bean有单例bean,也有多例bean。当我们需要给一个单例beanA注入一个单例beanB,或者给一个多例beanA注入一个多例或单例beanB时,都可以通过配置让Spring的bean容器帮我们完成。
1499 0
|
人工智能 运维 自然语言处理
石化盈科携手昇腾AI:智能化赋予石化行业“第二增长曲线”
石化盈科携手昇腾AI:智能化赋予石化行业“第二增长曲线”
|
存储 传感器 算法
STM32:宏观介绍STM32(内含:1.STM32用途简介+2.系列介绍+3.片上资源/外设+4.命名规则+5.系统结构+6.引脚定义+7.启动配置+8.最小系统电路+9.最小系统实物图)
STM32:宏观介绍STM32(内含:1.STM32用途简介+2.系列介绍+3.片上资源/外设+4.命名规则+5.系统结构+6.引脚定义+7.启动配置+8.最小系统电路+9.最小系统实物图)
965 1
STM32:宏观介绍STM32(内含:1.STM32用途简介+2.系列介绍+3.片上资源/外设+4.命名规则+5.系统结构+6.引脚定义+7.启动配置+8.最小系统电路+9.最小系统实物图)
|
网络协议 Linux 虚拟化
CentOS 6.x 的网络配置
CentOS 6.x 的网络配置
1230 0