9月19日第三次上课记录
主要内容:
1,程序设计语言
2,程序设计的基本过程
3,C语言程序的组成和结构
4,C语言程序的开发
5,C语言的基本语法单位
6,数据与数据类型
1,程序设计语言
程序设计语言是人与机器交流的语言,大致可以分为三类:
1,机器语言:由二进制代码按照一定规则组成的命令合集,也叫指令合集。机器可以直接识别,执行效率也高,但是人类很难读懂,并且由于每个电脑指令集不同,机器语言编写的程序是无法移植的。
2,汇编语言:一种机器语言的改进版本,有更好的可读性,但是程序编写复杂,抑制性依旧很差,需要翻译成计算机可以识别的机器指令后才能在计算机上执行。
3,高级语言:拥有更强的表达能力,更容易掌握,有较强的移植能力。所有高级语言都包含四种基本能力和三种控制结构。
高级语言的四种基本能力:
(1)数据表达能力:
(2)数据运算能力
(3)数据的输入和输出能力
(4)数据处理的流控制能力
高级语言的三种控制结构:
(1)顺序结构
(2)选择结构
(3)循环结构
2,程序设计的基本过程
1,分析问题:(1)分析问题性质。(2)考虑对数据的表示和输入输出。(3)确定使用数学模型或处理方法。
2,设计算法
3,编写程序
4,编译程序:编译和解释都属于翻译成机器语言的过程,但是两者是不同的。编译是将程序转换成机器语言然后直接执行机器码,速度较快。解释是用解释器把代码一行一行执行,比较慢。但是编译的移植性没有解释好,因为编译是将代码转换成当前CPU和操作系统认识的机器码,移植的时候无法保证目标设备认识。
5,调试程序:发现和排查程序中的错误。
6,编写程序文档:类似于写说明书。
文件:文件是存放在外存储介质中的,它一定有一个以基本名和扩展名组合而成的文件名,老式系统中可能要求基本名不能超过8个字符,但是现在设备都大大拓展,达到255个字符。编译就是把源代码文件转换成可执行文件的过程。
设计算法过程中,我们需要用一种通俗易懂的办法理清思路,算法常用的描述方法有:
(1)自然语言
(2)流程图
(3)伪代码
3,C语言程序的组成和结构
1,注释:
(1)段注释:/“星号"这里是注释内容"星号”/(两个*打不出来…)。
(2)行注释://这里是注释内容
注释是不会被翻译成机器语言的。
2,编译预处理:
以#开头,在程序编译之前发挥作用,指示编译器怎么编译,预处理不属于程序。
3,函数:
每个C程序有必须要有且只有一个主函数main(void),它是程序的入口,C99中规定他的类型要是int(整型)。每个函数都由函数说明部分和函数体部分组成,其中函数体又由变量定义和语句部分组成,C以及大部分高级语言对大小写都是敏感的。函数的源代码以源代码文件形式保存,扩展名为".c"。C语言的主要函数有:(1)主函数main。(2)库函数。(3)用户自定义函数。
4,声明:标识符就是给变量起的名字,标识符规定不能和关键字一样。标识符可以由下划线,字母和数字组成,但是只能由下划线和字母开头。建议不要用预定义的标示作为标识符。
5,赋值
一个C程序可以有多个源程序文件,一个源程序文件可以有多个函数,但是一定要有预编译处理和main函数,可以有全局变量声明,每个函数都要有函数头和函数体,函数体包括生命部分和执行语句部分。
4,C语言程序的开发
开发大致分为一下几个步骤:
(1)编辑源程序,保存为扩展名为".c"的文件。
(2)编译源程序生成目标文件。把C语言的程序转换成机器语言的过程叫编译源程序,C语言编译器以源程序文件为单位进行编译,生成扩展名为".obj"的文件。编译过程中可能出现两种错误:1,语法错误(error),必须修改源程序后重新编译。2,警告(warning),出现不合理现象或者轻微错误,仍可以编译成目标文件。
(3)连接目标文件生成可执行文件。编译器中的链接器将中间代码(源代码转换)和其他代码(启动代码,库函数)合并成可执行文件。
(4)运行并测试可执行程序。对程序的实际运行结果和预期正确结果进行比较分析。
集成开发环境(Integrated Development Environment,简称IDE)
IDE是集成了代码编写功能,分析功能,编译功能,调试功能等为一体的开发软件,一般包括代码编辑器,编译器,调试器,图形用户界面工具等。现在常用的IDE有Visual studio,Xcode,CodeBlocks等。
5,C语言的基本语法单位
按照C99的规定,C语言的基本符号集包括:
- 26个大写字母
- 26个小写字母
- 10个数字字符
- 29个图形字符
关键字:特定语法含义单词或单词缩写,用来说明某一固定语法概念。程序中关键字只能使用不能修改。关键字对大小写是敏感的。
标识符:由基本字符集中的字符构成的字符序列。要求:
(1)第一个字符必须是字母或者下划线。
(2)标识符中的其他字符可以是字母,数字和下划线。
(3)不能用关键字作为标识符。
(4)标识符对大小写敏感。
6,数据与数据类型
数据类型 | ||
---|---|---|
基本类型 | 整型 | 有符号整型(signed),无符号整型(unsigned) |
实型 | 单精度型(float),多精度型(double) | |
字符型(char) | 无 | |
构造类型 | 数组([]) | 无 |
结构体(struct) | 无 | |
共用体(vnion) | 无 | |
枚举类型(enum) | 无 | |
指针类型(*) | 无 | 无 |
空类型(void) | 无 | 无 |
常量:程序运行过程中不能被改变的值。可用宏定义命令来定义:
#define+标识符+常量(写的时候’+'由空格替代)
变量:程序运行过程中可以被改变的值。变量是一个存储数据的容器,它由数据类型,变量名,变量值3个属性确定。它通过数据类型来获得一定长度的存储单元,把变量值存储在其中,通过变量名来修改或获取这个值。给变量一个值叫做赋值,使用变量中的值叫做取值。使用变量时,一定要先定义,再赋值,再使用。
有符号的整型类型:
名称 | 完整写法 | 省略写法 | 字节数 | 位数 | 数值范围 |
---|---|---|---|---|---|
短整型 | short int | short | 2 | 16 | -215~215-1 |
基本整型 | int | 4(2) | 32(16) | -231~231-1(16位15次方) | |
长整型 | long int | long | 4 | 32 | -231~231-1 |
无符号的整型类型:
名称 | 完整写法 | 省略写法 | 字节数 | 位数 | 取值范围 |
---|---|---|---|---|---|
短整型 | unsigned short int | unsigned short | 2 | 16 | 0~216-1 |
基本整型 | unsigned int | unsigned | 4(2) | 32(16) | 0~232-1(16位16次方) |
长整型 | unsigned long int | unsigned long | 4 | 32 | 0~232-1 |
实型数据:
类型名称 | 类型关键字 | 字节 | 有效数字 | 取值范围 |
---|---|---|---|---|
单精度 | float | 4 | 6~7 | 0,1.2x10-38-3.4x1038 |
双精度 | double | 8 | 15~16 | 0,2.3x10-308-1.7x10308 |
长双精度 | long double | 16 | 17~18 | 0,3.4x10-4932-3.4x104932 |
字符常量转义字符:
表示形式 | 含义说明 | ASCII码 |
---|---|---|
\0 | 空字符 | 0 |
\a | 响铃 | 7 |
\b | 退格 | 8 |
\t | 水平制表 | 9 |
\n | 换行 | 10 |
\v | 垂直制表 | 11 |
\f | 换页 | 12 |
\r | 回车(回到当前行的开头) | 13 |
" | 双引号 | 34 |
’ | 单引号 | 39 |
\ | 反斜线字符 | 92 |
\ddd | 1~4位八进制ASCII码对应的字符(最大为377) | |
\xhh | 1~2位十六进制ASCII码对应的字符(最大为FF) |