Java程序控制语句练习题


1.判断一个数字是奇数还是偶数

代码示例:

//1.判断一个数字是奇数还是偶数
//先让用户从键盘输入一个正整数,
//再将这个数模2,结果为0则是偶数,否则是奇数
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个正整数:");
int num=sc.nextInt();
if(0==num%2){
   System.out.println(num+"是偶数");
}else{
   System.out.println(num+"是奇数");
}
//输出示例:
请输入一个正整数:
7
7是奇数

2.判断一个数字是正数,负数,还是零

代码示例:

//2.判断一个数字是正数,负数,还是零
//首先给出一个数字
//将该数字和0比较,若相等则为0,比0大则为正数
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数字:");
int num1=sc.nextInt();
if(num1==0){
   System.out.println(num1+"是零");
}else if(num1>0){
   System.out.println(num1+"是正数");
}else{
   System.out.println(num1+"是负数");
}
//输出示例:
请输入一个数字:
-10
-10是负数

请输入一个数字:
0
0是零

请输入一个数字:
253
253是正数

3. 判断一个年份是否为闰年

代码示例:

//3. 判断一个年份是否为闰年
//用户先从键盘输入一个年份
//闰年能够被4整除但不能被100整除;能够被400整除
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个年份:");
int year=sc.nextInt();
if(year%400==0||(year%4==0&&year%100!=0)){
   System.out.println(year+"是闰年");
}else{
System.out.println(year+"不是闰年");
}
//输出示例:
请输入一个年份:
1000
1000不是闰年

4.根据年龄, 来打印出该年龄属于哪个年龄阶段.

少年(不超过18), 青年(19-28), 中年(29-55), 老年(56以上).
代码示例:

//4.根据年龄, 来打印出该年龄属于哪个年龄阶段.
//首先用户输入一个年龄
//判断年龄属于哪个区间
Scanner sc=new Scanner(System.in);
System.out.println("请输入所查询的年龄:");
int age=sc.nextInt();
if (age>=0&&age<=18){
    System.out.println("是少年");
}else if(age>=19&&age<=28){
    System.out.println("是青年");
}else if(age>=29&&age<=55){
    System.out.println("是中年");
}else if(age>=56){
    System.out.println("是老年");
}else{
    System.out.println("输入有误");
}
sc.close();
//输出示例:
请输入所查询的年龄:
75
是老年

5. 判定一个数字是否是素数

代码示例:

//5. 判定一个数字是否是素数
//首先输入一个大于1的自然数m
//如果m不能整除2~m-1的任何数,那么m为素数
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数字:");
int m=sc.nextInt();
int count=0;//借助计数器
for(int i=2;i<=m-1;i++){
//优化:不必循环到m-1,循环到m开2次根号就可以了
//for(int i=2;i<=Math.sqrt(m);i++){
   if(m%i==0){
       count++;
   }
}
if(count==0){
    System.out.println(m+"是素数");
}else{
    System.out.println(m+"不是素数");
}
sc.close();
//输出示例:
请输入一个数字:
31
31是素数

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

代码示例:

//6. 打印 1 - 100 之间所有的素数
for(int m=2;m<=100;m++){
    int count=0;//借助计数器
    for(int i=2;i<=Math.sqrt(m);i++){//优化
        if(m%i==0){
            count++;
       }
    }
    if(count==0){
        System.out.print(m+" ");
    }
}
//输出示例:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

7. 输出 1000 - 2000 之间所有的闰年

代码示例:

//循环给出1000-2000之间的闰年,再判断,是闰年就输出
for(int year=1000;year<=2000;year++){
    if(year%400==0||(year%4==0&&year%100!=0)){
        System.out.print(year+" ");
    }
}
//输出示例:
1004 1008 1012 1016 1020 1024 1028 1032 1036 1040 1044 1048 1052 1056 1060 1064 1068 1072 1076 1080 1084 1088 1092 1096 1104 1108 1112 1116 1120 1124 1128 1132 1136 1140 1144 1148 1152 1156 1160 1164 1168 1172 1176 1180 1184 1188 1192 1196 1200 1204 1208 1212 1216 1220 1224 1228 1232 1236 1240 1244 1248 1252 1256 1260 1264 1268 1272 1276 1280 1284 1288 1292 1296 1304 1308 1312 1316 1320 1324 1328 1332 1336 1340 1344 1348 1352 1356 1360 1364 1368 1372 1376 1380 1384 1388 1392 1396 1404 1408 1412 1416 1420 1424 1428 1432 1436 1440 1444 1448 1452 1456 1460 1464 1468 1472 1476 1480 1484 1488 1492 1496 1504 1508 1512 1516 1520 1524 1528 1532 1536 1540 1544 1548 1552 1556 1560 1564 1568 1572 1576 1580 1584 1588 1592 1596 1600 1604 1608 1612 1616 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 1684 1688 1692 1696 1704 1708 1712 1716 1720 1724 1728 1732 1736 1740 1744 1748 1752 1756 1760 1764 1768 1772 1776 1780 1784 1788 1792 1796 1804 1808 1812 1816 1820 1824 1828 1832 1836 1840 1844 1848 1852 1856 1860 1864 1868 1872 1876 1880 1884 1888 1892 1896 1904 1908 1912 1916 1920 1924 1928 1932 1936 1940 1944 1948 1952 1956 1960 1964 1968 1972 1976 1980 1984 1988 1992 1996 2000 

8. 输出乘法口诀表

代码示例:

//8. 输出乘法口诀表
//1*1=1
//1*2=2 2*2=4
//1*3=3 2*3=6 3*3=9
//.......
//1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
for (int i=1;i<=9;i++){
    for(int j=1;j<=i;j++){
       System.out.print(j+"*"+i+"="+(j*i)+" ");
    }
    System.out.print("\n");
}
//输出结果:
1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

9. 求两个正整数的最大公约数

代码示例:

//9. 求两个正整数的最大公约数
//给出两个数 a、b
//使用辗转相除法
Scanner sc=new Scanner(System.in);
System.out.println("请输入较大的数字:");
int a=sc.nextInt();
System.out.println("请输入较小的数字:");
int b=sc.nextInt();
int m1=a;
int m2=b;
int m3=0;
m3=m1%m2;
for(int i=0;i<i+1;i++)
if(m3==0){
    break;
}else{
    m1=m2;
    m2=m3;
}
System.out.println(a+"与"+b+"的最大公约数为"+m2);
//输出示例:
请输入较大的数字:
12
请输入较小的数字:
8
128的最大公约数为4

10. 输出100~999之间的所有“水仙花数”。

说明:“水仙花数”是指一个三位数,其各位数字的立方和恰好等于该数本身,如;153= 1 3 + 5 3 + 3 3 1^3+5^3+3^3 135333,则153是一个“水仙花数”。
代码示例:

//10. 输出100~999之间的所有“水仙花数”。
//“水仙花数”是指一个三位数,其各位数字的立方和恰好等于该数本身,如;153=$1^3+5^3+3^3$,则153是一个“水仙花数”。
//先用循环给出100-999之间的所有三位数
//取该三位数的每一位数字、判断立方和是否等于该三位数,等于则输出
for(int i=100;i<=999;i++){
int a=i%10;
int b=(i/10)%10;
int c=i/100;
int sum=(a*a*a)+(b*b*b)+(c*c*c);
if(sum==i){
   System.out.println(i);
}
}
//输出结果:
153
370
371
407

11. 写一个函数返回参数二进制中 1 的个数

比如: 15 0000 1111 4 个 1
代码示例:

//11. 写一个函数返回参数二进制中 1 的个数
//由于十进制转化为2进制时,是除2取余,故只需判断除2的余数是否为1即可
public static int countonebits(int num) {
int count = 0;
while(num>0){
    if(num%2==1){
         count++;
    }
    num=num>>1;
    }
return count;
}
public static void main(String[] args) {
    int i=15;
    System.out.println(countonebits(i));
}
//输出结果:
4

12. 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。

代码示例:

//12. 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入数字:");
        int value=scan.nextInt();
        System.out.println("偶数序列:");
        for(int i=31;i>0;i-=2){
            System.out.print((value>>i)&1);
        }
        System.out.println("");
        System.out.println("奇数序列:");
        for(int i=30;i>=0;i-=2){
            System.out.print((value>>i)&1);
        }
//输出示例:
请输入数字:
11
偶数序列:
0000000000000011
奇数序列:
0000000000000001

13. 猜数字游戏

代码示例:

//猜数字游戏
        Random random = new Random(); // 默认随机种子是系统时间
        Scanner sc = new Scanner(System.in);
        int toGuess = random.nextInt(100);
        // System.out.println("toGuess: " + toGuess);
        while (true) {
        System.out.println("请输入要输入的数字: (1-100)");
        int num = sc.nextInt();
        if (num < toGuess) {
            System.out.println("低了");
        } else if (num > toGuess) {
            System.out.println("高了");
        } else {
            System.out.println("猜对了");
            break;
        }
        }
        sc.close();
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值