1、1运算符与表达式【学习要点】1掌握运算符的目数、优先级、结合性等概念。2掌握算术运算及其应用。3掌握自增、自减运算及其应用。4掌握关系、逻辑运算及其应用。5掌握位运算及其应用。6掌握赋值、复合赋值运算及其应用,掌握赋值兼容时的类型转换。7掌握表达式求值时类型的自动转换和强制转换。8掌握表达式的组成,掌握逻辑表达式的优化及其副作用。9掌握逗号运算符、sizeof 运算符、条件运算符及其应用。-【例题分析】1若 int x, y,z;下列表达式中运算结果与 x=y=24 相同的是_ 。Ax=(y=z=8,4*6)Bx=y=(z=8,4*6)Cx=y=z=8,4*6Dx=(y=z=8),4*6【答案
2、】B【解析】C+语言的赋值运算有别于其它高级语言,逗号运算又是其它高级语言所没有的。在赋值表达式中,可以有多个赋值运算符,计算顺序自右向左,运算优先级低,仅高于逗号运算符。逗号既是分隔符,又是运算符,可以用一个逗号运算符或多个逗号运算符将多个表达式连接成逗号表达式,计算顺序自左向右,并将最后一个表达式的值作为整个逗号表达式的值,逗号运算优先级最低。2若 int i=6,k=0;下列表达式中运算结果使 k=7 的是_。Ak=i+kBk=k+i+ Ck=+i+kDk=k+i【答案】C【解析】自增+、自减- 运算符是 C+语言特有的。运算符+、- 出现在变量的前面或后面,其运算结果是不同的。若+、-
3、出现在变量前,则先将变量的值加1(或减 1)后,再将变量的值参加运算;反之则先将变量的值参加运算,再将变量的值加 1(或减 1)。自增、自减运算符的优先级高于算术运算符,因此对于 k=i+k:解释为 i+,再加 k;对于 k=k+i:解释为 k+,再加 i。3表达式A+B+20 的值是_ 。【答案】151【解析】不同类型的数据混合运算时,系统可以自动进行类型转换,将表示范围小的数据类型转换成另一操作数的相同类型后再参与运算,则转换为 65+66+20=151。4若 int e=8;double f=6.4,g=8.9;则 f+int(e/3*int(f+g)/2)%4 的值是_。【答案】9.4
4、【解析】不同类型的数据混合运算时,可以使用强制类型转换符,将一种数据类型强制转换成另一种数据类型后再参与运算。表达式中:e/3 的值是整型数 2,int(f+g)的值是整型数 15,int(e/3*int(f+g)/2) 的值是整型数 15,15%4 的值是整型数 3,最后加上实型数 f,得到最终值是实型数 9.4。25若 int i=65535 ,j=0x000a ,k ;k=icout a b c ;cout = ( b = c ? b : c ) ? a : ( b = c ? b : c ) ) bc)Ca0 ? +x : -x ; 则 x、z 的值是_。A100 、100B100 、
5、101C101、100D101、101【答案】?11若 int x=5,y=7,z=8;z = x+ | y+ | +z;则 x、y 、z 的值是_ 。A6、7、8B6、8、9C6、7、1D6、8、1【答案】?12若 int a=15,b=17 ,c;c = a | ( b+=a );则 a、 b、c 的值是_ 。A15 、17、0B15 、32、32C15、32、1D15、17、1【答案】?13若 int a=5,b=5,c=5;b= -ab cout void main ( ) int a = 3 , b = 6 , c = 6 ;6cout bc) ) = ” bc) ) void main ( ) short a = 5 ; bool b = 6 ; char c = B ;cout void main ( ) cout void main ( ) cout 3 ) = ” 3 ) 5 ;cout 5 ) = ” b2 endl ;【答案】第 1 行输出:?第 2 行输出:?第 3 行输出:?第 4 行输出:?第 5 行输出:?第 6 行输出:?-编程题1编写程序:求出两个实数中的最大数。编写程序如下:【答案】?2编写程序:求出三个整数中的最大数。编写程序如下:【答案】?-