图书介绍
品悟C 抛弃C程序设计中的谬误与恶习2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- 薛非著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302296263
- 出版时间:2012
- 标注页数:502页
- 文件大小:312MB
- 文件页数:525页
- 主题词:C语言-程序设计
PDF下载
下载说明
品悟C 抛弃C程序设计中的谬误与恶习PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
上部 形而下学——代码错误及陋习3
第1章 低级错误3
问题1 C啊,多少C++假汝之名而行——C、C++不分4
问题2环节缺失——关于C程序开发过程7
问题3错误的“标点”——混用中英文字符9
问题4错误的“单词”11
问题5“合并单词”产生的问题12
问题6形形色色的“分号”误用13
问题7“一仆二主”——两个main()函数15
问题8忘记“&”17
问题9 who’s who18
问题10同形异质——为符号常量赋值19
问题11词不达意20
问题12使用switch语句的常见错误21
第2章 初级错误23
问题1随手写出的大数24
问题2关于数据类型的潜规则25
问题3使用垃圾值26
问题4对数组的误用与误解28
问题5好心办坏事——修改代码引发的错误30
问题6“右移运算等价于除法运算”32
问题7“中国人民很行”——C语言中的错别字33
问题8学会数数——循环次数错误34
问题9忽视函数原型36
问题10张冠李戴——错误的格式转换37
问题11只进不出——缺少输出39
问题12鸠占鹊巢——数组越界41
第3章 逻辑错误45
问题1喧宾夺主——换行问题46
问题2结构体链表的一个例题——输出错误47
问题3一些幼稚的写法50
问题4 c=getchar()!=EOF——优先级错误50
问题5判断三个整数相等——“==”运算符的误用51
问题6悬挂else问题——怎样写出正确的if语句52
问题7浮点循环变量53
问题8不顾常识55
问题9自然语言的陷阱57
问题10 c==''||'n'||'t'58
问题11乱做习题你伤不起啊59
问题12误改循环变量62
第4章 似是而非65
问题1 void main()66
问题2生硬的嫁接,滑稽的实参66
问题3输出之误——输出数组应注意的问题70
问题4多此一举73
问题5笨拙的for语句74
问题6只用printf()函数输出76
问题7容易招致编译器误解的代码76
问题8使用“//”注释注意事项77
问题9使用野指针78
问题10用驴子拖宝马——滥用结构体79
问题11似是而非的k=sqrt(n)84
问题12scanf('?",&str)88
问题13已知两边长求三角形面积——不完全函数参数89
问题14对“c”转换说明符的误解92
问题15多余的计算93
问题16到处忙活与一劳永逸——函数类型声明位置问题96
问题17半身不遂和粗中有细99
问题18忽视前提103
问题19 char text[3][80]不是一篇文章,也并非3行文字104
问题20不安全的gets()函数108
问题21文件名残缺109
问题22exit(0)110
问题23舍近求远112
问题24重复无效的代码114
问题25拙劣的外部变量114
第5章 画蛇添足129
问题1KISS130
问题2为赋新词强说愁131
问题3啰唆重复132
问题4表达式是什么133
问题5不识指针134
问题6脱裤子放屁136
问题7怎样利用scanf()函数自虐138
问题8自寻烦恼的scanf()函数调用方式139
问题9输入指定范围的整数——Basic风格写法和C风格写法140
问题10“豆浆买两碗,喝一碗,倒一碗”——多余的数组元素143
问题11筛法“四不像”146
问题12不彻底的思考152
问题13代码写得要“拽”(DRY)156
问题14作茧自缚的“1528288”158
问题15大腹便便——臃肿与重复160
问题16舍简就繁161
问题17程序的劣化与优化163
问题18滥用变量综合症172
问题19free空指针174
第6章 疑难杂症177
问题1混乱是怎样炼成的178
问题2无知乱吃药——strcpy()函数的误用183
问题3边界测试——让BUG现形186
问题4内裤外穿——错位及不伦不类192
问题5flag标志:代码馊了(一)196
问题6flag标志:代码馊了(二)202
问题7flag标志:代码馊了(三)210
问题8鸡窝里飞出伪凤凰216
问题9不顾常识221
问题10不易察觉的BUG222
问题11含糊之过、多做之过及乱做之过224
问题12怎样调戏程序230
问题13糟蹋好题——魔方阵问题236
第7章 风格问题249
问题1如何进行数组初始化250
问题2括号不配对错误及如何免疫251
问题3不良代码编辑风格引起的错误——怎样写控制语句252
问题4将main()函数进行到底253
问题5赤裸的scanf()257
问题6c+32的问题257
问题7怎样整理房间259
问题8贪小便宜——省略函数类型声明等问题262
问题9常数Magic Number265
问题10搏二兔269
下部 形而上学——概念错误及误区277
第8章 概念的缺失277
问题1 C语言的历史及C标准278
问题2只知变量不知对象278
问题3 C语言中Byte的含义280
问题4“不知所云”的无定义行为(undefined behavior)281
问题5“可以清心也”应如何解读——不确定行为(Unspecified behavior)283
问题6实现(Implemantation)285
问题7“编译器自己做主”——实现定义的行为(implementation-defined behavior)285
问题8整数提升(Integer promotion)285
问题9副效应(side effects)286
问题10“左值就是可以出现在赋值运算符的左侧”287
第9章 基本词法289
问题1字符集问题290
问题2 “α,β,8,ε,Ⅰ,Ⅱ,Ⅲ,Ⅳ等不是C语言的合法字符”291
问题3“各种字符集的基本集都包括了127个字符”291
问题4 C源程序的组成——“单词”视角292
问题5 “a”、‘a’与a辨析293
问题6“C语言关键字都是小写的”294
问题7“C语言允许一行内写多个语句”294
问题8“标识符由字母、下划线和数字组成”295
问题9标识符的长度限制295
问题10“括号、赋值、逗号都是运算符”296
第10章 数据类型及类型转换297
问题1“类型就是对数据存储单元的安排”298
问题2 1.%3之惑298
问题3 “int为2个字节或4个字节”299
问题4 int类型的范围问题299
问题5混乱不堪的“整型”300
问题6 “-345是整型常量”300
问题7“字符数据以ASCⅡ码存储”301
问题8 “char类型就是signed char类型”301
问题9通过程序测定char类型的性质302
问题10“C用1个字节(8位)存储一个字符”302
问题11 “i='A'是字符型数据赋给整型变量”303
问题12“字符常量只能是一个字符”303
问题13“从常量的表示形式可以判断其类型”303
问题14 1、'1'与"1"304
问题15“变量值在存储单元中都是以补码形式存储的”304
问题16“不应向无符号整型变量赋予一个负值”305
问题17 3.0乘以4.2怎么就变成了12.59999306
问题18“实型变量”剖析307
问题19使用float招来的警告及“因噎废食”的对策307
问题20 123f——怎样写float类型的常量309
问题21“实型常量有两种表示形式”309
问题22“浮点数类型包括float、double和long double”310
问题23“实数就是浮点数”310
问题24“编译系统为每一个float型变量分配4个字节”310
问题25“浮点型”、“双精度浮点型”和“实型”311
问题26 “Turbo C对long double型分配16个字节”311
问题27“必然以规范化的指数形式输出”311
问题28“浮点型数据是用来表示具有小数点的实数的”312
问题29对类型转换运算的误解312
问题30“整型量与字符型数据以及逻辑型数据可以通用”312
问题31“C语言把所有的实数都作为双精度数处理”314
问题32“所有float型数据都先转换为double型”314
问题33 “int型与float或double型数据进行运算,结果是double型”315
问题34关于char类型数据的运算规则316
问题35对表达式“10+'a'+i*f-d/3”的分析316
问题36“字符数据既可以字符形式输出,也可以整数形式输出”318
问题37 3?1:2319
问题38“运算符两侧的数据类型不同,先自动进行型转换”319
第11章 运算和表达式(Expression)321
问题1关于“整型常量”322
问题2“变量名是以一个名字代表一个存储地址323
问题3“缺省情况下所有变量都是auto的”324
问题4“不能对一个类型赋值、存取或运算”324
问题5“变量必须先定义、后使用”324
问题6“常量是没有名字的不变量”325
问题7“标识符用来标识一个对象”325
问题8啥叫“中间变量”326
问题9“先乘除后加减”——“先级高先运算”326
问题10“赋值截断”326
问题11对(a=b)>0的误读327
问题12“‘.’运算符优先级高于后缀‘+++’运算符”327
问题13“‘结合性’是C语言的特点之一”327
问题14“‘左结合性’,即运算对象先与左面的运算符相结合”328
问题15“算术表达式”和“算术运算符”:两个臆造的伪概念328
问题16关于“算术表达式”、“优先级”和“结合性”的胡扯330
问题17“C语言共有34种运算符”333
问题18“两个实数相除的结果是双精度实数”334
问题19整数除法的舍入方向问题335
问题20 “++运算的作用是使变量的值加1”335
问题21为a+=a-=a*a预拟的悼词335
问题22&&的运算规则339
问题23对“5>3&&8<4-!0”的分析340
问题24逻辑运算符和逻辑表达式341
问题25“二元运算符都可以与赋值符一起组合成复合赋值符”342
问题26“赋值运算符的作用是将一个数据赋给一个变量”343
问题27“执行表达式a=(b=5),就是执行b=5和a=b两个赋值表达式”343
问题28类型系统?表达式?副效应?——C的“易筋经”343
问题29 GB/T15272-94的一个错误346
问题30 sizeof函数”347
问题31逗号运算符是几目运算符348
问题32 怎样滥用逗号运算符348
问题33“逗号运算符最常用于循环语句”349
问题34同名不同义的运算符:“+++”与“+++”350
问题35+++、--的运算对象问题351
问题36自增运算符(+++)不能用于表达式351
问题37 cast运算的优先级问题352
第12章 声明和语句355
问题1“全局变量”356
问题2声明外部变量时省略类型名称356
问题3声明点(Declaration point)的问题358
问题4指向静态整型变量的指针359
问题5存储类别359
问题6“输出语句”及“赋值语句”360
问题7 “函数调用语句”360
问题8“C语言规定语句末尾必须有分号”361
问题9 switch语句的一般形式362
问题10 switch语句中的表达式类型问题363
问题11 “while语句的范围只到while后面第一个分号处”364
问题12 “for语句和while语句无条件等价”364
问题13“语句的作用是向计算机系统发出操作指令,要求执行相应的操作”365
第13章 函数367
问题1“实际参数可以是常量、变量或表达式”368
问题2“函数调用的形式”368
问题3“虚拟参数”和“虚实结合”369
问题4“值传递”和“址传递”369
问题5函数的指针是起始地址371
问题6用指针调用函数371
问题7 “void意为函数无类型”372
问题8“函数必须‘先定义后使用””372
问题9“使用函数原型作声明是C的一个重要特点”373
问题10“函数体包括声明部分和执行部分”373
问题11“库函数是编译系统事先定义好的”374
问题12“定义无参函数的一般形式”374
问题13“不带回值的函数的函数体中不得出现return语句”374
问题14过时的函数定义375
问题15“不能调用main函数”376
问题16“C程序在main()函数中结束”376
问题17五花八门的main()函数377
问题18“函数名代表函数的入口地址”384
问题19“函数声明”、“函数原型”与“函数定义”辨析385
第14章 指针389
问题1指针的种类问题390
问题2“指针就是一个变量”390
问题3“指针就是地址”391
问题4“一元‘&’是取地址运算符”393
问题5错误观念下的代码393
问题6返回指向局部变量的指针396
问题7野指针问题396
问题8“指针是32位的无符号的整数”397
问题9“指针的大小都一样”397
问题10“无类型指针”397
问题11指针加减法运算的“定义域”398
问题12 const悖论400
问题13不经意的错误:&a[10]与a+10的差异403
问题14新编《守株待兔》——C语言版——兼聊为什么不应该用%d格式转换输出指针403
第15章 数组和字符串407
问题1定义一维数组的一般形式408
问题2何谓“可变长数组”408
问题3“字符串是存放在字符型数组中的”409
问题4“数组中未被赋值的元素的值自动置' ’”410
问题5“数组名不是左值”411
问题6数组名“只代表数组首元素的地址”412
问题7辨析“形参和实参可以分别用字符数组名或字符指针变量”414
问题8关于strncpy()函数的功能415
问题9“数组名作函数参数”问题416
问题10怎样称呼字符串418
问题11小气的数组和危险的输入——慎用scanf()函数和gets()函数420
问题12修改字符串文字量421
问题13对strcpy()功能断章取义的描述422
第16章 结构体、共用体、枚举及位运算425
问题1成员运算问题426
问题2“->”称为指向运算符426
问题3“只能对最低级的成员进行赋值或存取以及运算”426
问题4 63、64还是68?——谈谈alignment428
问题5结构体的尺寸问题431
问题6空结构体的尺寸问题431
问题7“结构体变量的地址主要用作函数参数”432
问题8“共用体变量所占内存长度等于最长成员的长度”432
问题9“不能引用共用体变量”433
问题10“不能对共用体变量名赋值”435
问题11“枚举变量的值限定在定义时规定的几个枚举元素范围内”435
问题12““位运算’是C语言区别于其他高级语言的一个重要特点”436
问题13“参加位运算的对象只能是整型或字符型的数据”437
问题14“‘<<’用来将一个数的各二进制位全部左移若干位”438
问题15不同长度的数据进行位运算439
问题16用memcmp()函数比较两个结构体439
第17章 标准库441
问题1“嘧凰得鞣糜谑淙氲ジ鲎址币⒌那痹贐UG442
问题2“对无符号整型数据用%u输出”442
问题3“double类型应该用‘0.000000’输出”443
问题4关于%g格式的错误认识443
问题5关于%o格式的错误认识444
问题6“gets()函数是fgets()函数用于stdin的特例”445
问题7“用puts函数输出的字符串中可以包含转义字符”447
问题8“文件结束标志EOF(即-1)”447
问题9“fseek(fp、100L、0)”448
问题10打开文件时的两种错误448
问题11“用"a"方式打开文件应保证文件事先存在”449
问题12“在程序中可以直接用FILE类型名定义变量”449
问题13“stdin是指向标准输入流的指针变量”449
问题14关于feof()函数的错误450
问题15“度日如年”的故事及“feof()函数”的故事450
问题16关于fflush()函数的错误455
问题17盲目前行——忽视malloc()函数返回值457
问题18管杀不管埋——缺少free()函数458
问题19怎样建立链表并同时造成内存泄漏459
问题20qsort()函数是快速排序462
问题21关于calloc()函数462
问题22关于free()函数463
问题23关于realloc()函数464
问题24为什么不可以static char*p=malloc(10);464
问题25abs()是数学函数465
第18章 预处理467
问题1“预处理功能是C语言特有的”468
问题2主动引进BUG468
问题3“#define是用一个指定的标识符来代表字符串”469
问题4“预处理器把程序中的注释全部删除”470
问题5“所有的PI都代表3.1416”470
问题6#define预处理命令的位置问题471
问题7能否用痰盂盛饭——谈在头文件中定义外部变量472
问题8预处理次序错误475
问题9缺少#include476
问题10包含源文件——是奇技淫巧还是饮鸩止渴476
问题11使用函数式宏的禁忌480
问题12不合格的宏481
问题13“宏实参从左到右进行置换”481
问题14条件编译与if语句482
第19章 关于C99485
问题1亡羊补牢还是越错越远——“C99允许在函数中的复合语句中定义变量”486
问题2 C99增加了哪些数据类型488
问题3 “C99标准不支持一行内写多个语句”489
问题4 “C99把字符型数据作为整数类型的一种”489
问题5 “C99要求main函数一律指定为int型”489
问题6 “C99允许使用常变量”490
问题7 “C99允许使用多字节字符”490
问题8 “C99允许使用基类型为void的指针类型”490
问题9 “C99增加了C++中的功能”490
问题10 “C99允许同类型的共用体变量互相赋值”491
问题11能否用VisualC++ 6.0学习C99491
第20章 杂七杂八493
问题1“系统描述语言”与“系统编程语言”494
问题2关于计算机指令长度494
问题3同一律494
问题4为什么不能用汇编解释C495
问题5“文件中的物理顺序”495
问题6“C语言源程序的扩展名为.c”496
问题7缺乏测试意识496
问题8为Wirth正名499
问题9“bohra”是谁500
问题10“83 ANSI C”和“87 ANSI C”500
问题11关于ISO501
问题12关于勒让德多项式501
参考文献502
热门推荐
- 263167.html
- 2229084.html
- 2958307.html
- 272237.html
- 1258925.html
- 1089780.html
- 2637079.html
- 3114996.html
- 3699407.html
- 3660396.html
- http://www.ickdjs.cc/book_1665324.html
- http://www.ickdjs.cc/book_3860306.html
- http://www.ickdjs.cc/book_3365640.html
- http://www.ickdjs.cc/book_1671606.html
- http://www.ickdjs.cc/book_911978.html
- http://www.ickdjs.cc/book_2256094.html
- http://www.ickdjs.cc/book_1904274.html
- http://www.ickdjs.cc/book_2687610.html
- http://www.ickdjs.cc/book_2698561.html
- http://www.ickdjs.cc/book_487634.html