『零基础学Java语言-浙江大学-翁恺』期末考试

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

文章目录

  • 客观题
    • 单选题
    • 判断
  • 编程题
    • 题目1. 二进制的前导的零(10分)
      • 解题代码

客观题

单选题

  1. 以下哪个不是Java语言的关键字?
    A. goto
    B. switch
    C. if
    D. Scanner

    D

  2. 对于以下代码:

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

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

    A. 11
    B. 10
    C. 没有确定的值
    D. i不再存在了

    D

  3. 以下哪个for语句是错误的?
    A. for (i=0; i<10, j<10; i++);
    B. for (;;);
    C. for (i=0; i<10; i--);
    D. for (i=0; j<10; j++);

    A

  4. 对于以下代码段:

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

    以下操作可以编译的是:
    A. s3 = s1 + s2;
    B. s3 = s1 - s2;
    C. s3 = s1 ^ s2;
    D. s3 = s1 & s2;

    A

  5. 以下哪个是定义和创建数组的正确方式?
    A. int a[] = new [5];
    B. int a[] = {1,2,3,4,5};
    C. int a[5];
    D. int a = new int[5];

    B

  6. 下代码片段的输出是?

    boolean m = true;
    if ( m=false )
      System.out.println("False");
    else
      System.out.println("True");
    

    A. 没有输出
    B. 编译错误
    C. True
    D. False

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

  7. 表达式 'B'+'8'-'3' 表示的字符是:
    A. g
    B. G
    C. 69
    D. 5

    B

  8. 循环语句 while (!x&&!y) 中的循环条件表达式等价于
    A. x=false && y=false
    B. !(x || y)
    C. !(x==false || y==false)
    D. !(x==false && y==false)

    B

  9. 假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是
    A. ch-=32
    B. ch+=32
    C. ch=ch-‘a’-‘A’
    D. ch=ch-32

    B

  10. 以下哪个是有效的Java程序入口函数?
    A. public static void main();
    B. public static int main(String[] args);
    C. public static void main(String[] args);
    D. public static void main(int argc, String[] args)

    C

  11. 对于String s;,以下哪句是对的?
    A. s是一个变量,它将要管理一个String的对象
    B. s是一个变量,它现在正管理着一个String的对象
    C. s是一个变量,其中有一个String的对象
    D. s现在的值是null

    A

  12. 有以下定义:double a,b,c; 则以下哪个表达式与a/b/c不等价?
    A. (a/b)/c
    B. a/(b*c)
    C. a/c/b
    D. a/(b/c)

    D

  13. 以下哪句不能编译?
    A. if ( a==b ) System.out.println("no");
    B. if ( a==b ); else System.out.println("no");
    C. if ( a==b ){} else System.out.println("no");
    D. if ( a==b ) else System.out.println("no");

    D

  14. 以下哪个循环并非重复5次?
    A. int i; for (i=0; i<=5; i++) {}
    B. int i; for (i=1; i<6; i++) {}
    C. int i; for (i=1; i<=5; i++) {}
    D. int i; for (i=0; i<5; i++) {}

    A

  15. 以下哪个循环能编译?
    A. for ( i=10 ; i<100 ) {}
    B. for ( i=10 ; i++ ) {}
    C. for ( i=10 , i<100, i++ ) {}
    D. for ( i=10 ; i++; ) {}

    D

  16. 对于以下代码: int i,j=6; 以下哪句话是对的?
    A. i不会被初始化,而j是6
    B. 不能通过编译
    C. i和j的初始值都是6
    D. i被初始为0,而j是6

    A

  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; 
     }
    

    A. 10
    B. 6
    C. 8
    D. 0

    A

  18. 给出下面代码,关于该程序以下哪个说法是正确的

    public class Person{  
         static int arr[] = new int[5]; 
         public static void main(String a[]) {  
              System.out.println(arr[0]);
         }   
    }
    

    A. 编译错误
    B. 输出为空
    C. 运行时刻异常
    D. 输出0

    D

  19. 以下哪种运算能从变量x中取得它的个位数
    A. x-10
    B. x%10
    C. x*10
    D. x/10

    B

  20. 在代码:while ( !e ) 中,!e等价于:
    A. e
    B. !e=1
    C. e==0
    D. e!=true

    D

判断

  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);
		}
	}
}

你可能感兴趣的:(自考笔记,#,04747Java语言程序设计)