编程序,用getchar函数读入两个字符a1,a2,然后

编程序,用getchar函数读入两个字符a1,a2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:
1: 变量c1,c2应定义为字符型还是整形。或者两者都可以
2: 要求输出c1,c2值的ASCII码,应如何处理?用putchar还是printf函数?
3: 整形变量与字符变量是否在任何情况下都可以相互代替如:
char c1,c2与 int c1,c2是否无条件的等价
你们的代码,我调试都不能在输入a后回车在输入b,只能a,b连续输入

程序代码如下:
//////////////////////////////
#include<stdio.h>
void main()
{
char c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
putchar('\n') /*换行*/
printf("%c %c\n",c1,c2);
}
//////////////////////////
思考题:
1: 应定义为字符型,因为getchar读入的不一定是数字。
2:用printf函数。先用if函数判断是字符还是数字。如果是字符的话,用整形直接输出即可(如printf("%d",c1);),如果是数字的话则根据数字的ASCII码输出(0-9的ASCII码为048-057,如 printf("%d",c1-48))
3:不可以互相代替。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-14
程序代码如下:
//////////////////////////////
#include<stdio.h>
void main()
{
char c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
putchar('\n') /*换行*/
printf("%c %c\n",c1,c2);
}
//////////////////////////
思考题:
1: 应定义为字符型,因为getchar读入的不一定是数字。
2:用printf函数。先用if函数判断是字符还是数字。如果是字符的话,用整形直接输出即可(如printf("%d",c1);),如果是数字的话则根据数字的ASCII码输出(0-9的ASCII码为048-057,如 printf("%d",c1-48))
3:不可以互相代替。
第2个回答  2009-05-07
#include<stdio.h>

void main()
{
char c1,c2;
c1=getchar();
getchar(); //滤过回车
c2=getchar();
putchar(c1);
putchar('\n');
printf("%c\n",c2);
}

如下输入两个字符:
a (回车)
b
输出为:
a
b

问题1:两者都可以
问题2:
比如输出c1的ASCII码,用printf("%d",c1);注意里面是%d而不是%c

问题3:
不是。
两种类型所占字节数不同。
因字节数不同而导致的最大区别是,数值范围不同。char型数值范围是-128~127,int型在不同IDE下不一样,VC下是-2^31~2^31-1
两种类型除了字节数不同,其他都一样。
第3个回答  2009-05-07
对于字符来说,使用char或int类型变量来存储并没有区别,不过char比int更节省空间。参考代码:
#include <stdio.h>

void main()
{
int c1, c2;
c1 = getchar();
c2 = getchar();
putchar(c1);
putchar(c2);
printf("%d %d\n", c1, c2);

}
第4个回答  2009-05-07
1定义为字符型吧!
2用printf("%c,%d\n",c,c)弄两个一个c1一个c2,
第3个不记得了!应该不是无条件

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网