Java数据类型和方法练习题

Java数据类型和方法练习题

1.下面属于java基本类型的有(BC )
A.String
B.byte
C.char
D.Array
2.在Java中表示换行符的转义字符是(A)
A.\n
B.\f
C.‘n’
D.\dd
3.下面关于变量及其范围的陈述哪些是不正确的(B )
A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被执行时创建
D.局部变量在使用前必须被初始化
4.经过强制类型转换以后,变量a,b的值分别为多少(B )
short a =128;
byte b =(byte) a;
A.128 127
B.128 - 128
C.128 128
D.编译错误
5.如下Java语句 double x=2.0; int y=4; x/=++y; 执行后,x的值是(C )
A.0.5
B.2.5
C.0.4
D.2.0
6.下列说法正确的是(AB )
A.布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。
B.byte a = 130; float b = 3.5; 这两行代码会发生编译错误
C.int a = 3; byte b = a; 这句话可以正常通过编译,且运行不会发生错误。
7.下列哪个不是赋值符号©
A.+=
B.<<=
C.<<<=
D.>>>=
8.下列说法不正确的是(D )
A.Java当中的注释有,单行注释,多行注释(块注释),文档注释。
B.注释可以提高代码可读性 ,方便后期代码维护 ,方便程序员间的交流沟通 ,生成帮助文档 。
C.注释不能长篇大论,也不要太过于简单,适度就好。
D.注释并不需要,只要变量等命名合理就行。
9.下列语句哪一个正确 ( C)
A.Java程序经编译后会产生machine code
B.Java程序经编译后会产生byte code
C.Java程序编译使用命令javac 运行使用 java 命令
D.以上都不正确
10.基本数据类型均可任意互相转换(B )
A.对
B.错
11.如果要打印一个字符串,需要使其输出结果为:“hello”,则以下哪种方式可以正确输出:( A)
A.System.out.println("\“hello\”");
B.System.out.println("\“hello\”");
C.System.out.println("/“hello/”");
12.switch(){}结构中,括号中可使用的数据类型不能是( AD)。
A.long
B.int
C.short
D.float
13.数字9 出现的次数
编写程序数一下 1到 100 的所有整数中出现多少个数字9:

public class Test {
    public static void main(String[] args) {
        int num=0;
        int count=0;//计数器
        for ( num = 1; num <=100 ; num++) {
            if(num%10 == 9){
             count++;
            }
            if(num/10 == 9){
                count++;
            }
        }
        System.out.println(count);
    }
}

在这里插入图片描述
14.输出闰年
输出 1000 - 2000 之间所有的闰年:

public class leapYear {
    public static void main(String[] args) {
        int year;
        for(year=1000;year<=2000;year++){
        if((year%400 == 0)||(year%4 == 0 && year%100 != 0)){
                System.out.println(year);
            }
        }
    }
}

在这里插入图片描述

15.打印素数
打印 1 - 100 之间所有的素数:

public class Test {
    public static void main(String[] args) {
        for (int i = 1; i <=100; i++) {
            boolean isprime=true;
            if(i==1){
                isprime=false;
            }
            for (int j = 2; j <i ; j++) {
                if(i%j == 0){
                    isprime=false;
                    break;
                }else{
                    isprime=true;
                }
            }
            if(isprime==true){
                System.out.println(i+" ");
            }
        }
    }
}

在这里插入图片描述

16.判定素数
给定一个数字,判定一个数字是否是素数:

import java.util.Scanner;
public class Test {public static void main(String[] args) {
        result();
    }
    public static boolean judge(int x){
        if(x==1 || x==0){
            return false;
        }
        for (int i = 2; i <=Math.sqrt(x) ; i++){
            if(x%i == 0){
                return false;
            }
        }
        return true;
    }
    public static void result() {
        Scanner s = new Scanner(System.in);
        System.out.print("请输入一个你想判断的数:");
        int n = s.nextInt();
        if (n > 0) {
            if (judge(n)) {
                System.out.println("是素数");
            } else {
                System.out.println("不是素数");
            }
        }else{
            System.out.println("请输入一个大于0的数");
            result();
        }
    }
}

在这里插入图片描述
17.年龄打印
根据输入的年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上):

import java.util.Scanner;
public class Test{public static void main(String[] args) {
        while(true){
            System.out.println("请输入要判断的年龄");
            Scanner in=new Scanner(System.in);
            int age=in.nextInt();
            if(age<0){
                System.out.println("输入有误,重新输入");
                continue;
            }
            if(age>=19 && age<=28){
                System.out.println("少年");
                break;
            }
            if(age>=29 && age<=55){
                System.out.println("中年");
                break;
            }
            else{
                System.out.println("老年");
                break;
            }
        }
    }
}

在这里插入图片描述
18.打印 X 图形:

import java.util.Scanner;
public class Test{
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        while(input.hasNext())
        {
            int n=input.nextInt();
            char[][]arr=new char[n][n];
            for(int i=0;i<n;i++){
                for (int j = 0; j <n; j++) {
                    arr[i][j]=' ';
                }
            }
            for (int i = 0; i <n; i++) {
                arr[i][i]='*';
            }
            for(int j=0;j<n;j++)
            {
                arr[j][n-j-1]='*';
            }
            for(int i=0;i<n;i++){
                for (int j = 0; j <n; j++) {
                    System.out.println(arr[i][j]);
                }
                System.out.println();
            }
        }
    }
}

19.猜数字游戏
完成猜数字游戏 ,用户输入数字,判断该数字是大于,小于,还是等于随机生成的数字,等于的时候退出程序。

mport java.util.Scanner;//导入包中的Scanner34类
import java.util.Random;
public class Test{public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        Random random=new Random();
        int rand=random.nextInt(100);//括号中的数表示生成随机数的范围while(true){
            System.out.println("请输入一个数:");
            int num=scan.nextInt();
            if(num>rand){
                System.out.println("你猜大了");
            }
            else if(num==rand){
                System.out.println("猜对了");
                break;//猜对了跳出循环
            }
            else{
                System.out.println("猜小了");
            }
        }
        System.out.println("游戏结束!");
    }
}

20.水仙花数
求出100~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本 身,如;153=1+5+3?,则153是一个“水仙花数“。)

public class Test{
    public static void main(String[] args) {
        int sum=0;
        for (int i =100; i <999 ; i++) {
            int j=i%10;
            int k=i/10%10;
            int y=i/100%10;
            sum=j*j*j+k*k*k+y*y*y;
            if(i == sum){
                System.out.println(i);
            }
        }
    }
}

在这里插入图片描述
21.计算分数的值 。
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。

public class Test{
    public static void main(String[] args) {
        int i=1;
        int n=0;
        double sum=0,a=1,b=1;
        while(i<100){
            if(n%2==0){
                sum=sum+a;
                n=n+1;
            }else{
                sum=sum-a;
                n=n+1;
            }
            a=1/(b+2);
            b=b+2;
            i=i+1;
        }
        System.out.println("和为:"+sum);
    }
}

在这里插入图片描述
22.最大公约数
求两个正整数的最大公约数:

import java.util.Scanner;
public class Test{public static void main(String[] args) {
        System.out.println("请输入两个数:");
        Scanner in=new Scanner(System.in);
        int a=in.nextInt();
        int b=in.nextInt();
        int c=0;
        while(true){
            c=a%b;
            if(c == 0){
                break;
            }
            else{
                a=b;
                b=c;
            }
        }
        System.out.println(b);
    }
}

在这里插入图片描述
23.二进制1的个数。
求一个整数,在内存当中存储时,二进制1的个数:

import java.util.Scanner;
public class Test{
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num=scanner.nextInt();
        int count=0;
        for (int i = 0; i <32 ; i++) {
            if(((num>>i)&1)==1){
                count++;

            }
        }
        System.out.println(count);
    }
}

在这里插入图片描述
24.输出一个整数的每一位
输出一个整数的每一位,如:123的每一位是1 , 2 , 3:

import java.util.Scanner;
public class Test{public static void print(int num){
        if(num>9){
            print(num/10);
        }
        System.out.println(num%10+"");
    }
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num=scanner.nextInt();
        print(num);
    }
}

在这里插入图片描述
25.输出乘法口诀表
输出n*n的乘法口诀表,n由用户输入。

import java.util.Scanner;
public class Test{public static void multiplicationTable(int n) {
        int i=1;
        int j=1;
        for (i= 1; i <n ;i++) {
            for (j = 1; j <i ; j++) {
                System.out.println(j+"*"+i+"="+j*i+" ");
            }
            System.out.println();
        }
    }
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        multiplicationTable(n);
    }
}

在这里插入图片描述
26.求和的重载
在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果:

import java.util.Scanner;
public class Test{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int a1=sc.nextInt();
        System.out.println("请输入第二个整数:");
        int a2=sc.nextInt();
        System.out.println("请输入第一小数");
        double b1=sc.nextDouble();
        System.out.println("请输入第二小数");
        double b2=sc.nextDouble();
        System.out.println("请输入第三小数");
        double b3=sc.nextDouble();
        System.out.println("整数和:"+sum(a1,a2));
        System.out.println("小数和:"+sum(b1,b2,b3));
    }
    public static int sum(int a1,int a2){
        return a1+a2;
    }
    public static double sum(double a1,double a2,double a3){
    return a1+a2+a3;
    }
}

在这里插入图片描述
27.求最大值方法的重载
在同一个类中定义多个方法:要求不仅可以求两个整数的最大值,还可以求两个小数的最大值,以及两个小数和一个整数的大小关系:

import java.util.Scanner;
public class Test {public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        int b = scan.nextInt();
        System.out.println("两个整数中最大的是:" + max(a, b));
        double i = scan.nextDouble();
        double j = scan.nextDouble();
        System.out.println("两个小数中最大的是:" + max(i, j));
        double x = scan.nextDouble();
        double y = scan.nextDouble();
        int k = scan.nextInt();
        System.out.println("两个小数和一个整数中最大的是:" + max(i, j, k));
    }

    public static int max(int a, int b) {
        return a > b ? a : b;
    }

    public static double max(double i, double j) {
        return i > j ? i : j;
    }

    public static double max(double i, double j, int k) {
        return max(max(i, j), k);
    }
}

在这里插入图片描述
28.求最大值
创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。
​ 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算:

import java.util.Scanner;
public class Test {public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        System.out.print("请输入第一个数:");
        int a1=sc.nextInt();
        System.out.print("请输入第二个数:");
        int a2=sc.nextInt();
        System.out.print("请输入第三个数:");
        int a3=sc.nextInt();
        System.out.println("三个数中最大的是:"+max3(a1,a2,a3));
    }
    public static int max3(int n1,int n2,int n3){
        int m1=max2(n1,n2);
        return max2(m1,n3);
    }
    private static int max2(int n1, int n2) {
        return n1>n2? n1:n2;
    }
}

在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZJHFOREVERZJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值