编程序,用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:不可以互相代替。
//////////////////////////////
#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:不可以互相代替。
//////////////////////////////
#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
两种类型除了字节数不同,其他都一样。
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);
}
#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个不记得了!应该不是无条件
2用printf("%c,%d\n",c,c)弄两个一个c1一个c2,
第3个不记得了!应该不是无条件