用getchar函数读入两个字符给c1和c2,然后分别用putchar函数和printf函数输出这两个字符并且解答以下三个问题:
1.变量c1和c2应定义为字符型,整形,还是二者皆可?
2.要求输出c1和C2的ASCII码,应如何处理?用putchar函数,还是printf函数?
3.整型变量与字符变量是否在任何情况下都可以互相代替?如:char c1,c2与int c1,c2 这两种情况是否无条件的等价?如果不是,请给出例子?
#include <stdio.h>
int main() {
char c1, c2;
printf("请输入两个字符: ");
c1 = getchar();
c2 = getchar();
putchar(c1);
putchar(c2);
printf("\nc1=%c, c2=%c\n", c1, c2);
printf("c1 ASCII码: %d, c2 ASCII码: %d\n", c1, c2);
return 0;
}
解答:
(1) 变量 c1
和 c2
应定义为字符型。
(2) 输出 c1
和 c2
的ASCII码,用 printf
函数:
printf("c1 ASCII码: %d, c2 ASCII码: %d\n", c1, c2);
(3) 整型变量和字符变量并不总是可以互相代替。例如:
char c1 = 197; // 非法的字符值
int c1 = 197; // 合法的整数值
由于字符类型通常表示有限的ASCII码值,而整型可以表示更大的数值范围。
问题分析代码解释说明:
任务:用 getchar
读取两个字符,输出字符及其ASCII码,并回答问题。
原理:
- 读取字符并输出。
- 解释变量类型和输出ASCII码。
步骤:
- 使用
getchar
读取两个字符。 - 使用
putchar
和printf
输出字符。 - 输出字符的ASCII码。
- 讨论变量类型选择及整型与字符型的区别和可替代性。