还剩5页未读,继续阅读
文本内容:
C语言考试复习要点.程序结构是三种依次结构循环结构三个循环结构选择结构if和switch.读程序都要从main入口,然后从最上面依次往下读遇到循环做循环遇到选择做选择.计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址..bit是位是指为0或者1byte是指字节,一个字节二八个位..确定要记住二进制如何划成十进制概念常考到的编译预处理不是C语言的一部分,不占运行时间,不要加分号C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中每个C语言程序中main函数是有且只有一个在函数中不行以再定义函数算法的是确定要有输出的,他可以没有输入break可用于循环结构和switch语句逗号运算符的级别最低第一章1合法的用户标识符考查合法的要求是由字母,数字,下划线组成有其它元素就错了并且第一个必需为字母或则是下划线第一个为数字就错了关键字不行以作为用户标识符号maindefinescantprintf都不是关键字迷惑你的地方If是可以做为用户标识符因为If中的第一个字母大写了,所以不是关键字2实型数据的合法形式
2.333e-l就是合法的,且数据是
2.333x10-1考试口诀e前e后必有数,e后必为整数3字符数据的合法形式T是字符占一个字节,口是字符串占两个字节含有一个结束符号101的ASCII数值表示为48匕’的ASCII数值是97A的ASCII数值是65一般考试表示单个字符错误的形式「65,1字符是可以进行算术运算的,记住0-0二48大写字母和小写字母转换的方法A+32二宣相互之间一般是相差324整型一般是两个字节,字符型是一个字节,双精度一般是4个字节考试时候一般会说,在16位编译系统,或者是32位系统遇到这种状况,不要去管,一样做题驾驭整型一般是两个字节,字符型是一个字节,双精度一般是4个字节就可以了5转义字符的考查在程序中inta=0x6d是把一个十六进制的数给变量a留意这里的Ox必需存在在程序中inta=06d是一个八进制的形式在转义字符中,’\x6cf才是合法的,不能写,并且x是小写\141J是合法的,0是不能写的\108,是非法的,因为不行以出现86算术运算符号的优先级别同级别的有的是从左到右,有的是从右到左7强制类型转换确定是inta不是inta留意类型上确定有括号的留意inta+b和inta+b的区分前是把a+b转型,后是把a转型再加b8表达式的考查是表达式就确定有数值赋值表达式表达式数值是最左边的数值,a=b=5;该表达式为5常量不行以赋值自加、自减表达式假设a=5++a是为6a++为5;运行的机理++a是先把变量的数值加上1然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6而a++是先用该表达式的数值为5然后再把a的数值加上1为6再放到变量a中进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6To考试口诀++在前先加后用,++在后先用后加逗号表达式优先级别最低;表达式的数值逗号最右边的那个表达式的数值234的表达式的数值就是49位运算的考查会有一到二题考试题目总的处理方法几乎全部的位运算的题目都要按这个流程来处理先把十进制变成二进制再变成十进制例1:chara=6b;b=a«2;这种题目的计算是先要把a的十进制6化成二进制,再做位运算例2确定要记住,异或的位运算符号0异或1得到lo0异或得到0两个女的生不出来1异或1得到0两个男的生不出来考试记忆方法一男⑴一女⑼才可以生个小孩1例3在没有舍去数据的时候,<<左移一位表示乘以2;〉>右移一位表示除以2O018的数值是非法的,八进制是没有8的,逢8进1%符号两边要求是整数不是整数就错了12三种取整丢小数的状况1xinta=
1.6;
2、inta;
3、1/2;3/2;13字符型和整数是近亲chara=65;printfM%cna;得到的输出结果aprintfH%dna;得到的输出结果65其次章printf函数的格式考查%d对应整型;%c对应字符;蜥对应单精度等等宽度的,左对齐等修饰%ld对应longint;%lf对应doublescant函数的格式考察留意该函数的其次个部分是9这样的地址,不是目;scanfu%d%d%*d%dn跳过输入的第三个数据putchargetchar函数的考查chara=getchar是没有参数的,从键盘得到你输入的一个字符给变量aputchary把字符y输出到屏幕中4如何实现两个变量xy中数值的互换要求背下来不行以把x=yy=x;要用中间变量t=x;x=y;y=to5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)这个有推广的意义,留意x=(int)x这样是把小数部分去掉第三章特别要留意c语言中是用非0表示逻辑真的,用表示逻辑假的1)关系表达式表达式的数值只能为1(表示为真),或0(表示假)当关系的表达是为真的时候得到1如98这个是真的,所以表达式的数值就是1;2)逻辑表达式只能为1(表示为真),或0(表示假)共有||!三种逻辑运算符号!||优先的级别留意短路现象考试比较宠爱考到要表示x是比大,比10小的方法OvxvlO是不行以的(确定记住)是先计算0x得到的结果为1或则0;再用0或1及10比较得到的总是真(为l)o所以确定要用(0vx)(x10)表示比0大比10小3)1f语句else是及最接近的if且没有else的相组合的4)条件表达式表达式1表达式2表达式3留意是当非0时候是表达式2的数值,当为0是就是表达式2的数值考试口诀真前假后5)switch语句a)确定要留意有break和没有break的差别,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是干脆跳出了swiche语句switch只可以和break一起用不行以和continue用switch(x)x是整型常量,字符型常量,枚举型数据{case1:•••.不行以是变量case2:•••}第四章1)三种循环结构for();whileQ;do-while三种for循环当中必需是两个分号,千万不要遗忘c)写程序的时候确定要留意,循环确定要有结束的条件,否则成了死循环d)do-while()循环的最终一个while;的分号确定不能够丢(当心上机改错),do-while循环是至少执行一次循环2)break和continue的差别记忆方法break是打破的意思,(破了整个循环)所以望见break就退出真个一层循环continue:是接着的意思,(接着循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环起先,然后推断循环条件,进行新一轮的循环3)嵌套循环就是有循环里面还有循环,这种比较困难,要一层一层一步一步耐性的计算,一般记住两层是处理二维数组的4whilec=getchar!=’\n和whilec=getchar!=,\n的差别先看a=3!=2和a=3!=2的区分!二号的级别高于二号所以第一个先计算3!=2第一个a的数值是得到的1;其次个a的数值是3O考试留意点括号在这里的重要性第五章函数是具有确定功能的一个程序块;是C语言的基本组成单位1函数的参数,返回数值示意图maininta=5b=6c;c=addab;printfu%dc;}调用函数ab是实参整个函数得到一个数值就是Add函数的返回数值intaddintxintyintz;z=x+y;returnz;}被调用函数xy是形式参数函数返回数值是整型z就是这个add函数计算后得到的结果,就是函数返回给主程序的返回数值程序是在从上往下依次执行,当遇到了函数add后,把ab的数值穿给调用函数,程序短暂中断等待返回数值当得到了返回数值后,再依次的往下执行2确定要留意参数之间的传递实参和形参之间传数值,和传地址的差别考试的重点传数值的话,形参的变更不会变更实参的变更传地址的话,形参的变更就会有可能变更实参的变更3函数声明的考查确定要有函数名,函数的返回类型,函数的参数类型不愿定要有形参的名称4要求驾驭的库函数sqrtfabsQpowsin其中powab是重点23是由pow23表示的Zi/fS第八早指针变量的本质是用来放地址而一般的变量是放数值的int*p中*p和p的差别*p可以当做变量来用;*的作用是取后面地址p里面的数值P是当作地址来运用*p++和*p++的之间的差别改错题目中很重要*p++是地址会变更*p++是数值会要变更三名主义(考试的重点)数组名表示第一个元素的地址数组名不行以自加,他是地址常量名(考了很多次)函数名表示该函数的入口地址字符串常量名表示第一个字符的地址考试重要的话语指针变量是存放地址的并且指向哪个就等价哪个,全部出现*p的地方都可以用它等价的代替例如inta=2*p=a;*p=*p+2;(由于*P指向变量a,所以指向哪个就等价哪个,这里*p等价于a可以相当于是a=a+2)指针变量两种初始化方法一inta=2*p=a;(定义的同时初始化)方法二:inta=2*p;(定义之后初始化)p=a;第七章1)一维数组的重要概念对a
[10]这个数组的探讨
1、a表示数组名,是第一个元素的地址,也就是元素a
[10]的地址
2、a是地址常量,所以只要出现a++或者是a=a+2赋值的都是错误的
3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列对a
[3]网的探讨
1、a表示数组名,是第一个元素的地址,也就是元素a
[10]的地址
2、a是地址常量,所以只要出现a++或者是a=a+2赋值的都是错误的
3、a是二维数组名,所以它是行指针,也就是说a+1是跳一行
4、a
[0]、a[l]、a
[2]也都是地址常量不行以对它进行赋值操作,同时它们都是列指针a[O]+la[l]+la
[2]+l都是跳一列
5、留意a和a
[0]、a⑴、a
[2]是不同的,它们的基类型是不同的前者是一行元素,后三者是一列元素2)二维数组做题目的技巧假如有a
[3]
[3]={l23456789}这样的题目步骤一把他们写成:*(a[O]+l)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a⑼
[1]元素,所以是1*(a[l]+2)我们就知道是其次行的第一个元素往后面跳二列那么这里就是元素,所以是6O确定记住只要是二维数组的题目,确定是写成如上的格式,再去做题目,这样会比较简洁3)数组的初始化,一维和二维的,一维可以不写,二维其次个确定要写inta[]={l2}合法inta[
[4]={234}合法但inta
[4]□={
23.4}非法4)二维数组中的行指针inta[l]
[2];其中a现在就是一个行指针,a+1跳一行数组元素搭配*p
[2]指针a⑼,a[l]现在就是一个列指针a[O]+l跳一个数组元素搭配*p
[2]指针数组运用5还有记住脱衣服法则a
[2]变成*a+2a
[2]网变成*a+2网再可以变成**a+2+3这个思想很重要!其它考试重点文件的复习方法把上课时候讲的文件这一章的题目要做一遍,确定要做,基本上考试的都会在练习当中1字符串的strlen和strcat和strcmp和strcpy的运用方法确定要记住他们的参数都是地址其中strcat和strcmp有两个参数strlen和sizeof的区分也是考试的重点;definefxx*x和definefxx*x之间的差别确定要好好的留意这写简洁错的地方,替换的时候有括号和没有括号是很大的区分int*p;p=int*malloc2;p二int*mallocsizeofint;以上两个等价当心填空题目,malloc的返回类型是void*5还有mainintargcchar**argv{}这种含有参数的题目,是很呆板的题目第一个参数是表示输入的字符串的数目,其次个参数是指向存放的字符串6函数的递归调用确定要记得有结束的条件,并且要会算简洁的递归题目要会作递归的题目7结构体和共用体以及链表要驾驭最简洁的typedef考的很多,而且确定要知道如何引用结构体中的各个变量,链表中如何填加和删除节点,以及何如构成一个简洁的链表,确定记住链表中的节点是有两个域,一个放数值,一个放指针8函数指针的用法4记住一个例子intaddintxinty{•••.main{int*f;f=add;赋值之后合法的调用形式为
1、add23;
2、f23;
3、*f⑵39两种重要的数组长度charaQ={a/bc1};数组长度为3字符串长度不定sizeofa为3chara
[5]={ab c}数组长度为5字符串长度3sizeofa为510scant和gets的数据假如输入的是goodgoodstudy!那么scanfu%sna;只会接收good.考点不行以接收空格getsa;会接收goodgoodstudy!考点可以接收空格11共用体的考查unionTT{inta;charch
[2];}考点一sizeofstructTT=2;考点二TTtl;tl=0xl234;那么ch
[0]=0x34;ch[l]=0xl212“文件包含”的考查点nol.cno
2.c#includeno
2.cnmain{add2933;intaddintaintbreturna+b;这里一个C语言程序是有两个文件组成,分别是nol.cno
2.Co那么nol.c中最起先有个#includenno
2.c”他表示把其次个文件的内容给包含过来,那么nol.c中调用add函数的时候就可以了把数值传到no
2.c中的被调用函数add了一个文件必须要有main函数这句话错了例如no
2.c就没有头文件确定是以.h结束的这句话错了例如nol.c中就是#include”no
2.c以c结尾的ag123->第一行a⑴-456—>其次行a
[2]3789->第三行步骤二这样作题目间很简洁。