C语言程序设计笔记

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言程序设计笔记

1. 合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线 开头。

2. 整型常量:用不带小数点的数字表示。

实型常量:用带小数点的数字表示。

字符型常量:用带有单引号的字符表示。

3. #define 是一条预处理命令,又被称为宏定义命令,其功能是把命令格式中的标识符定 义为其后的常量值。例如#define PI 3.14

一经定义,以后在程序中所有出现该标识符的地方均以该常量值代之。

习惯上符号常量的标识符用大写字母表示,变量标识符用小写字母表示,以示区别。 用#define 进行定义时,必须用“#”号作为一行的开头,在#define 命令行的最后不得加分号结束

4. 字符常量就是用一对单引号括起来的单个字符。

5. 注意switch 语句中的default ,代表所有case 以外的情况,在不能找到符合的case 并且存在default 时就会执行default 后的语句。

6. 在switch 结构中,如果没有break 出现,当遇到符合的case 时 将会自动执行其后的所有case 和default 中的语句。可见break 在switch 结构中的重要性。有了break 的switch 语句才起到真正的分支作用。

7. 语句标号和goto 语句的使用。Goto 语句为无条件转向语句,必须与语句标号配合使用。语句标号必须是标识符。

8. 真值表。或门中,即“||”,有真就真,全假才假。与门中,即&&,有假就假,全真才真。

9. C 语言中,不只是1表示逻辑真,而是所有非零都表示逻辑上的真值。

10.要时刻注意if 语句与其后的表达式的关系,是包含还是无关。注意花括号。

11.要记住C 语言中的运算符的优先级。

12. switch 结构中,case 于表达式之间一定要有空格,例如case 10,而不是case10.

13. 必要的时候case 后面的语句可以省略不写,意为与后面的

case 。

14. switch 和case 后的括号中的用于匹配的表达式的类型必须相同。各个case 后的值应该不同。

15 .关于牛顿迭代法解方程: 若是解隐函数方程,如x=cosx ,可以让x1=0,应该令x2=cosx1。注意分析,满足方程的根无非就是要x 和cosx 相等,想办法构造循环让x 自己运算自己就可以。 如果未达到精度要求,再将x2给x1,然后计算出一个新的x2,这样一轮一轮的来,总会找到符合要求的解,跳出循环,此时x1和x2都可以作为方程的解。 若是解一般方程,x2有公式, x2=x1-f(x1)/f`(x1)

一轮一轮的,新值变旧值。

16. for(int i;0;i++)语句所指的循环一次也不会执行。由于第二个语句是0。C 语言中对于是否执行的判断最终是通过看表达式的零和非零来实现的。

17. 寻找判断素数的思路。若在一定范围内寻找素数,需要有一个标记如c ,先假定每个数字都是素数,然后再通过循环来排除。两层,外层用于每个数的遍历,内层则用于判断该数字是不是素数,即用该数字i 与2到i-1之间的数字取余数,若出现了可以整除的情况,则改善数字i 不是素数,这时应该给它一个标签。如果出现了不是得情况跳出内层循环,然换下一个数字i+1继续实验。当内层循环自然结束的时候,代表该数字是素数,此时应该比对之前的标签c 来判断书否应该输出它。然后再通过外层循环自然切换到下一个检索对象i+1。 右边的代码还可以改进,因为除了2的偶数必然不是素数,所以可以将外层循环改成for(i=3;i<=100;i+=2) 另外,其实只需要筛选从2到i/2的所有整数即可。

18. break:可以让程序跳出switch 结构;也可以让程序终止本层循环。注意,break 只可以用在循环体和switch 语句体内。当break 出现在循环体中的switch 语句体中时,其作用仅仅是跳出switch 结构,并不能结束本层循环体的执行。

Continue:作用是让程序跳出本次循环,让循环自动进入下一次循环条件的判定。只能结束本次循环。和break不同的是,continue不管出现在循环体什么语句中,都会提前结束本次循环。

19. 一定要小心“==”和“=”的区别。等于和赋值。

20. 4%7=44%4=04%3=1

21. 注意i++和++i的区别和用法!!!

遇到++x时,x先加一,再执行调用;

遇到x++时,x的值不变,x调用值并执行完当前操作后,x的值再加一。

22. ==是等于,!=是不等于,>=是大于等于。

23. 输出对称矩阵:

分成两部分输出,输出下半部分的时候注意i的取值和范围,最好到这取值,不然j和k就会有问题。

24. 关于字符:

一个字符常量代表ASCII字符集中的一个字符,所以C语言中字符在内存中只占一个字节,存放的是字符的ASCII代码值。

字符常量只能包含一个字符,所以‘abc’是非法的。

字符常量只能用单引号括起来,而不能用双引号。例如”a”是一个字符串常量,而不是字符常量。

大小写字符间相差32,从A到Z,到a到z递增,A65,a97.

转义字符常量中,’\n’’\101’’141’只代表一个字符。反斜线后可以跟一个八进制数来表示一个ASCII字符,其后的八进制数可以不用0开头。也可以在反斜线后跟一个十六进制数,反斜线后的十六进制数只可以由小写x开头,不能用大写X,也不可以用0x开头。

字符串常量和字符常量的区别就是,字符串常量包含了一个`\0`,因此‘a’的长度会比”a”的长度少一位。

字符量可以作为整型量参与任何整数运算,作为ASCII码。注意字符9和整数9是有区别的。

在用scanf混合输入字符和数字时,要注意数据的输入方式。10a 20c之类的。在int 中,可以用空格来做数据的分隔;但是在char中,tab和空格键和回车键都会被作为字符录入,并且按下回车键才开始读入数据。

scanf(“%4c”)

调用对字符和字符串进行处理的库函数时,应该包含头文件ctype.h。include再循环输入字符的时候,要求以什么什么结束输入的时候常用while((ch=getchar())!=’@’); while((ch=getchar())!=‘\n’);

while((ch=getchar())!=’\0’);for(cn=0;getchar()!=’@’;cn++)之类的句子来控制循环条件。

25. 关于函数:

函数名必须是唯一的!!不能与自己定义的任何变量重名。

函数定义的时候,形参的类型名不能省略。返回值的类型名函数名(类型名形参1,类型名形参2).

不能在函数内部定义函数,main函数也是,定义函数应该在main函数外部。

若省略函数返回值的类型,则系统默认为int类。

void类函数无返回值。只用于完成操作。

在同一个函数内,可以出现多个return,无论函数体里有多少个return,return语句只能执行一次。Return语句中也可以不含表达式,这时函数必须为void类。函数体内也可以不含return,此时也为void类。

函数必须先定义再调用(返回值类型为int和char时除外),或者先声明在调用在定义。

关于函数声明,先定义后调用的函数不用声明。最好在main函数外部声明,这样持久有效。声明格式类型名函数名(参数类型1 参数名1,参数类型2 参数名2……)其中的参数名只是摆设,可以是任意的,也可以省略。

在调用函数时,实参把值传递给形参进行函数运算,结束以后返回函数值。但是这不会改变实参的值。在使用时要注意。如果想改变实参的值,可以利用传地址的方法。

相关文档
最新文档