请教高手关于C语言的赋值问题

设整型变量i的值为63,则执行表达式i=i*3/7后得i=27;而执行i*=3/7后得i=0
它们的表达方式不是一样的吗?哪个才是对的?

第一个 相当于 i = (i*3)/7 = (63*3)/7 = 27
第二个相当于 i = i*(3/7) = 63*(3/7) = 63*0 = 0

这个无所谓对错 看你需要哪种
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-03
C语言/左右两边都是int
他是整除
3/7=0
向0取

请教一个关于C语言赋值的问题,高手指点~~
在最后的输出语句中有错误,那样的话没有输出列表,当然结果不对,可改为 printf("%d\\n",q);printf("%f\\n"w);

C语言a+=a-=a*=a怎么等于0啊,具体怎么算的,请教高手
+= -= *= 都是复合的赋值运算符,结合方向从右到左,所以要从右到左运算。第一步:执行 a*=a,a变为144 第二步:执行 a-=a,a变为 0 第三步:执行 a+=a,a还是 0

请教C语言高手:char c ; c=‘a’; c的ASCII代码为97,则在内存中c的值...
c='c';,此时给字符变量赋值的是字符:即‘c’,此时系统“一看”是字符,就用ascll码的形式存储。还有就是:计算是按二进制的形式存储的,因此字符也不例外;因此:c的ascii代码为97,则在内存中c的值:0110 0001的形式。希望有所帮助!!!

请教C语言高手一个问题
void fun(char* str){ char temp;int n,i;\/\/取得str的长度 n=strlen(str);\/\/将最后一个字符赋值给temp;\/\/ 注意数组下标从0 开始,故这里要用n-1 temp = str[n-1];\/\/循环将数组前一个位置的值赋值到当前位置.\/\/当i 值减小到0 的时候退出,也就是说str[0]的值还是原来的值,没有变 ...

a=a+7 是正确的赋值表达式吗?(初学,请教各位高手)
是正确的赋值表达式(在c\/c++中,java中都是,有些语言,如vb,也可能是判断相等的逻辑运算,但在c中相等是==)

设有语句int a=3,执行语句a+=a-=a*a后,变量a的值是多少啊?
执行该语句的结果为-12,没有错误。注意赋值运算符的顺序为自右到左。计算过程如下:首先执行a*a=9,然后a-=9=(a=a-9)=-6,执行后a=-6,然后执行a+=a=(a=a+a)=-12。所以说正确答案是-12。

求高手帮忙做一些C语言试题
4.0)\/8值的数据类型为double。正确 2、逻辑关系“a≥10或a≤0”正确表示的C语言表达式是:a>=10 or a<=0 。错误 3、a=b=58是合法的C语言赋值表达式。正确 4、C语言表达式值的类型可以根据环境来确定。错误 5、若有int x=5;,则(float)x就把x转换为float类型了。错误 ...

C语言中将实型数据赋给整型数据时小数部分是四舍五入还是直接舍去_百度...
截断是对的。类型转换不存在四舍五入。就好比你拿一个小杯子装水一样。原类型占用字节比目标类型短的时候就好比拿个大杯子装小杯子里的水一样无损失如果源类型占用字节比目标类型长的时候就好比用小杯子去装大杯子里的水超出的部分就被舍弃了。

C语言请教(问题简单)
pi=pi+t就是将pi与t的和得到的新值赋给pi,完成一个累加的过程。这个循环一直进行到t的绝对值小于1e-4(即10的-4次方)结束。如刚开始pi的值为0,第一次循环t=1.0,其绝对值明显大于1e-4,故pi=0+1.0= 1.0。第二次循环t=-1\/3,其绝对值明显大于1e-4,故pi=1.0+(-1\/3)= ...

请教各位高手一个问题:在C语言中,整型数据以“%f”格式输出时,不对的...
f是将这组数据前部分视作数据 后部分视作指数 从几开始我也忘了 呵呵 当然会出错啦 额 不对应格式输出全部都不可以!理由依然是数据解释不对 比如说你要输出'A' 但是用了%d的控制符 那么就会输出65 因为A在ASCII表中的大小事65 也就是说数据0100 0001 你用%c输出 就表示字符'A' 用%d...

相似回答