用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碼。
- 討論變量類型選擇及整型與字符型的區別和可替代性。