c&&a2、
3、!逻辑表达式:包含逻辑运算的表达式,表达式的结果只有逻辑真(非0,对应值为1)与逻辑假(0,对应值也为0)。优化算法:C/C++对与、或运算采用优化算法,即前一项已经决定了表达式的值,则不会再算后一项。如:a=0;b=40
4、;a&&b++;则b++不会被运算,即它仍为40;又如b
5、
6、a++;则b已经非0,a++也不会被运算。例:要求当整型变量A的值为奇数时,表达式的值为真;当A的值为偶数时,表达式的值为假,以下不满足要求的表达式是( )A、A%2==1B、!(A%2==0)C、!(A%2)D、A%2对参与逻辑运算的操作数有:非0即为真!判断以下表达式的结果:0.1&&0.3,0
7、
8、3.5,!0,1,!!3.45例:执行以下程序段后,a,b,c的值是:inta=0,b=0,c=0;++a
9、
10、++b
11、
12、++c;例:以下程序运行后,输出结果voidmain(){inta=
13、1,b=2,m=0,n=0,k;k=(n=b>a)
14、
15、(m=ab?a:b例:已知charch='A';则下列表达式值是()ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;A、ZB、AC、aD、z格式为:e1?e2:e3;6、逗号运算符运算逗号表达式时从左到右依次进行,表达式的值及类型由最右边的表达式决定。逗号运算符的优先级是所有运算符中最低的。
16、用逗号将多个表达式连接成一个表达式。如e1,e2,e3,e4。例:y=3,x=3;cout<<(++x,y++);输出什么?表达式(a=3*5,a*4,a+5)的值为()表达式(a=3*5,a++,a*4,a+5)的值为()7、自增运算符“++”和自减运算符“--”:1、前缀表达式:++x,--x;其中x表示变量名,先完成变量的自增自减1运算,再用x的值作为表达式的值;2、后缀表达式:x++,x--;先用x的当前值作为表达式的值,再进行自增自减1运算。如a=8;b=a++;c=++a;其中赋给变量b的值为表达式(a++)的值,不应该理解为a的值,则
17、b=8,c=10;注意:自增、自减运算只能用于单个变量,不能用于表达式或常量。如:++(a+b),与5++,constintN=0;N++;等都是错误的。3、以下语句执行后a,b,c,d的值分别为:a为,b为,c为,d为。a=3;b=5;c=++a*b;d=a++*b;1、下列程序的输出结果为()intx=19;cout<<--x;2、若a的值为10,则语句printf(“%d”,a++);与printf(“%d”,++a);的输出结果分别是和;8、位运算符:按二进制位逐位运算进行位运算时,首先要将操作数转化为二进制,然后再将对应位进行位运算!操作
18、数不能为浮点型,只能是整型或字符型。(1)、位反运算符~是单目运算符,格式为:~操作数负数在计算机中用补码表示,求补码的算法是将对应的二进制值按位求反加1。问:~23的值为?(2)、位与运算符&,使用格式为:操作数1&操作数2位与可将操作数的若干位置置0;(0、1和0求与,结果都为0,和1求与,结果保持不变)问:表达式15&38和0x13&0x17的值分别是?位或可将操作数的若干位置置1;(0、1和0求或,结果不变,和1求或结果为1)(4)、位或运算符|,使用格式为:操作数1|操作数2问:33|19的值为?(3)、位异或运算符^,使用格式为:操作数
19、1^操作数2位异或可将操作数的若干位置翻转。(0、1和0异或,结果保持不变,和1异或发生翻转)问:35^78的值为?移位运算是将整型操作向左或向右移动指定的位数。左移时,移出位被舍弃,右边空出位补0;右移时,移出位被舍弃,空出位补0或符号位。位运算的结果是表达式的值,不会影响操作数的值。如a>>2和2<<1。(5)、移位运算符<<,>>,使用格式为:操作数1>>(或<<)移位位数问:35<<2的值为?9、长度运算符sizeof,格式:sizeof(表达式)可以得到表达式(变量或数据类型)在内存中所占的字节数。如inta;sizeof(int);si
20、zeof(a);例:2.22,2.23sizeof(数组名)时,返回该数组所有元素所占的字节数。10、单目运算符*和&&表