📜  C |运营商|问题15

📅  最后修改于: 2021-05-29 13:04:58             🧑  作者: Mango

预测以下程序的输出。假设这些字符使用ASCII值表示。

#include 
#define VAL 32
   
int main()
{
    char arr[] = "geeksquiz";
    *(arr + 0) &= ~VAL;
    *(arr + 5) &= ~VAL;
    printf("%s", arr);
      
    return 0;
}

(A)怪胎测验
(B)怪胎测验
(C)怪胎
(D)怪胎
(E)垃圾桶垃圾桶uiz答案: (A)
说明:问题的症结在于以下语句: *(arr + 5)&=〜VAL;
该语句从小写字符的ascii值中减去32,然后将其转换为大写字母。这是另一种将字母转换为大写字母的方式,方法是将其位重置为值32,即LSB的第5位(假设位置0处的LSB位)。
这个问题的测验

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