早教吧 育儿知识 作业答案 考试题库 百科 知识分享

为什么得20执行下面程序后,a的值是()。#includevoidmain(){inta;printf(“%d\n”,(a=3*5,a*4,a+5));}(A)65(B)20

题目详情
为什么得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

实际运行情况见下图