设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为___?

作者&投稿:不解 (若有异议请与网页底部的电邮联系)
设变量定义为整型,则表达式n=i=2,++i,i++的值为5~

这同编译器的处理方法有关。

按语法,
int n,i;
printf("%d
", (n=i=2,++i,i++) );
得 3。

计算顺序:
这是逗号表达式,逗号表达式的结果 用 最右面一个表达式的结果。
(1)n=i=2; n得2,i得2
(2)++i; 前缀加,表达式里要 先增1再使用,i 变 3
(3)i++; 后缀加,表达式里用原值,出了表达式后才增1。所以 i 不变,等于 3。
逗号表达式 的结果 用 最右面一个表达式的结果,也就是 (3)的结果。
所以 答案 是 3,不是 5 。

可能和编译器有关,编译时入栈顺序的问题。
windows vs2010下测试,你的理解是对的
int main(){int i;i =2;int dd = ++i+i++;printf("dd = %d i = %d
",dd,i);i =2;int ww = ++i*i++;printf("ww = %d i = %d
",ww,i);
}
运行结果

按优先级和结合律 原表达式相当于 ((n=(i=2)),++i),i++
要注意赋值表达式的值是左边操作数的值,逗号表达式是右边操作数的值
所以该表达式是i++的值 i++是先得出i的值再+1的 所以就是求前面i的值 很明显通过前面计算i=3了
即表达式的值应该也为3吧。 不过有些编译器也可能输出4 这样的表达式很没意义

n和i都是2
++i 就是先给 i 加个1;然后在使用 I i=3
i++就是先使用 i ;在加 1 i=4

int n, i, temp;
n=i=2;
temp = ++i; // temp = 3, i = 3
temp = i++; // temp = 3;
// i = 4

没看明白你问题的意思,不过
++
在变量前面和在后面的优先等级是不一样的。

n=2,i=3;


若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是...
【答案】:D D。【解析scanf是键盘输入语句,%d是打印十进制文件,&X就是把你从键盘输入的值赋给X后面以此类推,因此正确答案为D。

设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为___?
所以该表达式是i++的值 i++是先得出i的值再+1的 所以就是求前面i的值 很明显通过前面计算i=3了 即表达式的值应该也为3吧。 不过有些编译器也可能输出4 这样的表达式很没意义

设变量已正确定义为整型,则表达式"n=i=2,++i,i++"的值为___
++i的值 等于i+1 之后的值 即++i=3 ,i=3 i++的值等于i 的值为3

若变量已正确定义为int型。要通过语句scanf("d,%d,%d,",&a,&b,&c...
lz答案好像是c吧 应为scanf中引号里的逗号是你必须要输入的 否则结果会不对的,逗号后面的空格随便几个的;scanf是回车结束输入 如果是 scanf("%c,%c,%c,",&a,&b,&c); 按b输出是乱码;这样是不能在输入的时候加空格等特殊字符的,否则计算机会把他们当成字符串读入;而且这个时候输出应该是...

设变量已正确定义为整型,则表达式(n=i=2,++i,i++)的值是多少
逗号表达式 取最右侧的值。i=2;++i变为3 i++先使用,后改变i的值。结果为 3.

设变量i已正确定义为整型,且初值为0,则printf("%d,%d",++i,++i)的输...
2,1 已定义i=0,当用printf(右结合性)输出时,系统先运算右边的++i(在输出之前先进行++运算,区别于i++)得到结果1,给第二个%d;然后再进行一次++i运算得到结果2,给第一个%d。所以最终结果输出的是2,1.

...则执行语句"i---i;"后,i的值为 _2__ 2、若变量已正确定义并...
i---i;是错误表达式,它只执行i--;并不执行-i,所以结果是2。A和B都是正确的表达式。A就不说了,很常见;B是逗号表达式,可分为逗号前后两个表达式来理解,都是正确的。

若变量已正确定义并赋值,表达式___不正确。
我认为C不正确:&&是逻辑运算符号,要求左右都要有变量或常量,结果左边没有错 A:位逻辑与运算式 B:位逻辑异或运算式 D:逗号表达式

若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )。_百...
【答案】:B A选项中不能将变量Y赋给表达式,c选项中错误与A选项一样,D选项中强制类型转换表达式应写成(double)x/10。

若以下选项中的变量已正确定义,则正确的赋值语句是A.x1=26.8%3; B.1...
【答案】:C 在正确的赋值语句中,赋值符号的左边不能为常量或表达式,而右边不能为变量或表达式。从题目来看,选项A中赋值符号的右值为表达式,明显是错误的;选项B中,左值为表达式,也明显是错误的。在选项D中,表达式是x4=1+2=3,由于=号运算符的结合方式是自右向左结合,那么,该表达式先执行...

乐都县13232503708: 设变量已正确定义为整型,则表达式"n=i=2,++i,i++"的值为________ --
钮径头风:[答案] 等于3 ++i的值 等于i+1 之后的值 即++i=3 ,i=3 i++的值等于i 的值为3

乐都县13232503708: 设变量定义为整型,则表达式n=i=2,++i,i++的值为5 -
钮径头风: 这个是逗号表达式(n=i=2,++i,i++) 先计算++i,得到i=3,再计算i++的值也为3,最后输出的是i++的值为3

乐都县13232503708: 设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为 - --? -
钮径头风: int n, i, temp; n=i=2; temp = ++i; // temp = 3, i = 3 temp = i++; // temp = 3;// i = 4

乐都县13232503708: 设变量已正确定义为整型,则表达式"n=i=2,++i,i++"的值为 - -------- -
钮径头风: 等于3 ++i的值 等于i+1 之后的值 即++i=3 ,i=3 i++的值等于i 的值为3

乐都县13232503708: c语言题目 设变量正确定义为整型,则表达式n=i=2,++i,i++;的值为 - -- -
钮径头风: 1楼猜想正确,原因如下:Char *p[]={“BooL”,”opk”,”H”,”sp”}可以看作二维数组,i此时为行指针.按%c输出i[3]得s,指针移动两行,指到i[1],输出o

乐都县13232503708: 设变量以定义为整型,则表达式n=i=2,i=n+1,i+n的值为? n的3从哪里来的??? -
钮径头风: n=i=2; //n赋值为2,i赋值为2 i=n+1; // n加1的结果赋值给i,即i=2+1=3 i+n //相当于3+2,结果是5

乐都县13232503708: 改变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【7】. -
钮径头风: //值为3指的是(++i)和(i++)这两个表达式,而当这个表达式运算完后i将变为4,请将下一段程序运行测试#include "stdio.h" main() { int t,n,i=2; t=++i; n=i++; printf("t=%d,n=%d,i=%d",t,n,i); }

乐都县13232503708: 问几道C语言中的题目 -
钮径头风: 对于第一题:我认为应该如下#include "stdio.h" main() { char a; int b; a=getchar(); scanf("%d",&b); a=a-'A'+0; b=b*2; printf("%c %d",a,b); }对于第二题:在scanf函数中,符号*表示在本项读入后不赋值给相应的变量,抑制本次的输入,...

乐都县13232503708: 求c语言高手 -
钮径头风: (1)2(2)1(3)4.5(4)200,10(5)x%10( 6 ) 6(7)1(8)5(9)a=a-(a+b)(10)3

乐都县13232503708: 设变量已定义为整型、则n=i=2,++i,i++的值为多少、
钮径头风: n是2,i是4.

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