int a=1,b=2; printf("%d",(a==b)?a:b); 的答案是什么?怎样得来的,求解释。谢谢! main() { int a=1,a=2; printf("...

int a=1,b=2,c=3; printf("%d%d%d%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c))\u4e2d\u7684\u7b54\u6848\u662f\u600e\u4e48\u6765\u7684\uff1f\u8c22\u8c22

\u7b54\u6848\u5e94\u8be5\u662f3\u30001\u30000\u30000
\u4ece\u53f3\u5411\u5de6\u8ba1\u7b97\u5e76\u538b\u6808\uff1aa==(b==c)\uff0c\u7531\u4e8eb!=c\uff0c\u6240\u4ee5b==c=0\uff1b\u800ca!=0\uff0c\u6240\u4ee5a==(b==c)=0\u3002
a==(b=c)\u4f7fb=3\uff0c\u800ca!=3\uff0c\u6240\u4ee5a==(b=c)=0\u3002
a=b==c\uff0c\u7531\u4e8eb==c\u6210\u7acb(\u4e0a\u9762\u5df2\u7ecf\u4f7fb=c=3\u4e86)\uff0c\u6240\u4ee5b==c=1\uff1b\u6240\u4ee5a=b==c\u662f\u628a1\u8d4b\u7ed9a\uff0c\u4f7fa=1\u3002
a=b=c\uff0c\u56e0\u4e3ac\u76ee\u524d\u7684\u503c\u662f3\uff0c\u6240\u4ee5\u6709b=3\uff0ca=3\u3002
\u6700\u540e\u518d\u4ece\u5de6\u81f3\u53f3\u6253\u5370\u51fa\u6765\u5c31\u662f3100\u3002

printf
\u8bed\u6cd5:
#include
int printf( const char *format, ... );

printf()\u51fd\u6570\u6839\u636eformat(\u683c\u5f0f)\u7ed9\u51fa\u7684\u683c\u5f0f\u6253\u5370\u8f93\u51fa\u5230STDOUT(\u6807\u51c6\u8f93\u51fa)\u548c\u5176\u5b83\u53c2\u6570\u4e2d.

\u5b57\u7b26\u4e32format(\u683c\u5f0f)\u7531\u4e24\u7c7b\u9879\u76ee\u7ec4\u6210 - \u3010\u663e\u793a\u5230\u5c4f\u5e55\u4e0a\u7684\u5b57\u7b26\u3011\u548c\u3010\u5b9a\u4e49printf()\u663e\u793a\u7684\u5176\u5b83\u53c2\u6570\u3011. \u57fa\u672c\u4e0a, \u4f60\u53ef\u4ee5\u6307\u5b9a\u4e00\u4e2a\u5305\u542b\u6587\u672c\u5728\u5185\u7684format(\u683c\u5f0f)\u5b57\u7b26\u4e32,\u4e5f\u53ef\u4ee5\u662f\u6620\u5c04\u5230printf()\u5176\u5b83\u53c2\u6570\u7684"\u7279\u6b8a"\u5b57\u7b26. \u4f8b\u5982\u672c\u4ee3\u7801

char name[20] = "Bob";
int age = 21;
printf( "Hello %s, you are %d years old\n", name, age );

\u663e\u793a\u4e0b\u5217\u8f93\u51fa:

Hello Bob, you are 21 years old

%s \u8868\u793a, "\u5728\u8fd9\u91cc\u63d2\u5165\u9996\u4e2a\u53c2\u6570,\u4e00\u4e2a\u5b57\u7b26\u4e32." %d \u8868\u793a\u7b2c\u4e8c\u4e2a\u53c2\u6570(\u4e00\u4e2a\u6574\u6570)\u5e94\u8be5\u653e\u7f6e\u5728\u90a3\u91cc. \u4e0d\u540c\u7684"%-codes"\u8868\u793a\u4e0d\u540c\u7684\u53d8\u91cf\u7c7b\u578b, \u4e5f\u53ef\u4ee5\u9650\u5236\u53d8\u91cf\u7684\u957f\u5ea6.

Code \u683c\u5f0f
%c \u5b57\u7b26
%d \u5e26\u7b26\u53f7\u6574\u6570
%i \u5e26\u7b26\u53f7\u6574\u6570
%e \u79d1\u5b66\u8ba1\u6570\u6cd5, \u4f7f\u7528\u5c0f\u5199"e"
%E \u79d1\u5b66\u8ba1\u6570\u6cd5, \u4f7f\u7528\u5927\u5199"E"
%f \u6d6e\u70b9\u6570
%g \u4f7f\u7528%e\u6216%f\u4e2d\u8f83\u77ed\u7684\u4e00\u4e2a
%G \u4f7f\u7528%E\u6216%f\u4e2d\u8f83\u77ed\u7684\u4e00\u4e2a
%o \u516b\u8fdb\u5236
%s \u4e00\u4e32\u5b57\u7b26
%u \u65e0\u7b26\u53f7\u6574\u6570
%x \u65e0\u7b26\u53f7\u5341\u516d\u8fdb\u5236\u6570, \u7528\u5c0f\u5199\u5b57\u6bcd
%X \u65e0\u7b26\u53f7\u5341\u516d\u8fdb\u5236\u6570, \u7528\u5927\u5199\u5b57\u6bcd
%p \u4e00\u4e2a\u6307\u9488
%% \u4e00\u4e2a'%'\u7b26\u53f7 \u3002\u3010\u8fd9\u6761\u683c\u5f0f\u5c31\u4f60\u7684\u95ee\u9898\u7684\u89e3\u7b54\u3002\u3011

(a==b)?a:b中的?:是c语言中唯一的三元式,即?之前的表达式为‘真’,则返回:之前的值;否则返回:之后的值。
谢谢采纳

(a==b)?a:b 是叁目运算, 格式为:
条件表达式? x :y 当条件表达式为真(非0)时,执行x处的运算;当为假(0)时,运行y处的运算。

本题说 a等于b,而实际a是不等于b的,所以表达式是假,就取b的值 2 , 答案为:2

1 首先了解 三元操作符 : 表达式1 ? 表达式2:表达式3
如果表达式1的值为真 该整个表达式的结果 为表达式2的值,否则为表达式3的值
2 解释 表达式1 a==b 为假 ,所以结果为表达式3的值 即b ,%d 输出得到2

(x)?a:b 逻辑判断语句。
当x(即a==b)非零成立,执行a。
当x(即a==b)为零不成立,执行b。
a!=b, 输出b。

答案是2。 首先应判断a==b这个表达式的真假。带入a 、b各自的值,显然1不等于2的,故该式子为假,则(a==b)?a:b的值就应为b,而前面要求输出的格式为%d,所以结果为b 的值。

扩展阅读:int a[3][4] ... int p 0 ... int a 10 p a ... int p 4 ... int a 5 p a ... i j 4 ... int p 3 a ... int p 3 ... int p 2 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网