1、C 语言最重要的知识点语言最重要的知识点总体上必须清楚的总体上必须清楚的:1)1)程序结构是三种程序结构是三种:顺序结构顺序结构 、选择结构选择结构(分支结构分支结构)、循环结构循环结构。2)2)读程序都要从读程序都要从 main()main()入口入口,然后从最上面顺序往下读然后从最上面顺序往下读(碰到循环做循环碰到循环做循环,碰到选择做选碰到选择做选择择),有且只有有且只有一个一个 mainmain 函数函数。3)3)计算机的数据在电脑中保存是以计算机的数据在电脑中保存是以二进制二进制的形式的形式.数据存放的位置就是它的地址数据存放的位置就是它的地址.4)4)bitbit 是是位位 是指为
2、是指为 0 0 或者或者 1 1。bytebyte 是指是指字节字节,一个字节一个字节 =八个位八个位.概念常考到的:概念常考到的:1 1、编译预处理、编译预处理不是不是 C C 语言的一部分,语言的一部分,不占不占运行时间,运行时间,不要加不要加分号。分号。C C 语言编译的程序称为语言编译的程序称为源程序源程序,它以,它以 ASCIIASCII 数值数值存放在存放在文本文件文本文件中。中。2 2、definedefine PIPI 3.1415926;3.1415926;这个写法是这个写法是错误错误的,的,一定不能出现分号一定不能出现分号。3 3、每个、每个 C C 语言程序中语言程序中
3、mainmain 函数函数是是有且只有一个有且只有一个。4 4、在函数中、在函数中不可以不可以再定义函数。再定义函数。5 5、算法:、算法:可以没有可以没有输入输入,但是,但是一定要有一定要有输出输出。6 6、forfor 循环中循环中 forfor 语句写成语句写成 forfor(i=0i=0;i100i100;i+i+);,这个写法是,这个写法是有问题的有问题的,forfor 的后的后面面如果出现分号,相当于如果出现分号,相当于 forfor 循环体是循环体是空的空的。7 7、breakbreak 可用于循环结构和可用于循环结构和 switchswitch 语句。语句。8 8、逗号运算符逗
4、号运算符的级别的级别最低最低,赋值赋值的级别的级别倒数第二倒数第二。第一章第一章 C 语言的基础知识语言的基础知识第一节、对第一节、对 C 语言的基础认识语言的基础认识1、C C 语言编写的程序称为语言编写的程序称为源程序源程序,又称为又称为编译单位编译单位。2 2、C C 语言语言书写格式是自由的书写格式是自由的,每行可以写多个语句,可以写多行。,每行可以写多个语句,可以写多行。3 3、一个、一个 C C 语言程序有且只有一个语言程序有且只有一个 mainmain 函数,是程序运行的函数,是程序运行的起点起点。第二节、熟悉第二节、熟悉 vc+1 1、VCVC 是软件,用来运行写的是软件,用来
5、运行写的 C C 语言程序。语言程序。2 2、每个、每个 C C 语言程序写完后,都是语言程序写完后,都是先先编译编译,后,后链接链接,最后,最后运行运行。(.c-.c-.obj-.obj-.exe.exe)这个过程中注意)这个过程中注意.c.c 和和.obj.obj 文件时无法运行文件时无法运行的,只有的,只有.exe.exe 文件才可以运行文件才可以运行。第三节、标识符第三节、标识符1、标识符、标识符合法的要求是由合法的要求是由字母字母,数字数字,下划线下划线组成。有其它元素就错了。组成。有其它元素就错了。并且并且第一个必须为第一个必须为字母字母或则是或则是下划线下划线。第一个为数字就错了
6、。第一个为数字就错了2、标识符分为关键字、保留标识符、用户标识符。、标识符分为关键字、保留标识符、用户标识符。关键字:关键字:不可以不可以作为用户标识符号作为用户标识符号。mainmain definedefine scanfscanf printfprintf 都不是关键字都不是关键字。容易。容易误解的地方:误解的地方:IfIf 是可以做为用户标识符是可以做为用户标识符。因为。因为 IfIf 中的第一个字母大写了,所以不是关键字。中的第一个字母大写了,所以不是关键字。保留标识符:保留标识符:是系统保留的一部分标识符,通常用于系统定义和标准库函数的名字。例如,是系统保留的一部分标识符,通常用于
7、系统定义和标准库函数的名字。例如,以下划线开始的标识符通常用于定义系统变量,不能使用把这些标识符来定义自己的变量。虽以下划线开始的标识符通常用于定义系统变量,不能使用把这些标识符来定义自己的变量。虽然它们也是合法的标识符,但是用它们来做一般标识符可能会出现运行错误。然它们也是合法的标识符,但是用它们来做一般标识符可能会出现运行错误。用户标识符:用户标识符:基本上每年都考,详细请见书上习题。基本上每年都考,详细请见书上习题。用户标识符用户标识符用来用来为变量、符号常量、数组、函数等取名。为变量、符号常量、数组、函数等取名。关键字关键字不可以不可以作为用户标识符作为用户标识符。第四节:进制的转换第
8、四节:进制的转换十进制转换成二进制、八进制、十六进制。十进制转换成二进制、八进制、十六进制。二进制、八进制、十六进制转换成十进制。二进制、八进制、十六进制转换成十进制。第五节:整数与实数第五节:整数与实数1 1)C C 语言只有语言只有八、十、十六八、十、十六进制,进制,没有二进制没有二进制。但是。但是运行时候,所有的进制都要转换成二运行时候,所有的进制都要转换成二进制来进行处理进制来进行处理。a a、C C 语言中的语言中的八进制八进制规定要规定要以以 0 0 开头开头。018018 的数值是非法的,的数值是非法的,八进制是没有八进制是没有 8 8 的,逢的,逢8 8 进进 1 1。b b、
9、C C 语言中的语言中的十六进制十六进制规定要规定要以以 0 x0 x 开头开头。2)2)小数的合法写法小数的合法写法:C 语言语言小数点两边有一个是零的话小数点两边有一个是零的话,可以不用写可以不用写。1.01.0 在在 C C 语言中可写成语言中可写成 1.1.0.10.1 在在 C C 语言中可以写成语言中可以写成.1.1。3 3)实型数据的合法形式:)实型数据的合法形式:a a、2.333e-12.333e-1 就是合法的,且数据是就是合法的,且数据是 2.333102.33310-1-1。b、考试口诀:e 前前 e 后必有数,后必有数,e 后后必为必为整数整数。请结合书上的例子。请结
10、合书上的例子。4 4)整型整型一般是一般是 4 4 个字节个字节,字符型字符型是是 1 1 个字节,个字节,双精度双精度一般是一般是 8 8 个字节:个字节:longlong intint x;x;表示表示 x x 是长整型。是长整型。unsignedunsigned intint x;x;表示表示 x x 是无符号整型。是无符号整型。第六、七节:算术表达式和赋值表达式第六、七节:算术表达式和赋值表达式核心:核心:表达式一定有数值表达式一定有数值!1 1、算术表达式:、算术表达式:+,-,*,/,%考试一定要注意:考试一定要注意:“/”“/”两边两边都是都是整型的话,结果就是一个整型的话,结果
11、就是一个整型整型。3/23/2 的结果就是的结果就是 1.1.“/”“/”如果如果有一边是有一边是小数,那么结果就是小数,那么结果就是小数小数。3/2.03/2.0 的结果就是的结果就是 0.50.5 “%”“%”符号请一定要注意是符号请一定要注意是余数余数,考试最容易算成了除号。,考试最容易算成了除号。)%符号两边符号两边要求是整数要求是整数。不是整数就错了。不是整数就错了。注意注意!2 2、赋值表达式:表达式数值是最左边的数值,、赋值表达式:表达式数值是最左边的数值,a=b=5;a=b=5;该表达式为该表达式为 5 5,常量不可以赋值,常量不可以赋值。1 1、intint x=y=10:x
12、=y=10:错啦,错啦,定义时定义时,不可以不可以连续赋值。连续赋值。2 2、intint x,y;x,y;x=y=10;x=y=10;对滴,对滴,定义完成后定义完成后,可以可以连续赋值。连续赋值。3 3、赋值的左边只能是赋值的左边只能是一个变量一个变量。4 4、intint x=7.7x=7.7;对滴,;对滴,x x 就是就是 7 75 5、floatfloat y=7y=7;对滴,;对滴,x x 就是就是 7.07.03 3、复合的赋值表达式:、复合的赋值表达式:intint a=2a=2;a*=2+3a*=2+3;运行完成后,;运行完成后,a a 的值是的值是 1212。一定要注意,首先
13、要在一定要注意,首先要在 2+32+3 的上面打上括号。变成(的上面打上括号。变成(2+32+3)再运算。)再运算。4 4、自加表达式:、自加表达式:自加、自减表达式:假设自加、自减表达式:假设 a=5a=5,+a+a(是为(是为 6 6),),a+a+(为(为 5 5););运行的机理:运行的机理:+a+a 是先把变量的数值加上是先把变量的数值加上 1 1,然后把得到的数值放到变量,然后把得到的数值放到变量 a a 中,然后再用中,然后再用这个这个+a+a 表达式的数值为表达式的数值为 6 6,而,而 a+a+是是先用该表达式的数值为先用该表达式的数值为 5 5,然后再把,然后再把 a a
14、的数值加上的数值加上 1 1 为为6 6,再放到变量再放到变量 a a 中。中。进行了进行了+a+a 和和 a+a+后后 在下面的程序中再用到在下面的程序中再用到 a a 的话都是变量的话都是变量 a a 中的中的 6 6了。了。口诀:+在前在前先加后用先加后用,+在后在后先用后加先用后加。5 5、逗号表达式:、逗号表达式:优先级别优先级别最低最低。表达式的数值逗号。表达式的数值逗号最右边最右边的那个表达式的数值。的那个表达式的数值。(2 2,3 3,4 4)的表达式的数值就是)的表达式的数值就是 4 4。z=z=(2 2,3 3,4 4)(整个是赋值表达式整个是赋值表达式)这个时候这个时候
15、z z 的值为的值为 4 4。(有点难度哦!)。(有点难度哦!)z=z=2 2,3 3,4 4 (整个是逗号表达式)这个时候(整个是逗号表达式)这个时候 z z 的值为的值为 2 2。补充:补充:1 1、空语句、空语句不可以不可以随意执行,会导致随意执行,会导致逻辑错误逻辑错误。2 2、注释是最近几年考试的重点,、注释是最近几年考试的重点,注释注释不是不是 C C 语言语言,不占,不占运行时间,运行时间,没有没有分号。分号。不可以不可以嵌套!嵌套!3 3、强制类型转换强制类型转换:一定是一定是 (intint)a a 不是不是 intint(a a),注意),注意类型上类型上一定有括号一定有括
16、号的。的。注意(注意(intint)()(a+ba+b)和(和(intint)a+ba+b 的区别。的区别。前是把前是把 a+ba+b 转型,后是把转型,后是把 a a 转型再加转型再加b b。4 4、三种三种取整丢小数取整丢小数的情况的情况:、intint a a =1.6=1.6;、(int)a(int)a;、1/21/2;3/23/2;第八节、字符第八节、字符1 1)字符数据的合法形式)字符数据的合法形式::11 是是字符字符占占一一个字节,个字节,11是字符串占是字符串占两两个字节个字节(含有一个结束符号含有一个结束符号)。00 的的 ASCIIASCII 数值表示为数值表示为 484
17、8,aa 的的 ASCIIASCII 数值是数值是 9797,AA的的 ASCIIASCII 数值是数值是 6565。一般考试表示单个字符错误的形式:一般考试表示单个字符错误的形式:6565 11字符是可以进行算术运算的,记住:字符是可以进行算术运算的,记住:0-0=480-0=48大写字母和小写字母转换的方法:大写字母和小写字母转换的方法:A+32=aA+32=a 相互之间一般是相差相互之间一般是相差 3232。2 2)转义字符:)转义字符:转义字符分为一般转义字符分为一般转义字符、八进制转义字符、十六进制转义字符转义字符、八进制转义字符、十六进制转义字符。一般转义字符:背诵一般转义字符:背
18、诵00、nn、”、。八进制转义字符:八进制转义字符:141141 是合法的,是合法的,前导的前导的 0 0 是不能写的。是不能写的。十六进制转义字符:十六进制转义字符:x6dx6d 才是合法的,前导的才是合法的,前导的 0 0 不能写,并且不能写,并且 x x 是小写。是小写。3 3、字符型和整数是近亲:两个具有很大的相似之处字符型和整数是近亲:两个具有很大的相似之处 charchar a a =6565 ;printf(“%c”,printf(“%c”,a);a);得到的输出结果:得到的输出结果:a aprintf(“%d”,printf(“%d”,A);A);得到的输出结果:得到的输出结果
19、:6565 第二章第二章第一节:数据输出(一)(二)第一节:数据输出(一)(二)1 1、使用、使用 printfprintf 和和 scanfscanf 函数时,要在最前面加上函数时,要在最前面加上#include“stdio.h”#include“stdio.h”2 2、printprintf f 可以只有一个可以只有一个参数,参数,也可以有两个也可以有两个参数。参数。3 3、printfprintf(“第一部分第一部分 ”,第二部分,第二部分 );把第二部分的变量、表达式、常量以第一);把第二部分的变量、表达式、常量以第一部分的形式展现出来!部分的形式展现出来!4 4、printfprin
20、tf(“a=%d“a=%d,b=%d”b=%d”,12,12,3434)重点!重点!一定要记住是将一定要记住是将 1212 和和 3434 以第一部分的形式现在在终端也就是黑色的屏幕上。考试核心为以第一部分的形式现在在终端也就是黑色的屏幕上。考试核心为:一模一样一模一样。在黑色屏幕上面显示为在黑色屏幕上面显示为 a=12a=12,b=34b=34 printfprintf(“a=%d“a=%d,nn b=%d”b=%d”,12,12,3434)那么输出的结果就是:)那么输出的结果就是:a=12a=12,b=34b=34 5 5、intint x=017x=017;一定要弄清楚为什么是这个结果!
21、过程很重要一定要弄清楚为什么是这个结果!过程很重要 printfprintf(“%d”“%d”,x x););1515printfprintf(“%o”“%o”,x x););1717 printfprintf(“%#o”“%#o”,x x););017017printfprintf(“%x”“%x”,x x););1111 printfprintf(“%#x”“%#x”,x x););0 x110 x11 6 6、intint x=12x=12,y=34y=34;注意这种题型注意这种题型 charchar z=az=a;printfprintf(“%d“%d ”,x x,y y););一个格
22、式说明,两个输出变量,后面的一个格式说明,两个输出变量,后面的 y y 不输出不输出 printfprintf(“%c”“%c”,z z););结果为:结果为:12a12a 7 7、一定要背诵的、一定要背诵的格式说明格式说明表示内容表示内容格式说明格式说明表示内容表示内容%d%d整型整型 intint%c%c字符字符 charchar%ld%ld长整型长整型 longlong intint%s%s字符串字符串%f%f浮点型浮点型 floatfloat%o%o八进制八进制%lf%lfdoubledouble%#o%#o带前导的八进制带前导的八进制%输出一个百分号输出一个百分号%x%x十六进制十六
23、进制%5d%5d%#x%#x带前导的十六进制带前导的十六进制举例说明:举例说明:printfprintf(“%2d”“%2d”,123123 ););第二部分有三位,大于指定的两位,原样输出第二部分有三位,大于指定的两位,原样输出 123123printfprintf(“%5d”“%5d”,123123 ););第二部分有三位,小于指定的五位,左边补两个空格第二部分有三位,小于指定的五位,左边补两个空格 123123printfprintf(“%10f”“%10f”,1.251.25 ););小数要求补足小数要求补足 6 6 位的,没有六位的补位的,没有六位的补 0,0,。结果为。结果为 1.
24、2500001.250000 printfprintf(“%5.3f”“%5.3f”,125125 ););小数三位,整个五位,结果为小数三位,整个五位,结果为 1.2501.250(小数点算一位)(小数点算一位)printfprintf(“%3.1f”“%3.1f”,1.251.25 );小数一位,整个三位,结果为);小数一位,整个三位,结果为 1.31.3(要进行四舍五入)(要进行四舍五入)第三节第三节 数据输入数据输入1 1、scanfscanf(“a=a=%d%d,b=b=%d%d”,&a&a,&b&b)超级重点!超级重点!一定要记住是一定要记住是以第一部分的格式在终端输入数据以第一部
25、分的格式在终端输入数据。核心为:。核心为:一模一样一模一样。在黑色屏幕上面输入的为在黑色屏幕上面输入的为 a=a=1212,b=b=3434 才可以把才可以把 1212 和和 3434 正确给正确给 a a 和和 b b 。有一点不同也。有一点不同也不行。不行。2 2、scanfscanf(“%d“%d,%d”%d”,x x,y y);这种写法绝对错误,);这种写法绝对错误,scanfscanf 的第二个部分一定要是地址!的第二个部分一定要是地址!scanfscanf(“%d“%d,%d”%d”,&x&x,&y&y);注意写成这样才可以!);注意写成这样才可以!3 3、特别注意指针在、特别注意
26、指针在 scanfscanf 的考察的考察例如:例如:intint x=2x=2;intint *p=&x*p=&x;scanfscanf(“%d”“%d”,x x););错误错误 scanfscanf(“%d”“%d”,p p);正确);正确scanfscanf(“%d”“%d”,&p&p););错误错误 scanfscanf(“%d”“%d”,*p*p)错误)错误4、指定输入的长度、指定输入的长度 终端输入:终端输入:12345671234567 scanfscanf(“%2d%4d%d”“%2d%4d%d”,&x&x,&y&y,&z&z););x x 为为 1212,y y 为为 345
27、63456,z z 为为 7 7终端输入:终端输入:1 1 234567234567 由于由于 1 1 和和 2 2 中间有空格,所以只有中间有空格,所以只有 1 1 位给位给 x xscanfscanf(“%2d%4d%d”“%2d%4d%d”,&x&x,&y&y,&z&z););x x 为为 1 1,y y 为为 23452345,z z 为为 67675、字符和整型是近亲:、字符和整型是近亲:intint x=97x=97;printfprintf(“%d”“%d”,x x););结果为结果为 9797printfprintf(“%c”“%c”,x x););结果为结果为 a a6、输入
28、时候字符和整数的区别、输入时候字符和整数的区别scanfscanf(“%d%d”,&x&x);这个时候输入);这个时候输入 1 1,特别注意表示的是,特别注意表示的是整数整数 1 1scanfscanf(“%c%c”,&x&x);这个时候输入);这个时候输入 1 1,特别注意表示的是,特别注意表示的是字符字符1ASCII1ASCII 为整数为整数 4949。补充说明:补充说明:1 1)scanfscanf 函数的格式考察:函数的格式考察:注意该函数的第二个部分是注意该函数的第二个部分是&a&a 这样的地址,不是这样的地址,不是 a a;scanf(“%d%d%*d%d”,&a,&b,&c);s
29、canf(“%d%d%*d%d”,&a,&b,&c);跳过输入的第三个数据。跳过输入的第三个数据。2 2)putcharputchar ,getchar,getchar 函数的考查:函数的考查:charchar a a =getchar()getchar()是没有参数的,从键盘得到你输入的一个字符给变量是没有参数的,从键盘得到你输入的一个字符给变量 a a。putchar(y)putchar(y)把字符把字符 y y 输出到屏幕中。输出到屏幕中。3 3)如何实现两个变量如何实现两个变量 x x ,y y 中数值的互换(要求背下来)中数值的互换(要求背下来)不可以把不可以把 x=yx=y ,y=
30、x;,y=x;要用中间变量要用中间变量 t=xt=x;x=yx=y;y=ty=t。第三章第三章特别要注意:特别要注意:C 语言中是用语言中是用非非 0 表示逻辑真的,表示逻辑真的,用用 0 表示逻辑假的。表示逻辑假的。C 语言语言有有构造类型构造类型,没有没有逻辑类型逻辑类型。关系运算符号:注意关系运算符号:注意898 这个关系表达式是真的,所以这个关系表达式是真的,所以 9898 这个表达式的数值就是这个表达式的数值就是 1 1。如如 7676 这个关系表达式是假的,所以这个关系表达式是假的,所以 7676 这个表达式的数值就是这个表达式的数值就是 0 0 b b、考试最容易错的:就是、考试
31、最容易错的:就是 intint x=1,y=0,z=2;x=1,y=0,z=2;xyzxyz 是真还是假?带入为是真还是假?带入为 102102,从数学的角度出发肯定是,从数学的角度出发肯定是错的,但是如果是错的,但是如果是 C C 语言那么就是正确的!因为要语言那么就是正确的!因为要 1010 为假得到为假得到 0 0,表达式就变成,表达式就变成了了 020&|&|优先的级别。优先的级别。c)c)注意短路现象。考试比较喜欢考到。注意短路现象。考试比较喜欢考到。详细请见书上例子,一定要会做例详细请见书上例子,一定要会做例 1 1 和例和例 2 2d)d)表示表示 x x 小于小于 0 0 大于
32、大于 1010 的方法。的方法。0 x10 是不行的(是不行的(一定记住一定记住)。)。是先计算是先计算 0 x0 x 得到的结果为得到的结果为 1 1 或则或则 0 0;再用;再用 0 0,或,或 1 1与与 1010 比较得到的总是真(为比较得到的总是真(为 1 1)。所以一定)。所以一定要用要用(0 x)&(x=a)&(ch=A)&(ch=0)&(ch=9)3)if 语句语句 a a、elseelse 是与最接近的是与最接近的 ifif 且没有且没有 elseelse 的语句匹配。的语句匹配。b b、交换的程序交换的程序写法:写法:t=xt=x;x=yx=y;y=ty=t;c c、ifi
33、f(abab)t=a;a=b;b=t;t=a;a=b;b=t;ifif(abab)t=a;a=b;b=t;t=a;a=b;b=t;两个的区别,考试多次考到了!两个的区别,考试多次考到了!d d、单独的、单独的 ifif 语句:语句:ifif(abab)t=at=a;标准的标准的 ifif 语句:语句:ifif(abab)min=amin=a;elseelse min=bmin=b;嵌套的嵌套的 ifif 语句:语句:ifif(abacbc)printf(“ok!”)printf(“ok!”);多选一的多选一的 ifif 语句语句 ifif(a=a=t=t)printf(“a”);printf(
34、“a”);elseelse ifif(b=b=t=t)printf(“b”);printf(“b”);elseelse ifif(c=c=t=t)printf(“c”);printf(“c”);elseelse pritnf(“d”);pritnf(“d”);通过习题,要熟悉以上几种通过习题,要熟悉以上几种 ifif 语句!语句!经典考题:结合上面四种经典考题:结合上面四种 if 语句题型做题,答错了,请自行了断!预备,开始!语句题型做题,答错了,请自行了断!预备,开始!intint a=1a=1,b=0b=0;ifif(!(!a a)b+b+;elseelse ifif(a=a=0=0)if
35、if(a a)b+=2b+=2;elseelse b+=3b+=3;请问;请问 b b 的值是多少?的值是多少?正确的是正确的是 b b 为为 3 3。intint a=1a=1,b=0b=0;ifif(!(!a a)b+b+;是假的不执行是假的不执行elseelse ifif(a=a=0=0)是假的执行是假的执行ifif(a a)b+=2b+=2;属于属于 elseelse ifif 的嵌套的嵌套 ifif 语句,不执行。语句,不执行。elseelse b+=3b+=3;if-else-ifif-else-if 语句没有一个正确的,就执行语句没有一个正确的,就执行 elseelse 的语句!
36、的语句!4)条件表达式:)条件表达式:表达式表达式 1 1?表达式?表达式 2 2 :表达式:表达式 3 3a、口诀:真前假后真前假后。b b、注意是当表达式注意是当表达式 1 1 的数值是的数值是非非 0 时,才采用表达式时,才采用表达式 2 2 的数值做为整个运算结果,当表达的数值做为整个运算结果,当表达式式 1 1 的数值的数值为为 0 时,时,就用表达式就用表达式 3 3 的数值做为整个的结果。的数值做为整个的结果。c c、intint a=1a=1,b=2b=2,c=3c=3,d=4d=4,e=5e=5;k=abk=ab?c c:dede?d d:e;e;求求 k k 的数值时多少?
37、的数值时多少?答案为答案为 sansan5)switch 语句:语句:a)a)执行的流程一定要弄懂!上课时候详细的过程讲了,请自己一定弄懂执行的流程一定要弄懂!上课时候详细的过程讲了,请自己一定弄懂!b b)注意有)注意有 breakbreak 和没有和没有 breakbreak 的差别,书上的两个例子,的差别,书上的两个例子,没有没有 breakbreak 时候,只要有一个时候,只要有一个casecase 匹配了,剩下的都要执行匹配了,剩下的都要执行,有有 breakbreak 则是直接跳出了则是直接跳出了 swicheswiche 语句。语句。breakbreak 在在 C C 语言中就语
38、言中就是分手,一刀两断的意思。是分手,一刀两断的意思。c)c)switchswitch 只可以和只可以和 breakbreak 一起用一起用,不可以和,不可以和 continuecontinue 用。用。d)d)switch(x)switch(x)x x:是整型常量,字符型常量,枚举型数据。:是整型常量,字符型常量,枚举型数据。casecase 1 1:.不可以是变量。不可以是变量。casecase 2:2:.e e)switchswitch 是必考题型,请大家一定要完成书上的课后的是必考题型,请大家一定要完成书上的课后的 switchswitch 的习题。的习题。第四章第四章 循环结构程序设
39、计循环结构程序设计1)三种循环结构:)三种循环结构:a a)forfor()();while()while();do-do-while()while()三种。三种。b b)forfor 循环当中循环当中必须必须是是两个分号两个分号,千万不要忘记。,千万不要忘记。c c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。d)d)do-while()do-while()循环的最后一个循环的最后一个 while();while();的分号一定不能够丢。(当心上机改错),的分号一定不能够丢。(当心上机改错),dodowhi
40、lewhile 循环是至少执行一次循环。循环是至少执行一次循环。2)break 和和 continue 的差别的差别 记忆方法:记忆方法:breakbreak:是:是打破打破的意思,(破了整个循环)所以的意思,(破了整个循环)所以看见看见 breakbreak 就退出整个一层循环就退出整个一层循环。continuecontinue:是是继续继续的意思,(继续循环运算),但是的意思,(继续循环运算),但是要要结束本次循环结束本次循环,就是循环体内剩下,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环进行新一轮的循环。
41、3)嵌套循环)嵌套循环 就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。层是处理二维数组的。4)while(c=getchar())!=n)和和 while(c=getchar()!=n)的差别)的差别先看先看 a a =3 3 !=!=2 2 和和 (a=3a=3)!)!=2=2 的区别:的区别:(!(!=号的级别高于号的级别高于=号号 所以第一个先计算所以第一个先计算 3 3!=2=2)第一个第一个 a a 的数值是得到的的数值是得到的 1 1;第二个;第二个a
42、a 的数值是的数值是 3 3。考试注意点考试注意点:括号在这里的重要性。括号在这里的重要性。5)每行输出五个的写法:)每行输出五个的写法:forfor(i=0i=0;i=100i=100;i+i+)printfprintf(“%d”“%d”,i i););if(if((i+1)%5=0)printf(“n”);i+1)%5=0)printf(“n”);如果如果 i i 是从是从 1 1 开始的话,就是开始的话,就是 if(i%5=0)if(i%5=0)printf(“n”);printf(“n”);6)如何整除一个数:)如何整除一个数:i%5=0i%5=0 表示整除表示整除 5 5 I%2=0
43、I%2=0 表示整除表示整除 2 2,同时表示是偶数!,同时表示是偶数!7)输入)输入 123,输出,输出321321 逆序输出逆序输出数据数据intint i=123;i=123;whilewhile(i i!=0=0)printfprintf(“%d”“%d”,i%10i%10);i=i/10i=i/10;8)for 只管后面只管后面一个一个语句语句:intint i=3i=3;forfor(i=3i=3;i6;i+i 第一行第一行a1a1 4 4 5 5 6 6 第二行第二行a2a2 7 7 8 8 9 9 第三行第三行3)3)数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写
44、数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写 intint a=1a=1,22 合法。合法。intint a4=2a4=2,3 3,44合法。合法。但但 intint a4=2a4=2,3 3,44非法。非法。第五章第五章 函数函数1 1、函数:是具有一定功能的一个程序块,、函数:是具有一定功能的一个程序块,是是 C C 语言的基本组成单位。语言的基本组成单位。2 2、函数不可以嵌套定义。但是可以嵌套调用。函数不可以嵌套定义。但是可以嵌套调用。3 3、函数名缺省返回值类型,默认为、函数名缺省返回值类型,默认为 intint。4 4、C C 语言由函数组成,但有且仅有一个语言由函
45、数组成,但有且仅有一个 mainmain 函数!是程序运行的开始!函数!是程序运行的开始!5 5、如何判断、如何判断 a a 是否为质数:背诵这个程序!是否为质数:背诵这个程序!voidvoid iszhishuiszhishu(intint a a )forfor(i=2i=2;ia/2ia/2;i+i+)if(a%i=0)if(a%i=0)printfprintf(“不是质数不是质数”);printf(“printf(“是质数!是质数!”)”);oo6 6、如何求阶层如何求阶层:n!n!intint fun(intfun(int n)n)intint p=1;p=1;for(i=1;i=n
46、;i+)for(i=1;i=n;i+)p=p*i;p=p*i;returnreturn p;p;7 7、函数的参数可以是常量,变量,表达式,甚至是、函数的参数可以是常量,变量,表达式,甚至是函数调用函数调用。addadd(intint x x,intint y y)returnreturn x+yx+y;mainmain()()intint sumsum;sum=addsum=add(addadd(7,87,8),),9 9);请问);请问 sumsum 的结果是多少?的结果是多少?结果为结果为 2424 8 8、函数的参数,返回数值(示意图):函数的参数,返回数值(示意图):main()in
47、t a=5,b=6,c;c=add(a,b);printf(“%d”,c);调用函数调用函数a,ba,b 是实参是实参整个函数得到一个数值就是整个函数得到一个数值就是AddAdd 函数的返回数值。函数的返回数值。int add(int x,int y)int z;z=x+y;return z;被调用函数被调用函数x x,y y 是形式参数是形式参数函数返回数值是整型函数返回数值是整型z z 就是这个就是这个 addadd 函数函数计算后得到的结果,计算后得到的结果,就是函数返回给主程就是函数返回给主程序的返回数值。序的返回数值。程序是在从上往下顺序执程序是在从上往下顺序执行,当碰到了函数行,当
48、碰到了函数 addadd 后,后,把把 a a,b b 的数值穿给调用的数值穿给调用函数,程序暂时中断等待函数,程序暂时中断等待返回数值。当得到了返回返回数值。当得到了返回数值后,再顺序的往下执数值后,再顺序的往下执行行9 9、一定要注意参数之间的传递、一定要注意参数之间的传递 实参和形参之间实参和形参之间 传数值传数值,和,和传地址传地址的差别。(考试的重点)的差别。(考试的重点)传传数值数值的话,形参的变化的话,形参的变化不会改变不会改变实参的变化。实参的变化。传传地址地址的话,形参的变化就会的话,形参的变化就会有可能改变有可能改变实参的变化。实参的变化。1010、函数声明的考查:、函数声
49、明的考查:一定要有:函数名,函数的返回类型,函数的参数类型。一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称不一定要有:形参的名称。填空题也可能会考到!以下是终极难度的考题。打横线是函数声明怎么写!填空题也可能会考到!以下是终极难度的考题。打横线是函数声明怎么写!intint *fun*fun(intint aa ,intint bb).已经知道函数是这样。这个函数的正确的函数声明怎么写?已经知道函数是这样。这个函数的正确的函数声明怎么写?intint *fun*fun(intint *a*a ,intint *b*b)这里是函数声明的写法,注意数组就是指这里是函数声明
50、的写法,注意数组就是指针针intint *fun*fun(intint aa ,intint bb)这种写法也是正确的这种写法也是正确的 intint *fun*fun(intint bb ,intint cc)b b 这种写法也是正确的,参数的名称可以这种写法也是正确的,参数的名称可以随便写随便写intint *fun*fun(intint *,intint *)这种写法也是正确的,参数的名称可以不这种写法也是正确的,参数的名称可以不写写 1111、要求掌握的库函数:、要求掌握的库函数:a a、库函数是已经写好了函数,放在仓库中,我们只需要如何去使用就可以了!、库函数是已经写好了函数,放在仓