作业介绍
【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;
- C/C++中,每一个语句的末尾都需要有分号“;”,表示语句的结束;
- 被双引号""包围的内容,会被原原本本地输出,没有双引号的内容,会被计算后输出;
- 在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。
这个过程叫“定义变量”,也就是要回答三个问题:
- 变量是什么类型?
- 变量叫什么?
- 变量初始值是多少?
我们也可以同时定义多个变量:
int a=1, b=2, c=3;
变量必须先定义,后使用
四、变量的命名规则
- 标识符(变量名)只能由字母(包含下划线“_”)开头
- 后面的字符可以是字母或数字
以下定义都是合法的:
int a, _b, c0;
五、为什么要赋予变量初值
1. 变量被放在内存中
内存:计算机的重要部件之一,用来暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
内存 起到 草稿纸的作用,以计算1234*5678为例:
- 我们把要计算的数字抄写到草稿纸上(相当于 数据从硬盘转移到内存)
- 我们把每一位数字拿到脑子里进行运算(相当于 数据从内存转移到中央处理器里进行运算)
- 计算后,我们把脑子的数据写到草稿纸上(相当于 数据从中央处理器转移到内存)
变量被暂时写在内存里,就好像未知数被暂时写在草稿纸上。
2. 变量不赋予初值直接使用会发生什么
变量不赋予初值直接使用,就好像在一张草稿纸上随便画一个圈作为未知数,圈到的东西,可能是0也可能是任意的一个数字,这种行为是不可控的、危险的。
变量在被使用前,需要被赋值过
六、如何赋值
在C/C++中,我们使用 赋值语句 进行赋值,其形式很简洁:
int a;
a=1;
需要注意的几个点:
- 赋值的方向是把右边的值赋给左边的变量,右边的值本身不变,左边的值被改变;
- 在C/C++中,“=”表示赋值操作,不表示“等于”判断;
- C/C++的每个语句末尾,都需要分号“;”来表示语句结束。
七、如何交换变量的值
我们有三个瓶子,分别叫它们A、B、C,A瓶里装的是油,B瓶里装的是水,C瓶是空瓶子。
现在我们要把A和B瓶里的东西交换,该怎么做?
我们能直接把B瓶里的东西倒入A瓶吗?
答案是:不行,那样就混合了。
正确的方法是:
- A瓶的水倒入C瓶(C瓶水,A瓶空);
- C瓶暂时存放A瓶的内容物,让A瓶空出来
- B瓶的油倒入A瓶(A瓶油,B瓶空);
- A瓶存放B瓶的内容物,让B瓶空出来
- 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……;
- 注意流运算符的方向;
- 变量在语句中间时,可以把语句分开,先输出前半部分,再输出变量,最后输出后半部分;
第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
-
纵向箭头表示必然会进行的转换。
- 如 float 必然先转换为 double ,然后运算;
- 如 char 和 short 必然先转换为 int ,然后运算;
-
横向箭头表示当运算对象为不同类型数据时的转换方向。
- 如 int 与 double 进行运算, int 必然转换为 double ,然后运算;
- 如 int 与 unsigned 进行运算,int 必然转换为 unsigned ,然后运算;
第13课 printf和scanf函数
一、格式化输入函数scanf
格式:scanf(格式控制符, 地址列表);
说明:
- 格式控制符控制输入数据的格式(要用双引号括起来);
- 地址列表中给出各变量的地址,输入项和格式要一一对应;
格式符见书P44
int a;
double b;
cin>>a>>b;
scanf("%d %lf", &a, &b);
// 效果是一样的
二、格式化输出函数printf
格式:printf(格式控制符, 输出列表);
说明:
- 格式控制符控制输出数据的格式(要用双引号括起来);
- 输出列表中给出需要输出的数据,输出项和格式要一一对应;
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 小时