C语言编程常见问题解答PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:(美)(P. S. R. 奇泽姆)Paul S. R. Chisholm等著;张芳妮,吕波译
- 出 版 社:清华大学出版社;纽约;西蒙与舒斯特国际出版公司
- 出版年份:1996
- ISBN:730202393X
- 页数:393 页
1.1 什么是局部程序块(local block)? 1
第1章 C语言 1
1.2 可以把变量保存在局部程序块中吗? 2
1.3 什么时候用一条switch语句比用多条if语句更好? 2
6.4 怎样使字符串右对齐? 2
l3.4 存储日期的最好方法是哪一种? 2
2.15 可以在头文件中说明或定义变量吗? 3
20.24 什么是十六进制? 3
21.2 怎样在Windows程序中建立一个延时器? 3
21.3 什么是句柄? 3
2.16 说明一个变量和定义一个变量有什么区别? 3
20.20 怎样把一个十六进制的值赋给一个变量? 3
1.4 switch语句必须包含default分支吗? 3
1.5 switch语句的最后一个分支可以不要break语句吗? 4
6.5 怎样将字符串打印成指定长度? 4
1.6 除了在for语句中之外,在哪些情况下还要使用逗号运算符? 5
2.5 什么时候应该使用register 修饰符?它真的有用吗? 6
1.7 怎样才能知道循环是否提前结束了? 6
4.5 stdout能被强制订印到非屏幕设备上吗? 6
1.8 goto.longjmp()和setjmp()之间有什么区别? 7
6.8 怎样将字符串转换为数字? 8
2.8 什么时候应该使用const修饰符? 8
1.9 什么是左值(1vaule)? 8
1.10 数组(array)可以是左值吗? 9
5.19 怎样才能使程序打印出发生错误的行号? 9
2.9 浮点数比较(floating-point comparisons)的可靠性如何? 9
1.12 运算符的优先级总能保证是“自左至右”或“自右至左”的顺序吗? 10
1.14 取模运算符(modulus operalor)“%”的作用是什么? 11
1.13 十十var和var十十有什么区别? 11
第2章 变量和数据存储 13
2.1 变量存储在内存(memory)中的什么地方? 13
2.3 什么是页抖动(page thrashing)? 14
2.2 变量必须初始化吗? 14
2.4 什么是const 指针? 15
2.6 什么时候应该使用volatile修饰符? 17
2.7 一个变量可以同时被说明为const和volatile吗? 18
2. 11 对不同类型的变量进行算术运算会有问题吗? 20
2. 10 怎样判断一个数字型变量可以容纳的最大值? 20
2.12 什么是运算符升级(operator promotion)? 21
2.13 什么时候应该使用类型强制转换(type cast)? 22
2.14 什么时候不应该使用类型强制转换(type cast)? 23
2. 18 用const说明常量有什么好处? 24
2.17 可以在头文件中说明static变量吗? 24
3.1 哪一种排序方法最方便? 29
第3章 排序与查找 29
3.2 哪一种排序方法最快? 30
21.5 什么是GDI?通过什么途径使用它? 32
21.2l 怎样创建一个活动的位图? 33
3.3 当要排序的数据集因太大而无法全部装入内存时,应怎样排序? 38
3.4 哪一种查找方法最方便? 43
3.5 哪一种查找方法最快? 45
3.6 什么是哈希查找? 51
3.8 怎样查找链表中的数据? 53
3.7 怎样对链表进行排序? 53
4.1 当errno为一个非零值时,是否有错误发生? 59
4.2 什么是流(stream)? 59
第4章 数据文件 59
4.4 怎样恢复一个重定向了的标准流? 60
4.3 怎样重定向一个标准流? 60
4.8 怎样列出某个目录下的文件? 62
4.7 怎样判断是使用流函数还是使用低级函数? 62
4.6 文本模式(text mode)和二进制模式(binary mode)有什么区别? 62
10.3 位域(bit fields)是可移植的吗? 63
lO.4 移位和乘以2这两种方式中哪一种更好? 63
4.9 怎样列出一个文件的日期和时间? 63
4.10 怎样对某个目录下的文件名进行排序? 67
4.11 怎样判断一个文件的属性? 69
4,12 怎样查看PATH环境变量? 70
4.13 怎佯打开一个同时能被其它程序修改的文件? 71
4.14 怎样确保只有你的程序能存取一个文件? 72
4.15 怎样防止其它程序修改你正在修改的那部分文件内容? 73
4.16 怎样一次打开20个以上的文件? 74
4.17 怎样避开“Abort,Retry,Fail”消息? 74
4.18 怎样读写以逗号分界的文本? 76
第5章 编译预处理 78
5.1 什么是宏(macro)?怎样使用宏? 78
5.2 预处理程序(preprocessor)有什么作用? 80
12.1 为什么应该使用标准库函数而不要自己编写函数? 81
5.3 怎样避免多次包含同一个头文件? 82
5.4 可以用 include指令包含类型名不是“.h”的文件吗? 82
5. 6 用enum关键字说明常量有什么好处? 83
5.5 用 define指令说明常量有什么好处? 83
5.7 与用 define指令说明常量相比,用enum关键字说明常量有什么好处? 84
5.10 使用宏更好,还是使用函数更好? 86
5. 9 什么时候应该用宏代替函数? 86
5.8 如何使部分程序在演示版中失效? 86
5.12 include<file>和 include“file”有什么不同? 87
5.11 在程序中加入注释的最好方法是什么? 87
5. 14 包含文件可以嵌套吗? 88
5.13 你自目指定在编译时包含哪一个头文件吗? 88
l2.4 独立(free-standing)环境和宿主(hosted)环境之间有什么区别? 89
5.16 连接运算符“ ”有什么作用? 89
5.15 包含文件最多可以嵌套几层? 89
5.17 怎样建立对类型敏感的宏? 90
5.18 什么是标准预定义宏? 91
5. 2l 怎佯判断一个程序是用C编译程序还是用C十十编译程序编译的? 93
5.22 预处理指令共pragma有什么作用? 93
5.23 1ine有什么作用? 94
5. 25 怎样在程序中打印源文件名? 95
5. 24 标准预定义宏 FII.E 有什么作用? 95
5. 27 怎样在程序中打印源文件的当前行号? 95
5. 28 标准预定义宏 DATE 和 TIME 有什么作用? 95
5. 29 怎样在程序中打印编译日期和时间? 96
5. 30 怎样判断一个程序是否遵循ANSI C标准? 96
5. 31 怎样取消一个已定义的宏? 96
5. 32 怎样检查一个符号是否已被定义? 97
5. 33 C语言提供哪些常用的宏? 97
第6章 字符串操作 98
6.1 串拷贝(strcpy)和内存拷贝(memcpy)有什么不同?它们适合于在哪种情况下使用? 98
6.2 怎样删去字符串尾部的空格? 99
6.3 怎样删去字符串头部的空格? 100
6.6 怎样拷贝字符串的一部分? 105
6.7 怎样将数字转换为字符串? 106
6.9 怎样打印字符串的一部分? 109
6.10 怎样判断两个字符串是否相同? 110
第7章 指针和内存分配 113
7.1 什么是间接引用(indircction)? 113
7.2 最多可以使用几层指针? 114
7. 3 什么是空指针? 116
7.4 什么时候使用空指针? 116
8.9 exit()和return有什么不同? 116
7.5 什么是void指针? 118
7.6 什么时候使用void指针? 119
9.1 数组的下标总是从O开始吗? 119
第9章 数组 119
7.8 把一个值加到一个指针上意味着什么? 121
7.9 NULL总是被定义为O吗? 122
7.10 NULL总是等于0吗? 122
7.11 用指针作if语句的条件表达式意味着什么? 123
7.12 两个指针可以相加吗?为什么? 123
7.14 怎样用指向函数的指针作函数的参数? 124
7.13 怎样使用指向函数的指针? 124
7.15 数组的大小可以在程序运行时定义吗? 126
7,16 用malloc()函数更好还是用calloc()函数更好? 128
7.17 怎样说明一个大于64KB的数组? 129
7.18 far和near之间有什么区别? 130
7.19 什么时候使用far指针? 130
7.21 什么是堆(heap)? 131
7.20 什么是栈(stack)? 131
7.22 两次释放—个指针会导致什么结果? 132
7.23 NULL和NUL有什么不同? 133
7.25 怎样确定一块已分配的内存的大小? 134
7.24 为什么不能给空指针赋值?什么是总线错误、内存错误和内存信息转储? 134
7.28 怎样打印一个地址? 135
7.27 可以对void指针进行算术运算吗? 135
7.26 free()函数是怎样知道要释放的内存块的大小的? 135
8.1 什么时候说明函数? 136
第8章 函数 136
8.2 为什么要说明函数原型? 138
8.3 —个函数可以有多少个参数? 139
8.4 什么是内部函数? 140
8.5 如果一个函数没有返回值,是否需要加入return语句? 141
8.6 怎样把数组作为参数传递给函数? 142
8.7 在程序退出main()函数之后,还有可能执行—部分代码吗? 144
8. 8 用PASCAL.修饰符说明的函数与普通C函数有什么不同? 145
9.2 可以使用数组后面第一个元素的地址吗? 150
9.3 为什么要小心对待位于数组后面的那些元素的地址呢? 151
9. 4 在把数组作为参数传递给函数时,可以通过sizcof运算符告诉函数数组的大小吗? 151
9. 5 通过指针或带下标的数组名都可以访问数组中的元素,哪一种方式更好呢? 152
9. 6 可以把另外一个地址赋给一个数组名吗? 155
9.7 array name和 array name有什么不同? 155
9.8 为什么用const说明的常量不能用来定义一个数组的初始大小? 156
9.9 字符串和数组有什么不同? 157
10.2 什么是“位屏蔽(bit masking)”? 160
10.1 用什么方法存储标志(flag)效率最高? 160
第10章 位(bit)和字节(byte) 160
10. 6 l6位和32位的数是怎样存储的? 164
10.5 什么是高位字节(high-order byte)和低位字节(low order byte)? 164
11. 1 如果我运行的程序挂起了,应该怎么办? 166
第11章 调试 166
11. 2 如何检测内存漏洞(1eak)? 171
11. 3 调试程序的最好方法是什么? 172
11. 4 怎样调试TSR程序? 178
11. 5 怎样获得一个能报告条件失败的程序? 179
第12章 标准库函数 181
12. 2 为了定义我要使用的标准库函数,我需要使用哪些头文件? 182
12.3 怎样编写参数数目可变的函数? 186
12.5 对字符串进行操作的标准库函数有哪些? 189
12. 6 对内存进行操作的标准库函数有哪些? 192
12. 9 有没有办法从一个或多个函数中跳出? 196
12. 8 什么是“局部环境(locale)”? 196
12. 10 什么是信号(signal)?用信号能做什么? 198
12.11 为什么变量名不能以下划线开始? 199
l2.12 为什么编译程序提供了两个版本的malloc()函数? 199
13.1 怎样把日期存储到单个数字中?有这方面的标准吗? 201
第13章 时间和日期 201
l2.13 适用于整数和浮点数的数学函数分别有哪些? 202
12.14 什么是多字节字符(multibytc charactcrs)? 203
l2.15 怎样操作由多字节字符组成的字符串? 203
13.2 怎样把时间存储到单个数字中?有这方面的标准吗? 208
13.3 为什么定义了这么多不同的时间标准? 211
l3.5 存储时间的最好方法是哪一种? 212
14.1 怎样检查环境变量(environment variables)的值? 214
第14章 系统调用 214
14.2 怎样在程序中调用DOS函数? 215
l4.3 怎样在程序中调用BIOS函数? 216
l4.4 怎样在程序户存取重要的DOS内存位置? 218
14.5 什么是BIOS? 220
14.6 什么是中断? 221
14.7 使用ANSI函数和使用BIOS函数,哪种方式更好? 222
l4.8 可以通过BIOS把显示模式改为VGA图形模式鸣? 223
14.9 运算符的优先级总能起作用吗(从左至右,从右至左)? 226
14.11 程序应该总是包含main()的一个原型吗? 227
l4.10 函数参数的类型必须在函数头部或紧跟在其后说明吗?为什么? 227
14.13 可以通过BIOS控制鼠标吗? 228
14.12 main()应该总是返回一个值吗? 228
15.2 C十十和C有什么区别? 231
15. l 编译程序中的C十十扩充功能可以用在C程序中吗? 231
第15章 可移植性 231
15.3 在C程序中可以用“//”作注释符吗? 233
15.4 char,short,int和long类型分另别有多长? 233
15.5 高位优先(big-endian)与低位优先(little endian)的计算机有什么区别? 234
第16章 ANSI/IS0标准 236
16. 1 运算符的优先级总能起作用吗? 236
16. 2 函数参数类型必须在函数参数表中或紧跟其后的部分中说明吗? 240
16. 3 程序中必须包含main()的原型吗? 241
16. 4 main()应该总是返回一个值吗? 242
l7.1 为什么直到程序结束时才看到屏幕输出? 243
第17章 用户界面 屏幕和键盘 243
17.2 怎样在屏幕上定位光标? 243
17.3 向屏幕上写数据的最简单的方法是什么? 244
l7.4 向屏幕上写文本的最快的方法是什么? 245
17. 5 怎样防止用户用Ctr-Break键中止程序的运行? 248
17. 6 怎样才能只得到一种特定类型的数据,例如字符型数据? 250
17. 7 为什么有时不应该用scanf()来接收数据? 250
17. 8 怎样在程序中使用功能键和箭头键? 252
17. 9 怎样防止用户向一个内存区域中输入过多的字符? 253
17. 10 怎样用0齐—个数字? 254
17. 11 怎样才能打印出美元-美分值? 255
17. 12 怎样按科学记数法汀印数字? 257
l7.15 怎样通过ANSI驱动程序来存储光标位置? 258
l7.13 什么是ANSI驱动程序? 258
l7.14 怎样通过ANSI驱动程序来清屏? 258
17. 16 怎样通过ANSI驱动程序来恢复光标位置? 259
17. 17 怎样通过ANSI驱动程序来改变屏幕颜色? 259
17. 18 怎样通过ANSI驱动程序来写带有颜色的文本? 259
17. 19 怎样通过ANSI驱动程序来移动光标? 260
第18章 程序的编写和编译 261
18.1 程序是应该写成一个源文件还是多个源文件? 261
18. 2 各种存储模式之间有什么区别? 262
18.3 最常使用的存储模式有哪些? 262
18.4 应该使用哪种存储模式? 263
18.5 怎样生成一个“.COM”文件? 263
18.6 “.C()M”文件有哪些地方优于“.EXE”文件? 264
18. 7 当一个库被连接到目标上时,库中的所有函数是否都会被加到一个“.EXE”文件中? 264
18. 8 以把多个库函数包含在同一个源文件中吗? 265
18.10 如果一个程序包含多个源文件,怎样使它们都能正常工作? 266
18. 9 为什么要建立—个库? 266
18.11 连接过程中出现“DGROUP:group cxceeds 64K”消息是怎么回事? 267
18.12 怎样防止程序用尽内存? 267
18.13 如果程序太大而不能在DOS下运行,怎样才能使它在DOS下运行呢? 268
18.14 怎样才能使DOS程序获得超过640KB的可用内存呢? 268
18. 15 近程型(near)和远程型(far)的区别是什么? 269
19. 1 可以在变量名中使用下划线吗? 272
19. 2 可以闻变量名来指示变量的数据类型吗? 272
第19章 编程风格和标准 272
19. 3 使用注释会影响程序的速度、大小或效率吗? 273
19. 4 使用空白符会影响程序的速度、大小或效率吗? 274
l9.5 什么是骆驼式命名法? 275
l9.7 给函数命名的正确方法是什么? 276
l9.6 较长的变量名会影响程序的速度、大小或效率吗? 276
l9.8 使用大括号的正确方法是什么? 277
l9.9 一个变量名应该使用多少个字母?ANSI标准允许有多少个有效字符? 279
l9.10 什么是匈牙利式命名法?应该使用它吗? 279
l9.11 什么是重复处理(iterative processing)? 280
l9.12 什么是递归(recursion)?怎样使用递归? 281
19.13 在C语言中,表示真和假的最好方法是什么? 283
19.15 continue和break有什么区别? 284
19.14 空循环(null loops)和无穷循环(infinite loops)有什么区别? 284
第20章 杂项(Miscellaneous) 286
20.1 怎样获得命令行参数? 286
20.2 程序总是可以使用命令行参数吗? 286
handling)”有什么区别? 288
20.4 怎样在DOS程序中建立“—个延时器(delay timer)? 289
20.5 Kernighan和Ritchie是谁? 289
20.6 怎佯产生随机数? 290
20.7 什么时候应该使用32位编译程序? 291
20.8 怎样中断—个Windows程序? 292
20.10 怎样在—个程序后面运行另一个程序? 296
20.9 为什么要使用静态变量? 296
20.11 怎样在—个程序执行期间运行另一个程序? 298
20.12 怎样把数据从一个程序传给另一个程序? 299
20.13 怎样判断正在运行的程序所在的目录? 301
20.16 怎样使用Ctr十Break失效? 305
20.15 本书的有些例子程序有许多缺陷,为什么不把它们写得更好? 305
20.14 怎样找程序中的重要文件(数据库,配置文件,等等)? 305
20.17 可以使热启动(Ctrl十Alt十Delete)失效吗? 307
20.18 怎样判断一个字符是否是一个字母? 310
20.19 怎样判断—个字符是否是—个数字? 310
20.2l 怎样把一个八进利的值赋给一个变量? 311
20.22 什么是二进制? 312
20.23 什么是八进制? 313
20.25 什么是换码符(escape characters)? 316
第21章 Windows 318
21.1 可以在Windows程序中使用printf()吗? 318
21.4 怎样中止—个Windows程序? 320
21.6 为什么Windows.h 很重要 322
21.7 什么是Windows SDK? 322
21.8 在编写Windows程序时Microsoft的Windows SDK是必需的吗? 323
21.9 Windows函数和标准DOS函数有什么区别? 324
21.10 什么是动态连接? 324
21.11 HANDLE.HWND和HDC之间有什么区别? 324
21.12 Windows程序对于不同的编译程序是兼容的吗? 325
21.13 Windows总是保存和刷新程序的窗口吗? 325
21.14 怎样确定一个Windows程序的用户区的大小? 326
21.15 什么是OEM键码? 327
21.16 Windows程序需要考虑OEM键码吗? 327
2l. l7 什么是虚拟键码? 328
21.18 什么是死键? 329
21.20 在程序用户区外揿击鼠标能被捕获到吗? 330
21.19 插入标记(caret)和光标(cursor)有什么区别? 330
21.22 怎样在Windows程序中获得日期和时间? 332
21.23 怎样在WindnWs程序中更新标题条(title bar)? 333
21.24 怎样在Windows程序中获得系统颜色? 333
21. 25 什么是系统颜色常量? 334
21. 26 怎样创建自己的按钮或控制(controls)? 335
22. 27 什么是静态子窗口(static child windoWs)? 336
22. 28 怎样创建窗口子类(window subclassing)? 336
21.30 什么是列表十匡类(1islbox class)? 338
21.31 Windows是怎样组织内存的? 339
21.32 怎样在WindoWs程序中分配内存? 340
21.33 模式(modal)对话框和非模式(modeless)对话框有什么区别? 341
索引 342
21.29 什么是编辑类(edit class)? 377
附录 标准库函数的头文件 389
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《强制执行前沿与热点问题》陈兴责编;乔宇 2020
- 《党员干部理论学习培训教材 理论热点问题党员干部学习辅导》(中国)胡磊 2018
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《强磁场下的基础科学问题》中国科学院编 2020
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《改革进程中的刑事诉讼程序与证据问题研究 基于警察的视角》谢波 2019
- 《马克思主义意识形态建设的基础问题探幽》陈冬生,王枫桥责编 2019
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017