C语言学习笔记
第 1 章 程序设计和C语言
1.1 什么是计算机程序?
计算机是怎么工作的呢?编码人员将事先编好的指令输入到计算机中。比如,一条指令要求计算,另一条指令要求输出到屏幕。需求人只需要向计算机调用该指令,即可得到输出结果。程序扮演的角色就是计算机能识别和执行的指令。
1.2 什么是计算机语言
计算机和人都能够识别的语言。
根据语言依赖机器的程度,它们有所谓的低级和高级之分。
机器语言,计算机能够直接识别的二进制机器指令的集合。庞大的二进制数字,令人头大。
人们创造了符号语言,ADD A,B 代表执行A+B放到寄存器A中。取代了一长串二进制数字。虽然,方便了人的理解和记忆,但是计算机是不能直接识别符号语言的,需要汇编程序进行一次“汇编”,因此符号语言又称汇编语言。
二者,过于依赖底层具体的机器,将它们称为低级语言。
高级语言,需要编译程序将源程序编译成目标程序。经历了非结构化到结构化的过程(顺序结构、循环结构和选择结构),更加清晰,易于编写、阅读和维护;面向对象的语言,如C++,C#,Visual Basic和Java等。
1.3 C语言的发展及特点
1972年,美国贝尔实验室丹尼斯·里奇为了写UNIX设计的。C89和C99指的是C语言的标准,要看编译程序支不支持,才能决定怎么写,写了可能会不支持。
语言简洁紧凑,使用方便灵活;丰富的数据结构和运算符;结构化的控制语句;允许直接访问物理地址,设计自由度更大;C编写的程序可移植性好;生成目标代码质量高,程序执行效率高。
1.4 最简单的C语言程序
1.4.1 最简单的C程序举例
#include <stdio.h> //编译预处理指令,提供输入输出函数的信息
int main () //定义主函数的类型,程序从主函数开始执行;
{ //标志函数开始
printf("Hello,World! \n"); // \n换行符,光标将移动到下一行的开始
return 0; //函数执行完毕时返回int型函数值0
} //标志函数结束
1.4.2 C语言程序的结构
(1)一个程序由一个或多个源程序文件组成。
一个源程序文件包括:预处理指令;全局声明以及函数定义。
(2)C程序的主要组成部分是函数。
(3)函数包括
函数头:int main (int x, int y)
函数体:声明部分,执行部分
(4)程序总是从main函数开始执行的。
(5)程序中要求计算机的操作是由函数中的C语句完成的。
(6)每个数据声明和语句的最后必须有一个分号。
(7)C语言本身不提供输入输出语句。
(8)程序应当包含注释。
1.5 运行C程序的步骤与方法
编写 .C 源程序,进行预编译处理,提供函数的信息。进行编译得到一个个 .obj 目标程序。一个源程序文件对应一个目标程序,而一个程序有多个源程序文件,得到多个目标程序。将目标程序装配起来,再与函数库相链接得到可执行程序。
1.6 程序设计的任务
指从确定任务到得到结果、写出文档的过程。
- 问题分析
- 设计算法
- 编写程序
- 对于源程序进行编辑、编译和连接
- 运行程序,分析结果
- 编写程序文档
第 3 章 最简单的C程序设计——顺序程序设计
程序设计是为了解决问题,要想解决问题就要学会设计算法,光会设计算法只是第一步。还要将你的思路告诉计算机,让它替你进行复杂算法的实现,就要掌握正确的语法。写算法和编写程序时,要采用结构化程序设计方法,编写出结构化的程序。本书采用算法和语法结合,以程序设计为主线,算法和语法简易对应,循序渐进。
数据的表现形式及其运算
常量和变量
- 常量
- 整型常量(整数)
- 实型常量(小数)
- 字符型常量(字母和符号)
普通字符和转义字符 - 字符串常量(“xxx”)
- 符号常量(#define PI 3.1415)
预编译时将符号常量替换成字符串。
- 变量
- 常变量
在定义变量时,前面加const。const int a =3;a为整型变量,但其值不可被改变。和符号常量的区别是名字占用存储空间。 - 标识符
对变量、符号常量、函数、数组、类型等命名的有效字符序列。由下划线、字母和数字组成,不能使用数字开头。
数据类型
美国标准信息转换码
scanf函数的使用
printf("请输入两个数值,中间以空格分隔(不能包含汉字、符号、字母):");
scanf("%d %d", &i, &j); //输入i和j的一个值
/*scanf("%d\n", &i); scanf输入时,切记不能使用\n;
非输入控制符必须原字符输出,如:
scanf("%d, %d", &i, &j) 输入本句时必须加 逗号;
*/