流程控制习题(二)

1.已知判断闰年的规则是:能被4整除,但是不能被100整除。或者能被400整除。打印从1900年至2050年期间所有的闰年。

  int y = ;//定义一个变量 年份y

  for(y=1900;y<=2050;y++){      //循环遍历

    if((y%4==0  &&  y%100!=0)||(y%400==0))   //闰年条件

    {

     System.out.println(y);   //打印年份

     }

    }

2.使用while/do-while/for循环三种方式打印100以内4的倍数

  int x =1;

  while(x<=100)  //条件表达式

  {

  if(x%4==0)   //条件

  {

  System.out.println(x);

  }

  x++;   //循环语句

  }

int x = 1;

do

{

if(x%4==0)

{

System.out.println(x);

}

x++;

}while(x<=100);

 

for(int x =1; x<=100; x++)

{

if(x%4==0)

{

System.out.println(x);

}

}

3.输入数量不确定的正数和负数(一次输入一个),然后打印整数和负数的个数,当输入0时,程序停止

 (1)

  int[] s;     //定义一个数组

      s=new int[100];    //变量

      int i,zheng=0,fu=0;   //定义变量

      Scanner sc=new Scanner(System.in);  //创建Scanner对象

      for(i=0;i<100;i++){   //循环遍历

     

        s[i]=  sc.nextInt();

        if(s[i]==0) //输入0,程序停止

        {

          break;

          }

        if(s[i]>0)//数大于0,为正数

        {

         zheng++;

        }

        if(s[i]<0) //数小于0,为负数

          {

         fu++;

          }

      }

          System.out.println("正数的个数"+zheng); //打印个数

          System.out.println("负数的个数"+fu);

 (2)

Scanner scanner = new Scanner(System.in);
  int num ;//num用来保存从控制台输入的整数
  int zheng=0;
  int fu=0;
  do
  {
   System.out.println("请输入整数");
   num = scanner.nextInt();
   if(num>0)
   {
    zheng++;
   }else if(num<0)
   {
    fu++;
   }else
   {
    break;
   }
  }while(true);
   System.out.println("正数的个数"+zheng); //打印个数

          System.out.println("负数的个数"+fu);


  

 

4.输入序号选择不用的功能

 

Scanner sc = new Scanner(System.in);

for(int a=0; a<3; a++)

{

System.out.println("*******************");

System.out.println("1.管理员       2.顾客      3.退出");

System.out.println("请输入数字选择登录");

int b =sc.nextInt();

if(b==1)

{

System.out.println("管理员登录过程省略");

 

}

else if(b==2)

{

System.out.println("顾客登录过程省略");

 

}

else if(b==3)

{

System.out.println("系统退出");

}

}

 

5.编写程序,设计一个图平面积计算,选择不同的图形输入数字计算面积,选择4退出程序。

Scanner sc = new Scanner(System.in);

for(int a=0; a<3; a++)

{

System.out.println("计算面积");

System.out.println("1.矩形       2.三角形      3.圆      4.退出");

System.out.println("请选择数字对应的功能");

int b = sc.nextInt();

if(b==1)

{

System.out.println("你选择了矩形");

System.out.println("请输入矩形的长");

int x =sc.nextInt();

System.out.println("请输入矩形的宽");

int y = sc.nextInt();

System.out.println("矩形的面积为:"+x*y);

 

} else if(b==2)

{

System.out.println("你选择了三角形");

System.out.println("请输入三角形的底长");

int s =sc.nextInt();

System.out.println("请输入三角形的高");

int m = sc.nextInt();

System.out.println("矩形的面积为:"+s*m/2);

}else if(b==3)

{

System.out.println("你选择了圆");

System.out.println("请输入圆的半径");

int d =sc.nextInt();

System.out.println("矩形的面积为:"+3.14*d*d);

}else if(b==4)

{

System.out.println("退出");

}

}

 

6.要求用户输入用户名和密码,只要不是admin和111就提示用户名或密码不正确,请重新输入。正确时结束循环,提示登陆成功

Scanner scanner = new Scanner(System.in);
  String user;
  String pwd;
  boolean flag = false;
  do
  {
   System.out.println("请输入用户名");
   user = scanner.nextLine();
   System.out.println("请输入密码");
      pwd = scanner.nextLine();
      if("admin".equals(user)  && "111".equals(pwd))//打印登录成功,结束while
      {
       System.out.println("登陆成功");
       //让while 后的条件变成flase
       break;
      }else//用户名或密码有误的情况。继续执行do-while
      {
       System.out.println("用户名或密码不正确");
       //让while 后的条件变成true
       flag =true;
      }
  }while(flag);
  

 

 

7.使用for循环方式计算2+4+6++100的值

int x=0;

for(int i=0;i<=100;i++){

if(i%2==0){

x=x+i;

}

}

         System.out.println(x);

8.编写Java程序,在控制台上打印出九九乘法表(两种)

 

for(int a=1; a<=9; a++){

for(int b=1; b<=a; b++)

{

System.out.print(b+"*"+a+"="+a*b+"\t");

}

System.out.println();

}

 

for(int a=1; a<=9; a++){

for(int b=1; b<=9; b++)

{

System.out.print(b+"*"+a+"="+a*b+"\t");

}

System.out.println();

}

9.不断要求用户输入一个数字(假定用户输入的数字都是正整数),当用户输入end的时候显示刚才输入数字中的最大值。

 

 
  Scanner scanner = new Scanner(System.in);
  String input;//接收从控制台输入的字符串
  int num;
  int max =0;//存储最大的数
  
       do
       {
        System.out.println("请输入一个字");
        input =scanner.nextLine();
        if("end".equals(input))
        {
         //结束while
         break;
        }else
        {
         //说明是数字,跟最大的那个比较
         num =Integer.parseInt(input);
         if(num>max)
         {
          max=num;
         }
        }
       }while(true);
       System.out.println("最大值是:"+max);

 

10.输入一个整数,判断这个数字是不是质数

Scanner input = new Scanner(System.in);

  System.out.println("请输入一个数:");

  int a = input.nextInt();

  boolean isF = true;

  for(int i=2;i<a;i++)

  {

   if(a%i==0){

    isF = false;

    break;

   }else{

    continue;

   }

  }

  if(isF){

   System.out.print(a+"是质数");

  }else{

   System.out.print(a+"不是质数");

  }

11.打印出100以内的质数,一行显示5个,(质数是只能被1跟自身整除的数,1不是质数)

 

    int i=100;

    int n=0;

    for(int j=2;j<i+1;j++){

      int a=j;

      int c=1;

      for(int b=2;b<a;b++){

        if(a%b==0){

          c=0;

          break;

        }

      }

      if(c==1){

       System.out.print(j+",");

        n=n+1;

        if(n%5==0){

          System.out.println();

        }

      }

    }

12.某城市出租车计费问题:

Ø每日06:00-21:00,起步价6元,当日22:00-次日05:00,起步价7元。

Ø起步价包含2公里,超出部分按照每公里1.5元收费。

Ø每次乘车加收1元的燃油附加税。

输入打车的时间和距离,计算本次打车的费用。

 

Scanner sc = new Scanner (System.in);

System.out.println("请输入您上车时间");

int a = sc.nextInt();

if(a>=6 && a<=21)

{

System.out.println("距离");

int b = sc.nextInt();

double x=(6+(b-2)*1.5);

System.out.println("打车费用:"+x);

}else if(a>=22 && a<=24)

{

System.out.println("距离");

int c = sc.nextInt();

double y=(7+(c-2)*1.5);

System.out.println("打车费用:"+y);

}else if(a>=0 && a<=5)

{

System.out.println("距离");

int d = sc.nextInt();

double z=(7+(d-2)*1.5);

System.out.println("打车费用:"+z);

}

posted @ 2017-02-21 22:57  plq  阅读(980)  评论(0编辑  收藏  举报