作业介绍

【C++编程启蒙】第一章 顺序结构

第1课 计算机设计语言

一、计算机设计语言的出现

1. 自然语言

人与人沟通的语言

2. 机器语言

人与机器沟通的语言:0/1二进制形式

如:十进制333 的 二进制形式 为 101001101

(计算机 理解十进制比较困难,理解二进制比较容易)

(人脑 理解十进制比较容易,理解二进制比较困难)

3. 汇编语言

人与机器沟通的语言:英文助记码形式

如:移动用MOV表示,减法用SUB表示

(人脑 理解和记忆助记码 要花一点时间)

4. 高级语言

人与机器沟通的语言:十分接近数学与自然语言

如:a与b的和作为c的值,表示为: c=a+b

如:若a=1,则b=2,表示为:if (a==1) b=2;

(人脑 能直观快速地理解)

二、高级语言与集成开发环境

1. 高级语言的种类

常用的高级语言有C/C++、C#、Python、Java等,我们主要学习C/C++,是 绝大多数人学习编程的入门语言

C/C++的一大特点是 实用性,意味着我们的课程会有 大量的动手实践内容,让大家大量地练习、写代码。

2. 集成开发环境

“集成开发环境”简单理解,就是我们写和运行代码的地方。我们学习C/C++主要使用的软件是DEV-C++。

第2课 第一个C++程序

小知识:世界上第一位程序员是——艾达·洛芙莱斯。

一、程序的四要素

1. 引入头文件

#include<bits/stdc++.h>
  • 里面包含了各种事先定义好的,并且非常有用的函数和类(作用类似于现实中的工具箱)

2. 使用标准命名空间

using namespace std;
  • 用来告诉编译器使用标准名字空间(作用是区分不同库中名称相同的函数、类或变量)

3. 定义主函数

int main():{}
  • 程序的主体(主要在这里写代码)

4. 程序终止

return 0;
  • 表示程序结束,并向操作系统的调用进程返回0值(告诉电脑程序在这里结束)

补充:

// 这是一行注释
  • 单行注释:“//”用来解释说明,后面的内容不会被执行

二、识读编译错误提示

参考书本P6

第3课 输出类cout

功能:输出信息到计算机屏幕上。

一、cout语句的格式

cout<<表达式<<表达式<<表达式……;

作用:把表达式的内容一项接一项地输出到屏幕上。

例子:

cout<<"1234*5678="<<1234*5678;
  1. C/C++中,每一个语句的末尾都需要有分号“;”,表示语句的结束;
  2. 被双引号""包围的内容,会被原原本本地输出,没有双引号的内容,会被计算后输出;
  3. 在DEV-C++中写完代码后,按F11运行一下,查看结果。

二、双引号 与 换行

1. 双引号的作用

  • 在语文里,我们用双引号来表示一段话,在C/C++中是类似的:
    • 被双引号""包围的内容:会被改变颜色,并被原原本本的输出(语文的规则)
    • 没有被双引号""包围的内容:会被计算后输出(数学的规则)

2. 如何在输出时换行

使用endl,即end line的缩写。输出endl后,即可实现换行。

cout<<"1234*5678="<<endl<<1234*5678;

第4课 整型变量int

一、什么是整型

整型 类似数学中的“整数”,包括正整数、负整数和0 。

在C/C++里,我们管“整数”叫“整型”,即“整数类型”的意思。英文是“integer”,程序里我们简写为“int”。

二、什么是变量

变量 类似数学中的“未知数”,表示一个会变化的量。

在C/C++里,我们还要说明这是一个什么类型的未知数,这个过程叫 定义变量

三、如何定义变量

int x=0;

这一行代码表示:设一个变量,叫x,是整型,初始值为0。

这个过程叫“定义变量”,也就是要回答三个问题:

  1. 变量是什么类型?
  2. 变量叫什么?
  3. 变量初始值是多少?

我们也可以同时定义多个变量:

int a=1, b=2, c=3;

变量必须先定义,后使用

四、变量的命名规则

  1. 标识符(变量名)只能由字母(包含下划线“_”)开头
  2. 后面的字符可以是字母或数字

以下定义都是合法的:

int a, _b, c0;

五、为什么要赋予变量初值

1. 变量被放在内存中

内存:计算机的重要部件之一,用来暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

内存 起到 草稿纸的作用,以计算1234*5678为例:

  1. 我们把要计算的数字抄写到草稿纸上(相当于 数据从硬盘转移到内存
  2. 我们把每一位数字拿到脑子里进行运算(相当于 数据从内存转移到中央处理器里进行运算)
  3. 计算后,我们把脑子的数据写到草稿纸上(相当于 数据从中央处理器转移到内存

变量被暂时写在内存里,就好像未知数被暂时写在草稿纸上

2. 变量不赋予初值直接使用会发生什么

变量不赋予初值直接使用,就好像在一张草稿纸上随便画一个圈作为未知数,圈到的东西,可能是0也可能是任意的一个数字,这种行为是不可控的、危险的

变量在被使用前,需要被赋值过

六、如何赋值

在C/C++中,我们使用 赋值语句 进行赋值,其形式很简洁:

int a;
a=1;

需要注意的几个点:

  1. 赋值的方向是把右边的值赋给左边的变量,右边的值本身不变,左边的值被改变;
  2. 在C/C++中,“=”表示赋值操作,不表示“等于”判断;
  3. C/C++的每个语句末尾,都需要分号“;”来表示语句结束。

七、如何交换变量的值

我们有三个瓶子,分别叫它们A、B、C,A瓶里装的是油,B瓶里装的是水,C瓶是空瓶子。

现在我们要把A和B瓶里的东西交换,该怎么做?

我们能直接把B瓶里的东西倒入A瓶吗?

答案是:不行,那样就混合了。

正确的方法是:

  1. A瓶的水倒入C瓶(C瓶水,A瓶空)
    • C瓶暂时存放A瓶的内容物,让A瓶空出来
  2. B瓶的油倒入A瓶(A瓶油,B瓶空)
    • A瓶存放B瓶的内容物,让B瓶空出来
  3. C瓶的水倒入B瓶(B瓶水,C瓶空)
    • B瓶存放C瓶的内容物,实现AB瓶内容物交换
int a=0, b=1, c;
// 尝试交换a、b的值
c=a;
a=b;
b=c;
// 实现交换a、b的值

第5课 输入类cin

功能:从键盘读入信息到计算机。

一、cin语句的格式

cin>>变量1>>变量2>>变量3……;
  1. 注意流运算符的方向;
  2. 变量在语句中间时,可以把语句分开,先输出前半部分,再输出变量,最后输出后半部分;

第6课 加法、减法和乘法

小知识:世界上第一台通用计算机“ENIAC”诞生于1946年2月14日美国宾夕法尼亚大学,其被用来计算炮弹弹道,每秒可处理5000次加法运算。

一、计算符号

  • 加:+
  • 减:-
  • 乘:*
  • 除:/
  • 模:%

第7课 浮点类型

一、实型

实型,即实数类型,又称浮点型,表示有小数部分和整数部分的数字。

C++支持三种实型:

  • 单精度实型 float
  • 双精度实型 double
  • 长双精度实型 long double

在空间允许的情况下,通常不使用float,直接使用double以提高精度。

二、保留小数

如果直接使用 cout<< 进行浮点数的输出,C++默认的流输出数值有效位是6位,我们可以使用setprecision()来改变有效位个数。

1. 保留3位数

cout<<setprecision(3)<<3.1415926;

2. 保留3位小数

cout<<fixed<<setprecision(3)<<3.1415926;

三、常量

常量,类似数学中的常数,表示一个固定的量,其语法格式为:

const double PI=3.14;

第8课 求商、求余和除法

一、除法运算符/(求商)

1. 整型与整型 相除

整型与整型 的商,还是整型

10 / 4 = 2

2. 整型与实型、实型与实型 相除

整型与实型、实型与实型 的商,是实型(实型的传染性)

10.0 / 4 = 2.5
10 / 4.0 = 2.5

二、模运算符%(求余)

只有 整型和整型 之间可以进行模运算

5 % 3 = 2

整型和实型、实型和实型 之间不存在模运算

第9课 字符类型char

一、什么是字符类型

1:数字
'1':字符
"1":字符串

单引号将单个字符括起来表示一个字符常量,如'a'、'A'、'0'。

二、如何定义字符类型变量

char c='7';
char d=55;

三、ASCII码表

书P28

字符可以和数字序号一一对应,如:

  • 序号97 对应 字符'a'
  • 字符'A' 对应 序号65

四、字符类型 进行 算术计算

char c='a';
c=c-32;
cout<<c; // 此时c的值是'A'

第10课 赋值运算符

一、自动类型转换

1. 赋值给int时的自动类型转换

int x=3.14; // 效果是x=3
int y='a'; // 效果是y=97

2. 赋值给char时的自动类型转换

char c=97; // 效果是c='a'

二、嵌套使用赋值

int a, b, c;
a=b=c=5;
// 实际效果是a=(b=(c=5))

三、复合算术赋值

int n=100;
n+=1;  // 即 n=n+1;
n-=2;  // 即 n=n-2;
n*=3;  // 即 n=n*3;
n/=4;  // 即 n=n/4;
n%=5;  // 即 n=n%5;

第11课 特殊运算符

一、小括号运算符

小括号括起来的东西,优先级最高,最先算

(3-4)*5

二、逗号运算符

从左到右依次执行

表达式1, 表达式2, 表达式3;
// 顺序执行表达式1~3

第12课 标准数据类型范围及转换

一、内存与存储单元

内存:暂时存放数据供调用的地方,类似于“草稿纸”的作用。

存储单元:从小到大有B、KB、MB、GB、TB,之间的关系都是1024倍。

二、众多数据类型

见书P39

短整型<整型=长整型<超长整形

单精度实型<双精度实型<长双精度实型

三、整型的溢出

整型int的最大值:2147483647

超过最大值会变为负数(我们管它叫“溢出”),并且不报错,因此要注意数据的大小是否可能超过最大值

四、混合运算时的类型转换规则

见书P40

  1. 纵向箭头表示必然会进行的转换。

    • 如 float 必然先转换为 double ,然后运算;
    • 如 char 和 short 必然先转换为 int ,然后运算;
  2. 横向箭头表示当运算对象为不同类型数据时的转换方向。

    • 如 int 与 double 进行运算, int 必然转换为 double ,然后运算;
    • 如 int 与 unsigned 进行运算,int 必然转换为 unsigned ,然后运算;

第13课 printf和scanf函数

一、格式化输入函数scanf

格式:scanf(格式控制符, 地址列表);

说明:

  1. 格式控制符控制输入数据的格式(要用双引号括起来);
  2. 地址列表中给出各变量的地址,输入项和格式要一一对应;

格式符见书P44

int a;
double b;

cin>>a>>b;
scanf("%d %lf", &a, &b);
// 效果是一样的

二、格式化输出函数printf

格式:printf(格式控制符, 输出列表);

说明:

  1. 格式控制符控制输出数据的格式(要用双引号括起来);
  2. 输出列表中给出需要输出的数据,输出项和格式要一一对应;
int a=1;
double b=1.0;

cout<<a<<" "<<b;
printf("%d %lf", a, b);
// 效果是一样的

控制数据小数位数

double pi=3.1415926;

cout<<fixed<<setprecision(6)<<pi;
printf("%.6lf", pi);
// 效果是一样的

控制数据宽度

int a=123;
cout<<setw(5)<<a;
// 使用setw(n)来控制输出数据的宽度为n,默认不足的在左边补空格
int a=123;
cout<<setfill('0')<<setw(5)<<a;
// 设置不足的在左边补0

第14课 四舍六入五留双

用printf函数输出保留小数点位数的实型数据时,用的是四舍六入五留双的原则,而不是四舍五入的原则。

状态
已结束
题目
47
开始时间
2024-10-1 0:00
截止时间
2025-1-1 0:00
可延期
0 小时