最新c语言基础复习提纲资料文档格式.docx
《最新c语言基础复习提纲资料文档格式.docx》由会员分享,可在线阅读,更多相关《最新c语言基础复习提纲资料文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
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函数输出数据时,做题时很容易忽略普通字符(除了格式控制符之外的字符)的输出。
在考试中,这类题目常出现。
例:
{inta,b;
a=10;
b=15;
a+b=%d"
}程序运行结果为:
(4)数据输出实例(已知inta=66;
floatb=123.56;
)
通过以下各输出语句,掌握输出函数的各种格式。
(1)printf("
%d"
a);
66
(2)printf("
%3d"
□66
(3)printf("
%-3d"
66□
(4)printf("
%f"
b);
123.560000
(5)printf("
%7.2f"
□123.56
(6)printf("
%-7.2f"
123.56□
%c"
B
(7)printf("
%x"
42
1)输出控制是由双引号括起来的格式转换控制信息.它分为两种信息:
用于说明的信息,计算机会按照原样输出;
以上例子中的“a=”它可以是任意的常量,变量,表达式汉字,字符等。
2)带有"
%"
的格式转换说明,用于指定输出数据的格式。
例如”%d”。
3)输出数据列表包括需要输出的一些数据。
各个数据之间用逗号分隔开。
输出数据的个数与输出控制中的格式转换说明的个数相等,并且在顺序上要一一对应且类型匹配。
输出数据列表中的数据可以是任意合法的常量、变量或表达式。
4)在输出控制中,格式说明的个数应与输出项的个数相同。
如果格式说明的个数少于输出项的个数,多余的输出项则不予输出;
如果格式说明的个数多于输出项的个数,则对多余的格式说明将输出不定值。
输出语句printf("
%d,%d"
,2,3,4);
的输出结果为2,3。
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)如果要输出"
时,则应该在格式控制中用两个连续的"
,即"
%%"
来表示,也就是在格式控制中出现两个连续的"
,则此时"
不再用来代表格式说明。
下面是关于以上几种特殊情况下数据的输出格式以及输出结果:
各种特殊情况时数据输出结果对比
输出语句输出结果输出语句输出结果
254);
254printf("
%2d"
%4d"
254
1.25);
1.250000printf("
%10f"
1.250000
%4.4f"
1.2500printf("
%7.4f"
1.2500
%2.0f"
1printf("
%o"
376
%#o"
0376printf("
%#x"
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.例一:
判断学生的成绩是否优秀?
a;
/*用来表示某个学生的成绩*/
scanf("
a);
/*通过键盘将成绩输入给变量a*/
if(a>
=90)
成绩优秀!
"
);
通过输入不同的值来判断输出的内容,如果输入的数据不小于90,则输出。
4.此题必须要求完全掌握。
inta=4,b=3,c=5,t=0;
if(a<
b)t=a;
a=b;
b=t;
a,b,c,t的值是:
c)t=a;
a=c;
c=t;
b){t=a;
}a,b,c,t的值是:
c){t=a;
}a,b,c,t的值是:
5.例:
判断一个数是否能被2整除?
?
/*用来表示某个数*/
/*通过键盘输入一个数给变量a*/
if(a%2==0)
a=%d能2整除"
6.例:
判断一个数是否能被3和7同时整除?
if(a%3==0&
a%7==0)
a=%d能被3和7同时整除"
7.例:
判断输入的一个字符是否是数字字符?
charch;
scanf(“%c”,&
ch);
if(ch>
=’0’&
ch<
=’9’)
printf("
ch=%c是一个数字字符"
ch);
8.例:
判断输入的一个字符是否是大写字母?
=’A’&
=’Z’)
ch=%c是一个大写字母"
四、if-else语句
if-else语句结构的一般形式:
if(表达式)
语句1
else
语句2
1.if-else语句的执行过程:
(2)如果表达式结果为真,则执行语句1,否则执行语句2
2.例一:
判断变量a是不是一个偶数,
如果a是一个偶数则输出a是一个偶数,
否则输出a是一个奇数
a=%d是一个偶数"
,a);
else
a=%d是一个奇数"
3.陷阱题:
inta=1,b=2,c=3;
if(c=a)printf(“%d\n”,c);
else
printf(“%d\n”,c);
if(c==a)
重点比较上面两个例子中c=a和c==a的区别,赋值和比较是不同的概念。
if表达式中如果是赋值语句,只要赋的值不为0,条件就永远为真。
if表达式中如果是关系语句,只要判断逻辑值为真或假。
五、
嵌套的if语句
1.嵌套的if语句即多个if或者if-else语句嵌套在一起,
记住一句话:
else总是与它前面没有配对的if配对
2.例:
判断表达式的真假是重点
inta=5,b=4,c=3,d=2;
c)
printf(“%d\n”,d);
elseif((c-1>
=d)==1)
prinft(“%d\n”,d+1);
printf(“%d\n”,d+2);
注意两点:
一是学会配对if-else,采用从后往前配对;
二是必须掌握判断a>
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>
(a>
c):
(c));
七、
switch语句
1.switch语句的一般格式:
switch(表达式)
{
case常量表达式1:
语句块1;
break;
…
case常量表达式n:
语句块n;
default:
语句块n+1;
}
(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之前。
例二:
a=1;
switch(a)
case1:
case2:
case3:
default:
a=%d\n"
请问输出的结果为多少?
2.区别下列两个例子
例一:
注:
switch语句中,注意在case的语句块后加break语句和不加break语句的区别,在考试中,经常考查该类题。
另外,考查default语句的执行(只有所有case后的常量表达式都不成立时,才执行default后的语句)。
第四章循环结构
一、
本章学习要点
明白并熟练掌握循环的过程,特别for循环是考试的重点,请必须注意以下细节:
(1)什么是循环?
重复做同样的事情就称为循环。
循环有四要素,请同学们谨记:
循环的起点,就是循环从什么时候开始
循环的终点,就是循环到什么时候结束,同学们千万要记住一般的循环
是要结束的,但是有种循环永远也结束不了,这样的循环称为死循环
循环的步长,指的是循环每次变化的值,如果循环每次都没有变化,
很容易变为死循环
④
循环体,循环体是每次重复做的事情
(2)for循环的基本结构,表达式1,表达式2和表达式3分别代表什么
(3)必须掌握循环的执行步骤
2.
掌握几种常见的使用循环解决的问题,考试中涉及很多和循环相关的考点,
因此在学习循环的过程中一定要慢慢训练使用循环解决问题的思路。
二、
while循环
while循环和for循环的循环执行过程差不多一致,
只是表达式1,2,3的位置不同而已
2.while的一般形式
while(表达式)
循环体语句}
(1while是C语言的关键字,必须小写
(2表达式是任意合法的表达式(包括:
常量、算术、关系、逻辑、赋值表达式)
(3循环体语句只能是一条语句或是一个复合语句
(4表达式不能省略,循环体语句省略时表示不做任何的操作
while的执行过程
(1)判断表达式的真假
(2)如果表达式为真则执行循环体语句,否则结束循环
4.
例
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--的变化
inty=10;
while(y--);
printf(“y=%d\n”,y)
;
}程序运行后y的值是:
三、
do-while循环
do-while语句的一般形式
do
循环体语句
}while(表达式);
(1)do是C语言的关键字,需要和while搭配使用
(2)表达式可以是任意合法的表达式
(3)循环体语句只能是一条语句或是一个复合语句
(4)表达式不能省略,循环体语句省略时表示不做任何的操作
(5)while后面的分号不能省略
do-while语句的执行过程:
(1)首先执行循环体语句
(2)判断表达式的真假
(3)如果表达式为真,则继续执行循环体语句,否则结束循环
执行步骤如下:
(1)初值:
i=0,n=0
执行循环体语句:
i++;
++i->
i=2,
判断:
n!
=0为假,则结束循环;
(2)执行完循环后继续执行循环后面的语句:
i);
输出结果为:
2
知识点举例:
Inti,n=0;
i=0;
{i++;
++i;
}while(n!
=0);
i=0,执行循环体:
printf(“%d”,i);
输出i的值为0,
判断表达式i++的真假,因为i的初值为0,则i++的值为0,
i的值为1,表大事i++值为0为假,结束循环
(2)执行循环体后面的语句:
printf(”%d\n”,i);
输出的值为1