putchar函数高级练习题

深入理解putchar函数的高级应用与字符操作

进阶挑战

本练习包含1道进阶putchar函数题目,涵盖位操作、递归、ASCII编码等高级主题

1
putchar与位运算

以下程序的输出是什么?解释其工作原理:

#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. 程序功能是什么?

解析与答案

输出结果: hEllO

详细解析:

  1. 位异或操作符(^)对两个操作数的每一位执行异或操作
  2. 在ASCII编码中,大小写字母相差32(例如 'A'=65, 'a'=97)
  3. 对字母执行^32操作会翻转其大小写(大写变小写,小写变大写)
  4. 数字和符号不受影响,因为它们的ASCII码与32异或后仍是非字母字符
原始字符 ASCII值 ^32操作后 结果字符
H 72 72 ^ 32 = 104 h
e 101 101 ^ 32 = 69 E
L 76 76 ^ 32 = 108 l