为什么得20执行下面程序后,a的值是()。#includevoidmain(){inta;printf(“%d\n”,(a=3*5,a*4,a+5));}(A)65(B)20
执行下面程序后,a的值是( )。
#include
void main ()
{ int a;
printf(“%d\n”,(a=3*5,a*4,a+5));
}
(A)65 (B)20 (C)15 (D)10
答案为B
printf(“%d\n”,(a=3*5,a*4,a+5));
输出的结果是 20
但是 a = 15
(a=3*5,a*4,a+5)是一个逗号表达式
逗号表达式的一般形式为:表达式1,表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值(当有多个表达式时是最右边的表达式的值)
所以这里(a=3*5,a*4,a+5)的值是a+5的值,而a=3*5=15,所以整个表达式值为20,输出20。但是a=15
实际运行情况见下图
我的程序那出错了啊,比较三个数的大小#includevoidmain(){inta,b,c,x,m 2020-05-12 …
阅读下列程序段,则程序的输出结果是()#include"stdio.h"main(){inta=1 2020-05-13 …
#includemain(){inta=0x7fffffff,b=025;floatf1=123. 2020-05-19 …
main(){unionEXAMPLE{struct{intx,y;}in;inta,b;}e;e 2020-06-12 …
用条件运算符求三个整数中的最大数.#include“stdio.h”voidmain(){inta 2020-07-08 …
Inta=3,b=5,c=7;If(a>b)a=b;c=a;If(c!=a)c=b;Printf( 2020-07-09 …
求此题的解说若宏定义如下#defineX5#defineYX+1#defineZY*X/2则执行以 2020-07-10 …
为什么得20执行下面程序后,a的值是()。#includevoidmain(){inta;prin 2020-07-12 …
#include"stdio.h"main(){inta,b,c,e;printf(“please 2020-07-23 …
为什么printf("a%cb%c\bc%c\tabc\n",c1,c2,c3);输出的是aabc 2020-07-23 …