| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 411 人关注过本帖
标题:表达式问题请教
只看楼主 加入收藏
电脑学徒
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-11-8
收藏
 问题点数:0 回复次数:9 
表达式问题请教
float x=1;int y=2;
y+=++x*++x;
书上提的问题是:如执行下面语句后,X的值为?
我照学的知识解算;
y+=++x*++x
这是个自增的表达式。我就这样算;
y+=(x+1)*(x+1)
这样算下来结果不是4吗?为何答案是0
难道Y的值是不变的吗?
还有一题;
main();
{
int a=2
a%=(4-1);
printf("d",a);
a+=a*=a-=a*3
printf("%d",a);
}
结果输出是232,我想请会的朋友帮我把每一步的算法帮我列出来 。(%a=(4-1)里面的a%做何解,a+=a*=a-=a*3)


请大家赐教,谢谢
搜索更多相关主题的帖子: 表达 
2007-11-13 09:45
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
0 ?不可能吧!y=8,x=3

首先输出a的值为2,a-=a*3,a=-4;a*=a,a=16;a+=a,a=32;所以结果是a的值32.连在一起输出为232
a%=(4-1)意思是a对(4-1)取模赋值给a,结果还是2.
2007-11-13 09:57
电脑学徒
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-11-8
收藏
得分:0 
第一道题答案:参考答案是0
第二题还是有点迷糊。还能在详细点吗?为什么a%=(4-1)结果是2
我知道我很笨,请大家帮忙。先谢过了

爬呀爬滾呀滾小蝦總有一天變大蝦!愿能与你一起学习一起进步QQ344258813
2007-11-13 10:09
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
a=a%(4-1)=2%3=2
2007-11-13 10:16
jxj777
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-10-27
收藏
得分:0 

第一部分输出时经x输出类型为%f,y输出类型为%d
printf("x=%f,y=%d\n",x,y);结果 x=3.000000,y=11
在输出时,注意类型匹配,


一个人的力量是缈小的....... 互帮互助才是出路
2007-11-13 10:42
电脑学徒
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-11-8
收藏
得分:0 
没有呀。没有要输出结果,只是问这个表达式的中X的值,我想会不会是Y+=(0+1)*(0+1)Y+=1*1,Y+=1 ,Y=1+1得到定义的Y的值2呢?
大家一起想吧/书上的参考答案是X值为0

爬呀爬滾呀滾小蝦總有一天變大蝦!愿能与你一起学习一起进步QQ344258813
2007-11-13 10:52
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 
1.VC编译通过
#include<stdio.h>
int main()
{
float x;int y;
y+=++x*++x;
printf("%f,%d",x,y);
return 0;
}
结果x=3.000000,y=10.
第二题2楼解释是正解

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-11-13 10:57
电脑学徒
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-11-8
收藏
得分:0 

我这是考试题不可上机操作的,书上的参考答案X值为0
请了解步骤的朋友们回贴,谢谢


爬呀爬滾呀滾小蝦總有一天變大蝦!愿能与你一起学习一起进步QQ344258813
2007-11-13 11:06
qiang5219
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-9-10
收藏
得分:0 
(1). float x=1;int y=2;
y+=++x*++x;
定义的是X 是float ,y 是int ,当你运行y+=++x*++x;这个表达式已经出错了,还有最后看你printf("%d",y)还是printf("%f"y,)那,如果是%d那答案就不是零,是%f 那答案就是零了!

(2).main();
{
int a=2
a%=(4-1); /*a=a%(4-1)=2%3=2*/
printf("%d",a); /* a=28/
a+=a*=a-=a*3; /* a-=a*3,a=-4;a*=a,a=16;a+=a,a=32 */
printf("%d",a); /* a=32 */
}
2007-11-13 11:27
eakcon
Rank: 1
等 级:新手上路
帖 子:754
专家分:0
注 册:2007-11-7
收藏
得分:0 
y+=++x*++x;
2007-11-13 11:36
快速回复:表达式问题请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046766 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved