计算机二级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,求解释,越详细越好,初值是什么,如果有初值为什么还要赋值?他们的区别是什么?没在书上看到,所以不懂 展开
 我来答
百度网友15c6952
2012-11-01 · TA获得超过300个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:83.9万
展开全部
我懂得也不多,随便说说吧,编程时,定义变量,首先要给出变量名,上面的i,j,k就是3个变量的变量名,然后就是变量类型,上面的是int类型,他在内存中站4个字节,这个int类型有个取值范围,是多少我也记不得了,要给变量赋初始值是因为编译器的关系,因为不给初始值,编译器给那3个变量在计算机中分配内存的时候,由于你不知道内存中有没有值,如果有,那么会影响你接下来的运输,赋初始值的好处就是让你明白你的变量初始数值是多少,以后才好计算,一般情况下初值都是给0,你也可以改,比如说要计算1+2,那么就可以些成 int i = 0; int j=1; int k = 2; i=j+k,那么i就等于3,这里的等号不是数学上的相等,而是赋值,把j+k的值,赋给i。最后,int 类型的变量,是整数型,12.3是带小数点的,如果把12.3赋值的任何int类型的变量,那么编译器会自动四舍五入,变成12了,scanf()是个C语言自带的输入函数,这个函数的参数有两个比如上面的,scanf("%d",&k),这个%d是指明接收的数是int类型,如果是小数,那就是%f,&k的意思是将输入的数值存到变量k的内存中。还有那个<CR>,不知道你写的是啥,应该是字符串,如果是字符串那么变量应该用char类型,上面3个都是int,而且在输入函数中,用的都是%d,接收整数类型的值,那么在输出的时候都是显示0的,换成%c就是接收字符串类型。可能还有不清楚的地方,这些你就要好好看书了
nalanqx
2012-11-01 · TA获得超过1176个赞
知道小有建树答主
回答量:755
采纳率:0%
帮助的人:612万
展开全部
初值就是你在定义变量的同时就可以给他赋一个初始值
比如 int i=0;
就是定义一个变量,并赋予初值0

一般是为了防止程序中误操作导致直接使用未赋值的变量进行计算

变量变量,之所以叫变量就是他的值是可以改变的,所以即使有初值也可以用赋值的手段来改变变量的值

这道题的话,因为scanf中要求的格式是%d,也就是整形,所以非整形的数字就被忽略了,所以i的值是12,scanf会自动将逗号,空格,回车识别为结束符号
所以到逗号时,第一句结束,开始第二句,然后第二句读取到的是<CR>,这个就是回车,所以第二句终止,第三句还没与触发,因为没有键盘录入了

所以第一句的结果使得i的值变成了12
第二句j没有录入结果,保持初值不变
第三句没有触发,K也保持初值不变

所以答案是12、0、0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengxx92
2012-11-01
知道答主
回答量:64
采纳率:0%
帮助的人:28.4万
展开全部
12.3是一个浮点数,执行第一个scanf语句时,会读入一个数12.3,又因为i是整形,所以存入是i的值12。而变量k和j因为没有得到屏幕输入,值不变,还是初始值。赋值是为了改变原变量的值,有时是程序需要。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式