1、 If语句知识点总结一. if语句的三种基本形式(1)if (表达式)语句;例: if(xy) printf(“%d”,x); (2)if(表达式) 语句1;else语句2; 例:if (xy) printf(“%d”,x); else printf(“%d”,y); (3)if(表达式1)语句1; else if(表达式2)语句2; else if(表达式3)语句3; else if(表达式m)语句m; else 语句n; 例:if (number10)cost=0.15; else if(number30)cost=0.10; else if(number100)cost=0.075; e
2、lse if(number500)cost=0.05; else cost=0.01; c语言中的六大陷阱 1.if(表达式)一般为逻辑表达式或关系表达式输出1/0,但原则上可以是任何变量、常量和表达式; 2.if(常量)-C语言中任何非零的数都被认作为真; 例一:int i=5; if(2)printf(%dn,+i); else printf(%dn,-i); 输出值:6 例二:int i=5,a=3,b; if(b=a)printf(%dn,+i); /*上面括号里“b=a”即将a的值赋给b,所以该条件为真*/ else printf(%dn,-i); 输出值:6 例三:int i=5,
3、a=3,b=9; if(b=a)printf(%dn,+i); /*括号中“=”含义为“等于”,所以是假*/ else printf(%dn,-i); 输出值:43.注意:if(表达式)语句;表达式里面是=还是=4.如果if后面的表达式是多个关系表达式,要注意关系运算符 是两两进行比较的! int a=6,b=5,c=4,i=5; if(abc)printf(%dn,+i); /*括号中“abc”,先判断“ab”,为真,值为1;然后判断“1c”,为假,所以“abc”为假*/ else printf(%dn,-i); 输出值:45.复合语句:=2条的语句用括起来,共同完成一定功能 注意复合语句的
4、用法!6.在上机改错题中,如果在if语句后面的表达式中出现“=”,90%要将“=”改为“=”。可乐雪碧原理/*输入两个实数,由小到大输出*/超级考点:交换e.g. #include void main( )int a,b,t;printf(“请输入a,b的值:n”);scanf(“%d,%d”,&a, &b);if(ab);t=a;a=b;b=t;printf(“%d,%dn”,a,b);注:1.如果在程序中遇到变量t或temp,就要联想变换; 2.验证程序结果一定要全面! 3.逻辑改错。 4.不得增加行,不得删掉行。交换:1.if(ab) t=a;a=b;b=t; 不是交换! /*分号标志此
5、语句结束,在运行“t=a”后,此语句已经结束*/2.正宗的交换有以下两种形式:1)if (ab) t=a,a=b,b=t;2) if (ab) t=a;a=b;b=t;3.if (ab);t=a;a=b;b=t/*这个语句为空语句,注意!*/“;”是语句结束的标志。if(ab) t=a;a=b;b=t;if(bc) t=a;b=c;c=t;if(ac) t=a;a=c;c=t;/*上面的程序错误,正确应该第二条和第三条交换位置*/e.g.a=58,b=96,c=121.if(0) 不交换 a=58,b=96,c=122.if(1) 交换 a=58,b=12,c=963.if(0) 不交换 a58,b=12,c=96短路现象:【空语句】#include void main (),;(| )();(,);执行后输出的结果是(),以下程序运行后的结果是()#include void main (),;();前面括号中“”意为将 “”的值赋给,非零输出();();