计算机二级C语言程序的一个题目,不知道答案怎么来的。求解析

变量i、j、k已定义为int型并均有初值0,用一下语句进行输入时:scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);从键盘输入:1... 变量i、j、k已定义为int型并均有初值0,用一下语句进行输入时:scanf("%d",&i);scanf("%d",&j);scanf("%d",&k); 从键盘输入:12.3,<CR> 则变量I.J.K的值分别是多少。答案是12、0、0,求解释,越详细越好,初值是什么,如果有初值为什么还要赋值?他们的区别是什么?没在书上看到,所以不懂 展开
 我来答
纪韶桂孤萍
2020-01-18 · TA获得超过3947个赞
知道小有建树答主
回答量:3222
采纳率:32%
帮助的人:167万
展开全部
初值就是你在定义变量的同时就可以给他赋一个初始值
比如
int
i=0;
就是定义一个变量,并赋予初值0
一般是为了防止程序中误操作导致直接使用未赋值的变量进行计算
变量变量,之所以叫变量就是他的值是可以改变的,所以即使有初值也可以用赋值的手段来改变变量的值
这道题的话,因为scanf中要求的格式是%d,也就是整形,所以非整形的数字就被忽略了,所以i的值是12,scanf会自动将逗号,空格,回车识别为结束符号
所以到逗号时,第一句结束,开始第二句,然后第二句读取到的是<CR>,这个就是回车,所以第二句终止,第三句还没与触发,因为没有键盘录入了
所以第一句的结果使得i的值变成了12
第二句j没有录入结果,保持初值不变
第三句没有触发,K也保持初值不变
所以答案是12、0、0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式