首页 > 试题广场 >

void main (void) { int ...

[单选题]
void main (void) {
    int i ;
    i = 0x10 + 010 + 10;
    printf ("x = %x", i); 
}
程序的输出是()
  • x = 34
  • x = 22
  • x = 28
  • 都不是
没想到还有个输出的坑
发表于 2019-12-08 08:33:19 回复(0)
ox10是16进制,换成十进制是16;010是八进制,换成十进制是8;16+8+10=34;%x是以16进制输出,34换成16进制就是22
发表于 2019-04-24 19:45:24 回复(0)
不同进制的表示:

二进制:0dXXXX

八进制:0XXXX

十六进制:0xXXXX

%x是以16进制输出 
发表于 2020-04-10 21:30:42 回复(0)
i = 0x10 + 010 + 10;
0x10表示16进制,二进制表示为0001 0000;十进制表示为16;
010表示8进制,二进制表示为000 001 000; 十进制表示为8;
10就是十进制啦。
最后i = 34,这是十进制的结果。

格式化输出为%x,就是要以16进制小写形式输出,34的16进制就是0X22。
发表于 2020-08-21 17:01:51 回复(0)
0x表示16进制,0表示8进制,不加就是十进制
发表于 2019-03-13 15:57:15 回复(0)
0x10是16进制数,010是8进制数,将他们都转化成十进制数再相加,得到i=34。
题目中%x意思是让我们以16进制输出,所以将34转化为16进制数。
注意以%x格式输出16进制数时不需要加0x前缀。
发表于 2019-11-21 20:05:05 回复(0)
ox10是16进制,换成十进制是16;010是八进制,换成十进制是8;16+8+10=34;%x是以16进制输出,34换成16进制就是22
发表于 2021-11-01 12:32:03 回复(0)
要求输出16机制
发表于 2023-09-17 11:30:43 回复(0)
题目很巧妙,在最后挖了坑。首先要辨别0x10是多少?明显是16进制,所以为16;然后010很明显是0开头,那么就可以想到是八进制,所以为8。最后10就是十进制的。首先相加16+8+10=34。
但是看到最后%x,题目是让我们要以16进制输出。34换算成16进制是22。
计算过程:除16取余数得最低1位,然后把商继续除得第2位,直到商等于0,然后把余数从下往上拼起来就是转换后的16进制数
1、34除以16=2余2
2、余数2除以16=0余2
则余数从下往上拼起来就是0x22,所以值是22。
发表于 2023-08-05 16:27:46 回复(0)
注意到x了,没想到是十六进制
发表于 2023-05-12 17:03:14 回复(0)
最后x输出😭
发表于 2022-04-07 09:01:17 回复(0)
010会被编译器识别为8进制
发表于 2022-03-05 21:35:24 回复(0)
printf里的输出不是%d,是%x,啊,不好好审题的错。
发表于 2022-01-25 09:22:49 回复(0)
(声明,以下解题是错的!!!) 有没有这样蒙对的: 0x10被认为是2进制,值为2 010被认为是10进制,值为10 再加上最后的10,一共22 又没有注意到输出是%x,当成%d输出的,答案也是22,蒙对了……
发表于 2021-09-20 19:22:48 回复(0)
ox10是16进制,换成十进制是16;010是八进制,换成十进制是8;16+8+10=34;%x是以16进制输出,34换成16进制就是22
发表于 2021-08-28 08:58:41 回复(0)
<p>%o 八进制,%x 十六进制</p>
发表于 2020-12-01 19:43:49 回复(0)
<p>出这题是要考察程序员的眼睛好不好使</p>
发表于 2020-07-23 12:25:00 回复(0)
%x输出,我**了。🤣🤣🤣🤣🤣

发表于 2020-04-03 10:47:01 回复(0)

%x是十六进制输出

发表于 2019-10-15 20:17:27 回复(1)