Java程序设计 4、5章 练习题

一、填空题

1.假设有

String s1 = "Welcome to Java";
String s2 = s1;
String s3 = new String("Welcome to Java");

那么下面表达式的结果是什么?

(1) s1 == s2              ___________true_______________

(2) s1 == s3              ___________false______________

(3) s1.equals(s2)         ___________true ______________

(4) s2.equals(s3)         ___________true ______________

(5) s1.compareTo(s2);     ____________0_________________

(6) s2.compareTo(s3);     ____________0_________________

(7) s1.charAt(0);         ____________’W’_______________

(8) s1.indexOf('j');      ____________-1________________

(9) s1.indexOf("to");     ____________8_________________

(10) s1.lastIndexOf("o",15) ___________9_________________

(11) s1.substring(3, 11);  ________ come to ” ___________

(12) s1.endsWith("Java")  ______________true________________

(13) s1.startsWith("wel");   _________false_________________

(14) "   We come  ".trim(); ________”We come”______________

(15) s1.toUpperCase();     ________”WELCOME TO JAVA”______

(16) s1.replace('o', 'T'); ________”WelcTme tT Java”______

2. 如果有

StringBuffer s1 = new StringBuffer("Java");
StringBuffer s2 = new StringBuffer("HTML");

假设下列每个语句是独立的,每条语句结束后,写出相应结果:

(1) s1.append("  is fun");       s1为_____ Java  is fun ___

(2) s1.append(s2);               s1为_____ JavaHTML ______

(3) s1.insert(2, "is fun");      s1为______Jais funva_____

(4) s1.insert(1,s2);             s1为______JHTMLava_______

(5) char c = s1.charAt(2);       c为_______v______________

(6) int i = s1.length();         i为_______4_____________

(7) s1.deleteCharAt(3);          s1为______Jav____________

(8) s1.delete(1,3);              s1为______Ja______________

(9) s1.reverse();                s1为______avaJ____________

(10) s1.replace(1,3, "Computer"); s1为_____JComputera_______

(11) String s3 = s1.substring(1,3); 

s3为____av_________________,s1为__________Java___________

(12) String s4 = s1.substring(2);      

S4为____va______________,s1为__________Java_________________

3. 假设有

StringBuffer s = new StringBuffer("Welcome to JAVA");

将s的内容清空的语句是_______ s.delete(0, s.length());________。

4. 如果有

String s1 = "Welcome";
String s2 = new String("Welcome");
String s3 = s2.intern();
String s4 = "Wel" + "come";
String s5 = "Wel";
String s6 = "come";
String s7 = s5 + s6;
String s8 = "Wel" + new String("come");

那么下面表达式的结果为:

(1)s1 == s2     _____false_____

(2)s1 == s3     _____true______

(3)s1 == s4     _____true______

(4)s1 == s7     _____false_____

(5)s1 == s8     _____false_____

(6)s1.equals(s2)  ____true________

(7)s1.equals(s3)   ___true_________

(8)s1.equals(s4)    ___true_________

(9)s1.equals(s7)   ___true_________

(10)s1.equals(s8)  ___true_________

二、单项选择题

1. 可以获取字符串s的最后一个字符的表达式是___C_____。

(A)s.length()

(B)s[s.length() - 1]

(C)s.charAt(s.length() - 1)

(D)charAt(s, length(s))

2. 下面程序

class C {
    public static void main(String[] args) {
        String s = “null”;
        if(s == null)
        System.out.print(“a”);
        else if(s.length() == 0)
        System.out.print(“b”);
        else
        System.out.print(“c”);
    }
}

的输出为___C_____。

(A)a                            (B)b

(C)c                            (D)null

3. 下面程序

class C {
    public static void main(String[] args) {
        String s = “Welcome to ”;
        concat(s);
        System.out.print(s);
    }
    public static void concat(String s) {
        s += “Java”;
    }
}

的输出为___A___。 

(A)Welcome to                (B)Welcome to Java

(C)编译错误                   (D)运行时异常

三、编程题

1. 编写程序,从控制台或对话框任意输入一个英文字符串,统计字符串中每个英文字母出现的次数并输出到控制台(大小写不敏感)。

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        s = s.toLowerCase();
        int [] cnt = new int [26];
        for(int i = 0; i < s.length(); i++){
            if(Character.isLetter(s.charAt(i))){
                cnt[s.charAt(i) - 'a']++;
            }
        }
        for(char i = 'a'; i <= 'z'; i++){
            System.out.print(i + ":"+cnt[i - 'a'] + " ");
        }
    }
}

运行结果:

2.假设一个车牌号码由三个大写字母和后面的四个数字组成。编写一个程序. 生

成5个不重复的车牌号码。

public class Main{
    public static void main(String[] args) {
        String [] licensePlate = new  String [5];
        int cnt = 0;
        while(cnt < 5){
            StringBuilder s = new StringBuilder();
            for (int i = 0; i < 3; i++) {
                char letter = (char) (26 * Math.random() + 'A');
                s.append(letter);
            }
            for(int i = 0; i < 4; i++){
                char num = (char)(10 * Math.random() + '0');
                s.append(num);
            }
            boolean flag = false;
            for(int i = 0; i < cnt; i++){
                if(licensePlate[i].contentEquals(s)){
                    flag = true;
                    break;
                }
            }
            if(!flag){
                licensePlate[cnt] = String.valueOf(s);
                cnt++;
            }
        }
        for(int i = 0; i < 5; i++){
            System.out.println(licensePlate[i]);
        }
    }
}

运行结果:

  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值