如何用getchar做这题?

编程该程序:用getchar读入两个字符给变量c1和c2,然后分别用putchar和printf函数显示这两个字符。
回答一下问题:1)变量c1和c2应定义为字符型还是整形变量,还是二者皆可?
2)要求输出c1和c2的ASCII码,用putchar还是printf函数?
3)整形变量和字符型变量是否可在任何情况下互相替代?

2个回答

#include "stdio.h"

int _tmain(int argc, _TCHAR* argv[])
{
    char c1 = getchar();
    char c2 = getchar();
    putchar(c1);
    putchar('\n');
    printf("%c\n", c2);
    return 0;
} 

图片说明

1)变量c1和c2应定义为字符型还是整形变量,还是二者皆可?
都可以,但是要注意,int是%d,char是%c
2)要求输出c1和c2的ASCII码,用putchar还是printf函数?
实际上都可以,但是前者需要先将数字转换成字符
用putchar的代码展示如下:

#include "stdio.h"
#include "stdlib.h"

int _tmain(int argc, _TCHAR* argv[])
{
    char c1 = getchar();
    char result[4];
    itoa(c1, result, 10);
    int i = 0;
    while ((c1 = result[i++]) != '\0')
        putchar(c1);
    putchar('\n');
    return 0;
}

图片说明

3)整形变量和字符型变量是否可在任何情况下互相替代?
不是,int表示范围比char大,所以-128~127的数字可以用char也可以用int,超过这个范围(在-2^31~2^31-1内)必须用int

采纳本回答,留下email送我的资源:C语言源代码大全源代码上百个:https://download.csdn.net/download/caozhy/9919273

1.定义字符型存的是字符,整型的存的是字符的ASCII码,二者是不同的,如果你输出结果一样,是因为你输出语句的格式控制符,都以字符%c输出,整型会转为char输出。

2.ASCII码是一个数字,数字肯定用整型,所以用printf,且格式控制符为%d

3.可以相互转化,不理解你说的替代是什么意思

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问