首页 > 试题广场 >

下面一段程序: public static char ch

[填空题]
下面一段程序:
public static char charAt(String s, int n,  int m) {        
    if (n == 1) return s.charAt(m);
    char first  = charAt(s, n / 2, m * 2);
    char second = charAt(s, n / 2, m * 2 + 1);
    System.out.print(first + "-" + second + "-");
    return first;
}   
执行语句System.out.println (charAt("helloworld",5,1))的输出为1









public static char charAt(String s, int n,  int m) {        
    if(n == 1) return s.charAt(m);
    char first  = charAt(s, n / 2, m * 2);<1>
    char second = charAt(s, n / 2, m * 2+ 1);<2>
    System.out.print(first + "-"+ second + "-");<3>
    return first;
}   


System.out.println (charAt("helloworld",5,1))
<1>程序先运行到这里,
char first = charAt(s,2,2);//因为返回值是 o

charAt(s,2,2)
char first1 =charAt(s,1,4);  // o   下标是 4   charAt(4)
char second =charAt(s,1,5); // w  下标是 5  charAt(5)
System.out.println(o-w-);  打印部分:
return  first:   所以返回值是 o 也就是first1

<2>
char second = charAt(s,2,3);//因为返回值是 o
char first2 = charAt(s,1,6);// o 下标 是6 charAt(6)
char second = charAt(s,1,7) //r 下标是7 charAt(7)
System.out.println(o-r-) //打印部分
return  first  // 返回值是  o   charAt(6)也就是 first2

<3>
char first ='o'
char second = 'o'
打印为(o-o-)
因为最后还有一个返回值: return first   也就是 o  charAt(s,5,1)它的返回值;
o-w-   o-r-  o-o- o


发表于 2019-06-03 15:15:36 回复(1)