预测以下程序的输出。假设这些字符使用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基础课程》。