《c语言基础知识总结精编版.docx》由会员分享,可在线阅读,更多相关《c语言基础知识总结精编版.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结总体上必需清晰的 :C 语言学问要点复习资料可编辑资料 - - - 欢迎下载精品名师归纳总结1) 程序结构是三种 :次序结构、挑选结构 分支结构 、循环结构。2) 读程序都要从main 入口 , 然后从最上面次序往下读 遇到循环做循环 , 遇到挑选做挑选 ,有且只有一个 main 函数。3) 运算机的数据在电脑中储存是以二进制的形式 . 数据存放的位置就是他的的址 .4) bit 是位 是指为 0 或者 1。 byte 是指字节 , 一个字节 = 八个位 .概念常考到的:1、编译预处理不是C 语言的一部分,不占运行时间,不要加分号
2、。C 语言编译的程序称为源程序,它以ASCII 数值存放在文本文件中。2、define PI 3.1415926;这个写法是错误的,肯定不能显现分号。3、每个 C 语言程序中 main 函数是有且只有一个。4、在函数中不行以再定义函数。5、算法:可以没有输入,但是肯定要有输出。6、break 可用于循环结构和switch 语句。7、逗号运算符的级别最低,赋值的级别倒数其次。第一章 C 语言的基础学问第一节、对 C 语言的基础熟识1、C 语言编写的程序称为 源程序 ,又称为 编译单位 。2、C 语言书写格式是自由的,每行可以写多个语句,可以写多行。3、一个 C 语言程序有且只有一个main 函数
3、,是程序运行的起点。其次节、熟识 vc+1、VC 是软件,用来运行写的C 语言程序。2、每个 C 语言程序写完后,都是先编译,后链接,最终运行。(.c-.obj-.exe)这个过程中留意 .c 和.obj 文件时无法运行的,只有.exe 文件才可以运行。 (常考!)第三节、标识符1、标识符(必考内容) :合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必需为字母或就是下划线。第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。关键字:不行以作为用户标识符号。maindefinescanfprintf都不是关键字。困惑你的的方 If 是可以做为用户标识符。由于If
4、 中的第一个字母大写了,所以不是关键字。预定义标识符:背诵definescanfprintfinclude 。记住预定义标识符可以做为用户标识符。用户标识符:基本上每年都考,具体请见书上习题。第四节:进制的转换可编辑资料 - - - 欢迎下载精品名师归纳总结十进制转换成二进制、八进制、十六进制。二进制、八进制、十六进制转换成十进制。第五节:整数与实数1)C 语言只有八、十、十六进制,没有二进制。但是运行时候,全部的进制都要转换成二进制来进行处理。 (考过两次)a、C 语言中的八进制规定要以0 开头。 018 的数值是非法的,八进制是没有8 的,逢8 进 1。b、 C 语言中的十六进制规定要以0
5、x 开头。2小数的合法写法:C 语言小数点两边有一个是零的话,可以不用写。1.0 在 C 语言中可写成 1.0.1 在 C 语言中可以写成 .1。3)实型数据的合法形式:a、2.333e-1 就是合法的,且数据是 2.333 10-1。b、考试口诀 : e 前 e 后必有数, e 后必为整数 。请结合书上的例子。4) 整型一般是 4 个字节 , 字符型是 1 个字节,双精度一般是 8 个字节: long int x; 表示 x 是长整型。unsigned int x; 表示 x 是无符号整型。第六、七节:算术表达式和赋值表达式核心:表达式肯定有数值!1、算术表达式: +, -, * , /,
6、%考试肯定要留意: “ /” 两边都是整型的话,结果就是一个整型。3/2 的结果就是 1. “ /” 假如有一边是小数,那么结果就是小数。3/2.0 的结果就是 0.5 “ %”符号请肯定要留意是余数,考试最简洁算成了除号。) %符号两边要求是整数。不是整数就错了。2、赋值表达式:表达式数值是最左边的数值,a=b=5; 该表达式为 5,常量不行以赋值。1、int x=y=10:错啦,定义时,不行以连续赋值。2、int x,y;x=y=10;对滴,定义完成后,可以连续赋值。3、赋值的左边只能是一个变量。4、int x=7.7 。对滴, x 就是 75、float y=7 。对滴, x 就是 7.
7、03、复合的赋值表达式:int a=2 。a*=2+3 。运行完成后, a 的值是 12。肯定要留意,第一要在2+3 的上面打上括号。变成(2+3)再运算。4、自加表达式:自加、自减表达式:假设a=5, +a(是为 6), a+(为 5)。运行的机理: +a 是先把变量的数值加上1,然后把得到的数值放到变量a 中,然后再用这个+a 表达式的数值为 6,而 a+是先用该表达式的数值为5,然后再把 a 的数值加上 1 为 6,再放到变量 a 中。 进行了 +a 和 a+后 在下面的程序中再用到a 的话都是变量a 中的 6 了。考试口诀 : + 在前先加后用, +在后先用后加。5、逗号表达式:优先级
8、别最低。表达式的数值逗号最右边的那个表达式的数值。( 2, 3, 4)的表达式的数值就是4。可编辑资料 - - - 欢迎下载精品名师归纳总结z=( 2,3, 4) 整个是赋值表达式 这个时候 z 的值为 4。(有点难度哦! )z= 2, 3,4 (整个是逗号表达式)这个时候z 的值为 2。补充:1、空语句不行以随便执行,会导致规律错误。2、注释是最近几年考试的重点,注释不是C 语言,不占运行时间,没有分号。不行以嵌套!3、强制类型转换:肯定是 ( int) a 不是int ( a),留意类型上肯定有括号的。留意( int )( a+b) 和( int ) a+b 的区分。 前是把 a+b 转型
9、,后是把a 转型再加 b。 4、三种取整丢小数的情形:、 int a =1.6 。、 inta 。 、 1/2。 3/2。第八节、字符1) 字符数据的合法形式::1 是字符占一个字节, 1 是字符串占两个字节 含有一个终止符号 。0 的 ASCII 数值表示为 48, a 的 ASCII 数值是 97, A 的 ASCII 数值是 65。一般考试表示单个字符错误的形式:651字符是可以进行算术运算的,记住:0-0=48大写字母和小写字母转换的方法:A+32=a相互之间一般是相差32。2) 转义字符:转义字符分为一般 转义字符、八进制转义字符、十六进制转义字符。一般转义字符:背诵 0、 n、”、
10、。八进制转义字符:141是合法的, 前导的 0 是不能写的。十六进制转义字符: x6d 才是合法的,前导的0 不能写,并且 x 是小写。3、字符型和整数是近亲:两个具有很大的相像之处char a = 65 ;printf “%c ”, a;得到的输出结果: a printf “%d ”, a;得到的输出结果:65第九章、位运算1)位运算的考查:会有一到二题考试题目。总的处理方法:几乎全部的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制) 。例 1: char a = 6, b;b = a2;这种题目的运算是先要把a 的十进制 6 化成二进制,再做位运算。例 2:肯定要记住,
11、异或的位运算符号” ”。0 异或 1 得到 1。0 异或 0 得到 0。两个女的生不出来。考试记忆方法:一男 1 一女 0 才可以生个小孩 1。例 3: 在没有舍去数据的时候,右移一位表示除以2。其次章第一节:数据输出(一) (二)1、使用 printf 和 scanf 函数时,要在最前面加上#include “stdio.h”2、printf 可以只有一个参数,也可以有两个参数。(挑选题考过一次)3、printf (“ 第一部分 ”,其次部分)。把其次部分的变量、表达式、常量以第一部分的形式呈现出来!可编辑资料 - - - 欢迎下载精品名师归纳总结4、printf (“ a=%d , b=%
12、d ”, 12, 34) 考试重点!肯定要记住是将 12 和 34 以第一部分的形式现在在终端也就是黑色的屏幕上。考试核心为: 一模一样 。在黑色屏幕上面显示为a=12,b=34printf (“ a=%d, n b=%d”, 12, 34)那么输出的结果就是:a=12,b=345、int x=017 。肯定要弄清晰为什么是这个结果!过程很重要printf (“ %d”, x)。15printf (“ %o”, x)。17printf (“ %#o”, x)。017printf (“ %x ”, x)。11printf (“ %#x ”, x)。0x116、int x=12 , y=34。留意
13、这种题型char z= a。printf (“ %d ”, x, y)。 一个格式说明,两个输出变量,后面的y 不输出printf (“ %c”, z)。结果为: 12a 7、肯定要背诵的格式说明表示内容格式说明表示内容%d整型int%c字符char%ld长整型 long int%s字符串%f浮点型 float%o八进制%lfdouble%#o带前导的八进制%5d输出一个百分号%x%#x十六进制带前导的十六进制举例说明:printf (“ %2d”, 123 )。 其次部分有三位,大于指定的两位,原样输出 123printf (“ %5d”, 123 )。 其次部分有三位,小于指定的五位,左边
14、补两个空格 123printf (“ %10f ”,1.25 )。 小数要求补足 6 位的,没有六位的补0,。结果为 1.250000printf (“ %5.3f ”,125 )。 小数三位,整个五位,结果为1.250 (小数点算一位)printf (“ %3.1f ”,1.25 )。小数一位,整个三位,结果为1.3(要进行四舍五入)第三节 数据输入1、scanf(“ a=%d, b= %d”, &a, &b ) 考试超级重点!肯定要记住是以第一部分的格式在终端输入数据。考试核心为:一模一样 。在黑色屏幕上面输入的为a=12,b=34 才可以把 12 和 34 正确给 a 和 b 。有一点不
15、同也不行。2、scanf(“ %d,%d”, x, y)。这种写法确定错误,scanf 的其次个部分肯定要是的址! scanf(“ %d,%d”, &x , &y )。留意写成这样才可以!3、特殊留意指针在scanf 的考察例如: int x=2 。 int *p=&x。scanf(“ %d”, x)。错误scanf(“ %d”, p)。正确scanf(“ %d”, &p )。错误scanf(“%d ”, *p )错误4、指定输入的长度(考试重点) 终端输入: 1234567scanf(“ %2d%4d%d ”, &x , &y , &z )。 x 为 12, y 为 3456, z 为 7终
16、端输入: 1 234567由于 1 和 2 中间有空格,所以只有1 位给 x可编辑资料 - - - 欢迎下载精品名师归纳总结scanf(“ %2d%4d%d ”, &x , &y , &z )。 x 为 1, y 为 2345, z 为 675、字符和整型是近亲:int x=97 。printf (“ %d”,x )。结果为 97 printf (“ %c”,x )。结果为 a6、输入时候字符和整数的区分(考试超级重点)scanf(“ %d”, &x )。这个时候输入 1,特殊留意表示的是整数1scanf(“ %c”, &x )。这个时候输入 1,特殊留意表示的是字符1ASCII 为整数 48
17、。补充说明:1) scanf 函数的格式考察:留意该函数的其次个部分是&a这样的的址,不是a。 scanf“%d%d%*d%d ”,&a,&b,&c;跳过输入的第三个数据。2) putchar ,getchar 函数的考查:chara = getchar 是没有参数的,从键盘得到你输入的一个字符给变量a。putchary 把字符 y 输出到屏幕中。3) 如何实现两个变量x , y 中数值的互换(要求背下来) 不行以把 x=y ,y=x;要用中间变量t=x 。x=y 。 y=t。4) 如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)y=( int)( x*100+0.5 ) /100.
18、0这个保留两位,对第三位四舍五入 y=( int)( x*1000+0.5 ) /1000.0 这个保留三位,对第四位四舍五入 y=( int)( x*10000+0.5 ) /10000.0 这个保留四位,对第五位四舍五入这个有推广的意义,留意x =(int ) x 这样是把小数部分去掉。第三章特殊要留意: C 语言中是用非 0 表示规律真的,用0 表示规律假的。C 语言有构造类型,没有规律类型。关系运算符号:留意 8 这个关系表达式是真的,所以98 这个表达式的数值就是1。如 76 这个关系表达式是假的,所以76 这个表达式的数值就是0 b、考试最简洁错的:就是int x=1,y=0,z=
19、2;xyz 是真仍是假?带入为102 ,从数学的角度动身确定是错的,但是假如是C 语言那么就是正确的!由于要10 为假得到 0,表达式就变成了 0&|优先的级别。c) 留意短路现象。考试比较喜爱考到。具体请见书上例子,肯定要会做例1 和例 2d) 表示 x 小于 0 大于 10 的方法。0x10 是不行的(肯定记住) 。是先运算 0x 得到的结果为 1 或就 0。再用 0,或 1 与可编辑资料 - - - 欢迎下载精品名师归纳总结10 比较得到的总是真(为1)。所以肯定 要用 0x&x10表示比 0 大比 10 小。 3) if 语句a、else 是与最接近的 if 且没有 else 的语句匹
20、配。b、交换的程序写法: t=x 。 x=y 。 y=t 。c、if ( ab) t=a;a=b;b=t;if ( ab) t=a;a=b;b=t; 两个的区分,考试多次考到了!d、单独的 if 语句: if ( ab) t=a。 标准的 if 语句: if ( ab) min=a 。else min=b 。 嵌套的 if 语句: if ( ac ) printf “ok. ”。多项一的 if 语句 if (a= =t) printf “a”;else if ( b= =t) printf “b”; else if ( c= =t) printf “c”; else pritnf “d”;通过
21、习题,要熟识以上几种if 语句!经典考题:结合上面四种if 语句题型做题,答错了,请自行了断!预备,开头!inta=1, b=0 。 if (! a) b+ 。 else if( a= =0) if ( a)b+=2 。else b+=3。请问 b 的值是多少?假如没有看懂题目,你千万不要自行了断,这样看得懂不会做的人才会有理由的活着。正确选项 b 为 3。inta=1, b=0 。if(! a) b+ 。是假的不执行else if( a= =0 )是假的部执行if ( a)b+=2。 属于 else if 的嵌套 if 语句,不执行。else b+=3 。if-else-if 语句没有一个正
22、确的,就执行else 的语句!4) 条件表达式:表达式 1 ?表达式 2 :表达式 3 a、考试口诀 :真前假后。b、留意是当表达式1 的数值是 非 0 时,才采纳表达式2 的数值做为整个运算结果,当表达式 1 的数值 为 0 时, 就用表达式 3 的数值做为整个的结果。c、int a=1 , b=2 , c=3, d=4 , e=5。k=ab ?c: de?d: e;求 k 的数值时多少?答案为 san5) switch 语句:a) 执行的流程肯定要弄懂!上课时候具体的过程讲了,请自己肯定弄懂.b)留意有 break 和没有 break 的差别, 书上的两个例子, 没有 break 时候,
23、只要有一个 case 匹配了,剩下的都要执行,有break 就是直接跳出了swiche 语句。 break 在 C 语言中就是分手, 一刀两断的意思。d switchxx:是整型常量,字符型常量,枚举型数据。case 1: .不行以是变量。c) switch 只可以和 break 一起用,不行以和continue 用。可编辑资料 - - - 欢迎下载精品名师归纳总结case 2: .e) switch 是必考题型,请大家肯定要完成书上的课后的switch 的习题。第四章1) 三种循环结构:a) for() 。 while 。do- while 三种。b) for 循环当中必需是两个分号,千万不
24、要遗忘。c) 写程序的时候肯定要留意,循环肯定要有终止的条件,否就成了死循环。d) do-while 循环的最终一个while; 的分号肯定不能够丢。 (当心上机改错) , dowhile 循环是至少执行一次循环。2 break和continue 的差别记忆方法:break:是打破的意思, (破了整个循环)所以观察break 就退出真个一层循环。continue: 是连续的意思, (连续循环运算) ,但是要终止本次循环,就是循环体内剩下的语句不再执行,跳到循环开头,然后判定循环条件,进行新一轮的循环。3)嵌套循环就是有循环里面仍有循环,这种比较复杂,要一层一层一步一步耐心的运算,一般记住两层是
25、处理二维数组的。4 while( c=getchar ) .= n) 和while ( c=getchar .= n)的差别先看 a = 3 .= 2和 ( a=3)! =2 的区分:(! =号的级别高于 =号 所以第一个先运算3!=2) 第一个 a 的数值是得到的1。其次个 a的数值是 3。考试留意点 : 括号在这里的重要性。5) 每行输出五个的写法:for( i=0 。 i=100 。 i+ ) printf (“ %d”, i )。if ( i+1%5=0printf “ n” ;假如 i 是从 1 开头的话,就是 ifi%5=0printf“ n” ;6) 如何整除一个数:i%5=0
26、表示整除 5I%2=0 表示整除 2,同时表示是偶数!7) 输入 123,输出 321 逆序输出数据int a=123;while ( i!=0 )printf (“ %d”, i%10 )。 i=i/10;8for 只管后面一个语句:int i=3 。for ( i=3 。 i6;i+ ):printf “#”:请问最终打印几个 #号?答案为一个!9) 不停的输入,直到输入# 停止输入!不停的输入,直到输入$停止输入!while x=getchar.=# while x=getchar.=$ 不停的输入,直到遇到?停止输入!可编辑资料 - - - 欢迎下载精品名师归纳总结while x=ge
27、tchar.=. 解说:肯定要留意这种给出了条件,然后如何去写的方法!10) for 循环和 switch 语句的和在一起考题! 11)多次显现的考题:int k=1int k=1 。while ( - -k )。while (k- - )。printf (“ %d”,k )。printf (“ %d”, k )。结果为 0结果为 -1第五章1、函数:是具有肯定功能的一个程序块,是C 语言的基本组成单位。2、函数不行以嵌套定义。但是可以嵌套调用。3、函数名缺省返回值类型,默认为int。4、C 语言由函数组成,但有且仅有一个main 函数!是程序运行的开头!5、如何判定 a 是否为质数:背诵这个
28、程序! voidiszhishu ( int a)for ( i=2 。 ia/2。 i+ )ifa%i=0 printf(“不是质数” ) ; printf “是质数! ”。6、如何求阶层: n. 背诵这个程序!int funint nint p=1; fori=1;i*b ) return a。return a可以知道返回的是a 的址。else return b。main () int x=7, y=8, *max。max = fun( &x, &y)。由于 fun ( &x,&y)的运算结果是的址,所以用max 来接收。printf(“ %d, %d”,)9、考试重要的话语:指针变量是存
29、放 的址 的。并且指向哪个就等价哪个,全部显现*p 的的方都可以用它等价的代替。例如: int a=2, *p=&a。*p=*p+2; 由于 *p 指向变量 , 所以指向哪个就等价哪个,这里*p 等价于,可以相当于是a=a+2第七章数组: 存放的类型是一样的。多个数组元素的的址是连续的。1、一维数组的初始化: int a5=1,2,3,4,5;合法int a5=1,2,3, ;合法int a=1,2,3,4,5;合法,常考,后面打算前面的大小! int a5=1,2,3,4,5,6;不合法,赋值的个数余外数组的个数了2、一维数组的定义。int a5 。留意这个的方有一个重要考点,定义时数组的个
30、数不是变量肯定是常量。int a5合法,最正常的数组int a1+1合法,个数是常量2,是个算术表达式int a1/2+4合法,同样是算术表达式define P 5int aPint x=5,int ax;不合法,由于个数是x,是个变量,非法的,合法, define 后的的 P 是符号常量,只是长得像变量3、二维数组的初始化int a23=1,2,3,4,5,6;合法,很标准的二维的赋值。int a23=1,2,3,4,5, ;合法,后面一个默认为0。int a23=1,2,3, 4,5,6;合法,每行三个。int a23=1,2,3,4,5;合法,第一行最终一个默认为0。int a23=1,
31、2,3,4,5,6,7;不合法,赋值的个数余外数组的个数了。int a3=1,2,3,4,5,6;不合法,不行以缺省行的个数。int a2=1,2,3,4,5,6;合法,可以缺省列的个数。补充:1)一维数组的重要概念: 对 a10 这个数组的争论。、 a 表示数组名,是第一个元素的的址,也就是元素a0 的的址。(等价于 &a) 、 a 是的址常量,所以只要显现a+,或者是 a=a+2 赋值的都是错误的。、 a 是一维数组名,所以它是列指针,也就是说a+1 是跳一列。对 a33 的争论。、 a 表示数组名,是第一个元素的的址,也就是元素a00 的的址。可编辑资料 - - - 欢迎下载精品名师归纳
32、总结、 a 是的址常量,所以只要显现a+,或者是 a=a+2 赋值的都是错误的。、 a 是二维数组名,所以它是行指针,也就是说a+1 是跳一行。、a0 、a1 、a2 也都是的址常量, 不行以对它进行赋值操作, 同时它们都是列指针, a0+1 ,a1+1 , a2+1 都是跳一列。、留意 a 和 a0、a1 、a2 是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。2) 二维数组做题目的技巧:假如有 a33=1,2,3,4,5,6,7,8,9步骤一:把他们写成:这样的题目。第一列其次列第三列a0123 第一行a1456 其次行步骤二:这样作题目间很简洁:a2789 第三行*a0
33、+1 我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01 元素,所以是。*a1+2 我们就知道是其次行的第一个元素往后面跳二列。那么这里就是a12 元素,所以是 6。肯定记住:只要是二维数组的题目,肯定是写成如上的格式,再去做题目,这样会比较简洁。3) 数组的初始化,一维和二维的,一维可以不写,二维其次个肯定要写int a=1 , 2合法。int a4=2,3, 4 合法。但 int a4=2, 3, 4 非法。4) 二维数组中的行指针int a12 。其中 a 现在就是一个行指针,a+1 跳一行数组元素。搭配( *) p2 指针a0 , a1 现在就是一个列指针。5 仍有记住脱衣服法就:超级无敌重要a0+1跳一个数组元素。搭配*p2 指针数组使用a2变成* ( a+2)a23 变成 * ( a+2) 3 再可以变成*( * ( a+2) +3)这个思想很重要!其它考试重点文件的复习方法 :把上课时候讲的文件这一章的题目要做一遍,肯定要做,基本上考试的都会在练习当中。1)字符串的 strlen和 strcat() 和 strcmp() 和 strcpy()的使用方法肯定要记住。他们的参数都是的址。其中strcat() 和 strcmp()有两个参数。2) strlen 和 sizeof 的区分也是考试的重点。3) definef( x)( x*x ) 和def
限制150内