第一章
1.C语言是一个函数式语言,有且仅有一个叫做“main”的主函数。
2.程序从“main”中开始,在“main”中结束。
3.函数不能嵌套定义,可以嵌套使用(每个函数地位一样)。
4.一个C语言由函数组成,用“;”作语句结束符。
5.标识符是以字母或下划线开头的一串字母、数字或下划线构成的序列;标识符大小写有区别,不能使用关键字。关键字共有32个(主要有:auto,break,case,char,continue,default,do,double,else,extern,float,for,if,int,long,returm,short,singed,sizeof,static,struct,switch,typedef,union,void,while),关键字均为小写,若为大写则为合法的标识符(如:Do是合法的)
第二章
6.普通字符常量是用单撇号括起来的一个字符。
7.常用的以‘\’开头的特殊字符:\n:换行\t:横向跳格\b:退格\r:回车
8.C语言中没有字符串变量,用字符数组存放。‘a’是字符常量,“a”是字符串常量,‘ab’既不是字符常量,也不是字符串变量。存储时自动在结尾加’\0’为结束标志,所以在内存中占的字节要在原本再加一。
9.变量与变量间用逗号分开;变量必须先定义后使用;定义时系统给该变量分配变量空间,只有分配了变量空间才有意义。
10.a与!a=0等价;!a与a==0等价。
11.在C语言中用1表示逻辑真,用0表示逻辑假。在关系表达式和逻辑表达式中只有两个结果(0或1)。
12.判断A与B是否相等(fabs(A—B)<1e—6)
13.用条件表达式求A、B、C中最大的数:C>(A>B?A:B)?C(A>B?A:B)
14.在进行四则混合运算时,表达式的结果由参与运算的数据项的最高类型决定;编程时,只允许低类型数据向高类型数据转换(如果精度高的向精度低的转换则会丢失精度:如:int i;i=2.56则结果为2)。
15.i=3求t=(i++)+(i++)+(i++)+(i++)+(++i)进行此类计算时,先扫描前两项,若有++i则先运算,然后前两项取同样的值,后面的再依次进行运算。(++i是先运算再取值,i++是先取值再运算)此题t=16,i=8
第四章
16.if后面的表达式类型任意,语句可以是复合语句;if(x)等价于if(x!=0)if(!x)等价于if(x==0)
17.多个case可以共用一组执行语句(case1:case2:case3:a+=5则这三个语句共用a+=5)
第五章
18.能够使用while语句,尽量不使用do....while语句;能够使用for语句,尽量不使用while语句。
19.退出循环的条件:1,判断式不成立2,循环体内包含break语句。
20.for语句括号内必须有两个分号。
第六章
22.模块化程序设计开发方法:自上而下,逐步分解,分而治之。
23.用户空间包括:1.程序代码区2.动态存储区(也可写为栈区和堆区)3.静态存储区(也称为全局数据区,存储全局变量和局部变量)。
24.函数必须先定义再声明最后调用;调用函数时,系统给该函数供配内存空间;该空间的入口地址是函数名,函数定义没有意义,只有调用时才有意义;调用时实参向形参传递数1.传数值属于单向传递。对实参没有影响2.传地址属于双向传递,对实参有影响,双向传递时要动main中值才对实参有影响。实参和形参在个数上、类型上、顺序上一一对应。
25.只有void函数类型不用return语句,每一个形参必须有类型说明。
26.函数遇到return或最后一个大括号结束。
27.若函数类型与return语句返回类型不一致,以前者为标准。函数的返回值可以作为另一个函数的实参。
28.函数的递归调用出现在条件语句之后。
29.定义在函数内的量称为局部变量,局部变量在动态存储区内(栈区)作用域:自定义起到该函数或复合语句结束。
30.定义在函数外的量称为全局变量,全局变量在静态存储区内,作用域:自定义起到C语言程序结束。
31.编程中要尽量少使用全局变量。
32.当全局变量与局部变量同名时,屏蔽全局变量,使用局部变量。
33.通过外部说明可以扩展全局变量的作用域;全局变量只能定义依次,系统分配空间,初始值为0;说明(extern)可以多次,不分配空间,不能初始化。34.静态局部变量是定义在函数体中且关键字“static”标识的变量,可以在函数体内或外,作用域:只在本源文件有效,初始值默认为0.
第七章
35.数组是同种数据类型有序数据的集合,数据必须先定义后使用,定义的同时,系统给该数组分配一个连续的空间。
36.数组名表示数组的首地址,是一个地址常量,数组原数的引用从0开始。
37.动态数组:int a[10]={};里面的值为任意值;int a[10]={1,2,3,4}后面未赋值的默认为0;静态数组:static int a[5];未赋值则默认为0。赋值的个数应≤长度。
38.二维数组当全部赋值时可以缺少行值,不能缺少列值。
39.当行值缺少时,如何确定行值?若个数能整出列值,则行值为其商,若不能,则行值为其商加1。
40.scanf(“%s”,c)对字符串进行输入时,遇到回车,空格结束。
printf(“%s”,c)对字符串进行输出时,遇到空格,’\0’结束。
41.一般对字符串输入输出时,用gets(c);puts(c);
42.字符串不是数据类型,是构造类型。它的实际长度为字符个数,存储长度为字符个数再加1。(‘a’是字符常量占1个字节,“a”是字符串常量占2个字节因为多了结束标志’\0’)。
43.char a[i]最多存储i—1个字符,还有一个存储’\0’。
字符常量和字符变量的区别第九章
44.指针使程序简介、紧凑、高量,有效地表示复杂是数据结构,动态分配内存,得到多于一个的函数返回值。
45.指针变量必须先定义再赋值最后使用。
46.C语言中*的含义(1.在定义时,*号用来标识后面的量为指针变量2.在使用时,*号表示取该指针变量所指地址中的值)。
47.指针变量只能存放地址。
48.二维数组:1.逻辑是一个平面2.二维数组也可以看成是多个一维数组所构成3.扩展的理解:int a[3][4]a有三个元素(a[0],a[1],a[2])4.物理存储的理解,以行序优先存储。
49.A[i][j]=*(a[i]+j)=*(*(a+i)+j)=(*(a+i))[j]=*(&a[0][0]+i*N+j)N 为列值。
50.返回指针值为地址int*f();指针函数课实现多态,即用相同的名字进行不同的操作(*f)()
第十章
51.结构体是由多种不同类型的数据组成的数据实体。
52.结构体类型是一种构造数据类型,也可称为自定义数据类型。int占2个字节,char占1个字节,float占4个字节。
53.结构体可嵌套,结构体类型与其成员或其他变量可重名。
54.结构体类型的大小是由各成员所占用的存储空间的总和来决定的。结构体类型本身不占用任何内存空间,只有当所定义的结构体类型兴义结构体变量的时候才会分配内存。
55.结构体类型变量不能真题引用,只能引用变量成员。
56.共用体类型变量所占空间由它成员中所占空间最长的决定。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论