JAVA读程序题的答案~

JAVA读程序题的答案~,第1张

15,parent,child,child

16.0,8888,9999

17:redblueredblueredblue

18:j=1

j=2

j=0

j=2

j=0

j=1

i=3

因为"=="是判断等号两边的值是否相等的语句。

c语言中的“=”是赋值,“==”才是判断。

等号左边是x,它的值为3,右边是y+z,因为"+"的运算优先级大于"=="所以先执行y+z,得到表达式的值为1+0=1.

所以if(x==y+z)等价于判断 if(3==1),"3==1"的返回值自然是false

于是不执行if()语句下的语句,而是执行else中的printf("+++")

所以最后的输出是 +++

啊,是五道题啊...不是第五题...

没看清楚,不好意思。

等下补答

1. 前缀"--"和后缀"--"的区别:前缀返回的是值改变之后的值,后缀返回的是改变之前的值。

所以输出的一个是后缀的10,一个是前缀的9.

当然如果你再printf("%d,%d",x,y)就都输出9了。

2. 因为x,y,z都是整型变量,所以x/y的返回值是整除的值,也就是商。

10/3=3余1,而%相当于mod,也就是10对3取模。取模运算只能对整数进行。

在两个数都是正整数的时候就等于除法的余数,也就是1。

z=(x/y)是赋值语句返回的值就是改变后的z。

3. 可以看到,它printf的是两个表达式的值。而且是两个逻辑表达式。

第一个是(a+b>c &&b==c) “&&”表示且,也就是当两个都为真的时候返回true,任意一个为假,返回false,可以看到a+b>c是true,而b==c是false,所以返回值是false,因为是以整数形式输出,那么就是true=1,false=0.

第二个式子是c>b>a,c语言中没有连比,这个式子会从左算到右。即(c>b)>a。

其中c>b是true,因为要和a这个整型变量比,所以会强制转int变成1,然后1>a返回值就是false了。

4. 也是前置和后置的问题。m=++i 返回的是i=i+1之后的值。也就是6,n=j--返回的是变化之前的值就是12.

程序1数组为:

1 第0行

1 1 第1行

1 2 1 第2行

1 3 3 1 第3行

输出为:第2,3行

程序2作用是把输入字符串中各字符的ASCII码加1,遇到z则转成a

故答案是:

17 C

18 D

19 D

20 C


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12088432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存