1、以下程序输出的结果是( )。 #include<stdio.h> void main( ) { int a=2,b=4,c=6,x=1,y=2;

1、以下程序输出的结果是( )。
#include<stdio.h>
void main( )
{
int a=2,b=4,c=6,x=1,y=2;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);
}
(A) y=6,x=6 (B) y=10,x=6 (C) y=2,x=1 (D) y=10,x=2

A
y=(x=a+b),(b+c);

赋值操作符先算右边值,再赋给左边变量。
右边是个逗号表达式,返回的是最左边的值,也就是(x=a+b),这是个赋值表达是,它的值返回的就是 左操作数的应用。就是6.
整个就是y = 6, x = 6.
恐怕除了教学再没什么用了吧。。

参考资料:http://zhidao.baidu.com/question/330773866.html

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-06
*{
margin:0px;
padding:0px;
}
最简单的方法,加个样式。

...输出结果是___. #include <stdio.h> void main( )
printf("%d,%d,%d\\n",a,b,c); 输出2,3,-2 } 所以总共输出2,5,1,2,3,-2

...#include<stdio.h> void main() {int i; char *s="ABCD"; fo...
答案:B include <stdio.h> void main(void){ int i, j;for(i=0; i<10; i++) { j = i*10+6;if ( j%3!=0) continue;printf("%d",j);} } 4.void exchange(int *x, int *y){ int t;t=*y;y = *x; ;x = t;} 注意:1、以上每个函数都以“f”开头,其代表文件(f...

以下程序的输出结果是___. #include <stdio.h> main() {int a=2,i...
4.i=0,1,2,共三个值。每次取值时,都调用下面的函数。5.printf("%d",func(a));中,%d前后没有其他间隔标志,所以,输出的结构是紧密的。

#include <stdio.h> void main() { int a=2,b=4,c=6,x,y; y = (x=...
(y = (x=a+b)),(b+c);如果写成这样,就和你预想的一样了,y就是b+c了:y = ((x=a+b),(b+c));

#include <stdio.h> void main() { int a=2,b=4,c=6,x,y; y=(x=a+...
应该是赋值表达式的优先级高于逗号表达式,我觉得如果用 y=((x=a+b),(b+c))的话y的值应该是b+c(10),你的这个先计算y=x=a+b了吧,如果有Z=(y=(x=a+b),(b+c))的话z应该等于b+c是10

以下程序的输出结果是 #include <stdio.h> void main ( ) { in
s=a[0][0]+a[1][1]+a[2][2]=1+5+9 =15

以下程序的输出结果是什么。 #include<stdio.h>
第二题:a=5,b=2,c=1 原因:大括号里边的变量是局部变量,在上一级变量和局部变量重名时,以局部变量优先级高,故局部变量C的最终结果是2,a+=2,则a为5,而上一级变量的b、c不参与运算,故依旧为2、1。第三题:6 原因:非0数的真值都是1,那麼除了if(!y)都执行,则z=2+1+3=...

以下程序的输出结果是___。 #include 〈stdio.h〉 main...
A.8,17

运行以下程序后的输出是()#include<stdio.h> int main(void) {
选C吧。这刚开始x=3.然后进入循环这是x=x-3输出0然后因为x=0所以!x为真所以继续执行循环这时x=-3输出因为x=-3所以!x为0(非真即为假).所以这时候退出循环程序结束

以下程序的运行结果是( ). #include <stdio.h> #include <conio.h>...
if(a=6)这句出了问题,你这样写就变成赋值了,应该写成 if(a==6) 这样就应该正确了

相似回答