设有定义 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++

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 08:50:20
设有定义 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++

设有定义 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++
设有定义 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++

设有定义 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=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标准去写,情况可能有所不同.如果你不放心,可以把它们拆分开来都编译一遍做试验,一切要以你用的编译器的实际情况为准.不过个人认为最有效的办法就是编程时不要使用这种形式的表达式,将递增、递减、逗号等单独运算,对绝大多数编译器,这样不会降低效率.然而却减少了代码被编译器误读的可能性,也使你的代码更清楚易懂,可谓一举两得.

设有定义int a=3b=4c=5则以下表达式中,值为0的表达式是:A a&&b;B:a 设有int a=3, b=-4, c=5;表达式(a 设有定义int a=3,b,c=5;将以下3条语句++a;b=a+c;++c;写成一条语句 71.设有定义:int a=2,b=3,c=4;则以下选项中值为0的表达式是( ) A.(a 设有 int a =3,b=-4,c=0;表达式((a>b)?a:b)&&c 1.已有定义 int a[10],*p; 则正确的赋值语句是( ).A.p=100; B.p=a[5]; C.p=a[2]+2; D.p=a+2;2.若有定义int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 ( )A.*p B.a[1] C.*a D.a[10]3.设有定义int x[6]= 1.已有定义 int a[10],*p; 则正确的赋值语句是( ).A.p=100; B.p=a[5]; C.p=a[2]+2; D.p=a+2;2.若有定义int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 ( )A.*p B.a[1] C.*a D.a[10]3.设有定义int x[6]= 1.已有定义 int a[10],*p; 则正确的赋值语句是( ).A.p=100; B.p=a[5]; C.p=a[2]+2; D.p=a+2;2.若有定义int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 ( )A.*p B.a[1] C.*a D.a[10]3.设有定义int x[6]= 设有定义int a ,b=10;则执行语句a=b 15)设有定义:int a[6]={1,2,3,4,5,6 },*p=a;,*(p+3)的值是 A) 3 B)4 C)5 D)6 设有如下程序段:int a=2,b=1,c=3; if(a C语言 模拟填空题 int a=2,b=5;则表达式21%9/(float)a+4/b*b的运算结果为( ).1.5 0 21设有定义int a[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 结果为7的表达式是:*9p+3 *(p+3) *p+2 *(p+2)设有变量定义语句char a; 则下面的 设有如下定义和执行语句,其输出结果为( ) int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b)A.4 2 B.3 2 C.2 3 D.2 2 设有定义,int a=1,b=3;float k=9;下列选项中错误的表达式是Aa=a+a>=a B-k-- C k%int(k)Dk>=b>=a 设有定义 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++ 设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是A.(!a==1)&&(!b==0) B.(a c语言的题目:设有定义Int a=3,b=4;则表达式a+b,a-b,a--的值为3,答案为什么是3不明白?谢谢谢谢的!请快点回复我 设有定义int a=20,b=3;则表达式a+=(b%=2)的值为——( B )为什么设有定义int a=20,b=3;则表达式a+=(b%=2)的值为——( B )为什么 A.20 B.21 C.0 D.23