返回首页
苏宁会员
购物车 0
易付宝
手机苏宁
分类
知行图书图书拼购店
  • 扫码下单

  • C语言程序设计现代方法第2版 king C语言经典之作 哈佛麻省理工斯坦福C语言教材 C程序设计教程 计算机教材
  • C标准库,软件工程,现代编程理念
    • 作者: [美]K. N. King 著著
    • 出版社: 人民邮电出版社
    • 出版时间:2010年03月 
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    店铺装修中

    商家:
    知行图书图书拼购店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    知行图书图书拼购店

  • 商品参数
    • 作者: [美]K. N. King 著著
    • 出版社:人民邮电出版社
    • 出版时间:2010年03月 
    • ISBN:9787115219572
    • 版权提供:人民邮电出版社

    商品参数


    产品展示 .
    基本信息 .
    商品名称: C语言程序设计 现代方法 第2版
    作 者: [美] 金 著;吕秀锋,黄倩 译
    定 价: 79.00元
    ISBN...号: 9787115219572
    ....社: 人民邮电出版社
    开 本: 16
    装 帧: 平装
    编辑推荐 .
    ..《C语言程序设计:现代方法(第2版)》是C语言的经典之作,被誉为“近10年来的一部C语言著作”。书中讨论了标准C和C标准库的全部特性,包括信号、setjmp/longjmp和可变参数列表等其他书中很少涉及的内容。全书由易而难、循序渐进、螺旋式地讲述C语言,很好地处理了指针和位运算等难点。第2版覆盖了C99标准,并提供了对所有C99库函数的参考,还扩展了GCC的内容,增加了对抽象数据类型的讨论,并针对新CPU和操作系统做了更新。《C语言程序设计:现代方法(第2版)》尤为强调软件工程和现代编程理念,在知识的阐述中突出工业界的实践、实际经验和编程风格,使读者能够合理运用所学,编写出可读性好、可靠性高和容易维护的代码。书中精心选择了近500道习题,贴近实战,与叙述文字相得益彰。
    目前《C语言程序设计:现代方法(第2版)》已被全球200多所学校采用为教材,包括哈佛大学、麻省理工学院、斯坦福大学、加州大学伯克利分校、耶鲁大学、加州理工学院等诸多名校。
    内容介绍 .
    时至今日,C语言仍然是计算机领域的通用语言之一,但今天的C语言已经和zui初的时候大不相同了。本书zui主要的一个目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了C99标准,并与C89标准进行对照,补充了C99中的全新特性。本书分为C语言的基础特性、C语言的高级特性、C语言标准库和参考资料4个部分。每章末尾都有一个“问与答”小节给出一系列与该章内容相关的问题及答案,此外还包含适量的习题。
    《C语言程序设计:现代方法(第2版)》是为大学本科阶段的C语言课程编写的教材,同时也非常适合作为其他课程的辅助用书。
    作者介绍 .

    K. N. King 世界知名的计算机程序设计教育家,现为佐治亚州立大学数学与计算机科学系副教授。他拥有耶鲁大学计算机科学硕士学位,加州大学伯克利分校计算机科学博士学位,曾任教于佐治亚理工学院。除本书外,他还撰写了广受欢迎的著作Modula-2: A Complete Guide 和Java Programming: From the Beginning,并在Dr.Dobbs Journal等专业杂志上发表了许多文章。业余时间,King教授还在多部电影中扮演过角色。




    吕秀锋,亚洲理工大学(AIT)计算机软件硕士,现为北京理工大学软件学院教师。多年来一直从事“计算机基础(双语)”、“C语言程序设计(双语)”以及“程序设计开发与实践”等本科生课程的教学工作,深受学生欢迎。她还译有《数据结构与算法:C#语言描述》一书。




    黄倩,中国科学院计算技术研究所工学博士,中国计算机学会会员。研究方向包括视频处理、视频监控等,已在知名的国际期刊和国际会议论文集上发表10篇论文。译有《编程珠玑(第2版)》一书,受到读者欢迎。

    目录 .
    第1章 C语言概述1
    1.1 C语言的历史1
    1.1.1 起源1
    1.1.2 标准化1
    1.1.3 基于C的语言2
    1.2 C语言的优缺点3
    1.2.1 C语言的优点3
    1.2.2 C语言的缺点3
    1.2.3 高效地使用C语言4
    问与答5

    第2章 C语言基本概念7
    2.1 编写一个简单的C程序7
    程序显示双关语7
    2.1.1 编译和链接8
    2.1.2 集成开发环境8
    2.2 简单程序的一般形式9
    2.2.1 指令9
    2.2.2 函数9
    2.2.3 语句10
    2.2.4 显示字符串10
    2.3 注释11
    2.4 变量和赋值12
    2.4.1 类型12
    2.4.2 声明13
    2.4.3 赋值13
    2.4.4 显示变量的值14
    程序计算箱子的空间重量14
    2.4.5 初始化15
    2.4.6 显示表达式的值16
    2.5 读入输入16
    程序计算箱子的空间重量(改进版)16
    2.6 定义常量的名字17
    程序华氏温度转换为摄氏温度17
    2.7 标识符18
    2.8 C程序的书写规范19
    问与答21
    练习题23
    编程题24

    第3章 格式化输入/输出26
    3.1 printf函数26
    3.1.1 转换说明27
    程序用printf函数格式化数28
    3.1.2 转义序列28
    3.2 scanf函数29
    3.2.1 scanf函数的工作方法30
    3.2.2 格式串中的普通字符31
    3.2.3 易混淆的printf函数和scanf函数32
    程序分数相加32
    问与答33
    练习题34
    编程题35

    第4章 表达式36
    4.1 算术运算符36
    程序计算通用产品代码的校验位38
    4.2 赋值运算符39
    4.2.1 简单赋值40
    4.2.2 左值41
    4.2.3 复合赋值41
    4.3 自增运算符和自减运算符42
    4.4 表达式求值43
    4.5 表达式语句45
    问与答45
    练习题47
    编程题49

    第5章 选择语句50
    5.1 逻辑表达式50
    5.1.1 关系运算符50
    5.1.2 判等运算符51
    5.1.3 逻辑运算符51
    5.2 if语句52
    5.2.1 复合语句53
    5.2.2 else子句53
    5.2.3 级联式if语句54
    程序计算股票经纪人的佣金55
    5.2.4 “悬空else”的问题56
    5.2.5 条件表达式57
    5.2.6 C89中的布尔值58
    5.2.7 C99中的布尔值58
    5.3 switch语句59
    程序显示法定格式的日期61
    问与答62
    练习题65
    编程题67

    第6章 循环69
    6.1 while语句69
    程序显示平方表71
    程序数列求和71
    6.2 do语句72
    程序计算整数的位数73
    6.3 for语句73
    6.3.1 for语句的惯用法74
    6.3.2 在for语句中省略表达式75
    6.3.3 C99中的for语句75
    6.3.4 逗号运算符76
    程序显示平方表(改进版)77
    6.4 退出循环78
    6.4.1 break语句78
    6.4.2 continue语句78
    6.4.3 goto语句79
    程序账簿结算80
    6.5 空语句81
    问与答83
    练习题84
    编程题85

    第7章 基本类型88
    7.1 整数类型88
    7.1.1 C99中的整数类型90
    7.1.2 整数常量90
    7.1.3 C99中的整数常量91
    7.1.4 整数溢出91
    7.1.5 读/写整数91
    程序数列求和(改进版)92
    7.2 浮点类型93
    7.2.1 浮点常量94
    7.2.2 读/写浮点数94
    7.3 字符类型94
    7.3.1 字符操作95
    7.3.2 有符号字符和无符号字符95
    7.3.3 算术类型96
    7.3.4 转义序列96
    7.3.5 字符处理函数97
    7.3.6 用scanf和printf读/写字符98
    7.3.7 用getchar和putchar读/写字符98
    程序确定消息的长度99
    7.4 类型转换100
    7.4.1 常用算术转换101
    7.4.2 赋值过程中的转换102
    7.4.3 C99中的隐式转换103
    7.4.4 强制类型转换103
    7.5 类型定义105
    7.5.1 类型定义的优点105
    7.5.2 类型定义和可移植性105
    7.6 sizeof运算符106
    问与答107
    练习题109
    编程题110

    第8章 数组113
    8.1 一维数组113
    8.1.1 数组下标113
    程序数列反向115
    8.1.2 数组初始化115
    8.1.3 指定初始化式116
    程序检查数中重复出现的数字116
    8.1.4 对数组使用sizeof运算符117
    程序计算利息118
    8.2 多维数组119
    8.2.1 多维数组初始化120
    8.2.2 常量数组121
    程序发牌121
    8.3 C99中的变长数组122
    问与答123
    练习题124
    编程题125

    第9章 函数129
    9.1 函数的定义和调用129
    程序计算平均值129
    程序显示倒计数130
    程序显示双关语(改进版)131
    9.1.1 函数定义132
    9.1.2 函数调用133
    程序判定素数134
    9.2 函数声明135
    9.3 实际参数136
    9.3.1 实际参数的转换137
    9.3.2 数组型实际参数138
    9.3.3 变长数组形式参数140
    9.3.4 在数组参数声明中使用static141
    9.3.5 复合字面量141
    9.4 return语句142
    9.5 程序终止143
    9.6 递归144
    程序快速排序146
    问与答147
    练习题150
    编程题153

    第10章 程序结构155
    10.1 局部变量155
    10.1.1 静态局部变量156
    10.1.2 形式参数156
    10.2 外部变量156
    10.2.1 示例:用外部变量实现栈156
    10.2.2 外部变量的利与弊157
    程序猜数158
    10.3 程序块161
    10.4 作用域162
    10.5 构建C程序163
    程序给一手牌分类163
    问与答169
    练习题169
    编程题170

    第11章 指针172
    11.1 指针变量172
    11.2 取地址运算符和间接寻址运算符173
    11.2.1 取地址运算符173
    11.2.2 间接寻址运算符174
    11.3 指针赋值174
    11.4 指针作为参数176
    程序找出数组中的zui大元素和zui小元素177
    11.5 指针作为返回值179
    问与答180
    练习题181
    编程题182

    第12章 指针和数组184
    12.1 指针的算术运算184
    12.1.1 指针加上整数185
    12.1.2 指针减去整数185
    12.1.3 两个指针相减186
    12.1.4 指针比较186
    12.1.5 指向复合常量的指针186
    12.2 指针用于数组处理186
    12.3 用数组名作为指针188程序数列反向(改进版)189
    12.3.1 数组型实际参数(改进版)189
    12.3.2 用指针作为数组名191
    12.4 指针和多维数组191
    12.4.1 处理多维数组的元素191
    12.4.2 处理多维数组的行192
    12.4.3 处理多维数组的列192
    12.4.4 用多维数组名作为指针192
    12.5 C99中的指针和变长数组193
    问与答194
    练习题195
    编程题197

    第13章 字符串198
    13.1 字符串字面量198
    13.1.1 字符串字面量中的转义序列198
    13.1.2 延续字符串字面量199
    13.1.3 如何存储字符串字面量199
    13.1.4 字符串字面量的操作200
    13.1.5 字符串字面量与字符常量200
    13.2 字符串变量200
    13.2.1 初始化字符串变量201
    13.2.2 字符数组与字符指针202
    13.3 字符串的读和写203
    13.3.1 用printf函数和puts函数写字符串203
    13.3.2 用scanf函数和gets函数读字符串203
    13.3.3 逐个字符读字符串204
    13.4 访问字符串中的字符205
    13.5 使用C语言的字符串库206
    13.5.1 strcpy函数207
    13.5.2 strlen函数208
    13.5.3 strcat函数208
    13.5.4 strcmp函数209程序显示一个月的提醒列表209
    13.6 字符串惯用法211
    13.6.1 搜索字符串的结尾211
    13.6.2 复制字符串213
    13.7 字符串数组214
    程序核对行星的名字217
    问与答218
    练习题220
    编程题222

    第14章 预处理器225
    14.1 预处理器的工作原理225
    14.2 预处理指令227
    14.3 宏定义227
    14.3.1 简单的宏227
    14.3.2 带参数的宏229
    14.3.3 #运算符231
    14.3.4 ##运算符231
    14.3.5 宏的通用属性232
    14.3.6 宏定义中的圆括号233
    14.3.7 创建较长的宏233
    14.3.8 预定义宏234
    14.3.9 C99中新增的预定义宏235
    14.3.10 空的宏参数236
    14.3.11 参数个数可变的宏236
    14.3.12 __func__标识符237
    14.4 条件编译237
    14.4.1 #if指令和#endif指令238
    14.4.2 defined运算符238
    14.4.3 #ifdef指令和#ifndef指令239
    14.4.4 #elif指令和#else指令239
    14.4.5 使用条件编译240
    14.5 其他指令240
    14.5.1 #error指令240
    14.5.2 #line指令241
    14.5.3 #pragma指令242
    14.5.4 _Pragma运算符242
    问与答243
    练习题245

    第15章 编写大型程序248
    15.1 源文件248
    15.2 头文件249
    15.2.1 #include指令249
    15.2.2 享宏定义和类型定义250
    15.2.3 享函数原型251
    15.2.4 享变量声明252
    15.2.5 嵌套包含253
    15.2.6 保护头文件253
    15.2.7 头文件中的#error指令254
    15.3 把程序划分成多个文件254程序文本格式化255
    15.4 构建多文件程序260
    15.4.1 makefile260
    15.4.2 链接期间的错误262
    15.4.3 重新构建程序262
    15.4.4 在程序外定义宏264
    问与答264
    练习题265
    编程题266

    第16章 结构、联合和枚举267
    16.1 结构变量267
    16.1.1 结构变量的声明267
    16.1.2 结构变量的初始化269
    16.1.3 指定初始化269
    16.1.4 对结构的操作270
    16.2 结构类型270
    16.2.1 结构标记的声明271
    16.2.2 结构类型的定义272
    16.2.3 结构作为参数和返回值272
    16.2.4 复合字面量273
    16.3 嵌套的数组和结构274
    16.3.1 嵌套的结构274
    16.3.2 结构数组274
    16.3.3 结构数组的初始化275程序维护零件数据库275
    16.4 联合281
    16.4.1 用联合来节省空间282
    16.4.2 用联合来构造混合的数据结构284
    16.4.3 为联合添加“标记字段”284
    16.5 枚举285
    16.5.1 枚举标记和类型名286
    16.5.2 枚举作为整数286
    16.5.3 用枚举声明“标记字段”286
    问与答287
    练习题289
    编程题293

    第17章 指针的高级应用294
    17.1 动态存储分配294
    17.1.1 内存分配函数294
    17.1.2 空指针295
    17.2 动态分配字符串296
    ……
    第18章 声明 327
    第19章 程序设计 345
    第20章 底层程序设计 363
    第21章 标准库 377
    第22章 输入/输出 384
    第23章 库对数值和字符数据的支持 419
    第24章 错误处理 446
    第25章 国际化特性 456
    第26章 其他库函数 482
    第27章 C99对数学计算的新增支持 503
    附录A C语言运算符 524
    附录B C99与C89的比较 525
    附录C C89与经典C的比较 529
    附录D 标准库函数 532
    附录E ASCII字符集 569
    参考文献 570
    索引 573
    . .
    . .
    在线试读部分章节 .
    C语言的输入/输出库是标准库中zui大且zui重要的部分。由于输入/输出是C语言的高级应用,因此这里将用一整章(本书中zui长的一章)来讨论头——输入/输出函数存放的主要地方。
    从第2章开始,我们已经在使用了,而且已经对printf函数、scanf函数、putchar函数、getchar函数、puts函数以及gets函数的使用有了一定的了解。本章会提供更多有关这6个函数的信息,并介绍一些新的用于文件处理的函数。值得高兴的是,许多新函数和我们已经熟知的函数有着紧密的联系。例如,printf函数就是printf函数的“文件版”。
    本章的开始将会讨论一些基本问题:流的概念、FILE类型、输入和输出重定向以及文本文件和二进制文件的差异(22.1节)。随后将转入讨论特别为使用文件而设计的函数,包括打开和关闭文件的函数(22.2节)。在讨论完printf函数、scanf函数以及与“格式化”输入/输出相关的函数(22.3节)以后,我们将着眼于读/写非格式化数据的函数。
    ·每次读写一个字符的getc函数、putc函数以及相关的函数(22.4节)。
    ·每次读写一行字符的gets函数、puts函数以及相关的函数(22.5节)。
    ·读/写数据块的fread函数和fwri七e函数(22.6节)。随后,22.7节会说明如何对文件上执行随机的访问操作。zui后,22.8节会描述sprintf函数、snpr·intf函数和sscanf函数,它们是printf函数和scan£函数的变体,后两者分别用于写入和读取一个字符串。
    本章涵盖了中的绝大部分函数,但忽略了其中8个函数。perror函数是这8个函1数中的一个,它与头紧密相关,所以我把它推迟到24.2节讨论头时进行介绍。26.1节涵盖了其余7个函数(vfprintf、vprintf、vsprintf、vsnprintf、vfscanf、vscanf和vsscanf)。这些函数依赖于valist类型,该类型在26.1节介绍。
    在C89r扣,所有的标准输入/输出函数都属于但C99有所不同,有些输入/输出函数在.头(25.5节)中声明。中的函数用于处理宽字符而不是普通字符,但大多数函数与中的函数紧密相关。中用于读或写数据的函数称为宇节输入/输出函数,而中的类似函数则称为宽字符输入/输出函数。
    . .
    . .

     


    内容介绍

    ...........


    目录

    目 录
     
    第 1章 C语言概述 1
    1.1 C语言的历史 1
    1.1.1 起源 1
    1.1.2 标准化 1
    1.1.3 基于C的语言 2
    1.2 C语言的优缺点 3
    1.2.1 C语言的优点 3
    1.2.2 C语言的缺点 3
    1.2.3 高效地使用C语言 4
    问与答 5

    第 2章 C语言基本概念 7
    2.1 编写一个简单的C程序 7
     程序 显示双关语 7
    2.1.1 编译和链接 8
    2.1.2 集成开发环境 8
    2.2 简单程序的一般形式 9
    2.2.1 指令 9
    2.2.2 函数 9
    2.2.3 语句 10
    2.2.4 显示字符串 10
    2.3 注释 11
    2.4 变量和赋值 12
    2.4.1 类型 12
    2.4.2 声明 13
    2.4.3 赋值 13
    2.4.4 显示变量的值 14
     程序 计算箱子的空间重量 14
    2.4.5 初始化 15
    2.4.6 显示表达式的值 16
    2.5 读入输入 16
     程序 计算箱子的空间重量(改进版) 16
    2.6 定义常量的名字 17
     程序 华氏温度转换为摄氏温度 17
    2.7 标识符 18
    2.8 C程序的书写规范 19
    问与答 21
    练习题 23
    编程题 24

    第3章 格式化输入/输出 26
    3.1 printf函数 26
    3.1.1 转换说明 27
     程序 用printf函数格式化数 28
    3.1.2 转义序列 28
    3.2 scanf函数 29
    3.2.1 scanf函数的工作方法 30
    3.2.2 格式串中的普通字符 31
    3.2.3 易混淆的printf函数和scanf函数 32
     程序 分数相加 32
    问与答 33
    练习题 34
    编程题 35

    第4章 表达式 36
    4.1 算术运算符 36
     程序 计算通用产品代码的校验位 38
    4.2 赋值运算符 39
    4.2.1 简单赋值 40
    4.2.2 左值 41
    4.2.3 复合赋值 41
    4.3 自增运算符和自减运算符 42
    4.4 表达式求值 43
    4.5 表达式语句 45
    问与答 45
    练习题 47
    编程题 49

    第5章 选择语句 50
    5.1 逻辑表达式 50
    5.1.1 关系运算符 50
    5.1.2 判等运算符 51
    5.1.3 逻辑运算符 51
    5.2 if语句 52
    5.2.1 复合语句 53
    5.2.2 else子句 53
    5.2.3 级联式if语句 54
     程序 计算股票经纪人的佣金 55
    5.2.4 “悬空else”的问题 56
    5.2.5 条件表达式 57
    5.2.6 C89中的布尔值 58
    5.2.7 C99中的布尔值 58
    5.3 switch语句 59
     程序 显示法定格式的日期 61
    问与答 62
    练习题 65
    编程题 67

    第6章 循环 69
    6.1 while语句 69
     程序 显示平方表 71
     程序 数列求和 71
    6.2 do语句 72
     程序 计算整数的位数 73
    6.3 for语句 73
    6.3.1 for语句的惯用法 74
    6.3.2 在for语句中省略表达式 75
    6.3.3 C99中的for语句 75
    6.3.4 逗号运算符 76
     程序 显示平方表(改进版) 77
    6.4 退出循环 78
    6.4.1 break语句 78
    6.4.2 continue语句 78
    6.4.3 goto语句 79
     程序 账簿结算 80
    6.5 空语句 81
    问与答 83
    练习题 84
    编程题 85

    第7章 基本类型 88
    7.1 整数类型 88
    7.1.1 C99中的整数类型 90
    7.1.2 整数常量 90
    7.1.3 C99中的整数常量 91
    7.1.4 整数溢出 91
    7.1.5 读/写整数 91
     程序 数列求和(改进版) 92
    7.2 浮点类型 93
    7.2.1 浮点常量 94
    7.2.2 读/写浮点数 94
    7.3 字符类型 94
    7.3.1 字符操作 95
    7.3.2 有符号字符和无符号字符 95
    7.3.3 算术类型 96
    7.3.4 转义序列 96
    7.3.5 字符处理函数 97
    7.3.6 用scanf和printf读/写字符 98
    7.3.7 用getchar和putchar读/写字符 98
     程序 确定消息的长度 99
    7.4 类型转换 100
    7.4.1 常用算术转换 101
    7.4.2 赋值过程中的转换 102
    7.4.3 C99中的隐式转换 103
    7.4.4 强制类型转换 103
    7.5 类型定义 105
    7.5.1 类型定义的优点 105
    7.5.2 类型定义和可移植性 105
    7.6 sizeof运算符 106
    问与答 107
    练习题 109
    编程题 110

    第8章 数组 113
    8.1 一维数组 113
    8.1.1 数组下标 113
     程序 数列反向 115
    8.1.2 数组初始化 115
    8.1.3 指定初始化式 116
     程序 检查数中重复出现的数字 116
    8.1.4 对数组使用sizeof运算符 117
     程序 计算利息 118
    8.2 多维数组 119
    8.2.1 多维数组初始化 120
    8.2.2 常量数组 121
     程序 发牌 121
    8.3 C99中的变长数组 122
    问与答 123
    练习题 124
    编程题 125

    第9章 函数 129
    9.1 函数的定义和调用 129
     程序 计算平均值 129
     程序 显示倒计数 130
     程序 显示双关语(改进版) 131
    9.1.1 函数定义 132
    9.1.2 函数调用 133
     程序 判定素数 134
    9.2 函数声明 135
    9.3 实际参数 136
    9.3.1 实际参数的转换 137
    9.3.2 数组型实际参数 138
    9.3.3 变长数组形式参数 140
    9.3.4 在数组参数声明中使用static 141
    9.3.5 复合字面量 141
    9.4 return语句 142
    9.5 程序终止 143
    9.6 递归 144
     程序 快速排序 146
    问与答 147
    练习题 150
    编程题 153

    第 10章 程序结构 155
    10.1 局部变量 155
    10.1.1 静态局部变量 156
    10.1.2 形式参数 156
    10.2 外部变量 156
    10.2.1 示例:用外部变量实现栈 156
    10.2.2 外部变量的利与弊 157
     程序 猜数 158
    10.3 程序块 161
    10.4 作用域 162
    10.5 构建C程序 163
     程序 给一手牌分类 163
    问与答 169
    练习题 169
    编程题 170

    第 11章 指针 172
    11.1 指针变量 172
    11.2 取地址运算符和间接寻址运算符 173
    11.2.1 取地址运算符 173
    11.2.2 间接寻址运算符 174
    11.3 指针赋值 174
    11.4 指针作为参数 176
     程序 找出数组中的**大元素和**小元素 177
    11.5 指针作为返回值 179
    问与答 180
    练习题 181
    编程题 182

    第 12章 指针和数组 184
    12.1 指针的算术运算 184
    12.1.1 指针加上整数 185
    12.1.2 指针减去整数 185
    12.1.3 两个指针相减 186
    12.1.4 指针比较 186
    12.1.5 指向复合常量的指针 186
    12.2 指针用于数组处理 186
    12.3 用数组名作为指针 188
     程序 数列反向(改进版) 189
    12.3.1 数组型实际参数(改进版) 189
    12.3.2 用指针作为数组名 191
    12.4 指针和多维数组 191
    12.4.1 处理多维数组的元素 191
    12.4.2 处理多维数组的行 192
    12.4.3 处理多维数组的列 192
    12.4.4 用多维数组名作为指针 192
    12.5 C99中的指针和变长数组 193
    问与答 194
    练习题 195
    编程题 197

    第 13章 字符串 198
    13.1 字符串字面量 198
    13.1.1 字符串字面量中的转义序列 198
    13.1.2 延续字符串字面量 199
    13.1.3 如何存储字符串字面量 199
    13.1.4 字符串字面量的操作 200
    13.1.5 字符串字面量与字符常量 200
    13.2 字符串变量 200
    13.2.1 初始化字符串变量 201
    13.2.2 字符数组与字符指针 202
    13.3 字符串的读和写 203
    13.3.1 用printf函数和puts函数写字符串 203
    13.3.2 用scanf函数和gets函数读字符串 203
    13.3.3 逐个字符读字符串 204
    13.4 访问字符串中的字符 205
    13.5 使用C语言的字符串库 206
    13.5.1 strcpy函数 207
    13.5.2 strlen函数 208
    13.5.3 strcat函数 208
    13.5.4 strcmp函数 209
     程序 显示一个月的提醒列表 209
    13.6 字符串惯用法 211
    13.6.1 搜索字符串的结尾 211
    13.6.2 复制字符串 213
    13.7 字符串数组 214
     程序 核对行星的名字 217
    问与答 218
    练习题 220
    编程题 222

    第 14章 预处理器 225
    14.1 预处理器的工作原理 225
    14.2 预处理指令 227
    14.3 宏定义 227
    14.3.1 简单的宏 227
    14.3.2 带参数的宏 229
    14.3.3 #运算符 231
    14.3.4 ##运算符 231
    14.3.5 宏的通用属性 232
    14.3.6 宏定义中的圆括号 233
    14.3.7 创建较长的宏 233
    14.3.8 预定义宏 234
    14.3.9 C99中新增的预定义宏 235
    14.3.10 空的宏参数 236
    14.3.11 参数个数可变的宏 236
    14.3.12 __func__标识符 237
    14.4 条件编译 237
    14.4.1 #if指令和#endif指令 238
    14.4.2 defined运算符 238
    14.4.3 #ifdef指令和#ifndef指令 239
    14.4.4 #elif指令和#else指令 239
    14.4.5 使用条件编译 240
    14.5 其他指令 240
    14.5.1 #error指令 240
    14.5.2 #line指令 241
    14.5.3 #pragma指令 242
    14.5.4 _Pragma运算符 242
    问与答 243
    练习题 245

    第 15章 编写大型程序 248
    15.1 源文件 248
    15.2 头文件 249
    15.2.1 #include指令 249
    15.2.2 享宏定义和类型定义 250
    15.2.3 享函数原型 251
    15.2.4 享变量声明 252
    15.2.5 嵌套包含 253
    15.2.6 保护头文件 253
    15.2.7 头文件中的#error指令 254
    15.3 把程序划分成多个文件 254
     程序 文本格式化 255
    15.4 构建多文件程序 260
    15.4.1 makefile 260
    15.4.2 链接期间的错误 262
    15.4.3 重新构建程序 262
    15.4.4 在程序外定义宏 264
    问与答 264
    练习题 265
    编程题 266

    第 16章 结构、联合和枚举 267
    16.1 结构变量 267
    16.1.1 结构变量的声明 267
    16.1.2 结构变量的初始化 269
    16.1.3 指定初始化 269
    16.1.4 对结构的操作 270
    16.2 结构类型 270
    16.2.1 结构标记的声明 271
    16.2.2 结构类型的定义 272
    16.2.3 结构作为参数和返回值 272
    16.2.4 复合字面量 273
    16.3 嵌套的数组和结构 274
    16.3.1 嵌套的结构 274
    16.3.2 结构数组 274
    16.3.3 结构数组的初始化 275
     程序 维护零件数据库 275
    16.4 联合 281
    16.4.1 用联合来节省空间 282
    16.4.2 用联合来构造混合的数据结构 284
    16.4.3 为联合添加“标记字段” 284
    16.5 枚举 285
    16.5.1 枚举标记和类型名 286
    16.5.2 枚举作为整数 286
    16.5.3 用枚举声明“标记字段” 286
    问与答 287
    练习题 289
    编程题 293

    第 17章 指针的应用 294
    17.1 动态存储分配 294
    17.1.1 内存分配函数 294
    17.1.2 空指针 295
    17.2 动态分配字符串 296
    17.2.1 使用malloc函数为字符串分配内存 296
    17.2.2 在字符串函数中使用动态存储分配 296
    17.2.3 动态分配字符串的数组 297
     程序 显示一个月的提醒列表(改进版) 297
    17.3 动态分配数组 299
    17.3.1 使用malloc函数为数组分配存储空间 299
    17.3.2 calloc函数 300
    17.3.3 realloc函数 300
    17.4 释放存储空间 301
    17.4.1 free函数 301
    17.4.2 “悬空指针”问题 301
    17.5 链表 302
    17.5.1 声明结点类型 302
    17.5.2 创建结点 303
    17.5.3 ->运算符 303
    17.5.4 在链表的开始处插入结点 304
    17.5.5 搜索链表 306
    17.5.6 从链表中删除结点 307
    17.5.7 有序链表 308
     程序 维护零件数据库(改进版) 309
    17.6 指向指针的指针 313
    17.7 指向函数的指针 314
    17.7.1 函数指针作为参数 314
    17.7.2 qsort函数 314
    17.7.3 函数指针的其他用途 316
     程序 列三角函数表 317
    17.8 受限指针 318
    17.9 灵活数组成员 319
    问与答 320
    练习题 323
    编程题 325

    第 18章 声明 327
    18.1 声明的语法 327
    18.2 存储类型 328
    18.2.1 变量的性质 328
    18.2.2 auto存储类型 329
    18.2.3 static存储类型 329
    18.2.4 extern存储类型 330
    18.2.5 register存储类型 331
    18.2.6 函数的存储类型 332
    18.2.7 小结 332
    18.3 类型限定符 333
    18.4 声明符 334
    18.4.1 解释复杂声明 335
    18.4.2 使用类型定义来简化声明 336
    18.5 初始化式 336
    18.6 内联函数 337
    18.6.1 内联定义 338
    18.6.2 对内联函数的限制 339
    18.6.3 在GCC中使用内联函数 339
    问与答 339
    练习题 342

    第 19章 程序设计 345
    19.1 模块 345
    19.1.1 内聚性与耦合性 347
    19.1.2 模块的类型 347
    19.2 信息隐藏 347
    19.3 抽象数据类型 350
    19.3.1 封装 351
    19.3.2 不完整类型 351
    19.4 栈抽象数据类型 352
    19.4.1 为栈抽象数据类型定义接口 352
    19.4.2 用定长数组实现栈抽象数据类型 353
    19.4.3 改变栈抽象数据类型中数据项的类型 354
    19.4.4 用动态数组实现栈抽象数据类型 355
    19.4.5 用链表实现栈抽象数据类型 357
    19.5 抽象数据类型的设计问题 359
    19.5.1 命名惯例 359
    19.5.2 错误处理 359
    19.5.3 通用抽象数据类型 359
    19.5.4 新语言中的抽象数据类型 360
    问与答 360
    练习题 361
    编程题 362

    第 20章 底层程序设计 363
    20.1 位运算符 363
    20.1.1 移位运算符 363
    20.1.2 按位求反运算符、按位与运算符、按位异或运算符和按位或运算符 364
    20.1.3 用位运算符访问位 365
    20.1.4 用位运算符访问位域 366
     程序 XOR加密 366
    20.2 结构中的位域 367
    20.3 其他底层技术 369
    20.3.1 定义依赖机器的类型 369
    20.3.2 用联合提供数据的多个视角 370
    20.3.3 将指针作为地址使用 371
     程序 查看内存单元 371
    20.3.4 volatile类型限定符 373
    问与答 374
    练习题 374
    编程题 376

    第 21章 标准库 377
    21.1 标准库的使用 377
    21.1.1 对标准库中所用名字的限制 377
    21.1.2 使用宏隐藏的函数 378
    21.2 C89标准库概述 378
    21.3 C99标准库更新 380
    21.4  :常用定义 381
    21.5  :布尔类型和值 381
    问与答 382
    练习题 382
    编程题 383

    第 22章 输入/输出 384
    22.1 流 384
    22.1.1 文件指针 385
    22.1.2 标准流和重定向 385
    22.1.3 文本文件与二进制文件 385
    22.2 文件操作 386
    22.2.1 打开文件 386
    22.2.2 模式 387
    22.2.3 关闭文件 388
    22.2.4 为打开的流附加文件 389
    22.2.5 从命令行获取文件名 389
     程序 检查文件是否可以打开 389
    22.2.6 临时文件 390
    22.2.7 文件缓冲 391
    22.2.8 其他文件操作 392
    22.3 格式化的输入/输出 393
    22.3.1 …printf函数 393
    22.3.2 …printf转换说明 393
    22.3.3 C99对…printf转换说明的修改 395
    22.3.4 …printf转换说明示例 396
    22.3.5 …scanf函数 398
    22.3.6 …scanf格式串 398
    22.3.7 …scanf转换说明 398
    22.3.8 C99对...scanf转换说明的改变 400
    22.3.9 scanf示例 400
    22.3.10 检测文件末尾和错误条件 401
    22.4 字符的输入/输出 403
    22.4.1 输出函数 403
    22.4.2 输入函数 403
     程序 复制文件 404
    22.5 行的输入/输出 405
    22.5.1 输出函数 405
    22.5.2 输入函数 406
    22.6 块的输入/输出 406
    22.7 文件定位 407
     程序 修改零件记录文件 409
    22.8 字符串的输入/输出 409
    22.8.1 输出函数 410
    22.8.2 输入函数 410
    问与答 411
    练习题 414
    编程题 416

    第 23章 库对数值和字符数据的支持 419
    23.1  :浮点类型的特性 419
    23.2  :整数类型的大小 421
    23.3  :数学计算(C89) 422
    23.3.1 错误 422
    23.3.2 三角函数 422
    23.3.3 双曲函数 423
    23.3.4 指数函数和对数函数 423
    23.3.5 幂函数 424
    23.3.6 就近取整函数、值函数和取余函数 424
    23.4  :数学计算(C99) 425
    23.4.1 IEEE浮点标准 425
    23.4.2 类型 426
    23.4.3 宏 426
    23.4.4 错误 426
    23.4.5 函数 427
    23.4.6 分类宏 427
    23.4.7 三角函数 428
    23.4.8 双曲函数 428
    23.4.9 指数函数和对数函数 429
    23.4.10 幂函数和值函数 430
    23.4.11 误差函数和伽玛函数 430
    23.4.12 就近取整函数 431
    23.4.13 取余函数 432
    23.4.14 操作函数 432
    23.4.15 **大值函数、**小值函数和正差函数 433
    23.4.16 浮点乘加 433
    23.4.17 比较宏 434
    23.5  :字符处理 434
    23.5.1 字符分类函数 435
     程序 测试字符分类函数 436
    23.5.2 字符大小写映射函数 437
     程序 测试大小写映射函数 437
    23.6  :字符串处理 437
    23.6.1 复制函数 437
    23.6.2 拼接函数 438
    23.6.3 比较函数 439
    23.6.4 搜索函数 440
    23.6.5 其他函数 442
    问与答 442
    练习题 443
    编程题 444

    第 24章 错误处理 446
    24.1  :诊断 446
    24.2  :错误 447
    24.3  :信号处理 448
    24.3.1 信号宏 449
    24.3.2 signal函数 449
    24.3.3 预定义的信号处理函数 450
    24.3.4 raise函数 450
     程序 测试信号 451
    24.4  :非局部跳转 452
     程序 测试setjmp和longjmp 452
    问与答 453
    练习题 454

    第 25章 国际化特性 456
    25.1  :本地化 456
    25.1.1 类别 456
    25.1.2 setlocale函数 457
    25.1.3 localeconv函数 458
    25.2 多字节字符和宽字符 461
    25.2.1 多字节字符 461
    25.2.2 宽字符 461
    25.2.3 统一码和通用字符集 462
    25.2.4 统一码编码 462
    25.2.5 多字节/宽字符转换函数 463
    25.2.6 多字节/宽字符串转换函数 465
    25.3 双字符和三字符 465
    25.3.1 三字符 465
    25.3.2 双字符 466
    25.3.3  :拼写替换 467
    25.4 通用字符名 467
    25.5  :扩展的多字节和宽字符实用工具 467
    25.5.1 流倾向 468
    25.5.2 格式化宽字符输入/输出函数 468
    25.5.3 宽字符输入/输出函数 470
    25.5.4 通用的宽字符串实用工具 471
    25.5.5 宽字符时间转换函数 474
    25.5.6 扩展的多字节/宽字符转换实用工具 474
    25.6  :宽字符分类和映射实用工具 477
    25.6.1 宽字符分类函数 477
    25.6.2 可扩展的宽字符分类函数 478
    25.6.3 宽字符大小写映射函数 478
    25.6.4 可扩展的宽字符大小写映射函数 478
    问与答 479
    练习题 479
    编程题 480

    第 26章 其他库函数 482
    26.1  :可变参数 482
    26.1.1 调用带有可变参数列表的函数 483
    26.1.2 v…printf函数 484
    26.1.3 v…scanf函数 485
    26.2  :通用的实用工具 485
    26.2.1 数值转换函数 485
     程序 测试数值转换函数 486
    26.2.2 伪随机序列生成函数 488
     程序 测试伪随机序列生成函数 488
    26.2.3 与环境的通信 489
    26.2.4 搜索和排序实用工具 490
     程序 确定航空里程 491
    26.2.5 整数算术运算函数 492
    26.3  :日期和时间 492
    26.3.1 时间处理函数 493
    26.3.2 时间转换函数 495
     程序 显示日期和时间 498
    问与答 500
    练习题 501
    编程题 502

    第 27章 C99对数学计算的新增支持 503
    27.1  :整数类型 503
    27.1.1  类型 503
    27.1.2 对指定宽度整数类型的限制 504
    27.1.3 对其他整数类型的限制 505
    27.1.4 用于整数常量的宏 505
    27.2  :整数类型的格式转换 506
    27.2.1 用于格式说明符的宏 506
    27.2.2 用于**大宽度整数类型的函数 507
    27.3 复数 508
    27.3.1 复数的定义 508
    27.3.2 复数的算术运算 509
    27.3.3 C99中的复数类型 509
    27.3.4 复数的运算 510
    27.3.5 复数类型的转换规则 510
    27.4  :复数算术运算 511
    27.4.1  宏 511
    27.4.2 CX_LIMITED_RANGE编译提示 512
    27.4.3  函数 512
    27.4.4 三角函数 512
    27.4.5 双曲函数 513
    27.4.6 指数函数和对数函数 514
    27.4.7 幂函数和值函数 514
    27.4.8 操作函数 514
     程序 求二次方程的根 515
    27.5  :泛型数学 515
    27.5.1 泛型宏 516
    27.5.2 调用泛型宏 517
    27.6  :浮点环境 518
    27.6.1 浮点状态标志和控制模式 518
    27.6.2  宏 519
    27.6.3 FENV_ACCESS编译提示 519
    27.6.4 浮点异常函数 520
    27.6.5 舍入函数 520
    27.6.6 环境函数 521
    问与答 521
    练习题 522
    编程题 523

    附录A C语言运算符 524
    附录B C99与C89的比较 525
    附录C C89与经典C的比较 529
    附录D 标准库函数 532
    附录E ASCII字符集 569

    参考文献 570
    索引 573

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购