www问答网
所有问题
设有int变量i,j,k,其值分别为1,2,3
执行表达式后:
i++= =1&&(++j= =3||k++=3)
表达式值为__1__, i的值为___2____, j的值为___3____, k的值为__3_____,
求解析
举报该问题
推荐答案 2012-01-04
根据C的运算顺序
第一步运算括号内的程序
括号内先运行++ --顺序是由右向左
算后 j=3;k=4 (注:J=3是最后结果,K=4不是最后结果,下面还有赋值运算)
然后运算==
得到结果 1||k=3
再预算||
得到(++j= =3||k++=3)表达试为1
最后进行 = 赋值预算所以K=3 (注:K=3是最后结果)
第二步根据第一步预算得到表达式 i++==1&&1
先进行++ --运算
i=2 (注:I=2是最后结果)
再行进==预算
得到表达式0&&1
最后得到表达式的值为0
与你的结果不太一致,提供参考。下边是C语言的运算顺序,可以根据这个来运算。
C语言运算符分类
1级(左结合)
() 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。
2级(右结合)
!逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。
3级(左结合)
*乘法运算符;/除法运算符;%取余运算符。
4级(左结合)
+加法运算符;-减法运算符。
5级(左结合)
<<左移运算符;>>右移运算符。
6级(左结合)
<、<=、>、>=关系运算符。
7级(左结合)
==等于运算符;!=不等于运算符。
8级(左结合)
&按位与运算符。
9级(左结合)
^按位异或运算符。
10级(左结合)
|按位或运算符。
11级(左结合)
&&逻辑与运算符。
12级(左结合)
||逻辑或运算符。
13级(右结合)
? :条件运算符。
14级(右结合)
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。
15级(左结合)
,逗号运算符。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://www.wendadaohang.com/zd/K31KGn5W3.html
其他回答
第1个回答 2012-01-04
等等,这个题有问题
k++=3
这里k++不是左值表达式,编译时就会出错
第2个回答 2012-01-04
你要给定i,k,j的数值才可以帮你解决问题的,我给答案你,你只要把对应的数值带进去就可以了
表达式值为__1__, i的值为___i+1____, j的值为___j+1____, k的值为__k+1_____,
因为还没有i,k,j的值,所以第一问还不能解决
相似回答
int
i=
1,j
=
2,k
=
3
; printf("%d\n"
,i
++); printf("%d\n",++j); printf...
答:
结果是:1389第一个输出时:输出
为1,i
=
2
;第
二
个输出时:输出为
3,j
=3;第
三
次输出时:输出为8
,k
=4;第四次输出时:输出为9,加起来结果为2+3+4=9
...|k++==3)) printf("%d %d %d\n"
,i,j,k
);解析
答:
if(
i
++==1&&(++j==3||
k
++==3)) 先看 i ++==
1,
因为是++在后面,所以语句执行完才i才会变成
2,
所以i++ == 1, true,。 后面++j==3||k++==
3,
++
j,
++ 在前面,所以执行的时候j就等于3了,而k++ ==3 是|| , 只要++j == 3 成立,他就立即返回了ture了, ...
...k=
3
; if(i++==1&&(++j==3llk++==3)) printf("%d%d%d\n"
,i,j,k
...
答:
答案:2 3
3
include <stdio.h> void main(){
int
i=1,j=
2,
k=3;if(i++==1 &&(++j==3 || k++==3 ))printf("%d d d\n"
,i,j,k
);} if语句里面的判断为两大部分:1、i++ == 1;2、++j == 3 || k++ == 3;i的初始
值为1,
i++是先判断i==1,然后再i=i+1,...
假设
有int
型
变量i
=
1,j
=
2,k
=
3,
下面正确的是()。
答:
假设有int 型变量i=
1,j=2,k=3
,下面正确的是()。A.i>=j的值为1 B.i==j的值为1 C.(j<k)==(i<k)为0 D.(i==j)+(j==k)的值为0 正确答案:(i==j)+(j==k)的值为0
已知i、j、
k为int
型
变量,
若从键盘输入:
1,2,3
<CR>,使i的
值为1,j
的值为...
答:
这是入门级的题目啊。使用最基本的格式输入语句和格式输出语句就可以了。include <stdio.h>
int
main(){ int i,j,k; scanf("%d,%d,%d",&i,&j,&k); printf("i=%d j=%d k=%d\n"
,i,j,k
); return 0;}
...=
3
; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n"
,i,j,k
...
答:
++
j
这种计算是进行当前运算之前就进行加1的计算; 进行条件判断时&&后边的||,但第一个条件++j==3成立时,就不去计算k++==
3,
所以k在if语句中没有进行计算,所以会出现
2
3 3的结果
,k
保持不变; 如果改为++j==4,这样第一个条件不成立,那样就会计算
k,
结果就会是2 3 4;...
#include <stdio.h> void main() {
int
i=
1,j
=
2,k
=
3
; if(i++==1&&...
答:
include <stdio.h> void main(){
int
i=
1,j
=
2,k
=3;//这样换行格式不太好,但解说方便 if(i++==1 //先使用i的值,再给i+
1,
也就是先判断i==1(true),然后i+1变为2 && (++j==3 //先给j+1,再判断 j==
3,
此值为true
,j
变
为3
此小括号内表达式为true ||k++==3...
有以下程序main(){
inti
=
1,j
=
2,k
=
3
;
答:
i
++==1条件成立,说明i=
2
++
j
==
3
条件成立,说明j=3 此时(++j==3||
k
++==3)后面的k++==3不管为何值,(++j==3||k++==3)均为真,所以k++==3被“短路”了,没有被执行,所以k不为4。这里的关键是:C语言中的逻辑运算,当后续条件不论为何值,对整个条件判断无影响时,后续条件...
已知i.j.
k为int
型
变量,
若从键盘输入;1.2.3.回车,使i的
值为
l
,j
的值为...
答:
选c.因为题目中是
1,2,3,
所以要保持一致在写代码时。
大家正在搜
k为int型变量且赋值11
若k为int整型变量且赋值7
若kg均为int型变量
若k为整型变量
将一个整型变量k的值写入
若k为int
int k
若kg均为int型变量
相关问题
设有int i, j, k; 则表达式i=1,j=2,k=3...
求解析:已知 int i,j,k;scanf(“%d%d%d...
已知i、j、k为int型变量,若从键盘输入:1,2,3<CR...
设有int i, j, k; 则表达式i=1,j=2,k=3...
设有int i,j,k;则表达式i =1,j=2,k=3, ...
没有int i,j,k;则表达式i=1,j=2,k=3,i&...
已知i.j.k为int型变量,若从键盘输入;1.2.3.回车...
已知i.j.k为int型变量,若从键盘输入;1.2.3.回车...