第三章
特别要注意:
C
语言中是用非
0
表示逻辑真的,用
0
表示逻辑假的。
C
语言
有
构造类型
,
没有
逻辑类型
。
关系运算符号:注意
<=
的写法,
==
和
=
的区别!
(考试重点)
if
只管后面一个语句
,
要管多个,请用大括号
!
1
)关系表达式:
a、表达式的数值只能为 1(表示为真),或 0(表示假)。
如 9>8 这个关系表达式是真的,所以 9>8 这个表达式的数值就是 1。
如 7<6 这个关系表达式是假的,所以 7<6 这个表达式的数值就是 0
b、考试最容易错的:就是 int x=1,y=0,z=2;
x<y<z 是真还是假?带入为 1<0<2,从数学的角度出发肯定是
错的,但是如果是 C 语言那么就是正确的!因为要 1<0 为假得到 0,表达式就变成
了 0<2 那么运算结果就是 1,称为了真的了!
c、等号和赋值的区别!
一定记住“=”就是赋值,“= =”才是等号。
虽然很多人可以
背
诵,但我依然要大家一定好好记住,否则,做错了,我一定会强烈的鄙视你!
2
)逻辑表达式:
核心:
表达式的数值只能为 1(表示为真),或 0(表示假)。
a) 共有&& || ! 三种逻辑运算符号。
b) !>&&>|| 优先的级别。
c) 注意短路现象。考试比较喜欢考到。 详细请见书上例子,一定要会做例 1 和例 2
d) 表示 x 小于 0 大于 10 的方法。
0<x<10
是不行的(
一定记住
)。
是先计算 0<x 得到的结果为 1 或则 0;再用 0,或 1 与
10 比较得到的总是真(为 1)。所以一定
要用
(0<x)&&(x<10)
表示比
0
大比
10
小。
3
)
if
语句
a、else 是与最接近的 if 且没有 else 的语句匹配。
b、交换的程序写法:t=x;x=y;y=t;
c、if(a<b)t=a;a=b;b=t;
if(a<b){t=a;a=b;b=t;}两个的区别,考试多次考到了!
d、单独的 if 语句:if(a<b)t=a;
标准的 if 语句:if(a<b)min=a;
else min=b;
嵌套的 if 语句:if(a<b)
if(b>c)printf(“ok!”);
多选一的 if 语句 if(a= =t)printf(“a”);
else if(b= =t)printf(“b”);
else if(c= =t)printf(“c”);
else pritnf(“d”);
通过习题,要熟悉以上几种 if 语句!
经典考题:结合上面四种
if
语句题型做题,答错了,请自行了断!预备,开始!
int a=1,b=0;
if(!a)b++;
else if(a= =0)
if(
a)b+=2;
else b+=3;请问 b 的值是多少?
如果没有看懂题目,你千万不要自行了断,这样看得懂不会做的人才会有理由的活着。
正确的是 b 为 3。
int a=1,b=0;
if(!a)b++; 是假的不执行
else if
(a= =0)
是假的执行
if(
a)b+=2;
属于 else if 的嵌套 if 语句,不执行。
else b+=3; if-else-if 语句没有一个正确的,就执行 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=a>b?c:d>e?d:e;求 k 的数值时多少? 答案为 san
5
)
switch
语句:
a) 执行的流程一定要弄懂!上课时候详细的过程讲了,请自己一定弄懂!
b)注意有 break 和没有 break 的差别,书上的两个例子,没有 break 时候,只要有一个
case 匹配了,剩下的都要执行,有 break 则是直接跳出了 swiche 语句。break 在 C 语言中就是
分手,一刀两断的意思。
c) switch 只可以和 break 一起用,不可以和 continue 用。
d) switch(x) x:是整型常量,字符型常量,枚举型数据。
{case 1: …. 不可以是变量。
case 2: ….
}
e)switch 是必考题型,请大家一定要完成书上的课后的 switch 的习题。
第四章
1
)三种循环结构:
a)for() ; while(); do- while()三种。
b)for 循环当中必须是两个分号,千万不要忘记。
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
d) do-while()循环的最后一个 while();的分号一定不能够丢。(当心上机改错),
do-while
循环是至少执行一次循环。
2) break
和
continue
的差别
记忆方法:
break:是
打破
的意思,(破了整个循环)所以看见 break 就退出整个一层循环。
continue: 是
继续
的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的
语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。
3
)嵌套循环
就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层
是处理二维数组的。
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==0)printf(“\n”); 如果
i 是从 1
开始的话,就是 if(i%5==0)printf(“\n”);
}
6
)如何整除一个数:
i%5==0 表示整除 5
I%2==0 表示整除 2,同时表示是偶数!
7
)输入
123
,输出
321 逆序输出
数据
int i=123;
while(i!=0)
{
printf(“%d”,
i%10)
;
i=i/10;}
8)for
只管后面一个语句:
int i=3;
for(i=3;i<6;i++):
printf(“#”): 请问最终打印几个#号?答案为一个!
9
)不停的输入,直到输入
#
停止输入!
不停的输入,直到输入
$
停止输入!
while( (x=getchar())!=’ # ’ ) while( (x=getchar())!=’ $ ’ )
不停的输入,直到遇到?停止输入!
while( (x=getchar())!=’ ? ’) 解说:一定要注意这种给出了条件,然后如何去写的
方法!
10
)
for
循环和
switch
语句的和在一起考题!
11
)
多次出现的考题
:
int k=1 int k=1;
while(
- -k); while(
k- -);
printf(“%d”,k); printf(“%d”,k);
结果为 0 结果为-1