《C语言常见问题解答及算法实例》PDF下载

  • 购买积分:8 如何计算积分?
  • 作  者:孙洪全编著
  • 出 版 社:哈尔滨:黑龙江教育出版社
  • 出版年份:2010
  • ISBN:9787531655725
  • 页数:118 页
图书介绍:本书由两部分内容构成,第一部分是常见的问题及相应的解答,第二部分精选了在实际应用中比较常见的一些算法实例,旨在帮助C语言初学者快速掌握常见的算法和编程技巧。

第一章 基本数据类型和变量 1

1.什么是数据类型?什么是基本数据类型? 1

2.变量必须被初始化吗? 1

3.变量声明(declaration)和变量定义(definition)有什么区别? 3

4.什么是全局变量?应该使用它吗? 3

5.什么是左值?什么是右值? 5

6.什么时候应该使用const修饰符? 6

第二章 运算符、表达式和语句 7

1.什么是局部程序块? 7

2.不同类型的数据之间可以执行算术运算吗? 8

3.在哪些情况下应该使用强制类型转换? 9

4.什么时候使用一条switch语句比使用多条if语句更好? 10

5.switch语句中可以没有default分支吗? 11

6.在switch的最后一个分支中可以省略break语句吗? 12

7.逗号“,”都有哪些用途? 13

8.如何判断循环是否提前结束了? 13

9.++x和x++有何区别? 14

10.a[i]=i++是什么含义? 15

11.对于代码int x=100;x=x++;,不同编译器给出了不同的结果,有的为100,有的为101,这是为什么? 15

12.如果不使用表达式的值,要自增变量x的值,应该用++x还是x++? 15

13.可以用==或!=来比较两个浮点数是否相等吗? 15

14.在使用运算符时,常见的错误有哪些? 17

第三章 数组、指针和结构体 20

1.数组下标总是从0开始吗? 20

2.可以使用数组后面第一个元素的地址吗? 20

3.将数组传递给函数时,在函数中可以通过sizeof运算符计算数组的元素个数吗? 21

4.通过下标或指针访问数组元素,哪个更好? 22

5.const int变量可以用来定义数组的大小吗? 23

6.字符串和字符数组有何区别和联系? 23

7.int a[]和int*a是同样的吗? 24

8.使用数组时,最容易出现哪些类型的错误? 24

9.什么是const指针? 26

10.什么是空指针? 26

11.什么是void指针?有何用处? 27

12.指针之间何时可以相减?减法的含义是什么? 28

13.指针和整数相加的含义是什么? 28

14.两个指针能相加吗? 29

15.void指针能进行加法或减法运算吗? 29

16.如果数组的大小只能在运行时确定,那么数组应如何定义呢? 29

17.使用函数指针时,&和*是可有可无的吗? 30

18.表达式*p++中的++是自增p还是自增*p? 31

19.使用指针时,最容易出现哪些类型的错误? 31

20.为什么定义struct时经常会用到typedef? 33

21.struct中可以包含指向自己的指针吗? 34

第四章 函数 35

1.什么是函数原型?为什么需要声明它? 35

2.函数可以包含多少个参数? 36

3.函数没有返回值,可以使用return语句吗? 36

4.如何向函数传递数组? 36

5.exit()和return有何区别? 38

6.main函数应该返回一个值吗?void main()正确吗? 39

7.如果要将一个字符串转换为整数或实数,应如何实现? 39

第五章 标准库函数 42

1.当需要完成某个功能时,如果已有标准库函数可以直接使用,还需要自己编写函数吗? 42

2.如何判断一个字符是数字、字母,还是其他符号? 50

3.如何将数字转为字符串? 53

4.如何将字符串转为数字? 54

第六章 字符串 59

1.C语言中的字符串是一种类型吗? 59

2.如何删去字符串头部或尾部的空格? 60

3.字符串的大小是如何定义的?如何判断两个字符串的大小关系? 63

4.常见的处理字符串的标准库函数都有哪些? 65

第七章 预处理命令 69

1.什么是编译预处理? 69

2.什么是宏(macro)?有何用途? 69

3.如何避免一个头文件被重复包含? 70

4.可以包含扩展名不是“.h”的文件吗? 71

5.利用#define定义常量有何好处? 71

6.带参数的宏和函数,使用哪个更好? 71

7.#include〈file.h〉和#include“file.h”有何区别? 72

第八章 文件 73

1.什么是流(stream)? 73

2.二进制模式和文本模式有何区别? 73

3.如何将标准输入/输出流重定向到文件呢? 73

4.如何将已被重定向的流恢复到初始状态呢? 74

第九章 编程风格和可移植性 76

1.可以在变量名或函数名中使用下划线吗? 76

2.能在变量名中体现出变量的类型吗? 76

3.程序中的注释和空白符会影响程序的大小和运行效率吗? 77

4.常见的标识符命名方法有哪些?哪种命名法更好? 78

5.如何给函数命名才是适当的? 78

6.什么是递归?应该使用它吗? 79

7.如何表示“真”和“假”? 80

8.continue和break有何区别?应该使用它们吗? 80

9.C++和C有何区别? 80

10.char,short,int和long类型分别占几个字节? 81

第十章 杂项 83

1.如何生成随机数? 83

2.如何判断一个整数是几位数?如何确定各个数位上的数字? 84

3.typedef有什么用途? 86

4.关键字extern有何作用? 88

5.为提高代码的运行效率,有哪些简单易行地优化方法? 88

6.如果要加密/解密一个文件,有什么简单的方法吗? 93

第十一章 算法实例 95

1.数字排列问题 95

2.日期问题 96

3.寻找水仙花数 97

4.翻转字符串 98

5.寻找素数 99

6.分解素数因子 100

7.求最大公约数和最小公倍数 102

8.统计字符个数 103

9.排序问题 104

10.数列求和问题 105

11.下三角九九表 106

12.上三角九九表 107

13.递归问题 108

14.寻找Armstrong数 109

15.计算圆周率 112

16.Ackerman函数 112

17.位运算的应用 113

18.阶乘末尾0的个数 114

19.百鸡问题 115

20.Hanoi塔问题 116