GESP C++ 一级知识点总结

计算机基础知识

1946 年 2 月 14世界上第一台可编程的电子计算机—ENIAC。

中国第一台通用数字电子计算机于 1958年 8 月研制成功

计算机发展历程

在这里插入图片描述

三位奠基人

艾伦·图灵(1912年—1954年),英国数学家、逻辑学家,被称为“人工智能之父”。

冯·诺依曼(1903年—1957年),出生于匈牙利的美籍犹太人,是20世纪最著名的数学家之一,理论计算机科学和博弈论的奠基者,常被誉为“计算机之父”。

克劳德·香农(1916年—2001年),美国数学家和密码学家,是“信息论之父”。

重要奖项

图灵奖(Turing Award),全称A.M.图灵奖(ACM A.M Turing Award),是由美国计算机协会(ACM)于1966年设立的计算机奖项,名称取自艾伦·麦席森·图灵(Alan M. Turing),旨在奖励对计算机事业作出重要贡献的个人 。图灵奖对获奖条件要求极高,评奖程序极严,一般每年仅授予一名计算机科学家。图灵奖是计算机领域的国际最高奖项,被誉为“计算机界的诺贝尔奖”。

冯-诺依曼

采用程序存储控制原理思想

在这里插入图片描述

计算机系统构成

在这里插入图片描述

注:华为鸿蒙为操作系统

计算机存储单位

字节(Byte)是计算机信息中用于描述存储容量和传输容量的一种基本计量单位(不是最小的)。

bit就是位,也叫比特位,是计算机表示数据最小的单位。

通常字节是大B,位是小b。

单位名称换算关系
字节(Byte)1Byte=8bit
千字节(KB)1KB=1024B
兆字节(MB)1MB=1024KB
吉字节(GB)1GB=1024MB
太字节(TB)1TB=1024GB

变量的定义与使用

变量的声明且赋值

全局变量和局部变量

#include <iostream>
using namespace std;
// 全局变量
int number = 100;
int main()
{
    // 局部变量
    int number = 1;
    // 访问局部变量
    cout << "number = " << number << endl;
    // 访问全局变量,number前面要加上双冒号:: 
    cout << "number = " << ::number << endl; 
}
 

变量名的规则

【规则1】:变量名包含字母、数字、下划线,但数字不能在变量名首位,也不能使用特殊符号,例如以下变量名:

a(合法)、a123(合法)、_xyz(合法)、2b(不合法,不能以数字开头)、@xyz(不合法,不能使用特殊符号)

【规则2】:具有特殊含义的单词不能作为变量名, 否则会报错,我们把这一类统称为关键字,它们在C++中已经代表了特定的意思,不包括(cin、cout等),例如以下单词:

do, while, for, int, if, char, long, bool , double ,false , true 等等。

注:变量必须定义才能使用,没有定义变量就使用会造成编译错误

输入输出

printf()、scanf()//C
cin>> cout<<//C++

printf和scanf是C语言风格的输入输出函数,分别用于格式化输出和格式化输入。在C++中也适用

基本数据类型

在这里插入图片描述

double和float的区别

【重点】:如果在代码中不明确指定浮点数的类型,则默认会被视为double类型。例如:
7 是一个 int 类型的整数常量。
7.0 是一个 double 类型的浮点数常量。
7.0f 是一个 float 类型的浮点数常量

数据类型转换

#include <iostream>
using namespace std;
int main() {
    // 1. 整数值赋给bool整型
    bool b = 25; 
    cout<<"b="<<b<<endl;

    // 2. bool类型赋值给整型
    int s = false; 
    cout<<"s="<<s<<endl;
    
    // 3. 浮点数赋给整数类型
    int i = 3.14; 
    cout<<"i="<<i<<endl;
    
    // 4. 整数值赋给浮点类型
    float f = 10; 
    cout<<"f="<<f<<endl;
}

在这里插入图片描述

**【重点】 **

    **横向向左的箭头表示必定的转换,如char,short型数据在运算时必定先自动类型转换为int类型(char,short自动类型转换为int也称为整型提升),float型数据在运算时一律先自动类型转换为double类型以提高运算精度。**

** 纵向的箭头表示当运算对象为不同类型时转换的方向,类型转换方向由低到高,如某类型数据与double型数据进行运算时,该类型数据自动类型转换为double类型,然后在两个double型数据间进行运算,结果为double型。**

注:

  1. 不要错误地将该图理解为int型先转换成unsigned int型,再转换成long型,再转成double型
  2. 在算术表达式中进行自动类型转换的时候,原数据类型并无发生变化,实际上是得到一个自动类型转换后的中间变量,表达式运算的过程是对转换后的中间变量进行运算,运算结果为转换后的数据类型

运算符

算术运算符

操作符名称
+加号
-减号
*乘号
/除号
%取模
#include <iostream>
using namespace std;
int main()
{
    // 加法
    int a = 20, b = 6;
    cout << " a + b = " << a + b << endl;
    //a+b=26
    // 减法
    cout << " a - b = " << a - b << endl;
    //a-b=14
    // 乘法
    cout << " a * b = " << a * b << endl;
    //a*b=120
       // 除法:注意 / 只保留整数部分
    cout << " a / b = " << a / b << endl;
  //a/b=3
    // 取模:两个数必须是整数类型
    cout << " a % b = " << a % b << endl;
    //a%b=
} 

注:%只能和整数运算

自增自减运算符

++a;    // a自增,相当于 a += 1;
--b;    // b自减,相当于 b -= 1;

“前置”和“后置”区别

#include <iostream>
using namespace std;
int main() {
    int x = 3;
    int y = ++x;//先让x自增1,再将x更新后的结果赋值给y
    cout<<"x="<<x<<endl;
    cout<<"y="<<y<<endl;

    int a = 3;
    int b = a++;//先将a赋值给b,再让a自增1
    cout<<"a="<<a<<endl;
    cout<<"b="<<b<<endl;
}
//输出结果
//x=4
//y=4
//a=4
//b=3

条件运算符

“条件运算符”:由“?”和“:”两个符号组成,需要三个运算表达式,形式如下:

条件判断表达式 ? 表达式1 : 表达式2

条件运算符的含义是:计算条件判断表达式的值,如果为true就执行表达式1,返回求值结果;如果为false则跳过表达式1,执行表达式2,返回求值结果。

#include <iostream>
using namespace std;
int main() {
    int i = 0;
    cout << ((1 < 2 && ++i) ? "true" : "false") << endl; //结果:true 
}

注:条件运算符的优先级比较低,所以输出的时候需要加上括号。事实上,条件运算符等同于流程控制中的分支语句if…else…,只用一条语句就可以实现按条件分支处理,这就让代码更加简洁。

C++运算符及其优先级顺序:

运算符说明C++运算符优先级顺序
小括号( )最高
逻辑非运算符、自增自减运算符! ++ –
算术运算符(乘、除、取模)* / %
算术运算符(加、减)+ -
关系运算符(大于、大于等于等)> >= < <=
关系运算符(等于、不等于)== !=
逻辑与运算符&&
逻辑或运算符
赋值运算符= += -= *= /= %=最低

2. 选择结构

选择结构用于根据条件执行不同的代码块。C++提供了以下选择结构:

  • if语句
    if (条件) {
        // 条件为真时执行的代码
    }
    
  • if-else语句
    if (条件) {
        // 条件为真时执行的代码
    } else {
        // 条件为假时执行的代码
    }
    
  • if-else if-else语句
    if (条件1) {
        // 条件1为真时执行的代码
    } else if (条件2) {
        // 条件1为假且条件2为真时执行的代码
    } else {
        // 以上条件都为假时执行的代码
    }
    
  • switch语句
    switch (表达式) {
        case 常量1:
            // 表达式等于常量1时执行的代码
            break;
        case 常量2:
            // 表达式等于常量2时执行的代码
            break;
        // ...
        default:
            // 表达式不等于任何case中的常量时执行的代码
    }
    

3. 循环结构

循环结构用于重复执行代码块。C++提供了以下循环结构:

  • while循环
    while (条件) {
        // 条件为真时重复执行的代码
    }
    
  • do-while循环
    do {
        // 至少执行一次的代码
    } while (条件);
    
  • for循环
    for (初始化; 条件; 更新) {
        // 条件为真时重复执行的代码
    }
    
    • 循环嵌套
    for (初始化; 条件; 更新) {
      for (初始化; 条件; 更新) {
          // 嵌套循环的代码
      }
    }
    

语句跳转

1.break

当代码中遇到break时,会直接中断距离最近的循环,跳转到外部继续执行。

#include <iostream>
using namespace std;
int main() {
    int i = 1;
    while (true) {
        cout << " 这是第" << i << "次输出" << endl;
        i++;
        if (i > 5) {
            break;
        }    
    }
}

在这里插入图片描述

2.continue

continue语句表示“继续”执行循环,也就是中断循环中的本次迭代,并开始执行下一次迭代。

//需求:输出1到10之间所有的整数,5不输出
#include <iostream>
using namespace std;
int main() {
    for(int i = 1; i<=10; i++) {
        if (i == 5) {
            continue;
        } else {
            cout << "这是第" << i << "次输出" << endl;
        }
    }
}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值