有以下程序  #include<stdio.h>  main()  {int a=10,b=11;   if(++a==b++)   printf("T");   else   printf("F");   printf("a=

admin2022-10-24  21

问题 有以下程序
 #include<stdio.h>
 main()
 {int a=10,b=11;
    if(++a==b++)
      printf("T");
    else
      printf("F");
    printf("a=%d,b=%d\n",a,b);
 }
 程序运行后的输出结果是(          )。

选项 A、Fa=11,b=11
B、Fa=10,b=12
C、Ta=10,b=11
D、Ta=11,b=12

答案D

解析 自增运算符是将运算对象的值增1,它有前缀形式“++a”和后缀形式“b++”。其中“++a”表示首先将a的值自增1,然后表达式“++a”的值就是自增后a的值;而“b++”表示首先将b的值作为表达式的值,然后将b的值自增1。本题中,a的初值为10,b的初值为11,则表达式“++a==b++”等价于“11==11”,条件为真,所以输出“T”。if语句执行完后,a的值为11,b的值为12,输出“a=11,b=12”。故本题答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/IPkp777K
0

最新回复(0)