新手的几个 C语言问题!~~求助!
1.设x为int 型变量,执行以下语句,x=10;x+=x-=x-x; x 的值为?? 2.若定义x 和y 为double 型变量,表达式t=1,t+5,t++的值是?? 3.若t为double 型变量,则表达式x=1,y=x+3/2的值是?? 4.设x,y,z,均为int型变量,执行以下语句:x=y=z=1; t=x++||++y&&++z;后t的值为??
1, 我们先来说明一下“复合赋值运算符” 种类:+= -= *= /= %= 《= 》= &= ^= |= 含义: exp1 op= exp2 等价于 exp1 = exp1 op exp2 总的来说,x+=x-=x-x 等价于 x=x+(x=x-(x-x)) 我们一步一步来看: 第一步: x-=x-x 等价为 x=x-(x-x),把右边计算一下,它等价为 x=x。
“x=x”作为一个表达式,它的值就是 x。 也就是说,x-=x-x 的值为 x。 (在这个运算过程中只有一个赋值过程,就是把x的值赋给x,所以x的值并没有变化) 第二步: 把“x-=x-x”的值为 x代入“x+=x-=x-x”中,有 x+=x 即 x=x+x ——它表示把两个x相加,并把相加的和赋值给x。
所以,x=10+10=20。 2, 因为:t为double 型变量, t=1,是把 1(它本来是int型的) 转换为 double型的 1,再赋值给 t。 所以,t=1的值是,double型 的 1 在“t+5”中,应把int型的 5 转换为double型的 5,再和t相加。
所以,最后的“t+5”是 double型 在“t++”等价于“t=t+1”,与上面相同,“t+1”是double型的,然后把,t+1 的值赋给 t,同样还是 double型的。 3, 因为:x 和y 为double 型变量 “x=1”,这与2小题中“t=1”是一样的。
x=1的值是double型的。 “y=x+3/2”中,根据优先级别,应先计算除号 即先算“3/2”。因为 3、2 都是int型。所以,3/2 也为int型,其值为int型的 1。 这个int型的 1 再与double型的x 相加。这时,int型的 1 被转换成double型的 1。
所以,“y=x+3/2”的值为 double型的 x+1。0 4, 当执行 x=y=z=1 后,x、、z的值都是 1。 这个题主要是是要搞清楚“t=x++||++y&&++z”中运算的先后顺序。 下面我用括号来表示他们之间的先后顺序。
t={(x++)||[(++y)&&(++z)]} (注意,这里的“x++”,它的优先级虽然高,但它的作用是在整个语句执行完后,再改变x的值。) 所以,t={(x++)||[(++y)&&(++z)]} 等价于 以下两个语句, t={x||[(++y)&&(++z)]};x=x+1; “++y”和“++z”的值都为 2, 再算 2&&2,其结果为真,数值上表示为 1。
再算 x||1,起结果也为真,数值上表示为 1。 最后,t=1。
答:答案选A,这是计算机题目还是数学题目啊,有点像编程详情>>
答:详情>>
问:我家孩子想去湖南拓维教育培训,想提高孩子成绩,怎么样了?
答:那是肯定没有问题的啊,拓维教育跟长郡中学网站合作,这对你孩子进名校提供了一个门槛哦详情>>
答:小学科学教案|小学科学教案下载 21世纪教育网详情>>
答:终于有考教师资格证书的朋友了,哈哈!我今年刚考完,幸运的是,考过了啊 !我的资料共享里就有,你去下载吧!肯定对你有帮助的.还有就是,考的的确挺细的,不要把你认为...详情>>