以下为个人学习笔记和习题整理
课程:零基础学 Java 语言 - 浙江大学 - 翁恺 @ 中国大学 MOOC
https://www.icourse163.org/course/ZJU-1001541001

# 客观题

# 单选题

  1. 以下哪个不是 Java 语言的关键字?

    • goto
    • switch
    • if
    • Scanner
  2. 对于以下代码:

    for ( int i=0; i<10; i++)
        System.out.println(i);

    for 循环结束后,i 的值是多少?

    • 11
    • 10
    • 没有确定的值
    • i 不再存在了
  3. 以下哪个 for 语句是错误的?

    • for (i=0; i<10, j<10; i++);
    • for (;;);
    • for (i=0; i<10; i--);
    • for (i=0; j<10; j++);
  4. 对于以下代码段:

    String s1 = "a";
    String s2 = "b";
    String s3 = "";

    以下操作可以编译的是:

    • s3 = s1 + s2;
    • s3 = s1 - s2;
    • s3 = s1 ^ s2;
    • s3 = s1 & s2;
  5. 以下哪个是定义和创建数组的正确方式?

    • int a[] = new [5];
    • int a[] = {1,2,3,4,5};
    • int a[5];
    • int a = new int[5];
  6. 下代码片段的输出是?

    boolean m = true;
    if ( m=false )
      System.out.println("False");
    else
      System.out.println("True");
    • 没有输出
    • 编译错误
    • True
    • False

    if (m=false) 相当于 m = false if ( m )

  7. 表达式 'B'+'8'-'3' 表示的字符是:

    • g
    • G
    • 69
    • 5
  8. 循环语句 while (!x&&!y) 中的循环条件表达式等价于

    • x=false && y=false
    • !(x || y)
    • !(x==false || y==false)
    • !(x==false && y==false)
  9. 假设字符变量 ch 中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是

    • ch-=32
    • ch+=32
    • ch=ch-'a'-'A'
    • ch=ch-32
  10. 以下哪个是有效的 Java 程序入口函数?

    • public static void main();
    • public static int main(String[] args);
    • public static void main(String[] args);
    • public static void main(int argc, String[] args)
  11. 对于 String s; ,以下哪句是对的?

    • s 是一个变量,它将要管理一个 String 的对象
    • s 是一个变量,它现在正管理着一个 String 的对象
    • s 是一个变量,其中有一个 String 的对象
    • s 现在的值是 null
  12. 有以下定义: double a,b,c; 则以下哪个表达式与 a/b/c 不等价?

    • (a/b)/c
    • a/(b*c)
    • a/c/b
    • a/(b/c)
  13. 以下哪句不能编译?

    • if ( a==b ) System.out.println("no");
    • if ( a==b ); else System.out.println("no");
    • if ( a==b ){} else System.out.println("no");
    • if ( a==b ) else System.out.println("no");
  14. 以下哪个循环并非重复 5 次?

    • int i; for (i=0; i<=5; i++) {}
    • int i; for (i=1; i<6; i++) {}
    • int i; for (i=1; i<=5; i++) {}
    • int i; for (i=0; i<5; i++) {}
  15. 以下哪个循环能编译?

    • for ( i=10 ; i<100 ) {}
    • for ( i=10 ; i++ ) {}
    • for ( i=10 , i<100, i++ ) {}
    • for ( i=10 ; i++; ) {}
  16. 对于以下代码: int i,j=6; 以下哪句话是对的?

    • i 不会被初始化,而 j 是 6
    • 不能通过编译
    • i 和 j 的初始值都是 6
    • i 被初始为 0,而 j 是 6
  17. 下面的方法,当参数值为 2 的时候返回值是多少

    public int getValue(int i) {
         int result = 0;
         switch (i) { 
            case 1: 
                result = result + i; 
            case 2: 
                result = result + i  * 2; 
            case 3: 
                result = result + i  * 3; 
        } 
        return result; 
     }
    • 10
    • 6
    • 8
    • 0
  18. 给出下面代码,关于该程序以下哪个说法是正确的

    public class Person {  
         static int arr[] = new int[5]; 
         public static void main(String a[]) {  
              System.out.println(arr[0]);
         }   
    }
    • 编译错误
    • 输出为空
    • 运行时刻异常
    • 输出 0
  19. 以下哪种运算能从变量 x 中取得它的个位数

    • x-10
    • x%10
    • x*10
    • x/10
  20. 在代码: while (!e) 中, !e 等价于:

    • e
    • !e=1
    • e==0
    • e!=true

# 判断

  1. Java 语言中不用区分字母的大写小写

  2. Java 的各种数据类型占用固定长度,与具体的软硬件平台环境无关

  3. Java 中数组的下标只能是各种整数数据类型

  4. 使用方法 length() 可以获得字符串及数组的长度

  5. 一个数组可以存放不同类型的数值

  6. while 循环的条件满足的时候循环继续,而 do-while 的条件满足的时候循环就结束了

  7. int 是比 long 窄的类型

  8. boolean 和 int 之间不能相互赋值

  9. 数组的大小必须在写程序时就确定

  10. 数组一旦被创建出来,就不能改变大小

# 编程题

# 题目 1. 二进制的前导的零(10 分)

  • 题目内容
    计算机内部用二进制来表达所有的值。一个十进制的数字,比如 18,在一个 32 位的计算机内部被表达为 00000000000000000000000000011000。可以看到,从左边数过来,在第一个 1 之前,有 27 个 0。我们把这些 0 称作前导的零。

    现在,你的任务是写一个程序,输入一个整数,输出在 32 位二进制表达下它前导的零的个数。

  • 输入格式
    一个整数,在 32 位的整数可以表达的范围内。

  • 输出格式
    一个整数,表达输入被表达为一个 32 位的二进制数时,在第一个 1 之前的 0 的数量。

  • 输入样例
    256

  • 输出样例
    23

# 解题代码

import java.util.Scanner;
public class Main {
    
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int number = in.nextInt();
        int count = 0;
        
        if (number < 0) {
            System.out.println(0);
        } else if (number == 0) {
            System.out.println(32);
        } else {
            while ( number > 0) {
                number /= 2;
                count ++;
            }
            
            System.out.println(32 - count);
        }
    }
}
阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Ruri Shimotsuki 微信支付

微信支付

Ruri Shimotsuki 支付宝

支付宝

Ruri Shimotsuki 贝宝

贝宝