編程序,用getchar函數讀人兩個字符給c1和c2,然后分別用putchar函數和printf函數輸出這兩個字符。思考以下問題:
(1)變量cl和c2應定義為字符型、整型還是二者皆可?
(2)要求輸出cl和c2值的ASCII碼,應如何處理?用putchar函數還是printf函數?
(3)整型變量與字符變量是否在任何情況下都可以互相代替?如:
char c1,c2;
與
int cl,c2;
是否無條件地等價?
題目解析:
(1)變量cl和c2應定義為字符型、整型還是二者皆可?
答:c1和c2 應定義為整形,因為定義為字符有可能返回的整數會超出字符的存儲范圍
(2)要求輸出cl和c2值的ASCII碼,應如何處理?用putchar函數還是printf函數?
答:需要使用printf函數,打印是以整形形式打印
(3)整型變量與字符變量是否在任何情況下都可以互相代替
答:不是,因為兩者的存儲范圍不同,如果整數超出了字符的存儲范圍,則不能相互替換
代碼示例:
int main()
{
int c1, c2;
printf("請輸入兩個字符c1,c2:");
c1 = getchar();
c2 = getchar();
printf("用putchar語句輸出結果為:");
putchar(c1);
putchar(c2);
printf("\n");
printf("用printf語句輸出結果為:");
printf("%c %c\n", c1, c2);
return 0;
}