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