还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
语言最重要的知识点C总体上必须清晰的)程序构造是三种次序构造、选择构造(分支构造)、循环构造1)读程序都要从()入口,然后从最上面次序往下读(碰到循环做循环,碰到选择做选择),2main有且只有一种函数main)计算机的数据在电脑中保留是以二进制的形式.数据寄存的位置就是他的地址.3)是位是指为或者是指字节,一种字节=八个位.4bit0bytelo概念常考到的、编译预处理不是语言的一部分,不占运行时间,不要加分号语言编译的程序称为源1C C程序,它以数值寄存在文本文献中ASCII误的,一定不能出现分号、每个语言程序中函数是有且只有一种3C main、在函数中不可以再定义函数
4、算法可以没有输入,不过一定要有输出5第一章语言的基础知识C第一节、对语言的基础认识C、语言编写的程序称为源程序,又称为编译单位1C、语言书写格式是自由的,每行可以写多种语句,可以写多行2C、一种语言程序有且只有一种函数,是程序运行的起点3C main第二节、、每个语言程序写完后,都是先编译,后链接,最终运行((()这个过程中2C.c-.obj-.exe注意.c和.obj文献时无法运行的,只有.exe文献才可以运行(常考!)(程序编辑・程序编译■程序连接■程序运行)第三节、标识符、标识符(必考内容)1合法的规定是由字母,数字,下划线构成有其他元素就错了并且第一种必须为字母或则是下划线第一种为数字就错了预定义标识符背诵记住预定义标识符可以做为顾客标识符define scanfprintf2include第五节整数与实数1)C语言只有
八、
十、十六进制,没有二进制不过运行时候,所有的进制都要转换成二进制来进行处理(考过两次)、语言中的八进制规定要以开头(数码取值)的数值是非法的,八进制是没a C00-7018有的,逢进881b、C语言中的十六进制规定要以Ox(X)开头(数码取值0・9,a-f,A-F)十进制没前缀,数码取值C.0-9)小数的合法写法语言小数点两边有一种是零的话,可以不用写小数点必须有2C在语言中可写成
1.0C
1.在语言中可以写成
0.1C.1)实型数据的合法形式
3、就是合法的,且数据是a
2.333e-l
2.333X10-
1、考试口诀前后必有数,后必为整数请结合书上的例子b e ee指针变量是寄存地址的并且指向哪个就等价哪个,所有出现*的地方都可以用它等价的替代p例如inta=2,*p=a;*p=*p+2;(由于*指向变量因此指向哪个就等价哪个,这里*等价于可以相称于是)第七章P a,p a,a=a+2数组寄存的类型是一致的多种数组元素的地址是持续的、一维数组的初始化1合法inta
[5]={l,2,3,4,5};inta
[5]={l,2,3,);合法)合法,常考,背面决定前面的大小!inta[]={l,2,3,4,5;不合法,赋值的个数多出数组的个数了inta
[5]={l,234,5,6};、一维数组的定义;2inta
[5];注意这个地方有一种重要考点,定义时数组的个数不是变量一定是常量合法,最正常的数组int a
[5]合法,个数是常量是个算术体现式inta[l l]2,+合法,同样是算术体现式inta[l^+4]不合法,由于个数是是个变量,非法的,int x=5,int a[x];x,合法,后的的是符号常量,只是长得像变量define P5inta[P]define P、二维数组的初始化3合法,很原则的二维的赋值inta
[2]
[3]={l,2,3,4,5,6};合法,背面一种默认为int a
[2]
[3]={l,2,3,4,5,};0合法,每行三个int a
[2]
[3]={{L2,3J{4,5,6}};合法,第一行最终一种默认为int a
[2]
[3]={{l,2J{3,4,5}};0)不合法,赋值的个数多出数组的个数了inta
[2]
[3]={l,2,3,4,5,6,7;口不合法,不可以缺省行的个数int a
[3]={1,234,5,6};口=合法,可以缺省列的个数int a
[2]{1,2,3,456};补充)一维数组的重要概念1对这个数组的讨论a
[10]、表达数组名,是第一种元素的地址,也就是元素的地址(等价于)1a a
[0]a、是地址常量,因此只要出现或者是赋值的都是错误的2a a++,a=a+
2、是一维数组名,因此它是列指针,也就是说是跳一列3a a+1对⑶⑶的讨论a、表达数组名,是第一种元素的地址,也就是元素⑼的地址1a a
[0]、是地址常量,因此只要出现或者是赋值的都是错误的2a a++,a=a+
2、是二维数组名,因此它是行指针,也就是说是跳一行3a a+
1、也都是地址常量,不可以对它进行赋值操作,同步它们都是列指针,4a
[0].a[l]a
[2]都是跳一列a
[0]+l,a[l]+l,a
[2]+l、注意和、是不一样的,它们的基类型是不一样的前者是一行元素,后三者5a a
[0]a[l].a
[2]是一列元素)二维数组做题目的技巧2假如有这样的题目a
[3]
[3]={l,234,5,6,7,8,9}环节一把他们写成第一列第二列第三列(-第一行a
[0]123—>第二行a[l]456—>第三行a
[2]789环节二这样作题目间很简朴*a[O]+l我们就懂得是第一行的第一种元素往背面跳一列,那么这里就是a⑼⑴元素,因此是1*a[l]+2我们就懂得是第二行的第一种元素往背面跳二列那么这里就是a⑴⑵元素,因此是6o一定记住只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简朴数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写3合法合法但⑷口非法inta[]={l,2}int a[]
[4]={2,3,4}inta={2,3,4}二维数组中的行指针4int a[l]
[2];其中目前就是一种行指针,跳一行数组元素搭配*⑵指针a a+1pa
[0],a⑴目前就是一种列指针a⑼+1跳一种数组元素搭配*p
[2]指针数组使用尚有记住脱衣服法则超级无敌重要5变成*变成*⑶再可以变成**a
[2]a+2;a
[2]
[3]a+2a+2+3这个思想很重要!其他考试重点文献的复习措施把上课时候讲的文献这一章的题目要做一遍,一定要做,基本上考试的都会在练习当中字符串的和和和的使用措施一定要记住他们的参数都是1strlen strcatst rempstrepy地址其中和有两个参数strcatstremp和的区别也是考试的重点;2strlen sizeof和之间的差异一定要好好的注意这写轻易错的地方,替代3define f x x*x definefxx*x的时候有括号和没有括号是很大的区别4int*p;p=int*malloc4;p=int*malloc sizeofint;以上两个等价当心填空题目,的返回类型是malloc void*函数的递归调用一定要记得有结束的条件,并且要会算简朴的递归题目要会作递归的题目6构造体和共用体以及链表要掌握最简朴的考的诸多,并且一定要懂得怎样引用构造7typedef体中的各个变量,链表中怎样填加和删除节点,以及何如构成一种简朴的链表,一定记住链表中的节点是有两个域,一种放数值,一种放指针两种重要的数组长度9数组长度为字符串长度不定为chara[]={a/b c};3,sizeofa3数组长度为字符串长度为chara
[5]={a b c}5,3sizeofa5字符串长度为四,包括终止符String=a,b,c
0.和的数据10scanf gets假如输入的是good goodstudy!那么scanf%sa;只会接受good.考点不可以接受空格会接受考点可以接受空格getsa;good goodstudy!数组中放数组一定要看懂14inta
[8]={l,2,3,4,4,3,2,2};int b
[5]={0};这个写法要看懂,成果要懂得是什么?自身是运行完后,为b[a
[3]]b
[4]++,0,b
[4]1++了字符串的赋值15语言中没有字符串变量,因此用数组和指针寄存字符串C
1、char ch
[10]={uabcdefgh,};对、对2char ch
[10]=abcdefgh”;
3、char ch
[10]={/bcd,/e/V/g/h};对、对4char*p=abcdefgh”;、对5char*p;二〃〃;p abcdefgh、错了!数组名不可以赋值!6char ch
[10];ch=〃abcdefgh;、错了!不可以出现大括号!7char*p={abcdefgh};字符串赋值的函数背诵一定要背诵,当心笔试填空题目16把指针中的字符串复制到指针中的措施s t1while*t=*s!=null{s++;t++;完整版本
2、while*t=*s{s++;t++;简朴版本、;高级版本3while*t++=*s++)整型一般是个字节,字符型是个字节,双精度一般是个字节4418表达是长整型long int x;x表达是无符号整型unsigned int x;x第
六、七节算术体现式和赋值体现式关键体现式一定有数值!
1、算术体现式+,*,/,%考试一定要注意两边都是整型的话,成果就是一种整型装的成果就是假如有一边是小
1.数,那么成果就是小数奖的成果就是.
00.5“%”符号请一定要注意是余数,考试最轻易算成了除号)%符号两边规定是整数不是整数就错了[注意!!!]、赋值体现式体现式数值是最左边的数值,该体现式为常量不可以赋值2a=b=5;5,、二错啦,定义时,不可以持续赋值1intx y=10:、2int x,y;对滴,定义完毕后,可以持续赋值x=y=10;、赋值的左边只能是一种变量34intx=
7.7;对滴,x就是
75、floaty=7;对滴,x就是
7.
0、复合的赋值体现式3int a=2;a*=2+3;运行完毕后,a的值是12一定要注意,首先要在2+3的上面打上括号变成(2+3)再运算、自加体现式4自加、自减体现式假设(是为)(为);a=5,++a6,a++5运行的机理是先把变量的数值加上然后把得到的数值放到变量中,然后再用这个++a1,a++a体现式的数值为而是先用该体现式的数值为然后再把的数值加上为6,a++5,a16,再放到变量中进行了和后在下面的程序中再用到的话都是变量中的a++a a++a a6To考试口诀++在前先加后用,++在后先用后加、逗号体现式5优先级别最低体现式的数值逗号最右边的那个体现式的数值(2,3,4)的体现式的数值就是4()(整个是赋值体现式)这个时候的值为(有点难度哦!)z=2,3,4z4(整个是逗号体现式)这个时候的值为z=2,3,4z2补充、空语句不可以随意执行,会导致逻辑错误
1、注释是近来几年考试的重点,注释不是语言,不占运行时间,没有分号不可以嵌套!2C、强制类型转换3一定是(int)a不是int(a),注意类型上一定有括号的注意(int)(a+b)和(int)a+b的区别前是把a+b转型,后是把a转型再加b、三种取整丢小数的状况
41、int a=
1.6;
2、(int)a;
3、1/2;3/2;第八节、字符1)字符数据的合法形式:是字符占一种字节,叮“是字符串占两个字节(具有一种结束符号)T的数值表达为的数值是的数值是0ASCII48,4ASCII97,TV ASCII65一般考试表达单个字符错误的形式65,“1”字符是可以进行算术运算的,记住0-0=48大写字母和小写字母转换的措施互相之间一般是相差7V+32=H32o)转义字符2转义字符分为一般转义字符、八进制转义字符、十六进制转义字符一般转义字符背诵、、\、\、\0\n\\o八进制转义字符是合法的,前导的是不能写的0十六进制转义字符才是合法的,前导的不能写,并且是小写\x6d x、字符型和整数是近亲两个具有很大的相似之处3char a=65;printf(u%cn,a);得到的输出成果aprintf(%da);得到的输出成果:65例2一定要记住,异或的位运算符号八”0异或1得到1异或得到两个女的生不出来00考试记忆措施一男⑴一女()才可以生个小孩()01例3在没有舍去数据的时候,<<左移一位表达乘以2;右移一位表达除以2第二章第一节数据输出
(一)
(二)、(“第一部分”,第二部分);把第二部分的变量、体现式、常量以第一部分的形3printf式展现出来!5>intx=017;一定要弄清晰为何是这个成果!过程很重要printf(%d”,x);15printf(%o”,x);17printf(%#o”,x);017printf(%x”,x);11printf(%#x,x);Oxll6intx=12,y=34;注意这种题型charz=a;printf(%d,x,y);一种格式阐明,两个输出变量,背面的y不输出printf(%c,z);成果为12a、一定要背诵的7举例阐明printf(%2d”,123);第二部分有三位,不小于指定的两位,原样输出123printf(%5d”,123);第二部分有三位,不不小于指定的五位,左边补两个空格123printf(,);小数规定补足位的,没有六位的补成果为
1.2560,
1.250000printf(%
5.3f,125);小数三位,整个五位,成果为
1.250(小数点算一位)printf(,
1.25);小数一位,整个三位,成果为
1.3(要进行四舍五入)第三节数据输入、指定输入的长度(考试重点)4终端输入1234567scanf(%2d%4d%d”,x,y,z);x为12,y为3456,z为7终端输入由于和中间有空格,因此只有位给1234567121xscanf(%2d%4d%d”,x,y,z);乂为1,y为2345,z为
67、输入时候字符和整数的区别(考试超级重点)6scanf(%d,x);这个时候输入1,尤其注意表达的是整数1scanf(%c,x);这个时候输入1,尤其注意表达的是字符‘1ASCII为整数48补充阐明scanf(%d%d%*d%d,a,b,c);跳过输入的第三个数据)函数的考察2putchar,getchar二是没有参数的,从键盘得到你输入的一种字符给变量char agetchar aputchar(〃y)把字符y输出到屏幕中)怎样实现两个变量中数值的互换(规定背下来)3x,y不可以把x二y,y二x;要用中间变量t=x;x=y;y=to)怎样实现保留三位小数,第四位四舍五入的程序,(规定背下来)4()()这个保留两位,对第三位四舍五入y=int x*100+
0.5/
100.0y=(int)(x*1000+
0.5)/
1000.0这个保留三位,对第四位四舍五入()()这个保留四位,对第五位四舍五入y=intx*10000+
0.5/
10000.0这个有推广的意义,注意x=(int)x这样是把小数部分去掉第三章尤其要注意语言中是用非表达逻辑真的,用表达逻辑假的C0语言有构造类型,没有逻辑类型C关系运算符号注意的写法,二和二的区别!(考试重点)只管背面一种语句,要管多种,请用大括号!if、考试最轻易错的:就是b intx=Ly=0,z=2;是真还是假?带入为从数学的角度出发肯定是xyz102,错的,不过假如是语言那么就是对的的由于要为假得到体现式就变成了那么运C100,02算成果就是称为了真的了!1,语句3if、是与最靠近的且没有的语句匹配a else if else、c if ab t=a;a=b;b=t;两个的区别,考试多次考到了!if ab{t=a;a=b;b=t;}d、单独的if语句if abt=a;原则的if语句if abmin=a;else min=b;嵌套的语句if ifabif bcprintf ok!”;多选一的语句if ifa==t printf“a”;else ifb==t printf“b”;else ifc==t printfc”;else pritnfd;通过习题,要熟悉以上几种语句!if经典考题结合上面四种语句题型做题,答错了,请自行了断!预备,开始!ifint a=1,b=0;if!a b++;elseifa==0ifab+=2;elseb+=3;请问b的值是多少?对的的是为b3条件体现式4体现式体现式体现式12:
3、考试口诀真前假后a、注意是当体现式的数值是非时,才采用体现式的数值做为整个运算成果,当体现式b102的数值为时,就用体现式的数值做为整个的成果13c、int a=l b=2,c=3,d=4,e=5;k=ab cde de;求k的数值时多少?答案为5,条件判断的次序是自右向左语句5switch注意有和没有的差异,书上的两个例子,没有时候,只要有一种匹b break breakbreakcase配了,剩余的都要执行,有则是直接跳出了语句在语言中就是分手,break swichebreak C一刀两断的意思是整型常量,字符型常量,枚举型数据d switchxX:,•,.不可以是变量{case1:case2:....第四章三种循环构造1a for;while;do・while三种循环的最终一种;的分号一定不可以丢当心上机改错,循环d do-while whiledo—while是至少执行一次循环和的差异2break continue记忆措施break是打破的意思,破了整个循环因此看见break就退出整个一层循环continue是继续的意思,继续循环运算,不过要结束本次循环,就是循环体内剩余的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环和4whilec=getchar!=\n的差异while c=getchar!=\n先看二二和二的区别a3!2a=3!2!二号的级别高于二号因此第一种先计算3!=2第一种a的数值是得到的1;第二个a的数值是3考试注意点:括号在这里的重要性输入输出逆序输出数据7123,321int i=123;while i!=0printf“%d”,i%10;i=i/10;}只管背面一种语句8forint i=3;for i=3;i6;i++;printf“#;请问最终打印几种#号?答案为一种!不停的输入,直到输入#停止输入!9whilex=getchar!=#多次出现的考题11int k=l intk=l;;;while--k whilek--printf%d”,k;printf%d”,k;成果为成果为0-1第五章、函数是具有一定功能的一种程序块,是语言的基本构成单位1C、函数不可以嵌套定义不过可以嵌套调用
2、函数名缺省返回值类型,默认为3int、语言由函数构成,但有且仅有一种函数!是程序运行的开始!4C main、怎样判断与否为质数背诵这个程序!5avoid iszhishuint a{for i=2;ia/2;i++不是质数”;ifa%i==0printfprintf是质数!”;、一定要注意参数之间的传递9实参和形参之间传数值,和传地址的差异考试的重点传数值的话,形参的变化不会变化实参的变化传地址的话,形参的变化就会有也许变化实参的变化第六章指针变量的本质是用来放地址,而一般的变量是放数值的、中和的差异简朴说*是数值,是地址!1int*p*p p pp可以当做变量来用;*的作用是取背面地址里面的数值*p pp是当作地址来使用可以用在scanf函数中scanf%cT,p;、和++的之间的差异改错题目中很重要!考试超级重点2*p++*p是地址会变化口诀取目前值,然后再移动地址!*p++++是数值会要变化口诀取目前值,然后再使数值增长*p1例题int*p,a[]={l,3,5,7,9};P=a;请问*和++的数值分别为多少?P++*p*p++这个自身的数值为1由于是地址会增长一,因此指针指向数值3了这个自身的数值为由于有个++表达数值会增长,指针不移动,但数值由于自加了*p++11一次变成了
2、二级指针3*p一级指针寄存变量的地址**q二级指针寄存一级指针的地址常考题目:intx=7;int*p=x,**q=p;问你*为多少?为多少?为多少?P*4**q7P7再问你的写法可以吗?**q=x不可以,由于二级指针只能寄存一级指针的地址、三名主义考试的重点4数组名表达第一种元素的地址数组名不可以自加,他是地址常量名考了诸多次函数名表达该函数的入口地址字符串常量名表达第一种字符的地址、函数返回值是地址,一定注意这个*号上机考试重点8可以发现函数前面有个*,这个就阐明函数运算成果是地址int*fun int*a,int*b{if*a*b return a;returna可以懂得返回的是a地址else returnb;main{intx=7,y=8,*max;;由于的运算成果是地址,因此用来接受max=fun x,y funx,y maxprintfmaxis%cT,*max;、考试重要的话语9。
个人认证
优秀文档
获得点赞 0