C语言题目高手解释下......

[复制链接]
查看11 | 回复2 | 2010-11-23 01:08:17 | 显示全部楼层 |阅读模式
1.在输入函数scanf()中,不能指定的格式是
A) oB)xC)sD)u
选D
2.函数printf("%d",1|2^3)结果为什么等于1 “|”什么意思?
3.如果定义x=0xffff,则函数printf的输出结果是
A) 1B)128C)256D)65535
选A
为什么为1,帮忙解释下....
还有为什么我用int不行
#include
main()
{char x=0xffff;
printf ("%d\n",x*x);
}
运行结果为1
#include
main()
{int x=0xffff;
printf ("%d\n",x*x);
}
运行结果 -131071

回复

使用道具 举报

千问 | 2010-11-23 01:08:17 | 显示全部楼层
有6种位运算:
&
与运算
|
或运算
^
异或运算
~
非运算(求补)
> >
右移运算
//包含string,所以就可以用strcpy这个字符串复制函数#include //包含stdio.h,这样就可以用printfvoid main() {
回复

使用道具 举报

千问 | 2010-11-23 01:08:17 | 显示全部楼层
|是对应位同为1结果为1,否则为0^是对应位不同结果为1,否则为0并且^的优先级高,1|2^3 是1 | (2 ^ 3),二进制就是 01 | (10 ^ 11) = 01 | 01 = 01----0xFFFF * 0xFFFF = 0xFFFE000116位模式下int和%d对应的都是16位 所以只保留后面的0x0001也
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行