c语言基础复习总结提纲.docx
- 文档编号:25235585
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:28
- 大小:26.79KB
c语言基础复习总结提纲.docx
《c语言基础复习总结提纲.docx》由会员分享,可在线阅读,更多相关《c语言基础复习总结提纲.docx(28页珍藏版)》请在冰豆网上搜索。
c语言基础复习总结提纲
二、C语言的结构化语句
C语言中有三种结构化语句,分别为:
1. 顺序结构:
2 .选择结构:
3. 循环结构:
三、语句
C语言中的语句主要有以下几种需要大家掌握:
1.表达式语句
在表达式之后加上一个分号“;”,就构成了一个表达式对应的语句。
在这里要强调每个C语言的语句之后都必须要有一个“;”
【注意事项】
一行内可以有多句表达式语句,但是在程序的写法上要求书写规范,便于阅读。
2.空语句
若一个语句只有一个“;”,即构成空语句。
【注意事项】
(1)“空语句”表示程序执行时不产生任何动作。
(2)但随意使用空语句会导致逻辑上出现错误,需要慎用。
(3)空语句一般用在延时程序中,表示等待时间。
【注意事项】
一条空语句即一个“;”也是一条语句。
3.复合语句
用花括号括起来的多个语句组成一个复合语句。
其表示为:
{语句1;语句2;…语句n;}
注意!
一条复合语句在语法上相当于一条语句。
【经典例题】
例4:
以下叙述中错误的是( )
A)C语句必须以分号结束。
B)复合语句在语法上被看作一条语句。
C)空语句出现在任何位置都不会影响程序运行。
D)赋值表达式末尾加分号就构成赋值语句。
【注意事项】
(1)一个复合语句在语法上等同于一个语句,也可称为是一个语句块。
(2)凡是单个语句能够出现的地方复合语句都能够出现。
(3)复合语句花括号的后面不能加有“;”。
4.注释
以“/*”开头并且以“*/”结尾。
【注意事项】
(1)强调注释可以在程序中的任何地方。
(2)对程序的编译和运行不起作用,不影响程序的运行结果。
(3)程序运行时将无视注释的存在。
(4)注释是给阅读程序的人看的。
程序中以“/*”开头并且以“*/”结尾的部分表示程序的注释部分,注释可以加在程序的任何位置。
【经典例题】
例 有以下程序段:
main()
{ inta=0,b=0;
a=10; /*给a赋值
b=20; 给b赋值*/
printf("a+b=%d\n",a+b); /*输出计算结果*/
}程序运行后的结果是(B)
A)a+b=30 B)a+b=10 C)30 D)程序出错
四、输出函数
总共有两个,分别为printf和putchar函数。
1.printf函数
(1)printf函数的一般格式:
printf(格式输出控制,输出列表)
1)格式输出控制:
需用一对双引号括起来,双引号内包含“格式说明”和“普通字符”两部分。
2)输出列表:
需要输出的数据,多个数据之间用逗号隔开。
(2)格式说明(详见教材197面,把上面输出格式要求全部掌握)
注:
在printf函数中,若格式说明的个数少于输出项的个数,多余的输出项则忽略不输出,这是二级C考试中经常出现的题目。
(3)普通字符会原样输出,转义字符需要输出对应的字符。
注:
printf函数输出数据时,做题时很容易忽略普通字符(除了格式控制符之外的字符)的输出。
在考试中,这类题目常出现。
例:
main()
{inta,b;
a=10;
b=15;
printf("a+b=%d",a+b); }程序运行结果为:
(4)数据输出实例(已知inta=66;floatb=123.56;)
通过以下各输出语句,掌握输出函数的各种格式。
(1)printf("%d",a); 66
(2)printf("%3d",a); □66
(3)printf("%-3d",a); 66□
(4)printf("%f",b); 123.560000
(5)printf("%7.2f",b); □123.56
(6)printf("%-7.2f",b); 123.56□
(6)printf("%c",a); B
(7)printf("%x",a); 42
【注意事项】
1)输出控制是由双引号括起来的格式转换控制信息.它分为两种信息:
用于说明的信息,计算机会按照原样输出;以上例子中的“a=”它可以是任意的常量,变量,表达式汉字,字符等。
2)带有"%"的格式转换说明,用于指定输出数据的格式。
例如”%d”。
3)输出数据列表包括需要输出的一些数据。
各个数据之间用逗号分隔开。
输出数据的个数与输出控制中的格式转换说明的个数相等,并且在顺序上要一一对应且类型匹配。
输出数据列表中的数据可以是任意合法的常量、变量或表达式。
4)在输出控制中,格式说明的个数应与输出项的个数相同。
如果格式说明的个数少于输出项的个数,多余的输出项则不予输出;如果格式说明的个数多于输出项的个数,则对多余的格式说明将输出不定值。
【经典例题】
例:
输出语句printf("%d,%d",2,3,4);的输出结果为2,3。
例:
输出语句printf("a=%d,b=%d",2.3,4.0);的输出结果为a=2,b=3。
【注意事项】
1)可以在%和格式字符之间加入一个整数来控制输出数据所占的宽度,强调如果整数指定的宽度大于实际输出数据的宽度,数据的输出采用右对齐的方式,左边自动补空格;反之,则以输出数据的实际宽度输出。
2)当在%和格式字符f之间加入“整数1.整数2”来控制输出数据的格式时,强调“整数1”用于指定输出数据占的总宽度,“整数2”用于指定输出实数的小数部分的个数。
当输出数据的小数个数多于“整数2”指定的个数时,截去多余的数据,并对截去的第1位小数作四舍五入处理。
当输出数据的小数个数少于“整数2”指定的个数时,在小数的右边添0补足。
3)如果需要在输出的八进制数前添加0,或在输出的十六进制数前添加0x,可在%号和格式字符o和x之间插入一个#号(注意:
#号对其他格式字符通常不起作用)
4)如果要输出"%"时,则应该在格式控制中用两个连续的"%",即"%%"来表示,也就是在格式控制中出现两个连续的"%",则此时"%"不再用来代表格式说明。
下面是关于以上几种特殊情况下数据的输出格式以及输出结果:
各种特殊情况时数据输出结果对比
输出语句输出结果输出语句输出结果
printf("%d",254);254printf("%2d",254);254printf("%4d",254); 254
printf("%f",1.25);1.250000printf("%10f",1.25); 1.250000
printf("%4.4f",1.25);1.2500printf("%7.4f",1.25); 1.2500
printf("%2.0f",1.25); 1printf("%o",254);376
printf("%#o",254);0376printf("%#x",254);0xfe
printf(“%%”);%printf(“%%d”,254);%d
2.putchar函数
此函数只能输出字符型的数据。
表示将括号里面的字符型数据以字符的形式输出到屏幕上。
(1)输出格式为:
putchar(字符型变量或常量);
(2)举例:
例:
putchar(c);其中“c”为变量。
例:
putchar(‘C’);其中“C”为字符型常量。
【注意事项】putchar函数的参数只有一个,可以是字符型的变量或者常量。
如果是常量必须用单引号括起来。
五、输入函数
数据的输入函数,总共有两个,分别为printf和putchar函数。
1.scanf函数
(1)输入格式:
scanf(输入控制,输入数据列表)
【说明】
1)“输入控制”的含义与printf函数的“输出控制”相同,它的作用是指定输入时的数据转
换格式。
例子中的“%d”。
2)输入数据列表是一个或者多个合法的地址表达式。
例子中的“&a”。
其中“&”为取地址的符号,后面必须跟变量或者变量表达式。
我们要从键盘上将不同的数据输入计算机中时,也要限制以什么格式输入,可以接受那些数据,这就是格式化的输入函数。
【历年考题】
例:
若有定义:
inta,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是( )。
A)35 B)3,5C)3;5 D)35
例:
若变量已正确定义为int型,要通过语句scanf(〞%d,%d,%d〞,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(u代表一个空格符)()
A)uuu1,2,3<回车> B)1u2u3<回车>
C)1,uuu2,uuu3<回车> D)1,2,3<回车>
【注意事项】
在scanf函数中的格式控制部分中,说明部分按照原样输入,而输入项必须是表示地址的地址变量。
(2)scanf函数中的格式说明:
(详见教材195面,记熟表格内容)
【注意事项】
(1)当从键盘输入多个数值数据时,输入数值数据之间用分隔符(包括空格符、制表符和回车符,但是不包括逗号)隔开。
(2)在输入控制中,格式说明的类型与输入项的类型应该一一对应匹配。
如果类型不匹配,系统并不给出出错信息,但不能得到正确的输入数据。
当输入长整型数据(long)时,必须使用%ld格式;输入double数据时,必须使用%lf或%le,否则不能得到正确数据。
(3)与printf相似,在scanf函数中的格式字符前可以用一个整数指定输入数据所占的宽度,但对实数不能指定小数的位数。
(4)在输入控制中,格式说明的个数与输入项的个数应该相同。
如果格式说明的个数少于输入项的个数,系统自动结束输入,多余的数据没有被读入,可作为下一个输入操作的输入数据;如果格式说明的个数多于输入项的个数,系统同样自动结束输入。
(5)跳过输入数据的方法。
可以在格式字符与%之间加入一个“*”使输入过程跳过输入的数据。
(6)若在scanf函数的输入控制串中含有其他的字符,则在输入时要求按一一对应的位置原样输入这些字符。
2.getchar函数:
从终端输入一个字符。
(1)输入格式:
getchar()
第三章:
If结构
一、关系运算
1.C语言中的逻辑值:
(1)真:
非零即真,包括:
整数、负数、小数
(2)假:
零即假
2.关系运算符和表达式:
(1)关系运算符:
>、>=、<、<=、==、!
=
(2)优先级:
算术运算符>关系运算符>赋值运算符>逗号运算符
(3)关系表达式:
由关系运算符组成的表达式叫做关系表达式。
例如:
a>b a!
=10
(4)关系运算的结果:
1表示真,0表示假
(5)结合方向:
从左向右,即先算左边再算右边
二、逻辑运算
(1)逻辑运算符:
&&、||、!
(2)逻辑表达式:
由逻辑运算符组成的表达式
a&&b a真b真为真,否则为假(一假则假)
a||b a假b假为假,否则为真(一真则真)
!
a a为真时!
a为假,a为假时!
a为真(非真则假,非假则真)
(3)优先级:
!
>算术运算符>关系运算符>&&>||>赋值运算符>逗号运算符
(4)例一:
判断下列表达式是真还是假?
10&20 10>20||20<30 a=10>20 !
5
(5)例二:
计算变量a,b,c,d的值
int a=0,b=0,c=0,d=0;
a++;
b=a+10>10;
c=a>b&&b>=c;
d=(++b<=0)||(d++);
三、if语句
1.if语句结构形式:
if(表达式)语句
(1)表达式可以为任何合法的表达式。
包括:
常量表达式、算术表达式、关系表达式、逻辑表达式和赋值表达式。
(2)语句:
只能是一条或是一个复合语句
2.if语句的执行过程:
(1)首先判断表达式的真假
(2)如果表达式结果为真,则执行语句;否则不执行语句。
3.例一:
判断学生的成绩是否优秀?
int a;/*用来表示某个学生的成绩*/
scanf("%d",&a);/*通过键盘将成绩输入给变量a*/
if(a>=90)
printf("成绩优秀!
");
通过输入不同的值来判断输出的内容,如果输入的数据不小于90,则输出。
4.此题必须要求完全掌握。
inta=4,b=3,c=5,t=0;
if(a
if(a inta=4,b=3,c=5,t=0; if(a if(a 5.例: 判断一个数是否能被2整除? ? int a;/*用来表示某个数*/ scanf("%d",&a);/*通过键盘输入一个数给变量a*/ if(a%2==0) printf("a=%d能2整除",a); 6.例: 判断一个数是否能被3和7同时整除? ? int a;/*用来表示某个数*/ scanf("%d",&a);/*通过键盘输入一个数给变量a*/ if(a%3==0&&a%7==0) printf("a=%d能被3和7同时整除",a); 7.例: 判断输入的一个字符是否是数字字符? charch; scanf(“%c”,&ch); if(ch>=’0’&&ch<=’9’) printf("ch=%c是一个数字字符",ch); 8.例: 判断输入的一个字符是否是大写字母? charch; scanf(“%c”,&ch); if(ch>=’A’&&ch<=’Z’) printf("ch=%c是一个大写字母",ch); 四、if-else语句 if-else语句结构的一般形式: if(表达式) 语句1 else 语句2 (1)表达式可以为任何合法的表达式。 包括: 常量表达式、算术表达式、关系表达式、逻辑表达式和赋值表达式。 (2)语句: 只能是一条或是一个复合语句 1.if-else语句的执行过程: (1)首先判断表达式的真假 (2)如果表达式结果为真,则执行语句1,否则执行语句2 2.例一: 判断变量a是不是一个偶数, 如果a是一个偶数则输出a是一个偶数, 否则输出a是一个奇数 int a; scanf("%d",&a); if(a%2==0) printf("a=%d是一个偶数",a); else printf("a=%d是一个奇数",a); 3.陷阱题: main() { inta=1,b=2,c=3; if(c=a)printf(“%d\n”,c); else printf(“%d\n”,c);} main() { inta=1,b=2,c=3; if(c==a) printf(“%d\n”,c); else printf(“%d\n”,c);} 重点比较上面两个例子中c=a和c==a的区别,赋值和比较是不同的概念。 if表达式中如果是赋值语句,只要赋的值不为0,条件就永远为真。 if表达式中如果是关系语句,只要判断逻辑值为真或假。 五、 嵌套的if语句 1.嵌套的if语句即多个if或者if-else语句嵌套在一起, 记住一句话: else总是与它前面没有配对的if配对 2.例: 判断表达式的真假是重点 main() { inta=5,b=4,c=3,d=2; if(a>b>c) printf(“%d\n”,d); elseif((c-1>=d)==1) prinft(“%d\n”,d+1); else printf(“%d\n”,d+2);} 注意两点: 一是学会配对if-else,采用从后往前配对; 二是必须掌握判断a>b>c的真假,(c-1>=d)==1的真假。 六、 条件表达式 1.条件表达式的形式如下: 表达式1? 表达式2: 表达式3 2.条件表达式求职规则: (1)首先判断表达式1的值是否为真 (2)如果表达式1的值为真则表达式2的值为整个表达的值, 否则表达式3的值为整个表达式的值 3.多个条件表达式的结合方向: 自右向左 4.例: 求两个数中的最大值: max=a>b? a: b; 5.例题 intk=0,b=2,c=3; k=a b: a; k=k>c? c: k; mian() { inta=5,b=4,c=6,d; printf(“%d\n”,d=a>b? (a>c? a: c): (c));} 七、 switch语句 1.switch语句的一般格式: switch(表达式) { case常量表达式1: 语句块1;break; … case常量表达式n: 语句块n;break; default: 语句块n+1;break; } (1)switch、case、default、break都是关键字 (2)圆括号中的表达式: 必须是整型或字符型,不能为实型。 case后面的表达式可以是求得整型量和字符型量的常量表达式,但是常量表达式后面不能含有变量。 (3)执行switch语句的步骤: ① 首先计算switch后圆括号内表达式的值; ② 如果计算结果与case后面某个常量表达式相等,则执行该case后面的语句块; ③ 如果没有任何一个常量表达式与之相等,则执行default后的语句块。 (4)执行switch语句的执行策略: ① 执行过程中如果遇到break语句,则跳出switch语句 ② 如果执行完一个case或是default没有遇到break,则继续顺序往下执行,直到遇到break语句或是switch语句体被执行完毕。 (5)default最多只能有一个,通常出现在switch的最后部分,但也可以出现在case之间或所有case之前。 例二: int a=1; switch(a) { case1: a++; case2: a++; case3: a++; default: a++; } printf("a=%d\n",a); 请问输出的结果为多少? 2.区别下列两个例子 例一: int a=1; switch(a) { case1: a++;break; case2: a++;break; case3: a++;break; default: a++;break; } printf("a=%d\n",a); 请问输出的结果为多少? 注: switch语句中,注意在case的语句块后加break语句和不加break语句的区别,在考试中,经常考查该类题。 另外,考查default语句的执行(只有所有case后的常量表达式都不成立时,才执行default后的语句)。 第四章循环结构 一、 本章学习要点 1. 明白并熟练掌握循环的过程,特别for循环是考试的重点,请必须注意以下细节: (1)什么是循环? 重复做同样的事情就称为循环。 循环有四要素,请同学们谨记: ① 循环的起点,就是循环从什么时候开始 ② 循环的终点,就是循环到什么时候结束,同学们千万要记住一般的循环 是要结束的,但是有种循环永远也结束不了,这样的循环称为死循环 ③ 循环的步长,指的是循环每次变化的值,如果循环每次都没有变化, 很容易变为死循环 ④ 循环体,循环体是每次重复做的事情 (2)for循环的基本结构,表达式1,表达式2和表达式3分别代表什么 (3)必须掌握循环的执行步骤 2. 掌握几种常见的使用循环解决的问题,考试中涉及很多和循环相关的考点, 因此在学习循环的过程中一定要慢慢训练使用循环解决问题的思路。 二、 while循环 1. while循环和for循环的循环执行过程差不多一致, 只是表达式1,2,3的位置不同而已 2.while的一般形式 while(表达式) { 循环体语句} (1while是C语言的关键字,必须小写 (2表达式是任意合法的表达式(包括: 常量、算术、关系、逻辑、赋值表达式) (3循环体语句只能是一条语句或是一个复合语句 (4表达式不能省略,循环体语句省略时表示不做任何的操作 3. while的执行过程 (1)判断表达式的真假 (2)如果表达式为真则执行循环体语句,否则结束循环 4. 例 main() { int k=5; while(--k) printf(“%d”,k-=3); printf(“\n”);} 执行过程如下: (1)初值k=5,判断表达式: --k的真假,--k为4故为真, 执行循环体: 输出k=k-3,输出1 (2)初值k=1,判断表达式: --k的真假,--k为0故为假, 循环执行完毕 (3)执行循环以后的语句printf(“\n”);输出一个回车, 所以结果为: 1<回车> 5. 例,特别注意循环体为空,还有执行过程中y--的变化 main() { inty=10; while(y--);printf(“y=%d\n”,y) ; }程序运行后y的值是: 三、 do-while循环 1. do-while语句的一般形式 do { 循环体语句 }while(表达式); (1)do是C语言的关键字,需要和while搭配使用 (2)表达式可以是任意合法的表达式 (3)循环体语句只能是一条语句或是一个复合语句 (4)表达式不能省略,循环体语句省略时表示不做任何的操作 (5)while后面的分号不能省略 2. do-while语句的执行过程: (1)首先执行循环体语句 (2)判断表达式的真假 (3)如果表达式为真,则继续执行循环体语句,否则结束循环 执行步骤如下: (1)初值: i=0,n=0 执行循环体语句: i++;++i->i=2, 判断: n! =0为假,则结束循环; (2)执行完循环后继续执行循环后面的语句: printf("%d",i); 输出结果为: 2 3. 知识点举例: Inti,n=0; i=0; do {i++; ++i; }while(n! =0); printf("%d",i); 执行步骤如下: (1)初值: i=0,执行循环体: printf(“%d”,i);输出i的值为0, 判断表达式i++的真假,因为i的初值为0,则i++的值为0, i的值为1,表大事i++值为0为假,结束循环 (2)执行循环体后面的语句: printf(”%d\n”,i);输出的值为1 4. 例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 复习 总结 提纲
