| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1760 人关注过本帖
标题:java 编程作业我刚接触 java,有些题目还不是很懂!希望大虾们多多帮助!
只看楼主 加入收藏
xu2738461746
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:70
注 册:2014-9-22
收藏
得分:4 
回复 4 楼 汪刚
java
事面向对象的吧
2014-10-03 20:56
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:4 
以下是引用汪刚在2014-10-1 22:39:55的发言:

【095】以下关于Java语言特点描述错误的是()。



(选择一项)
A) 是跨平台的编程语言
B) 是面向过程的编程语言
C) 具有运行时的多态特性
D) 具有继承的特性
【参考答案】:B
B为什么是错的捏?


Java是面向对象的编程语言,所以B是错误的
2014-10-03 21:53
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 22:45:35的发言:

***【097】在Java中,以下程序的运行结果是()。
public class Main{
    public static void main(String[]args){
        String str=”test”;
        chang(str);
        System.out.println(str);
    }
    public static void chang(String str){
        str+=”<<”;
        str+=”>>”;
    }
}


(选择一项)
A) <<test>>
B) test<<>>
C) test
D) str
【参考答案】:C
大神啊,这段代码中的chang(str)是什么意思?
哎@!好乱啊!还不如直接System.out.printly("test");
求解答!


这个题目是在考核:Java传递参数的时候,是按照传值的方式,而不是传引用的方式来传递的
chang方法并不能像它的名字一样,改变main传递过来的变量的值,所以选C

为了加强一下理解,给你写了一个更深入一些的例子,请参考
程序代码:
package thread_436798_1_1.test097;

public class Main {
    public static void main(String[] args) {
        String str = "test";
        chang(str);
        System.out.println(str);

        StringBuffer strBuffer = new StringBuffer("test");
        chang_itworks(strBuffer);
        System.out.println(strBuffer);
    }

    public static void chang(String str) {
        str += "<<";
        str += ">>";
    }

    public static void chang_itworks(StringBuffer strBuffer) {
        strBuffer.append("<<" + ">>");
    }
}


运行结果是:【按下Ctrl+A查看】
test
test<<>>
2014-10-03 23:38
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 22:48:19的发言:

还有,还有,
***【098】在Java中,如下代码段的输出结果为()。
String s="my";
s=s.concat("dog");
System.out.println(s.length());

(选择一项)
A) 5
B) 2
C) 10
D) 3
【参考答案】:A

看到这里我完全懵了!    大侠们帮帮我!


学习Java得首先学会如何查看联机文档,比如下面这个链接里的关于concat方法的内容,应该足够解释为什么答案是A
http://docs.
2014-10-03 23:44
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 23:02:44的发言:

大神,这道题我也不会!帮帮我!
***【107】阅读下列Java代码,运行后正确的输出结果是()。
public class Test{
    public int coutStr(String[]arry,String str){
        int count=0;
        for(int i=0;i<arry.length;i++){
            if(arry.indexOf(str)!=-1)
                count++;
        }
        return count;
    }
    public static void main(String[]args){
        String[]arry={"happy","apple","money","ending"};
        String findStr="a";
        Test test=new Test();
        int count=test.coutStr(arry,findStr);
        System.out.println("此数组中有"+count+"个字符串包含字符"+findStr);
    }
}

(选择一项)
A) 此数组中有1个字符串包含字符a
B) 此数组中有2个字符串包含字符a
C) 编译错误
D) 正常编译,运行时报错
【参考答案】:B
方法中的String[]arry,String str是什么?
还有i<arry.length;这个到底小于多少?
return count;是返回到哪了?
int count=test.coutStr(arry,findStr);这又是啥?


首先,原来的程序是错误的,不能通过编译
修改后的代码如下:
程序代码:
package thread_436798_1_1.test107;

public class Test {
    public int coutStr(String[] arry, String str) {
        int count = 0;
        for (int i = 0; i < arry.length; i++) {
            if (arry[i].indexOf(str) != -1)
                count++;
        }
        return count;
    }

    public static void main(String[] args) {
        String[] arry = { "happy", "apple", "money", "ending" };
        String findStr = "a";
        Test test = new Test();
        int count = test.coutStr(arry, findStr);
        System.out.println("此数组中有" + count + "个字符串包含字符" + findStr);
    }
}


运行结果:
此数组中有2个字符串包含字符a

>> 方法中的String[]arry,String str是什么?
coutStr方法有两个参数,
第一个是字符串数组,值为[happy, apple, money, ending]
第二个是字符串,值为"a"
这个题目正如最后输出一样,是要找出在[happy, apple, money, ending]这四个字符串里,有几个字符串里面包含字符a

>> 还有i<arry.length;这个到底小于多少?
小于4,修改后的代码
arry[0]代表happy
arry[1]代表apple
arry[2]代表money
arry[3]代表ending

>> return count;是返回到哪了?
int count = test.coutStr(arry, findStr);
coutStr的返回值被赋值给main方法里的count变量了

>> int count=test.coutStr(arry,findStr);这又是啥?
调用test对象的coutStr方法,并把参数传递给它,最终获取其计算结果(返回值)
2014-10-03 23:58
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 23:06:21的发言:

还有***【108】在Java中,如下代码的输出结果是()。
public static void main(String[]args){
    char c[]={'1','2','3','4'};
    for(int i=0;i<c.length/2;i++){
        char d=c;
        c=c[c.length-(i+1)];
        c[c.length-(i+1)]=d;
    }
    for(int i=0;i<c.length;i++){
        System.out.print(c);
    }
}


(选择一项)
A) 1234
B) 3412
C) 1324
D) 4321
【参考答案】:D
求解答!


程序代码:
package thread_436798_1_1.test108;

public class Main {
    public static void main(String[] args) {
        char c[] = { '1', '2', '3', '4', '5' };
        for (int i = 0; i < c.length / 2; i++) {
            char d = c[i];
            c[i] = c[c.length - (i + 1)];
            c[c.length - (i + 1)] = d;
        }
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i]);
        }
    }
}


运行结果:
54321

说白了就是从第一个开始【下标为0】,到中间(奇数个字符的时候)或者中间的前一个数(偶数个字符的时候)为止【下标为c.length / 2】
对调下标所指向的字符,和对称的字符
从而实现翻转整个字符串的功能

看到这个题目,我想到了以前学习外语的时候的一个学习方法:
会听是骗人的,会读也是骗人的,只有会说才是真正的掌握了

说白了,翻转整个字符串可能有很多种方法,如果你能自己试着写出来一个完整的能运行的代码,再回头来读这段代码就没有任何鸭梨了

下面是我写的,O(∩_∩)O~
程序代码:
package thread_436798_1_1.test108;

public class Reverse {
    public static void main(String[] args) {
        StringBuffer string = new StringBuffer("12345");
        string.reverse();
        System.out.println(string);
    }

}
2014-10-04 00:09
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 23:06:47的发言:

***【111】在java中,下面选项输出结果为true的是()

(选择一项)
A) System.out.println("CBD".equalsIgnoreCase("cbd"));
B) String s1 = new String("CBD");
        String s2 = new String("CBD");
        System.out.println(s1==s2);
   
C) System.out.println("CBD"=="cbd");
D) System.out.println("CBD".equals("cbd"));
【参考答案】:A
求解答!


这个题目比较简单
Java里面比较两个字符串是否相等的话,要使用equals来进行判断
而不能使用==来判断

关于equalsIgnoreCase,可以查看相应的API文档
2014-10-04 00:11
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 23:07:19的发言:

***【117】在Java中,System.out.println("非常Happy!".toUpperCase());语句的输出结果是()


(选择一项)
A) 非常HAPPY!
B) 非常happy!
C) 非常Happy!
D) 转换时出现中文,会报错
【参考答案】:A
求解@!


还是得仔细看文档,看完后还蒙圈的话,把自己的疑问贴出来让大家讨论
由于这个方法是和Locale设定相关的,所以严密的讲,A和D(不见得报错,但有可能会乱码)都有可能对
http://docs.
2014-10-04 00:18
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 23:07:50的发言:

***【119】下面Java代码中,condition1和condition2取何值时,会输出"货到付款"四个字()
boolean condition1=_____,condition2=______;
if(condition1)
if(condition2)
    System.out.println("在线支付");
else
    System.out.println("货到付款");

(选择一项)
A)  true  true
B) true  false
C) false  true
D) false  false
【参考答案】:B
求解!


程序代码:
package thread_436798_1_1.test119;

public class Main {
    public static void main(String[] args) {
        boolean condition1 = true;
        boolean condition2 = false;
        if (condition1) {
            if (condition2) {
                System.out.println("在线支付");
            } else {
                System.out.println("货到付款");
            }
        }
    }

}


解析:
else是从后往前,与第一个能匹配上的if语句结合的
真正书写代码时都得带上花括号
2014-10-04 00:25
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
以下是引用汪刚在2014-10-1 23:10:39的发言:

【123】运行以下Java代码,正确的输出结果是( )。
public class Test {
    private int i = 0;
    private int j = 1;
    private boolean returnTrue(){
        System.out.println("return true");
        return j > i;
    }
    private boolean returnFalse(){
        System.out.println("return flase");
        return i > j;
    }
    public static void main(String[] args) {
        Test test = new Test();
        if(test.returnFalse() && test.returnTrue()){
            System.out.println("test");
        }
    }
}

(选择一项)
A) return truereturn flase
B) return flasereturn true
C)  return flase
D) return truereturn flasetest
【参考答案】:C
求解!


package thread_436798_1_1.test123;

public class Test {
    private int i = 0;
    private int j = 1;

    private boolean returnTrue() {
        System.out.println("return true");
        return j > i;
    }

    private boolean returnFalse() {
        System.out.println("return false");
        return i > j;
    }

    public static void main(String[] args) {
        Test test = new Test();
        if (test.returnFalse() && test.returnTrue()) {
            System.out.println("test");
        }
    }
}


解析:
原题有拼写错误,修改后的输出为:return false

原因可以百度:短路求值(Short-circuit evaluation,又称最小化求值),是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值。

Java的if语句沿袭C语言风格是短路求值的,这样书写出来的代码既优美,又高效。
记忆中VB好像不是短路求值的,下面的代码不会正常运行,会运行时溢出
程序代码:
Sub division()
    Dim dividend As Integer 'アサウハ
    dividend = 0
    
    Dim divider As Integer 'ウハ
    divider = 0
    
    If divider <> 0 And dividend / divider > 1 Then
        MsgBox "dividend / divider > 1"
    Else
        MsgBox "dividend / divider <= 1"
    End If
End Sub


必须得这么写才行
程序代码:
Sub division()
    Dim dividend As Integer 'アサウハ
    dividend = 0
    
    Dim divider As Integer 'ウハ
    divider = 0
    
    If divider <> 0 Then
        If dividend / divider > 1 Then
            MsgBox "dividend / divider > 1"
        Else
            MsgBox "dividend / divider <= 1"
        End If
    Else
        MsgBox "divider = 0"
    End If
End Sub
2014-10-04 00:39
快速回复:java 编程作业我刚接触 java,有些题目还不是很懂!希望大虾们多多帮助 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018591 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved