C语言顺序程序设计练习题

描述

验证 putchar 函数和 printf 函数的区别,以及 C 语言 中各个 类型 字段之间的差别,是不是可以看成一样的数据。(谭浩强 C 语言第三版 90 页第 4.10 题)

题目

编程序,用 getchar 函数读入两个 字符 给 c1、c2,然后分别用 putchar 函数和 printf 函数输出这两个字符。思考以下问题:

(1)变量 c1、c2 应定义为字符型或 整型?或二者皆可?

(2)要求输出 c1 和 c2 值的 ASCII 码,应如何处理?用 putchar 函数还是 printf 函数?

(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:char c1,c2;与 int c1,c2;是否无条件地等价?

题目解决思路

这个题目其实就是一个验证题,让我们通过实验来了解 C 语言中各个类型字段的差异,只要我们根据提示编写相应的代码来验证即可。

代码具体实现

#include <stdio.h> void main() { printf("嗨客网(www.haicoder.net)\n\n"); char 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); }

运行后,控制台输出如下:

04_字符输出.png

注意:使用 getchar 接收键盘输入的数据时,两个 getchar 函数,需要字母连续输入。如果输入字符和空格或者换行,空格和换行被当成字符。

具体答案

  1. c1 和 c2 可以定义为字符型或者整型,二者皆可。
  2. 在 printf 函数中用 %d 格式输出,即:printf("%d,%d\n",c1,c2);
  3. 字符变量在计算机内占一个字节,而整型变量占两个字节。因此整型变量在可输出字符的范围内( ASCII 码为 0~255 之间的字符 )是可以与字符数据互相转换的。如果整数在此范围外,不能代替。