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

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

(2)要求输出c1和c2的ASCII码,应如何处理?

(3)×××变量和字符变量是否在任何情况下都可以互相代替?charc1, c2;和intc1, c2;是否无条件等价?

程序:

#include

int main()

{

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);

/*printf("%d,%d\n", c1, c2);*/

return 0;

}

结果:

请输入两个字符c1,c2:ab

用putchar输出结果为:ab

用printf输出结果为:a b

请按任意键继续. . .

注意:输入的两个字符之间没有空格,连续输入。

如果分两行输入a,b,则:

请输入两个字符c1,c2:a

用putchar输出结果为:a

用printf输出结果为:a

请按任意键继续. . .

输入a后按回车键,结果还未来得及输入b,程序马上输出了其下4行结果(包括2个空行)。用putchar输出c1,就输出了字符a,在输出c2时,就把换行符转换为回车和换行两个操作,输出一个换行,后面的printf("\n");又输出一个换行,所以就相当于输出一个空行,此行不显示任何字符。后面用printf函数输出c1和c2,同样也输出了字符a和一个空行。

下面回答问题:

(1)c1和c2可以定义为字符型或整型,二者皆可。

(2)用printf函数输出,使用%d格式符,即:

printf("%d,%d\n", c1, c2);

结果为:97,98

(3)字符变量占1个字节,整型变量占2或4个字节。故整型变量在可输出字符的范围内(ASCII码为0到127之间的字符)是可以与字符型数据互相转换的。如果整数在此范围外,不能代替。

拓展延伸:

程序1:

#include

int main()

{

int  c1, c2;

printf("请输入两个整数c1,c2:");

scanf("%d,%d", &c1, &c2);

printf("按字符输出结果为:\n");

printf("%c,%c\n", c1, c2);

printf("按ASCII码输出结果为:\n");

printf("%d,%d\n", c1, c2);

return 0;

}

结果:

请输入两个整数c1,c2:97,98

按字符输出结果为:

a,b

按ASCII码输出结果为:

97,98

请按任意键继续. . .

程序2:

#include

int main()

{

char c1, c2;

int i1, i2;

printf("请输入两个字符c1,c2:");

scanf("%c,%c", &c1, &c2);

i1 = c1;

i2 = c2;

printf("按字符输出结果为:\n");

printf("%c,%c\n", c1, c2);

printf("按整数输出结果为:\n");

printf("%d,%d\n", c1, c2);

return 0;

}

结果:

请输入两个字符c1,c2:a,b

按字符输出结果为:

a,b

按整数输出结果为:

97,98

请按任意键继续. . .

程序3:

#include

int main()

{

char c1, c2;

int i1, i2;

printf("请输入两个整数i1,i2:");

scanf("%d,%d", &i1, &i2);

c1 = i1;

c2 = i2;

printf("按字符输出结果为:\n");

printf("%c,%c\n", c1, c2);

printf("按整数输出结果为:\n");

printf("%d,%d\n", c1, c2);

return 0;

}

结果:

请输入两个整数i1,i2:289,330

按字符输出结果为:

!,J

按整数输出结果为:

33,74

请按任意键继续. . .

整型变量i1和i2在内存中占2或4个字节,而字符变量c1,c2只占一个字节,unsigned char类型可存放0到255的范围内整数,signed char类型可存放-128到127的范围内整数,现在输入的i1和i2的的值已经超过0到255的范围,i1和i2在内存中的存储情况如下表所示:(为简单起见,用两个字节表示)

高8位低8位

i10000000100100001

i20000000101001010

数据是整数74,是字符i1低8位的数据是整数33,是字符’!’的ASCII码值,故用字符输出c1得到字符’!’,i2低8位的’j’的ASCII码值,故用字符输出c1得到字符’j’。

c语言用getchar函数输入两个字符c1,c语言:用getchar函数读入两个字符给c1,c2,用putchar和printf输出。思考问题...相关推荐

  1. c语言中如何防止输入的格式存在错误,C语言如何避免输入

    C语言如何处理输入 下面这个题,数据的处理很简单,方法也很多.但是数据的输入如何处理呢,还要分多行输入!! 引用标题:错误票据 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号. ...

  2. [C语言指针练习二]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。

    指针练习题2 题目:字符串逆序 内容与要求:使用指针,写一个函数,可以逆序一个字符串的内容. 举例: 输入: I Love You. 输出: .uoY evoL I   输入: abc 输出: cba ...

  3. 代码内查找函数引用_叮~~二级操作题 excel常考函数大梳理

    1.AND函数 格式:AND(logical1,logical2-) 功能:and函数是一个逻辑函数,表示同时满足多个条件.通常配合if函数做条件判断,得值为true或者是false. 2.OR函数 ...

  4. C语言学习之用函数处理,而且用指针类型的数据作函数参数,对输入的两个整数按大小顺序输出

    对输入的两个整数按大小顺序输出.用函数处理,而且用指针类型的数据作函数参数. int main(){void swap(int *p1,int *p2);//声明swap函数 int a,b;int ...

  5. C语言学习之编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符

    编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符.思考以下问题: (1)变量cl和c2应定义为字符型,整型还是二者皆可? (2)要求输 ...

  6. c语言之getchar函数输入字符

    //用getchar函数输入字符 #include <stdio.h> int main() {char a, b, c, d; //定义字符变量a, b, c, d//从键盘输入字符,送 ...

  7. linux中c语言kbhit函数用法,C语言判断用户是否输入-非阻塞函数kbhit

    一.基础研究 要从地址读取数据,肯定是要定义一个指针变量p,用它来实现变换地址和取值的功能.另外程序是当两个条件中的某一个出现时才停止,所以应该用while~do循环语句循环输出n和d,并用while ...

  8. ACMNO.26 C语言-字符统计2 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

    题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字符的个数, 在主函数中输入字符串以及输出上述结果. 只要结果,别输出什么提示信息. 输入 一行字符串 输出 统计数据, ...

  9. c程序设计语言中printf,编程序 用getchar函数读入两个字符c1和c2,然后分别用putchar和printf函数输出这两个字符。请问...

    编程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar和printf函数输出这两个字符.请问: 1. 变量C1,C2应定义为字符型或整型?或二者皆可? 答:在这个题目里,变量C ...

最新文章

  1. 锁定计算机的事件日志,关闭并重新启动计算机后意外地在系统事件日志中记录了事件 ID 6008...
  2. .net core依赖注入的封装
  3. linux fflush函数,fflush - wwliu的个人页面 - OSCHINA - 中文开源技术交流社区
  4. 【Python】画一个心形
  5. 基于AJAX技术的Web会议平台
  6. c语言和c 编程的区别吗,C语言和C有什么区别呀?
  7. Eclipse中activiti插件的安装
  8. 输光200亿,利润暴跌77%!史上最“作死”老字号,还想靠天价翻身?
  9. PDF转Word时提示有密码两种常用解密技巧分享
  10. win7下开启梦幻桌面
  11. 服务号idbase64_微信 unionid 获取 解密数据
  12. windows驱动开发4:WDM、WDF等驱动基本概念
  13. Microsoft Office XP 中为开发人员新增的功能
  14. 原型模式,孙悟空都会用,猴毛变出的小猴子!
  15. 核磁计算机系统包括,核磁共振和CAT扫描系统
  16. 关于用Unity实现校区AR导航毕业设计的建议
  17. 你有没有见过5GB大小的图片?
  18. python编程基础-task5-面向对象的编程
  19. 中文文本关键词抽取的三种方法(TF-IDF、TextRank、word2vec)
  20. 总裁演说思维:商务谈判最经典的12个技巧

热门文章

  1. 存储的瓶颈--大型网站技术演进思考
  2. -y表示自动安装,不需要每项手动确认输入 Yes
  3. Java BigDecimal常用方法
  4. 辗转相除法是求两个数的最大公约数的方法。
  5. OpenVINO2021.4+YOLOX目标检测模型部署测试
  6. 高精度垃圾分类模型开发与硬件集成
  7. 最高奖金5万|带打目标检测大赛!还给匹配神助攻队友!
  8. 关于回答「对极几何与基本矩阵」的几点感悟
  9. 计算机会计课程试题及答案,计算机会计第2次作业_报表_附答案
  10. YOLO-6D论文的一些相关知识