符合c语言赋值表达式
A. 在c语言中11种赋值运算符的具体含义,用法
1.六个变量=表达式的赋值:
=是赋值运算符,/=是除后赋值,*=是乘后赋值,
%=是取模后赋值,+=是加后赋值,-= 是减后赋值,
2.<<=是左移后赋值,变量<<=表达式 左移就是将左边的数的二进制各位全部左移若干位,右边的数指定移动位数,高位丢弃,低位补0, 移几位就相当于乘以2的几次方。
3.>>=是右移后,变量>>=表达式,右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。
对于有符号数,某些机器将对左边空出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”);
对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。
如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统,系统移入0或系统移入1。
移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。
4.&= 按位与后,变量&=表达式,按位与是指:参加运算的两个数据,按二进制位进行“与”运算。
如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。
5.^= 按位异或后赋值,变量^=表达式,参与运算的两个量按照对应的位进行异或运算,且
0^0→0, 0^1→1, 1^0→1, 1^1→0
一个数与0异或仍保持不变,如a^0=a
一个数与自己异或结果为0,如a^a=0
11.|=是按位或后赋值,变量|=表达式,参与运算的两个量按照对应位进行或运算,且0|0→0, 0|1→1, 1|0→1, 1|1→1。
(1)符合c语言赋值表达式扩展阅读:
1.赋值表达式的功能是计算表达式的值再赋予左边的变量。
赋值运算符具有右结合性,因此a=b=c=5可理解为a=(b=(c=5))。
2.在其它高级语言中赋值构成了一个语句,称为赋值语句;
而在C语言中,
把“=”定义为运算符,从而组成赋值表达式。
3.凡是表达式可以出现的地方均可出现赋值表达式。
例如:式子x=(a=5)+(b=8)是合法的。它的意义是把5赋予a,8赋予b,再把a,b相加,和赋予x,故x应等于13。
4.在C语言中也可以组成赋值语句。
按照C语言规定,任何表达式在其未尾加上分号就构成为语句。
B. 符合C语言语法的赋值表达式是A、d=9+e+f=d+9 B、d=9+e,f=d+9 C、d=9+e,e++,d+9 D、d=9+e++=d+7
需要首先明确
1.)赋值操作符的优先级比“+”更低。
2.) 赋值操作符的返回值是赋值后的左操作数的值。
3.) 常量和表达式不能作为左值,不能作为左操作数(即不能放在二元运算符的左边)。
以上3点判断如下:
A:可以分割为两个连续的赋值操作,连续赋值操作从右至左执行,第一个执行赋值操作左边为(9+e+f)是表达式,错误。编译器应该报错。可以修改为d=9+e+(f=d+9)。
B:正确。
C:d+9是要干什么?也没有赋值。语法错误。
D:同A
建议写出来编译一下。映像会深刻些。某些教材是比较简略的,建议查查C++
primer之类的书籍。
C. 24.以下符合C语言语法的赋值表达式是( )。 A.a=9+b+c=d+9
答案选择B
A出现9+b+c=d+9这样的式子是不能完成赋值的
D的错误与A相同
C是三条语句,a=9+b;b++;c+9,也就是说后面的b++和c+9在这里没有意义
B括号中是逗号表达式,从左往右执行,返回最后一个表达式的值
D. 符合c语言语法的赋值表达式是 A. d=9+e,e++,d+9 B. d=9+e,f=d+9 问A和B选项是否都对,请详解
都对。
A相当于(d=9+e),e++,d+9算完括号后是一个逗号表达式。
B相当于(d=9+e),(f=d+9)算完括号后也是一个逗号表达式。
E. c语言题:符合C语言语法的赋值表达式是
B
C
=左边必须是左值(可以被赋值的值,也被称作变量表达式,变量、数组表达式、指针表达式的值都是左值。但是算数、逻辑运算表达式、函数表达式的值不是左值所以不能被赋值)所以A、D错误
C是逗号表达式。(逗号表达式的值和类型都由逗号右边的表达式决定,就是说连续逗号表达式比如a,b,c,d等价于a,(b,(c,(d)))
-
赋值仅仅是一种表达式,也有值和类型a
=
1。的值是1类型是int,所以完全可以赋值给另一个int类型变量b
=
(a
=
1)也就是b
=
a
=
1。不存在不可以连续赋值的说法。
括号表达式也是一样。只要有类型和值就能赋值给对应的变量这是赋值的原则。
B和C的写法在标准C编译器上都是可以编译通过的。
F. 9、以下符合C语言语法的赋值表达式是 A、d=9+e+f=d+9 B、d=9+e,f=d+9 C、d=9+e,e++,d+9 D、d=9+e++=d+7
B、d=9+e,f=d+9
C、d=9+e,e++,d+9
//经测试,上面两个都对。
G. 下面表达式中符合c语言语法的赋值表达式的是
答案是b.
a和d中都有连等,所以显然错误
c选项中,赋值号右边不能用逗号表达式,所以错误。
本题考点在于赋值运算规则的运用。
c语言中不允许连续在一个表达式中出现连续的赋值运算。