C语言很简单的

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:19:02
if ( a=0xA | a >12 )

if ( 011&10==a ) printf ( ” %d!\n ” , a);

else printf ( ” Right!%d\n ” , a);

else printf (”Wrong!%d\n” , a);
当a值为014时,应该输出的是什么?
Wrong!12 不对,我刚把答案提交试了,不行 10!也不行,6 .下列程序段当 a 的值为 014 时的执行结果是_____。

if ( a=0xA | a >12 )

if ( 011&10==a ) printf ( ” %d!\n ” , a);

else printf ( ” Right!%d\n ” , a);

else printf (”Wrong!%d\n” , a);
这是原题

10!
不过这个很可能和你心中预想的结果不一样因为你的程序可能有一个运算符优先级的问题 如果给你的程序的位运算的部分加上括号的话是这样的
#include <stdio.h>

int main()
{
int a = 014;
if (a = (0xA | (a >12)))
{
if ( 011 & (10 == a))
{
printf ("%d!\n", a);
}
else
{
printf ("Right!%d\n", a);
}
}
else
{
printf ("Wrong!%d\n", a);
}
}

而你心中的想表达的可能并不是这个 你可以看一看这个关于运算符优先级的文章
http://www.cppblog.com/aqazero/archive/2006/06/08/8284.html

014 化成10进制是12 所以输出 Wrong!12

a=0xA ?