putchar函数高级练习题
深入理解putchar函数的高级应用与字符操作
进阶挑战
本练习包含1道进阶putchar函数题目,涵盖位操作、递归、ASCII编码等高级主题
以下程序的输出是什么?解释其工作原理:
#include <stdio.h>
int main() {
char str[] = "HeLLo";
int i = 0;
while(str[i]) {
putchar(str[i] ^ 32);
i++;
}
putchar('\n');
return 0;
}
挑战思考
1. 位异或操作符(^)的作用是什么?
2. 程序功能是什么?
解析与答案
详细解析:
- 位异或操作符(^)对两个操作数的每一位执行异或操作
- 在ASCII编码中,大小写字母相差32(例如 'A'=65, 'a'=97)
- 对字母执行^32操作会翻转其大小写(大写变小写,小写变大写)
- 数字和符号不受影响,因为它们的ASCII码与32异或后仍是非字母字符
| 原始字符 |
ASCII值 |
^32操作后 |
结果字符 |
| H |
72 |
72 ^ 32 = 104 |
h |
| e |
101 |
101 ^ 32 = 69 |
E |
| L |
76极狐>
| 76 ^ 32 = 108 |
l |