- 2
- 0
- 约8.77千字
- 约 50页
- 2019-12-02 发布于湖北
- 举报
关系运算注意: 例 若int a=0, b=5, x=100; 则 a=x=b的值为 1 例 5278符合C的语法, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0); 则a= 2 例 ‘a’0 结果为 ‘A’100 结果为 1 0 2.3.3 逻辑运算符和表达式 3种逻辑运算符: (逻辑与) 如果两个操作数均为逻辑真,则结果为逻辑真,否则为逻辑假,即“两真为真,否则为假”或“见假为假,否则为真”。 ||(逻辑或) 如果两个操作数均为逻辑假,则结果为逻辑假,否则为逻辑真,即“两假为假,否则为真”或“见真为真,否则为假”。 !(逻辑非) 将逻辑假转变为逻辑真,逻辑真转变为逻辑假,即“颠倒是否”,它是逻辑运算符中惟一的单目运算符。 例:判断字符变量ch的值是否是小写字母: ‘a’ = ch = ‘z’ 数学上是对的,但在c语言中是个永真条件 应该是: ‘a’ = ch ch = ‘z’ 或 : ch=‘a’ ch=‘z’ 例:判断字符变量ch的值是否是字母(小写或大写): ch=‘a’ cha=‘z’ || ch=‘A’ cha=‘Z’ ! || 高 低 优先级: 小练习 1、读入一个字符,若该字符是小写字母则变为大写字母输出,否则,原样输出 算法: (1)读入字符ch; (2)if(ch是小写字母) 输出ch-32 else 输出ch scanf(“%c”, ch); if(ch=’a’ ch=‘z’) printf(“%c”, ch-32); else printf(“%c”, ch); 例 a=4;b=5; !a ab a||b !a||b 40||2 532||84-!0 ‘c’‘d’ 值为1 值为0 值为1 值为1 值为1 值为1 值为0 混合运算时的优先级 (1)逻辑运算(非运算除外)低于关系运算,关系运算低于算数运算 (2)非运算(!)优先级高于算数运算 判断闰年 闰年的条件: 能被400整除 或 能被4整除但不能被100整除 变量year是闰年: year%400==0 || (year%4==0 year%100!=0) 小练习 编程,从键盘读入一个整数,代表一个年份,判断该年份是闰年还是平年 思路: (1)读入整数year (2)if(是闰年) 输出“是闰年” else 输出“是平年” 2.3.4 自增自减 作用:使变量值加1或减1 种类: 前置 ++i, --i (先执行i+1或i-1,再使用i值) 后置 i++,i-- (先使用i值,再执行i+1或i-1) 例 j=3; k=++j; k=? j=3; k=j++; k=? j=3; printf(“%d”,++j); 输出? j=3; printf(“%d”,j++); 输出? a=3;b=5;c=(++a)*b; c=? a=3;b=5;c=(a++)*b; c=? a=1,c=(++a)+(++a) c=? 注意: (1)自增运算符(++),自减运算符(--),只能用于变量,而不能用于常量或表达式, (2)++和--的结合方向是“自右至左”。 例 自增、自减运算符的使用 #include stdio.h int main( ) { int i=8; printf(%d\n,++i); /*i加1后输出9,i=9*/ printf(%d\n,--i); /*i加1后输出8,i=8*/ printf(%d\n,i++); /*输出i为8之后再加1(i为9)*/ printf(%d\n,i--); /*输出i为9之后再加1(i为8)*/ printf(%d\n,-i++); /*输出-8之后再加1(i为9)*/ printf(%d\n,-i--); /*输出-9之后再加1(i为9)*/ return(0); } 2.3.5 赋值运算 赋值运算符 = 赋值表达式:用 = 将一个变量和一个表达式连接起来的式子 变量 = 表达式 例如: fahr =
原创力文档

文档评论(0)