设有定义 int a=3 b=4 c=5,求下列表达式的值,在表达式运行后,a b c的值分别是多少?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 23:20:33
设有定义 int a=3 b=4 c=5,求下列表达式的值,在表达式运行后,a b c的值分别是多少?
(1)a%b+b/a (2)a/b+c++ (3)-b++-c (4)(a,b,c),a++,--c,
C++
(1)a%b+b/a (2)a/b+c++ (3)-b++-c (4)(a,b,c),a++,--c,
C++
(1)先算a%b=3,再算b/a=1,最后相加得结果4.a、b值不变.规则:先乘除/取模,后加减,和数学习惯一样.
(2)先算a/b=0,再加c得结果5,最后c++.a、b值不变,c=5+1=6.规则:在以上基础上,变量右边的递增/递减运算符最后算,反之,变量左边的递增/递减最先算,仅次于括号、下标等.
(3)同理,先算-b-c得结果-9,然后b++.a、c值不变,b=4+1=5.规则同上,负号优先于乘除.不过你最好加上空格,如-b++ - c,这样可以看得出第一个“-”和“++”是和b结合的单目运算符,第二个“-”是b和c之间的双目运算符.
(4)先算括号中的a,b,c,依次计算,括号内的结果是最后一个表达式c的值为5,前两个表达式结果被丢弃,其过程也没有造成任何影响;然后算--c,c的值变为4;接着算5,a,4得最终结果4;最后算a++,a的值变为4.这个比较复杂,最后a=4,b不变,c=4,结果为4.规则:括号最优先,逗号顺序运算各个表达式,得到最后一个表达式的值,其优先级最低,仅次于变量右边的递增/递减运算符,其他的上面都说过了.
需要注意的是,这里是按照ANSI C的标准进行解读的,实际上不少编译器没有真正完全按照ANSI C标准去写,情况可能有所不同.如果你不放心,可以把它们拆分开来都编译一遍做试验,一切要以你用的编译器的实际情况为准.不过个人认为最有效的办法就是编程时不要使用这种形式的表达式,将递增、递减、逗号等单独运算,对绝大多数编译器,这样不会降低效率.然而却减少了代码被编译器误读的可能性,也使你的代码更清楚易懂,可谓一举两得.
(2)先算a/b=0,再加c得结果5,最后c++.a、b值不变,c=5+1=6.规则:在以上基础上,变量右边的递增/递减运算符最后算,反之,变量左边的递增/递减最先算,仅次于括号、下标等.
(3)同理,先算-b-c得结果-9,然后b++.a、c值不变,b=4+1=5.规则同上,负号优先于乘除.不过你最好加上空格,如-b++ - c,这样可以看得出第一个“-”和“++”是和b结合的单目运算符,第二个“-”是b和c之间的双目运算符.
(4)先算括号中的a,b,c,依次计算,括号内的结果是最后一个表达式c的值为5,前两个表达式结果被丢弃,其过程也没有造成任何影响;然后算--c,c的值变为4;接着算5,a,4得最终结果4;最后算a++,a的值变为4.这个比较复杂,最后a=4,b不变,c=4,结果为4.规则:括号最优先,逗号顺序运算各个表达式,得到最后一个表达式的值,其优先级最低,仅次于变量右边的递增/递减运算符,其他的上面都说过了.
需要注意的是,这里是按照ANSI C的标准进行解读的,实际上不少编译器没有真正完全按照ANSI C标准去写,情况可能有所不同.如果你不放心,可以把它们拆分开来都编译一遍做试验,一切要以你用的编译器的实际情况为准.不过个人认为最有效的办法就是编程时不要使用这种形式的表达式,将递增、递减、逗号等单独运算,对绝大多数编译器,这样不会降低效率.然而却减少了代码被编译器误读的可能性,也使你的代码更清楚易懂,可谓一举两得.
设有定义 int a=3 b=4 c=5,求下列表达式的值,在表达式运行后,a b c的值分别是多少?
设有定义int a=3b=4c=5则以下表达式中,值为0的表达式是:A a&&b;B:a
设有语句int a=3,b=4 ,c=5 ;则表达式:(a+b )+c-1&&b+c/2 的值为______ ,表达式
int a=1,b=2,c=3; 执行表达式(a=b+c)||(++b)后a,b,c的值分别是多少啊
设有int a=2,表达式(a1的值是( B ) A.1 B.2 C.4 D.8
有谁知道,设有如下定义:int a=2,b=3,c=4;则值为0的表达式为:
设有int a=3, b=-4, c=5;表达式(a
C语言,求表达式的值int a=5,b=2,c=3,d=4;则表达式a>b?a:c>d?c:d的值是多少因为a>b所以取
设有变量定义int a=2,b=4,c=6;则表达式a>b?a:c>d?b:d的值是 ( ) a 2 b 4 c 6 d
设有定义:int a=5 ,b=2;以下值为1的表达式是 A b!=a B!(b==a/2) C a!=b‖a>=b D
设有定义“char a=3,b=6,c;”,计算表达式c=(a^b)《2后的二进制度值是?
设有定义int a[]={0,1,2,3,4},*p;,执行语句p=a+2;后,表达式*p的值为( ) A)1 B)2