ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:29.57KB ,
资源ID:7195320      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7195320.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新C语言学习必备基础知识点总结资料Word文档格式.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

最新C语言学习必备基础知识点总结资料Word文档格式.docx

1、int a=3;定义的同时初始化a=6*9;定义后在程序中进行赋值 变量的值只有在赋值操作时才会被改变,即将其放在等号左边时才会改变它的值,或自增自减操作:a=5,a+,a-,像a+3并未改变a的值,只是使用了a的值而已. 自增自减运算变量+,+变量,变量-,-变量 使变量的值自增1或自减1等价于 变量=变量+1 变量=变量-1+,-放于变量前后效果的区别:当自增自减运算做为表达式的一部分时,+,-放在变量前面是先自增自减再使用变量的值,放在变量后面则是先使用变量的值,再自增自减。如x=3; printf(“%d”,+x);则相当于执行了+x; printf(“%d”,x);这样的操作所以打印

2、出4再如x=3; printf(“%d”,x+);则相当于执行了printf(“%d”,x); x+;这样的操作,则打印出3,当然最后x的值还是4。四、 表达式 运算符和运算对象一个运算符都有若干个运算对象,如 + 必然要跟两个运算对象才能进行加法运算:3+5。C语言里称需要跟n个运算对象的运算符为n元运算符。一元运算符有:!,(类型名)二元运算符有:+,-,*,/,%(求余), =,+=,-=,*=,/=,%=, , =, = =(等于), !=(不等于),&(且) , |(或)多元运算符有: , 运算符的优先级和结合性i. 优先级:同一个运算对象左右两边若同时有两个运算符,则这两个运算符优

3、先级高的先进行运算。ii. 结合性:若同一个运算对象左右两边的两个运算符优先级相同,则根据结合性判断先进行哪个运算,自左自右结合性的先算左边的运算符,自右自左的先算右边的运算符。iii. 各运算符的优先级和结合性见P365附录C 强制类型转换格式: (类型名) 表达式 。将后跟的表达式的值的数据类型转换为与圆括号内的类型名一致的类型。注意类型名一定要用() 括起来。 算术表达式iv. 算术运算符:+,-,*,/,%(求余)v. 由算术运算符加上运算对象构成算术表达式,如3+3*6-9/2vi. 值:跟我们小学时学的一样,就是表达式的计算结果vii. 整数除以整数结果取整数部分,故1/3得到的值

4、是0viii. 5%3 结果为2,想想小学除法,求余得到的是余数不是商。 赋值表达式ix. 赋值运算符:=,+=,-=,*=,/=,%=x. 赋值表达式:变量=表达式,如x=3+6,x+=6-9,x+=x*=3+4 注意等号左边只能是变量xi. 复合赋值运算符的运算:以/=为例:x/=表达式 等价于 x=x/(表达式)xii. 值:=号左边的变量最终的值 关系表达式xiii. 关系运算符:=4, 2=axv. 值:满足相应运算符所指定的关系的值为1,否则为0 逻辑表达式xvi. 逻辑运算符:(且) , |(或) , !(非)xvii. 由逻辑运算符加上运算对象构成逻辑表达式,如3&4, x|!

5、yxviii. 值:xix. 进行 |或 运算时,若|左边的表达式值为1,则不再对右边的表达式进行运算。xx. 进行 &且 运算时,若&左边的表达式值为0,则不再对右边的表达式进行运算。 逗号表达式xxi. 逗号运算符:xxii. 用逗号将各种表达式连续起来构成逗号表达式,如3+4,a=9,8*axxiii. 值:组成逗号表达式的各个表达式中的最后一个的值,如上例为8*a 题目:P71117 P81833五、 输入输出函数 scanf(“格式控制串”,变量地址表列);如scanf(“%d%c%d”,&a,&ch,&b); scanf(“%4f”,&x);注意:i. 格式控制串可控制截取用户输入

6、的前几个字符给变量,但不能控制输入几位小数给变量,如不能写成scanf(“%4.2f”,&ii. 第二个参数给的是地址,即要么是&+变量名或数组元素名的形式,要么就是一个数组名或指针变量名,如int *p,a; p=&a; scanf(“%d”,p);iii. 考试时注意看题目给你写好的scanf的格式1. 若其格式控制串内各格式符用“,”隔开如scanf(“%d,%c,%d”,&那输入时也要用逗号隔开,如此例输入时应:3,+,52. 若是这种格式scanf(“%d %d”,&则输入时应:3 5;3. 若是这种格式scanf(“%d%c%d”,&则输入时应3+5,若写成3 + 5则a=3,ch

7、= (空格),b=任意值 (自己上机运行看看结果) printf(“格式控制串”,输出项表列);如float x=7.5; printf(“%8.2f”,x);此处的意思是将x打印出来,且占8列,保留两位小数。自己上机运行看看效果。 常用格式符汇总:iv. %d:输入输出整型数据,%ld:输入输出长整型数据v. %c:输入输出字符型数据vi. %f:输出单(双)精度浮点型数据,输入单精度型数据。 %lf:输入双精度型数据vii. %s:输入输出一个字符串,用printf输出字符串时,输出项书写时可为字符串常量,或字符数组名。如printf(“%s”,”hello”);或char str10=”

8、hello”; printf(“%s”,str);viii. %u:输入输出无符号整型,%o:输入输出八进制数, %x:输入输出十六进制数 getchar();函数调用后返回用户输入的一个字符,故需再定义一个变量来存放这个字符,即使用时应 char c; c=getchar();意思就是接收用户输入的一个字符,并将其赋值给变量c。 putchar(字符常量或字符变量名);如char c=A; putchar(c);或putchar(A);都会向屏幕输出字符A。六、 C语言的语句 表达式语句:由表达式末尾加上分号构成。 函数调用语句:由函数调用表达式加上分号构成。 空语句: ; 选择结构语句:i

9、f语句 switch语句 循环语句:for语句 while语句 do while语句 复合语句:用花括号将以上任意语句括起来构成一条复合语句。七、 C程序的基本结构void main() 声明部分:用来定义变量和声明自定义函数的原型,需以“;”结尾,如int x; 执行语句部分:第六点里介绍的各种语句,如x=3;printf(“%d”,x);main函数外可写自定义函数。如int max() return 0;八、 选择结构语句 if(表达式) 语句1 else 语句2 如果if语句的圆括号内的表达式值为非0,则执行语句1,值为0则执行语句2。i. 表达式可为任意表达式,if语句执行的实质是判

10、断表达式的值是否为0来决定执行语句1还是语句2。另外请在此处表达严重关切,不管是高手还是菜鸟经常会把判断两个数相等的符号“=”写成了一个等号“=”成为了赋值运算,这样的写法不会引发编译错误,但结果会与原意大大不同,所以考试前请再三提醒自己。ii. 语句1和语句2都只能是一个语句,若要跟多条语句,切记用一对括起来,构成复合语句;也不要随便在圆括号后加“;” ,因“ ;”构成一条空语句,这会使后面跟的语句1不再属于if语句的组成部分。iii. if语句的三种结构1. 单边: if(表达式) 语句2. 双边:if(表达式) 语句1 else 语句23. 多层(重点掌握):if(表达式1) 语句1 e

11、lse if(表达式2) 语句2 else if(表达式3) 语句3else 语句n 条件运算符 表达式1? 表达式2 : 表达式3 若表达式1的值非0,则取表达式2的值做为整个表达式的值,否则取表达式3的值为整个表达式的值。如 34? 1:2 该表达式的值为2 switch语句switch(表达式) case 表达式1:语句 case 表达式2: case 表达式n: default: 语句语句执行过程:先计算表达式的值,然后判断该值与表达式1到表达式n中的哪个相等,若与表达式i的值相等,则执行表达式i后的所有语句,当遇到break;语句时结束整个switch语句的执行。表达式1到表达式n的

12、值都不相等的情况下执行default后跟的语句。每个case后可跟多条语句。九、 循环结构 for循环语句for(表达式1;表达式2;表达式3) 循环体语句1. 计算表达式12. 判断表达式2的值是否为0,若为0,语句执行结束,若不为0,进入步骤33. 执行循环体语句(需注意的是循环体语句只能有一个语句,若要包含多个语句要用一对括起来,构成一条复合语句,此处也不要随便加上 “ ; ”,因一个“;”可构成一条空语句,这会使得后面真正的循环体语句不属于for循环语句的部分)。进入步骤44. 计算表达式3,然后重新进入步骤2 while循环语句 do while循环语句ii. while(表达式)

13、循环体语句执行过程:1. 判断表达式的值是否为非0,若是进入步骤2,否则结束语句执行。2. 执行循环体语句,重新回到步骤1。ii. do 循环体语句 while(表达式);1. 执行循环体语句,进入步骤22. 判断表达式的值是否为非0,若是重新回到步骤1,否则结束语句执行。这里要注意的地方跟for语句一样,即循环体语句只能有一个语句,若要包含多个语句要用一对括起来,构成一条复合语句,此处也不要随便加上 “ ;”可构成一条空语句,这会使得后面真正的循环体语句不属于while循环语句的部分,另外do while循环的while(表达式)后是要加“;”的。 break语句:放在循环体内实现的功能是结

14、束其所在的那层循环的执行。一十、 数组 定义格式:数据类型 数组名整型常量;如 int a10; 定义了一个整型数组,数组名为a,这个数组含有10个元素。 引用数组元素: 格式:数组名下标 切记下标值从0开始。下标可为常量,表达式,变量等,如int i=3; a0=5;a3*2=9; ai=7; 初始化:数据类型 数组名整型常量=数据表列;将数据表列的各个值依次赋值给数组的各个元素。如int a5=0,1,2,3,4;则数组a各元素a0到a4的值分别为0,1,2,3,4 遍历数组元素数组定义后,我们不能对数组进行整体的操作,如int a10;不能用a=3这样的操作将数组的各元素都赋值为3;而只

15、能一个一个元素的进行赋值,如a0=3;a1=3;a2=3a9=3; 当然此时我们就可以借助于一个for循环来控制下标的变化从而对数组的各个元素进行赋值for(i=0;i y ? x : y ; return ( z ) ;注意点:1.函数类型是指返回值的类型,即要与return语句后跟的表达式的值的类型一致。若函数类型为void则说明该函数无返回值,即函数体里不能出现return 语句。2.形式参数列表里定义的变量要记得给它们指定类型,而且如果同时要定义多个,应在每个前面都分别指定类型名,而不能写成int x,y;3.函数体里能写的语句跟main函数一样,在开头可定义所需要的变量,后面跟上一堆

16、执行语句。 函数调用流程以上面的函数为例,在main函数进行调用: int a,b,c; scanf(“%d%d”,& printf(“%d”,max(a,b);或 c=max(a,b);printf(“%d”,c)以上两种方法都会在屏幕中打印出a,b间的较大值。调用函数的格式 函数名(实际参数列表);调用的时候像什么函数类型,形式参数的类型就不要加上去了。max(a,b)中max就是函数名,写上变量名a,b是实际参数列表,执行这个调用语句时,会先把a,b的值给相应位置的形式参数即执行了x=a,y=b这样的操作,然后开始执行max函数的函数体的语句。当max函数体里执行到一个return语句时

17、,则max函数结束执行,将return后的表达式的值返回给main函数调用max函数的那个位置,即若上面a=3,b=5则max(a,b)return后的表达式的值应该是5也就是说执行完max后把5返回到调用max的位置可看成printf(“%d”,5);或另一种解法的c=5。一十三、 指针 指针变量的声明: 类型名 * 指针变量名; 通过指针变量访问它所指向的普通变量的值先将普通变量的地址赋值给指针变量,再通过指针运算符* 得到普通变量的值。int *p,x,y;x=3;p=&x;则printf(“%d”,*p);会打印出3即x的值y=*p;则y的值变为3*p=5;则x的值变为5 指针变量加上

18、(减去)一个位移的效果若指针变量存入的是数组元素的地址,则其加一减一得到的是那个数组元素下一个或前一个元素的地址。a3;*p得到的是a3的值。若p+;此时p存放的是a4的地址&a4; *p得到的就是a4的值。或p-;此时p存放的是a2的地址&a2,*p得到的就是a2的值。 行指针i. 主要是对于二维数组来说的,二维数组每行都有自己的地址,第0行地址用 数组名 表示,第i行地址为 数组名+i;而想要得到二维数组里一个元素的地址,必需先得到其所在行的地址,然后再由那个地址得到元素的地址,比如说 int a34;定义了一个二维数组,该二维数组第0行的地址为a,第1行的地址为a+1,第2行的地址为a+

19、2,想从行的地址得到元素的地址,需在行地址前加上指针运算符“*”,即*a就是第0行首个元素的地址即a00的地址,而a02的地址就是在a00的地址基础上加上位移量2,即*a+2,然后想得到a02这个元素的值呢就再加上一个指针运算符“*”,即*(*a+2),类似地,想得到a22这个元素的值呢就是*(*(a+2)+2)ii. 定义行指针变量: 类型名 (*变量名)数组长度;如int (*p)4,a34; p=a;此时就可把p当成a来用,用法同上所述。 判断是否合法访问数组元素:若是指针法访问,判断指针后跟的是否地址;若是下标法访问,判断下标有无越界。 函数指针:函数名即为函数的地址(指针)iii.

20、函数指针变量的定义: 类型名 (*变量名) (形参列表);如 int (*p)();iv. 赋值:指针变量=函数名;设有个函数其函数名为max,则要将该函数的地址给p的话只要执行如下语句即可 p = max; 指针数组:指针数组的数组元素都是指针变量,是用来存放变量的地址的,定义格式为 类型名 * 变量名数组长度; 如int * p10; 指向指针的指针:指针变量也是一种变量,故在内存中也有对应的一个地址,而要存放指针变量的地址,就要求助于用来存放指针变量的地址的指针变量,定义格式 类型名 * 变量名;如 int *p1; int *p2; int a=3;可进行赋值p1=& p2=&p1;

21、则a 、*p1和 *p2的值都是3.一十四、 宏定义 无参宏定义 #define 标识符 值 定义后,出现所定义的标识符的地方都将以定义时指定的值来代替。#define M 2+3main() int x; x=M*M; 则x的值为2+3*2+3=11若想得到的结果是(2+3)*(2+3)则定义时也写成这样 #define M (2+3)注意#define、标识符、值之间都要用空格隔开,且宏定义结尾不需加分号。 带参宏定义 #define 标识符(参数表) 值#define S(x,y) x*ymain( ) int a=3,b=4,c=5,d=6; printf(a*b=%dn, S(a,b

22、); 此时会打印出 a*b=12a+b*c+d=%dn , S(a+b,c+d); 此时会打印出a+b*c+d=29,带参宏定义执行时是将a+b这样一个表达式代替x,c+d这样一个表达式代替y,所以S(a+b,c+d)进行的是a+b*c+d的运算,而不是将a+b的值给x,c+d的值给y然后再做x*y,这点跟函数调用传递参数是不一样的。 自定义类型名typedef:对已存在的类型名取一个外号。i. 基本格式:typedef 原类型名 新类型名;ii. typedef int INTEGER; 则int a,b;等价于INTEGER a,b;iii. typedef int NUM10; 则 int a10;等价于 NUM a; a即为一个有10个元素的数组的数组名。iv. typedef int * INTEGER; 则int *a,*b;以下不考:一十五、 结构体,共用体,枚举类型 结构体i. 结构体类型的定义及变量的定义struct 结构体名 类型 成员1; 类型 成员2;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2