救命啊,真的搞不懂
C语言的题
设x,y 为int型变量,则执行下列语句后,y的值是( )
x=5;
y=x++x++;
y=--y--y;
A.529
B.2401
C.1209
D.625
我运行之后是784,但是没有这个答案,在百度找到的说529,还有说800多。答案是A529,真的看不懂啊
你应该是搞错了,题目应是这样的:看图
由于 自加 与自减 运算符 的优先级高于乘法运算符 所以上式可以变为 y=(x++)(x++); y=(--y)(--y); 第一步 x++ 是先引用 后自加 所以 y=(x++)(x++); 就相当于 y=55;此时 x=7,y=25 第二步 --y 是 先自减 后引用 所以 y经过两次自减 y=23 所以 y=23*23=529 选A
望采纳!
x++里的++,优先级比赋值还要低,所以是先算乘法,再赋值,最后自加,那么y的值是25
--y里的--,优先级最高,所以最终是23x23
而不同IDE里优先级并不一样
你最好用vs之类的优先级比较可靠的IDE来进行测试
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这道题目中包含了多个自增自减运算符,以及运算符优先级和结合性的问题,需要仔细分析。我们可以逐步分析每一行代码的含义:
-
最终,y的值是529。
-
在这道题中,根据C语言的规则,在y=x++x++这一行中,x会被两次后置自增运算,但是由于后置自增运算符的优先级较低,因此会先计算表达式的右侧x++,也就是先使用5这个值,然后将x自增到6。接着再计算表达式的左侧x++,此时x的值已经是6,因此左侧表达式的结果是6,同时x又会被自增到7。
-
因此,y的初始值为11,因为y=x++x++相当于y=x+1;x=x+2,即y=5+1+6=11。接着,y=--y--y相当于y=y-1-1; y=-(y-1-1),因此y的最终值为529。
表达式中间有乘号,它没有显示出来
该回答内容部分引用GPT,GPT_Pro更好的解决问题
C语言是一种通用、结构化的计算机程序设计语言,它是从汇编语言发展而来,其语法类似于汇编语言,但功能更强大。C语言的特点就是它的灵活性和可扩展性,它支持复杂的数据结构和函数,这使得C语言成为非常流行的编程语言。
C语言的运算过程中,可以实现自加、自减和乘法,即可以将变量本身的值与另一个值进行运算,从而得到新的值。例如:x=x+1,x=x-1,x=x2。其中x表示一个变量,+、-或表示加、减或乘法运算符,1或2表示另一个值。
此外,C语言中还包含了nt型变量(ntype variable)。nt型变量是在C语言中定义的一种变量,它由两个部分组成:一个是整数部分(int part),用于存储整数部分的值;另一个是浮点部分(float part),用于存储浮点部分的值。
回到题目上来看:设xy 为nt型变量,则执行下列语句后,y的值是 ( ) x=5; 这里的x代表了一个nt型变量xy中的整数部分,而y代表了xy中的浮点部分。当我们执行上面的语句 x=5; 时,就是将xy中的整数部分赋值为5。因此y = 5*5^2 = 625;所以正确答案是D. 625
如果回答有帮助,望采纳。