int k, i =2 , j=4;则表达式. k=(++i)×(j--)的值是?

作者&投稿:中叔敬 (若有异议请与网页底部的电邮联系)
int k,i=2,j=4;则表达式k=(++i)*(J--)的值是多少,怎么运算~

k=3*4,k=12,因为++i是先自增然后参与运算,J--是先参加运算,然后再自减。

因为运算符优先级为++大于+
所以第二条语句应该是k=(i++)+j
分解为下面的步骤
1.i+j;(由于i++是先使用i值在表达式中进行运算,再自加1)
2.k=第1步的结果3;
3.i++;(i从1自加为2)

首先你要明白++i和i++的意思,++i即++在变量前的意思是先增加i的值在计算表达式的值,而i++的意思则是相反的,先计算表达式的值,然后i在自加1,所以你这个表达式的意思就是
k=(++i)x(j--);
++在i前面,所以i的值加一,--在j后面,所以j的值是原来的值,
k=(3)x(4);
k=12;
这时候的i,j分别是3(表达式运算前i++),3(表达式完成后j--)

k=(++i)*(j--);相当于以下语句组合:
i++; k=i*j; j--; //结果k=3*4=12

k=3*4=12


神池县15976449229: int k, i =2 , j=4;则表达式. k=(++i)*(j -- )的值是? -
钊徐舒瑞: k=(++i)*(j--);相当于以下语句组合: i++; k=i*j; j--; //结果k=3*4=12

神池县15976449229: 形参与实参,请大侠们给我解释解释 -
钊徐舒瑞: 给你举个例子:#include<stdio.h> main() { int i=2,j=4; int k; k=fun(i,j); //这里i,j是实参,k的值是函数的返回值 printf("%d,%d",i,j); printf("%d",k); } int fun(int a,int b) //这里a,b是形参 int m; a=a+1; //a的值(形参)加1了,但实参i的值不变 b=b+1; ...

神池县15976449229: 写出程序的输出结果: int i,j,k; i=2;j=3; k = i*j==6; printf("%d\n", k); 结果是多少?怎么算的 -
钊徐舒瑞: 运算符优先级==>=,因此先比较i*j和6是否相等,相等,故返回1,再执行赋值,即k=1.故输出1.

神池县15976449229: 执行下列语句后,i的值为 int i,j.k,l,m;i=(j=2,k=3,l=4,m=k -- ); -
钊徐舒瑞: 逗号运算符;在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式从左到右依次计算,但整个表达式的值是最后一个表达式的值. 将m的值赋给i m=k--表示先将k的值赋给m,k再减个一 即i=m=3,,k=2 答案是3

神池县15976449229: C语言中设i=3,j=4,k=i+++j, k,i,j分别等于多少? -
钊徐舒瑞: int i=3,j=4; int k; k=i+++j; 按运算符优先级,可写成 k=(i++) + j; i++ 是后缀加加,表达式里用原值,出了表达式自增1; 所以上面运算可写成2个式子: k=(i) + j; i=i+1; 所以得: k=7 i=4 j=4

神池县15976449229: int i=2,j=3,k=4,a=4,b=5,c=6,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c的值是 -
钊徐舒瑞: 1L正解,ik为假,所以a=1,b=0 按计算顺序,逻辑与计算到b=0的时候自动结束运算,所以c的值不变 顾c=6

神池县15976449229: 用for循环 输出1,2,3,4,5,6,7,8,9,0 -
钊徐舒瑞: #include <stdio.h> int main() {int i,j,k=1,t;for(i=0;i<4;i++){printf("\n");for(j=0;j<7;j++)if(j==3-i){for(t=0;t<i+1;t++){printf("%d",(k++)%10);if(i+1>=2)printf(" ");}}else printf(" ");}return 0; } //看我的吧,运行过了,和你的图一样

神池县15976449229: C语言 输出图形 -
钊徐舒瑞: #include<stdio.h> #include<stdlib.h>main() { int i,j,k; for(i=1;i<=4;i++) {for(j=1;j<=4-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n"); } for(i=1;i<=3;i++) {for(j=1;j<=i;j++)printf(" ");for(k=1;k<=7-2*i;k++)printf("*");printf("\n"); } system("pause");}

神池县15976449229: C语言里的while循环的判断语句是不是只能有一个,用“&&”连接的算无效? -
钊徐舒瑞: 如果&&左边的表达式为假,则右边的表达式不再执行,结果为假/*可以连接多个,但必须都为真时,判断才为真*/ # include int main() { int i=3,j=4,k=5; while (i && j && k)//非0是真 { printf("i=%d,j=%d,k=%d\n",i,j,k); i--; j--; k--; } } /* ------- i=3,j=4,k=5 i=2,j=3,k=4 i=1,j=2,k=3 --------- */

神池县15976449229: int i=2,j=2,k=0;int a;a=++i||++j&&k++;printf("%d,%d,%d",i,j,k);输出的结果是什么?a的运算过程是怎样 -
钊徐舒瑞: 这道题考的是逻辑运算的问题.首先应该进行++i的运算,i=2则++i=3; 之后++i||(或)(++j&&(与)k++)这里++j&&k++是逻辑运算应该放在一起,得到的值是一个boolean值 把(++j&&k++)看成一个表达式A 即++i||A ++i=3 也就是3||A 逻辑“或”运算,或运算两边如果有一个为真则为真.所以a=1; 而表达式A(即++j&&k++)则没有执行.如果不明白可以追问.希望我的解答对你有所帮助.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网