你必须知道的213个C语言问题

你必须知道的213个C语言问题

范立锋, 李世欣, 编著

出版社:人民邮电出版社

年代:2010

定价:39.0

书籍简介:

本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的300多个经典问题,并分别给出了正确的回答,而且结合代码示例阐明要点,为程序员提供了实践指南。

书籍目录:

第1章 C语言与软件开发 1

FAQ1.01 C语言有哪些特点? 1

FAQ1.02 C语言与C++语言及VC++比较有什么优势? 2

FAQ1.03 如何安装Turbo C++ 3.0? 4

FAQ1.04 C语言的编译环境有哪些? 6

FAQ1.05 如何使用Turbo C++ 3.0开发C语言程序? 7

第2章 C语言基础 9

FAQ2.01 C语言的开发流程是怎样的? 9

FAQ2.02 典型的C程序是怎样构成的? 11

FAQ2.03 如何在新的一行输出结果? 12

FAQ2.04 如何应对开发过程中遇到的语法错误? 14

FAQ2.05 如何理解C语言中的变量? 17

FAQ2.06 一个变量可以既被声明为变量又被声明为常量吗? 18

FAQ2.07 C语言中的变量包含哪些类型?这些类型是如何表示的? 20

FAQ2.08 如何自定义类型? 22

FAQ2.09 如何理解数据溢出? 23

FAQ2.10 什么时候可以应用类型转换?什么时候不能应用? 25

FAQ2.11 不同类型的数据进行运算时会出现什么问题? 26

FAQ2.12 C语言提供了哪些运算符?运算符的优先级和结合性是怎样的? 27

FAQ2.13 如何理解C语言中的头文件? 30

FAQ2.14 为什么需要加入程序注释? 31

FAQ2.15 声明的变量和定义的变量有什么不同之处? 32

FAQ2.16 什么情况下要用到switch语句?如何使用switch语句? 34

FAQ2.17 在一个switch语句中,default语句是否必须存在呢? 36

FAQ2.18 for语句的3个子语句是否都是必须存在的? 37

FAQ2.19 如何区分break和continue? 39

FAQ2.20 如何使用goto语句提高程序灵活性? 41

FAQ2.21 “&”与“&&”,“|”与“||”有什么区别? 42

FAQ2.22 已经有了for循环,为什么还要用while循环? 43

FAQ2.23 如何强制操作符的运算顺序? 45

第3章 编译预处理 46

FAQ3.01 如何理解C语言中的宏?如何使用宏? 46

FAQ3.02 标准的预定义宏包括哪些? 50

FAQ3.03 如何改变预处理器的行计数? 51

FAQ3.04 宏与函数有什么区别? 53

FAQ3.05 如何自定义头文件? 54

FAQ3.06 头文件都包含哪些信息? 55

FAQ3.07 文件包含命令可以嵌套吗? 56

FAQ3.08 如何避免多次包含同一个文件? 57

FAQ3.09 除了.h文件以外其他文件能被#include命令所包含吗? 58

FAQ3.10 #include文件名和#include“文件名”有何不同? 59

FAQ3.11 如何进行条件编译预处理? 60

FAQ3.12 如何创建自定义宏? 63

FAQ3.13 宏有类型吗? 64

FAQ3.14 如何重写一个定义好的宏? 65

FAQ3.15 使用枚举和使用#define定义常量有什么不同? 66

第4章 字符串 69

FAQ4.01 C语言是如何存储字符串的? 69

FAQ4.02 如何判断字符串的长度? 70

FAQ4.03 如何判断两个字符串是否相同? 72

FAQ4.04 如何将一个字符串的内容追加到另一个字符串中? 73

FAQ4.05 如何为字符串追加N个字符? 75

FAQ4.06 如何将一个字符串复制到另一个字符串中? 76

FAQ4.07 如何在比较字符串时忽略字符大小写? 77

FAQ4.08 如何转换字符串中字符的大小写? 79

FAQ4.09 如何获取字符串中首次与末次出现某个字符的位置? 81

FAQ4.10 如何计算一个字符在字符串中出现的次数? 83

FAQ4.11 如何将字符串转换为数字? 84

FAQ4.12 如何将数字转换为字符串? 86

FAQ4.13 如何判断字符是何种类型? 89

第5章 函数 91

FAQ5.01 如何理解C语言中的函数? 91

FAQ5.02 如何理解函数原型? 92

FAQ5.03 形参和实参分别是什么?如何使用它们? 94

FAQ5.04 如何解决自定义函数与库函数命名冲突问题? 96

FAQ5.05 如何理解函数的开销问题? 97

FAQ5.06 主调函数如何调用被调函数? 99

FAQ5.07 return和exit有什么不同之处? 101

FAQ5.08 局部变量和全局变量有何区别? 102

FAQ5.09 当局部变量与全局变量发生名称冲突时如何解决? 103

FAQ5.10 如何更好地定义全局变量的有效范围? 105

FAQ5.11 如何理解传值调用? 106

FAQ5.12 C语言支持传址调用吗? 107

FAQ5.13 为什么要用到静态变量?静态变量何时被初始化? 108

FAQ5.14 如何理解递归函数?什么情况下要用到递归? 110

FAQ5.15 使用递归函数时对程序的执行效率有何影响? 112

FAQ5.16 如何使用其他方法代替递归? 113

FAQ5.17 函数如何对字符串进行堆栈处理? 115

FAQ5.18 如何使用外部变量及外部静态变量? 116

FAQ5.19 如何调用结构和基指针? 118

FAQ5.20 如何在C程序中调用汇编语言函数并获得汇编语言函数返回值? 119

FAQ5.21 如何创建支持多参数多类型的函数? 121

FAQ5.22 内部函数和外部函数有什么不同? 124

第6章 键盘操作 126

FAQ6.01 如何从键盘读入字符? 126

FAQ6.02 如何使用缓冲输入? 127

FAQ6.03 如何使用直接I/O读入字符? 128

FAQ6.04 如何实现不显示字符的键盘输入? 130

FAQ6.05 如何实现直接输出? 131

FAQ6.06 如何将按键放回键盘缓存? 132

FAQ6.07 为什么直接I/O能够更快地输出字符串? 134

FAQ6.08 如何更快地从键盘输入字符串? 135

FAQ6.09 如何实现定位光标的屏幕输出? 137

FAQ6.10 如何在屏幕中插入空行? 138

FAQ6.11 如何将屏幕上的文本复制到缓冲区? 140

FAQ6.12 如何判断文本模式设置? 142

FAQ6.13 如何控制文本颜色? 144

FAQ6.14 如何指定背景颜色? 145

FAQ6.15 如何控制文本的显示亮度? 147

FAQ6.16 如何在屏幕上移动文本? 148

第7章 文件、目录和磁盘 150

FAQ7.01 如何理解FILE结构? 150

FAQ7.02 如何打开文件?如何关闭文件? 151

FAQ7.03 如何实现每次读/写文件信息的一个字符? 153

FAQ7.04 如何判断当前文件位置? 155

FAQ7.05 文本模式和二进制模式有什么区别? 156

FAQ7.06 如何使用低级和高级文件的I/O? 158

FAQ7.07 如何理解文件句柄? 159

FAQ7.08 进程文件表有什么作用? 160

FAQ7.09 如何获取进程文件表的入口? 160

FAQ7.10 如何获取并显示系统文件表的信息? 163

FAQ7.11 如何从流指针中导出文件句柄? 163

FAQ7.12 如何重命名文件? 165

FAQ7.13 如何删除文件? 166

FAQ7.14 如何判断程序访问文件? 167

FAQ7.15 如何设置文件访问模式? 169

FAQ7.16 如何检测文件流错误? 171

FAQ7.17 如何判断文件长度? 171

FAQ7.18 如何使用临时文件? 173

FAQ7.19 如何搜索环境入口的子目录? 174

FAQ7.20 为什么要尽量减少文件的I/O操作? 175

FAQ7.21 对目录的操作有哪些?如何实现? 176

FAQ7.22 如何删除目录树? 177

FAQ7.23 如何列出一个目录中的所有文件? 178

FAQ7.24 如何建立完全路径名? 181

FAQ7.25 如何分解目录路径? 182

FAQ7.26 如何使用低级函数打开和关闭文件? 184

FAQ7.27 如何打开20个以上的文件? 186

FAQ7.28 如何改变文件长度? 187

FAQ7.29 如何控制文件打开操作的读写模式? 188

FAQ7.30 如何将缓冲区赋给文件? 190

FAQ7.31 如何分配文件缓冲区? 191

FAQ7.32 如何创建唯一文件名? 193

FAQ7.33 如何从文件流中读取结构数据? 194

FAQ7.34 如何复制文件句柄? 195

FAQ7.35 如何强制文件句柄设置? 197

FAQ7.36 如何实现文件共享? 198

FAQ7.37 如何锁定文件内容? 199

FAQ7.38 textcopy是否能够复制二进制文件? 201

FAQ7.39 如何读取格式化的文件数据? 202

FAQ7.40 如何重新打开文件流? 203

第8章 数组、指针和结构 205

FAQ8.01 数组的下标总是从零开始吗? 205

FAQ8.02 越界的数组元素是否依然有效? 207

FAQ8.03 浏览数组元素时,使用指针和使用数组下标有什么区别? 209

FAQ8.04 为什么不能将数组大小初始化为一个常量? 210

FAQ8.05 数组与动态存储孰优孰劣? 212

FAQ8.06 如何理解多维数组? 214

FAQ8.07 C语言是如何存放多维数组的? 216

FAQ8.08 可以在程序运行时才去声明数组的长度吗? 218

FAQ8.09 如何使用结构数组? 219

FAQ8.10 如何理解联合? 221

FAQ8.11 使用联合是否能够节省内存? 222

FAQ8.12 如何使用位字段结构? 224

FAQ8.13 是否可以对指针进行类型转换? 226

FAQ8.14 两次释放同一指针会产生什么结果? 227

FAQ8.15 指针占用的内存空间是否与基类型有关? 229

FAQ8.16 什么是空指针?哪些情况会用到空指针? 229

FAQ8.17 使用指针变量操作字符串和使用字符数组操作字符串有什么不同? 231

FAQ8.18 如何将指针操作作为函数参数? 233

FAQ8.19 指针函数和函数指针分别是什么? 234

FAQ8.20 指针如何进行运算? 237

FAQ8.21 如何将指针作为函数返回值? 238

FAQ8.22 如何使用指向字符串指针的指针? 240

FAQ8.23 最多可以使用多少级指针? 242

FAQ8.24 为什么使用结构?如何声明结构? 243

FAQ8.25 C语言如何为结构分配内存空间? 246

FAQ8.26 free()函数如何决定到底释放多大的内存空间? 247

FAQ8.27 如何使用结构作为函数参数? 249

FAQ8.28 如何使用指向结构体的指针? 251

FAQ8.29 结构体和共用体有哪些异同点? 253

第9章 DOS服务和BIOS服务 256

FAQ9.01 如何理解DOS服务和BIOS服务? 256

FAQ9.02 如何理解寄存器? 258

FAQ9.03 如何理解软件中断? 260

FAQ9.04 如何使用BIOS访问指针? 261

FAQ9.05 如何暂时挂起程序? 263

FAQ9.06 如何控制声音? 264

FAQ9.07 如何应用BIOS键盘服务? 265

FAQ9.08 如何获取BIOS设备列表? 268

FAQ9.09 如何控制串行接口的I/O? 270

FAQ9.10 如何判断BIOS常规内存数量? 272

FAQ9.11 如何分配动态内存? 273

FAQ9.12 动态分配的内存空间会被自动释放吗? 274

FAQ9.13 malloc()与calloc()函数的区别? 276

FAQ9.14 如何解决64KB堆的限制? 277

FAQ9.15 如何从堆栈中分配内存? 278

FAQ9.16 如何改变被分配内存区域的大小? 280

第10章 日期与时间 282

FAQ10.01 如何使用单个数字存储日期信息?必须遵循什么标准? 282

FAQ10.02 如何获取当前的日期与时间? 284

FAQ10.03 如何判断程序的耗时? 286

FAQ10.04 如何设置DOS系统时间与系统日期? 289

FAQ10.05 如何读取BIOS计时器? 290

FAQ10.06 如何获取与设置系统日期以及系统时间? 292

FAQ10.07 如何处理日期与字符串之间的转换? 293

FAQ10.08 如何创建格式化日期与时间串? 294

第11章 重定向I/O与进程命令行 297

FAQ11.01 如何编写密码函数? 297

FAQ11.02 如何使用输入/输出重定向? 299

FAQ11.03 如何使用管道运算符? 300

FAQ11.04 如何自定义more命令? 301

FAQ11.05 如何防止I/O重定向? 303

FAQ11.06 如何应用STDPRN文件句柄? 304

FAQ11.07 如何将重定向输出分割到一个文件中? 305

FAQ11.08 如何应用STDAUX文件句柄? 306

FAQ11.09 如何使用命令行变元? 307

FAQ11.10 如何从命令行中显示文件内容? 309

FAQ11.11 如何创建定时的more命令? 310

FAQ11.12 如何在重定向输入内寻找字串? 312

FAQ11.13 如何指定重定向输入显示行数? 313

FAQ11.14 如何定义在程序结束时执行的函数? 314

第12章 C语言开发常见错误及程序调试 316

FAQ12.01 使用C语言开发会遇到哪些常见错误? 316

FAQ12.02 程序调试包括哪几步? 320

FAQ12.03 如何使用编译工具找出错误信息对应代码位置? 321

FAQ12.04 如何检测内存漏洞? 323

FAQ12.05 如何让程序发送失败报告? 324

FAQ12.06 哪些原因会导致运行的程序挂起? 326

FAQ12.07 没有声明函数原型会造成怎样的结果? 329

FAQ12.08 函数参数的个数有限制吗? 332

FAQ12.09 exit()函数与return语句有什么不同吗? 334

FAQ12.10 return语句是必须存在的吗? 336

FAQ12.11 退出main()函数就意味着程序运行的结束吗? 339

内容摘要:

《你必须知道的213个C语言问题》精选了213个在C语言程序设计中经常遇到的问题,目的是帮助读者解决在C语言学习和开发中遇到的实际困难,提高读者学习和开发的效率。这些问题涵盖了C语言与软件开发、C语言基础、编译预处理、字符串、函数、键盘操作、文件、目录和磁盘、数组、指针和结构、DOS服务和BIOS服务、日期和时间、重定向I/O和进程命令、C语言开发常见错误及程序调试等内容,均是作者经过充分的调研,从实际项目开发中总结出来的典型问题,浓缩了作者多年从事开发工作的心得体会和经验教训,对初学者具有重要的参考价值。书中每节都提供了程序设计的示例代码。
《你必须知道的213个C语言问题》适合已经初步掌握C语言编程概念和用法的读者阅读。

编辑推荐:

213个编程新手最常遇到的C语言问题
菜鸟想问不敢开口
扫除入门者的障碍,开辟成长捷径
请相信,你并不是第一个遇到问题的人。
发现问题,思考问题,寻找答案,解决问题。
《你必须知道的213个C语言问题》内容涵盖:
C语言基础
编译预处理
字符串
函数
键盘操作
文件、目录和磁盘
数组、指针和结构
DOS服务和BIOS服务
日期与时间
重定向I/O与进程命令
开发常见错误及程序调试

书籍规格:

书籍详细信息
书名你必须知道的213个C语言问题站内查询相似图书
9787115224606
如需购买下载《你必须知道的213个C语言问题》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位人民邮电出版社
版次1版印次1
定价(元)39.0语种简体中文
尺寸24 × 19装帧平装
页数 184 印数 4000

书籍信息归属:

你必须知道的213个C语言问题是人民邮电出版社于2010.4出版的中图分类号为 TP312-44 的主题关于 C语言-程序设计-问答 的书籍。