当前位置: 首页 > news >正文

中山网站建设工作室广州建网站的公司

中山网站建设工作室,广州建网站的公司,网页设计网站欣赏,如何查看域名服务商《C程序设计教程(第四版)——谭浩强》 习题2.9 编程序用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符。 (1)变量c1,c2应该定义为字符型或者整型吗&#x…

《C程序设计教程(第四版)——谭浩强》


习题2.9 编程序用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符。

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

(2)要求输出变量的ASCLL码,应该怎么处理?用putchar函数还是printf()函数?

(3)整型变量与字符变量是否在涉河情况下都可以相互替换呢?


代码:

//《C程序设计教程(第四版)——谭浩强》
//习题2.9 编程序用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符。
#include <stdio.h>int main()
{int c1 =getchar();int c2 =getchar();putchar(c1);putchar('\n');printf("%c\n",c2);return 0;
}

运行结果:


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

在 C 语言中,getchar函数返回的是一个int类型的值,表示读取到的字符的 ASCII 码。这个设计的原因是,getchar函数需要能够返回所有可能的字符值 (0 到 255) 以及额外的特殊值 EOF(表示文件结束或输入流的结束),因此它返回的是int类型。

但在你的上下文中, 和 变量的类型可以有以下考量:c1c2

  1. 字符型 (char)

    • 如果我们只关心读取到的字符本身,并且确定不会直接处理 EOF,你可以将c1和c2定义为char类型。这样可以节省一些内存(虽然在实际应用中这微不足道)。

    然而,定义为char后你需要特别小心可能的 EOF 情况,因为如果发生 EOF,c1和c2的值可能会被当作正常的字符。这种情况下使用int类型在处理输入时就显得更为安全。

  2. 整型 (int)

    • 如果你将c1和c2定义为int类型,你可以直接存储getchar的返回值(包括正常的字符和 EOF 值)。这样处理起来会更安全,以避免因字符溢出而产生的不确定行为。

(2)要求输出变量的ASCLL码,应该怎么处理?用putchar函数还是printf()函数?

可以使用printf函数,因为它能够方便地格式化输出。尽管putchar函数可以输出字符,但它不适合直接输出一个字符对应的 ASCII 码。

#include <stdio.h>int main()
{
// 提示用户输入两个字符
printf("请输入两个字符(用回车分隔): \n");int c1 = getchar(); // 读取第一个字符
getchar(); // 读取并忽略换行符
int c2 = getchar(); // 读取第二个字符// 输出第一个字符及其 ASCII 码
printf("第一个字符: '%c' 的 ASCII 码是: %d\n", c1, c1);
// 输出第二个字符及其 ASCII 码
printf("第二个字符: '%c' 的 ASCII 码是: %d\n", c2, c2);return 0;
}

(3)整型变量与字符变量是否在涉河情况下都可以相互替换呢?

在 C 语言中,整型变量(如int )和字符变量(如 char)不可以在所有情况下直接相互替换,但在某些情况下可以更安全地操作。以下是一些详细的考虑:

1. 字符与整型的关系

  • 字符类型 (char:通常用于存储单个字符。字符在内部是以其 ASCII 码表示的。
  • 整型类型 (int:用于存储整数值,包括较大的数值。由于int可以表示的范围更大,它可以安全地存储char类型的值。

2. 相互转换

  • 隐式转换:在 C 中,char固定为整数类型的子集,因此所有char值都能被提升为int,但反过来就可能会出现问题,特别是涉及到范围的问题。

    • 例如, 然后声明 char ch = 'A';是合法的, int num = ch;的值将是 65(ASCII 码)。
  • 显式转换:也可以手动进行类型转换。

    char ch = 'A';
    int num = (int)ch; // 显式转换
  • 3. 使用getcharputchar

  • 使用getchar()函数读取字符时,它返回的是int类型,因此你可以安全地将读取的字符值存储在int变量中,也可以存储在char变量中,但是要注意,存储在char中后,如果读取的字符是 EOF,可能会引发问题。

  • putchar()函数需要一个int类型的参数,但它会将int转换为char返回给标准输出。你可以直接使用。​​​​​​​

  • 4. 风险

  • 数据丢失:如果一个char类型的值超出了int范围,尽管在现有情况下通常不太可能,但如果你尝试将一个不合法的char直接赋值给char类型的变量,可能会引发数据丢失。

  • EOF 和无效值:如果你用getchar()函数来读取字符并将其存储在 类型中,一旦读取到 EOF(通常是 -1),可能会因为char类型无法表示负值而导致问题。

http://www.hrbkazy.com/news/12773.html

相关文章:

  • wordpress 二级页面菜单 404排名优化seo
  • html5 公司网站模板seo的搜索排名影响因素有
  • 免费网站制作视频教程电商运营怎么做如何从零开始
  • 广州深圳做网站网络营销咨询公司
  • 30岁转行做网站设计百度认证平台
  • 牡丹区住房城乡建设局网站杭州seo排名公司
  • 中江县 网站建设技能培训机构排名前十
  • 基于PHP的家教网站开发环境抖音seo优化公司
  • 塘沽做网站2022年大事热点新闻
  • 德州网站优化公司微信公众号推广方法有哪些
  • 做网站写个人日志最近10个新闻
  • 自己的卡盟网站怎么做分站免费的seo优化
  • 客户网站分析网络营销的概念
  • 集团高端网站建设代做seo排名
  • 常州企业网站建设公司seo网站推广的主要目的
  • 网站美化工具海外网站推广优化专员
  • seo策略推广什么意思河源seo
  • 想做网站去哪里做挖掘关键词的工具
  • php做网站python做什么广西seo关键词怎么优化
  • 淄博专业做网站关键词排名推广公司
  • 提高网站的权重的最佳方法seo关键词优化价格
  • 自己怎么做彩票网站吗seo排名优化首页
  • 宣讲网站建设批量关键词调排名软件
  • 有哪些做微场景的没费网站新疆疫情最新情况
  • 排名点击软件seo页面如何优化
  • 门户网站简介怎样搭建自己的网站
  • 响应式网站建设如何拉新推广怎么做
  • 成都j网站制作网络推广是网络营销的基础
  • wordpress 素材站模板网络营销步骤
  • 中国建设银行上海分行网站惊艳的网站设计