logo资料库

C程序设计语言PDF 清晰原版.pdf

第1页 / 共232页
第2页 / 共232页
第3页 / 共232页
第4页 / 共232页
第5页 / 共232页
第6页 / 共232页
第7页 / 共232页
第8页 / 共232页
资料共232页,剩余部分请下载后查看
第一章 导言
1.1 入门
1.2 变量与算术表达式
1.3 for语句
1.4 符号常量
1.5 字符输入/输出
1.5.1 文件复制
1.5.2 字符计数
1.5.3 行计数
1.5.4 单词计数
1.6 数组
1.7 函数
1.8 参数——传值调用
1.9 字符数组
1.10 外部变量与作用域
第二章 类型、运算符与表达式
2.1 变量名
2.2 数据类型及长度
2.3 常量
2.4 声明
2.5 算术运算符
2.6 关系运算符与逻辑运算符
2.7 类型转换
2.8 自增运算符与自减运算符
2.9 按位运算符
2.10 赋值运算符与表达式
2.11 条件表达式
2.12 运算符优先级与求值次序
第三章 流控制
3.1 语句与程序块
3.2 if-else语句
3.3 else-if语句
3.4 switch语句
3.5 while循环与for循环
3.6 do-while循环
3.7 break语句与continue语句
3.8 goto语句与标号
第四章 函数与程序结构
4.1 函数的基本知识
4.2 返回非整型值的函数
4.3 外部变量
4.4 作用域规则
4.5 头文件
4.6 静态变量
4.7 寄存器变量
4.8 程序块结构
4.9 初始化
4.10 递归
4.11 C预处理器
4.11.1 文件包含
4.11.2 宏替换
4.11.3 条件包含
第五章 指针与数组
5.1 指针与地址
5.2 指针与函数参数
5.3 指针与数组
5.4 地址算术运算
5.5 字符指针与函数
5.6 指针数组以及指向指针的指针
5.7 多维数组
5.8 指针数组的初始化
5.9 指针与多维数组
5.10 命令行参数
5.11 指向函数的指针
5.12 复杂声明
第六章 结构
6.1 结构的基本知识
6.2 结构与函数
6.3 结构数组
6.4 指向结构的指针
6.5 自引用结构
6.6 表查找
6.7 类型定义(typedef)
6.8 联合
6.9 位字段
第七章 输入与输出
7.1 标准输入/输出
7.2 格式化输出——printf函数
7.3 变长参数表
7.4 格式化输入——scanf函数
7.5 文件访问
7.6 错误处理——stderr和exit
7.7 行输入和行输出
7.8 其他函数
7.8.1 字符串操作函数
7.8.2 字符类别测试和转换函数
7.8.3 ungetc函数
7.8.4 命令执行函数
7.8.5 存储管理函数
7.8.6 数学函数
7.8.7 随机数发生器函数
第八章 UNIX系统接口
8.1 文件描述符
8.2 低级I/O——read和write
8.3 open、create、close和unlink
8.4 随机访问——lseek
8.5 实例——fopen和getc函数的实现
8.6 实例——目录列表
8.7 实例——存储分配程序
附录 A 参考手册
A.1 引言
A.2 词法规则
A.2.1 记号
A.2.2 注释
A.2.3 标识符
A.2.4 关键字
A.2.5 常量
A.2.6 字符串字面值
A.3 语法符号
A.4 标识符的含义
A.4.1 存储类
A.4.2 基本类型
A.4.3 派生类型
A.4.4 类型限定符
A.5 对象和左值
A.6 转换
A.6.1 整型提升
A.6.2 整型转换
A.6.3 整数和浮点数
A.6.4 浮点类型
A.6.5 算术类型转换
A.6.6 指针和整数
A.6.7 指向void的指针
A.7 表达式
A.7.1 指针生成
A.7.2 初等表达式
A.7.3 后缀表达式
A.7.4 一元运算符
A.7.5 强制类型转换
A.7.6 乘法类运算
A.7.7 加法类运算符
A.7.8 移位运算符
A.7.9 关系运算符
A.7.10 相等类运算符
A.7.11 按位与运算符
A.7.12 按位异或运算符
A.7.13 按位或运算符
A.7.14 逻辑与运算符
A.7.15 逻辑或运算符
A.7.16 条件运算符
A.7.17 赋值表达式
A.7.18 逗号运算符
A.7.19 常量表达式
A.8 声明
A.8.1 存储类说明符
A.8.2 类型说明符
A.8.3 结构和联合声明
A.8.4 枚举
A.8.5 声明符
A.8.6 声明符的含义
A.8.7 初始化
A.8.8 类型名
A.8.9 typedef
A.8.10 类型等价
A.9 语句
A.9.1 带标号的语句
A.9.2 表达式语句
A.9.3 复合语句
A.9.4 选择语句
A.9.5 循环语句
A.9.6 跳转语句
A.10 外部声明
A.10.1 函数定义
A.10.2 外部声明
A.11 作用域与连接
A.11.1 词法作用域
A.11.2 连接
A.12 预处理
A.12.1 三字符序列
A.12.2 行连接
A.12.3 宏定义和扩展
A.12.4 文件包含
A.12.5 条件编译
A.12.6 行控制
A.12.7 错误信息生成
A.12.8 pragma
A.12.9 空指令
A.12.10 预定义名字
A.13 语法
附录 B 标准库
B.1 输入与输出:
B.1.1 文件操作
B.1.2 格式化输出
B.1.3 格式化输入
B.1.4 字符输入/输出函数
B.1.5 直接输入/输出函数
B.1.6 文件定位函数
B.1.7 错误处理函数
B.2 字符类别测试:
B.3 字符串函数:
B.4 数学函数:
B.5 实用函数:
B.6 诊断:
B.7 可变参数表:
B.8 非局部跳转:
B.9 信号:
B.10 日期与时间函数:
B.11 与具体实现相关的限制:
附录 C 变更小结
1 C C C C C 1.1. hello, world C “ hello, world #include main() { printf("hello, world\n"); } UNIX Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
“ .c hello.c cc hello.c a.out a.out a.out hello, world #include main() { printf("hello, world\n"); } main main main printf \n C C C Fortran Pascal main main —— main main main #include C 7 B main () {} main printf("hello, world\n"); "hello, world\n" printf printf "hello, world\n" printf C \n \n Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
printf \n \n printf("hello, world "); C printf #include main() { printf("hello, "); printf("world"); printf("\n"); } \n \n C \t \b \"\\2.3 1-1 “ hello, world 1-2 printf \c c 1.2. =(5/9)(-32) 1 20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 -17 -6 4 15 26 37 48 60 71 82 93 104 115 126 137 148 main “ hello, world Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
*/ #include /* fahr=020… 300 main() { int fahr, celsius; int lower, upper, step; lower = 0; /* */ upper = 300; /* */ step = 20; /* */ fahr = lower; while (fahr <= upper) { celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } } /* fahr=020… 300 */ /**/ C int fahr, celsius; int lower, upper, step; int float int float int 16 -3276832767 32 int float 32 6 10-381038 int float C char short long double —— 4 Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
lower = 0; upper = 300; step = 20; fahr = lower; while while (fahr <= upper) { ... } while (fahr<=upper) 3 (fahr>upper) while while while (i < j) i = 2 * i; while C celsius = 5 * (fahr - 32) / 9 celsius 5 9 5 / 9 C 5 9 5 / 9 0 0 printf printf 7 % …… %d printf(" %d\t%d\n", fahr, celsius); fahr celsius \t printf %…… Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
printf C C printf C ANSI printf C 7 7 7.4 scanf scanf printf printf %d printf(" %3d %6d\n", fahr, celsius); fahr celsius fahr 3 celsius 6 0 -17 20 -6 40 4 60 15 80 26 100 37 ... 0-17.8-17 #include /* print Fahrenheit-Celsius table for fahr = 0, 20, ..., 300; floating-point version */ main() { float fahr, celsius; float lower, upper, step; lower = 0; /* lower limit of temperatuire scale */ upper = 300; /* upper limit */ step = 20; /* step size */ fahr = lower; while (fahr <= upper) { celsius = (5.0/9.0) * (fahr-32.0); printf("%3.0f %6.1f\n", fahr, celsius); fahr = fahr + step; } } fahr celsius float 5 / 9 Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
0 5.0 / 9.0 fahr – 32 32 2 fahr = lower; while (fahr <= upper) int float printf %3.0f fahr 3 %6.1f celsius 6 1 0 -17.8 20 -6.7 40 4.4 ... %6f 6 %.2f %f %d %6d %f %6f %.2f %6.2f printf %o %x %c 6 6 6 %s %%% 1-3 1-4 1.3. for #include Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
/*—*/ main() { int fahr; for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); } int fahr for printf C printf %6.1f for while for while for 3 fahr = 0 fahr <= 300 true printf fahr = fahr + 20 fahr faise while for whi1e for for while 1-5 300 0 1.4. 30020 #define Click to buy NOW!PDF-XCHANGEwww.docu-track.comClick to buy NOW!PDF-XCHANGEwww.docu-track.com
分享到:
收藏