📜  C | C测验– 113 |问题1

📅  最后修改于: 2021-06-28 21:13:52             🧑  作者: Mango

假设数字以2的补码形式存储,则以下程序的输出。

#include
int main()
{
   printf("%c\n", ~('C' * -1));
   return 0;
}

由Sowmya.LR提供
(A) B
(B) A
(C)编译器错误
(D) C答案: (A)
说明:执行时没有任何错误或警告消息,以上代码的输出为
‘B’
以上程序流程如下
步骤1:
首先(’C’* -1)被处理
ASCII值“ C”为67,并与-1相乘
67 *(-1)= -67
第2步:
-67的二进制表示形式是10111101
10111101的按位取反变为(01000010)2 =(66)10
第三步:
66是ASCII值’B’
因此〜(’C’*-1)= 66,因此上述程序的输出为B
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。