高级语言程序设计(c语言版)
高级语言程序设计(c语言版)
——基于计算思维能力培养
作者:揭安全
出版社:人民邮电出版社
🐶一、程序设计引论
1.1 计算科学与问题求解
计算机科学(Computer Science,CS):系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术的学科。
问题求解:指人们在生产生活中面对新的问题时,由于缺少现成的有效对策所引起的一种积极寻求问题答案的活动过程。
1.2 程序与程序设计
计算机程序:是指一组指示计算机或其他具有信息处理能力的装置进行每一步动作的指令。简单来讲,计算机程序是计算任务的处理对象和处理规则的描述。
程序中常见的错误:语法错误,运行时错误,逻辑错误
1.3 程序设计语言
1.3.1 程序设计语言分类
机器语言:计算机能够直接识别的程序设计语言为机器语言,一条机器指令是由一个或多个字节组成的二进制编码。指令中一般包括操作码和地址码,操作码用于指示该指令的性质(如:加减法),地址码用于指示该指令操作的对象(如:加数,被加数在内存中的位置)。
汇编语言:用指令助记符来代替机器指令中的操作码和操作数。
用汇编语言书写程序比机器语言书写具有更高的效率。但它仍然是一种面向机器的低级语言,不能移植到不同类型的机器上。
汇编:将汇编语言程序转换为机器语言程序的过程。
1.3.2 程序的执行方式
高级语言不能被计算机直接执行,所以需要将它转换为机器语言程序才能执行。转换为机器语言的方式有三种:
编译:将高级语言一次性整体翻译为机器语言。
解释:解释器解释一句,计算机执行一句。
编译与解释结合:又称虚拟机工作方式(Java,Python,Perl等)。
1.4 C语言简介
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。
发展史:ALGOL60—>CPL(1963)—>BCPL(1967)—>B语言(1970)—>C语言(1972)
1.5 C语言程序开发工具
Code::Blocks; Visual C++; Dev-C++; VSCode
🐱二、数据类型,运算符与表达式
2.1 C程序基本结构
//预处理命令 //全局变量声明(可选) //函数声明(可选) int main(){ //局部变量声明 //语句序列 } //其他函数定义(可选)
1.预处理命令:
预处理命令的功能是告诉编译器预处理程序该为编译做哪些准备工作。C编译器事先设计好了许多常用函数供程序员使用,这些函数按功能分类保存在一些后缀名为.h的头文件(又称库文件)中。
#include是所有预处理命令中用的最多,也是最重要的一条,它告诉编译器要把<>中的库文件加载到本地程序中来使用。
例如:stdio.h中定义了scanf,printf等;math.h中定义了大量数学函数。
预处理命令不是C语句,所以后面不需要加分号。
2.函数:
C程序是由函数构成的,程序的功能是通过它的函数及函数调用来实现的。
C程序中的函数分为:库函数,用户自定义函数。
每个函数由函数首部和函数体两部分组成。函数首部包括对函数值返回类型,函数名,形参类型,形参名的说明。
3.变量声明:
在函数内部声明的变量称为局部变量,该变量只能被这个函数内部的语句使用。
4.注释:
/* 注释1 */ // 注释2
2.2 C程序中常见的符号
1.标识符:
标识符:在程序设计语言中,对于变量,常量,函数通过名字来标识。
标识符分为:系统预定义标识符,用户自定义标识符。
命名规则:由英文字母和下划线"_"开头,后面可以是英文字母,数字或下划线。
2.关键字:
关键字又称保留字,它们是C语言中预先规定的具有固定含义的标识符。如:int,return等。
3.运算符:
C语言的运算符可分为:单目运算符,双目运算符,三目运算符。
4.数据:
程序处理的数据有变量与常量之分:常量是指程序中保持不变的数据,变量对应某些内存单元,变量的内容是可以改变的。
5.分隔符与其它符号:
标识符之间:空格
同类项之间:逗号
语句之间:分号
2.3 数据类型
用程序验证各数据类型占用空间 :
#include <stdio.h>
int main()
{
printf("数据类型 字节\n");
printf("char %d\n", sizeof(char));
printf("short %d\n", sizeof(short));
printf("int %d\n", sizeof(int));
printf("unsigned %d\n",sizeof(unsigned));
printf("long %d\n", sizeof(long));
printf("long long %d\n", sizeof(long long));
printf("float %d\n", sizeof(float));
printf("double %d\n", sizeof(double));
return 0;
}
2.4 常量
2.4.1 整型常量
1.整型常量的表示:
十进制:89,-12
十六进制:前面加0x(零x),如0x20,表示(20)16
八进制:前面加0(零),如020,表示(20)8
2.5 变量
2.6 运算符与表达式
2.7 表达式的类型转换
2.8 const常量
2.9 小结
🐭三、算法与简单C语言程序设计
3.1 C语句
3.2 C程序输入/输出操作的实现
3.3 算法
3.4 简单程序设计举例
3.5 小结
🐹四、程序基本控制结构
4.1 逻辑运算符与逻辑表达式
4.2 选择控制结构
4.3 条件表达式
4.4 switch多分支语句
4.5 循环控制结构
4.6 程序跳转语句
4.7 多重循环及其应用
4.8 循环程序设计方法
4.9 小结
🐰五、函数及其应用
5.1 C函数概述
5.2 C语言函数的定义和调用
5.3 引用库函数与自定义函数
5.4 函数参数传递方式
5.5 函数嵌套调调用
5.6 递归函数及其应用
5.7 变量的作用域与生存空间
5.8 函数综合应用
5.9 小结
🦊六、数组及其应用
6.1 一维数组
6.2 向函数传递一维数组
6.3 基于数组的常用算法及其应用
6.4 二维数组
6.5 向函数传递二维数组
6.6 字符串及字符数组
6.7 基于数组的递归算法
6.8小结
🐻七、指针及其应用
7.1 指针的本质
7.2 指针变量的定义与初始化
7.3 间接寻址运算符
7.4 指针与函数
7.5 指针和一维数组
7.6 字符指针
7.7 指针和二维数组
7.8 指针的高级应用
7.9 小结
🐼八、结构体及其应用
8.1 为何要用结构体
8.2 结构体类型与结构体变量
8.3 指向结构体的指针
8.4 向函数体传递结构体
8.5 结构体数组
8.6 动态数据结构----单链表
8.7小结
🐯九、文件与数据存储
9.1 引例——学生文件信息创建
9.2 文件概述
9.3 文件的打开与关闭
9.4 文件检测函数
9.5 文件的读写操作
9.6 文件的随机读写
9.7 利用位运算对文件数据加密
9.8 小结
🐷十、C综合性程序设计案例分析
10.1 软件开发过程概述
10.2 基于用户角色的图书管理系统案例分析
10.3 课程设计的实施建议与选题设计
🐸附录
附录1:C语言中的关键词
附录2:常用字符与ASCII码
附录3:运算符的优先级和结合性
附录4:常用的C语言函数库
附录5:计算机2级C考试大纲
附录6:Visual C++6.0使用指南