qingyangqingyang 2015-09-05 04:25 采纳率: 0%
浏览 5219

执行下列程序是输入,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 05:02
    关注

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

    评论
  • 山枝 2015-09-05 04:52
    关注

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

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部