qingyangqingyang
2015-09-05 12:25
采纳率: 0%
浏览 4.6k

执行下列程序是输入,123<空格>456<空格>789<回车>,输出的结果是?

执行下列程序是输入,123<空格>456<空格>789<回车>,输出的结果是?
main()
{char s[100];
int c,i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}解释一下,谢谢你们

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 山枝 2015-09-05 12:52

    图片说明
    首先从输入流 读入一个字符 付给 int型的 c 。这样是可以的 因为char型本质是短int型、因此你把 int c当 char c 使用 除了浪费内存也没多大问题
    然后读入一个int i 从输入流读入 23 遇到空格 结束 将23 赋给 i
    最后读入一个字符串 从输入流开始读入 直到遇到 空格 将456赋给 s
    输出

    评论
    解决 无用
    打赏 举报
  • 独木阳关 2015-09-05 13:02

    输出的结果为
    1,23,456
    因为char类型本身为一字节,存储的类型也是单个字符,在C语言中,当输入超出数据类型时,自动认为输入完成。所以当输入123时,其实在1之后就已经完成了对char类型数据的输入,后边的23是对int类型的输入,因为输完23和输完456之后有空格,标志着输入结束,所以最终结果为
    1,23,456

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题