从零开始的java生活(刷题篇1)

上机题

1.分数化简

【问题描述】从键盘输入两个正整数,表示分数的分子和分母,编写程序完成分数的化简,输出化简后的结果,如果结果为整数,只输出整数结果。
【输入形式】从键盘输入两个正整数,两个整数用空格隔开

【输出形式】输出化简后的分子和分母
【样例输入】3 6
【样例输出】1 2
【样例说明】输入分数为3 6,输出其化简后结果1 2,如果输入分数为6 3,则输出其化简后结果2.

代码如下:

import java.util.Scanner;

public class text_1 {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        int a=scanner.nextInt();
        int b=scanner.nextInt();
            
        if(a%b==0)
            System.out.print(a/b);
        else{
            for(int i=a;i>=1;--i){
                if(a%i==0&&b%i==0){
                    a=a/i;
                    b=b/i;
                 }
            }
            System.out.println(a+" "+b);
    }
    }
}

选择题

1.

以下for循环的执行次数是

for(int x=0;(x==0)&(x<4);x++);

A. 无限次

B. 1次
C. 4次
D. 3次

答案:B

2.

下列方法定义中,不正确的是
A. float x( int a,int b ) { return (a-b); }

B. int  x( int a,int b) { return a-b; } 

C. int  x( int a,int b ) { return a*b; } 

D. int  x(int a,int b) { return 1.2*(a+b); }

答案:D

3.

下面的程序片段输出的是什么: 

int a=3;

int b=1;

if(a=b){

  System.out.println("a="+a);

}

A.a=1

B.a=3

C.编译错误,没有输出

D.正常运行,但没有输出

答案:C

4.

以下变量不符合Java语言变量的规定的是:

A.variable_$_123

B.variable123_

C.123variable

D.$variable$$$

答案:C

5.

下列语句序列执行后,k 的值是
  int  i=4,j=5,k=9,m=5; 
  if(i>j||m<k)  k++;  else k--;
A 5
B 10
C 8
D 9

答案:B

6.

以下的变量定义语句中,合法的是
A float $_*5= 3.4F;
B byte b1= 15678;
C double a =10000;
D int _abc_ = 3721L;

答案:C

7.

现有一变量声明为boolean aa;下面赋值语句中正确的是
A aa=false;
B aa=False;
C aa="true";
D aa=0;

答案:A

8.

下列语句序列执行后,r 的值是
  char  ch='A';     int  r=6;
  switch( ch+5 )
  {  
case 'A':  r=r+3;     
case 'B':  r=r+5;
case 'C':  r-=6;       break;     
default :  r/=2;
  }
A 11
B 3
C 2
D 9

答案:B

9.

设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的switch语句是
A switch (x + y)  { ...... }
B switch ( ch + 1 )  { ...... }
C switch  ch  { ...... }
D switch ( a + b );  { ...... }

答案:B

10.

在编译时,不会出现警告或错误的语句是: 

A.boolean b = null;

B.char c = "a";

C.byte b = 257;

D.float f = 1.3f;

答案:D

编程题

1. 奇数和

【问题描述】计算从1开始的奇数的和,条件是当这些奇数的和超过100时就停止打印,循环条件为true。

【输入形式】无
【输出形式】输出这个和,然后换行
【样例输入】无
【样例输出】无
【样例说明】无

代码如下:

public class Homework_1 {
    public static void main(String[] args){
	int sum=0;
    for(int i=1;sum<=100;i+=2)
	sum+=i;
        System.out.println(sum);
        

}
}
2.求闰年

【问题描述】输出(2011-2020年)之间的所有闰年。

【输入形式】无
【输出形式】2011年-2020年之间的所有闰年
【样例输入】无
【样例输出】每个闰年用空格隔开,如 2000 2004 2008
【样例说明】

代码如下:

public class Homework_2 {
    public static void main(String[] args){
    for(int curyear=2011;curyear<=2020;curyear++)
	if((curyear%4==0&&curyear%100!=0)||curyear%400==0)
        System.out.print (curyear+" ");
        

}
}
3.求三角形面积

【问题描述】

若已知三角形三个边的长度分别为a,b,c(并假设三个边长度的单位一致,在本编程题中忽略其单位),则可以利用公式:

    

求得三角形的面积,其中:s=(a+b+c)/2。编程实现从控制台读入以整数表示的三个边的长度(假设输入的长度肯定可以形成三角形),求平方根函数Math.sqrt(double n),然后利用上述公式计算面积并输出,结果小数点后保留3位有效数字。

【输入形式】

从控制台输入三个整数表示三角形三个边的长度,以空格分隔三个整数。

【输出形式】

向控制台输出求得的三角形的面积,小数点后保留三位有效数字。

【输入样例】

4 4 6

【输出样例】

7.937

【样例说明】

输入的三角形三个边的长度分别为4、4、6,利用上述计算公式可以求得三角形的面积为7.937,小数点后保留三位有效数字。

代码如下:

import java.util.Scanner;

public class Homework_3 {
    public static void main(String[] args){
	Scanner scanner = new Scanner(System.in);
	int a = scanner.nextInt();
	int b = scanner.nextInt();
	int c = scanner.nextInt();
	double s = ((a+b+c)/2);
	double S =Math.sqrt( s*(s-a)*(s-b)*(s-c)) ;
        System.out.printf ("%.3f",S );
        

}
}
4.完全数问题Perfect Number

【问题描述】完全数,又称为完美数或完备数,是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如,第一个完全数是6,它的约数1、2、3、6,去除它本身6外,其余3个数相加,1+2+3=6.第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。编程求10000以内的完全数。
【输入形式】无
【输出形式】输出10000以内的完全数,并输出每个完数的真因子。完数及各真因子之间用空格隔开,一个完数一行
【样例输入】无

【样例输出】

6 1 2 3

28 1 2 4 7 14
【样例说明】一个完数及其真因子占一行,第一行输出表示6为完数,1 2 3是它的真因子

【要求】需要定义方法实现

public class Homework_4 {
    public static void main(String[] args){
		for(int i=6;i<=10000;++i)
			perfertCount(i);
}
    
    public static void perfertCount(int i){
    	int sum=0;
    	for(int j=1;j<i;++j){
			if(i%j==0)
				sum+=j;
			
		}
		if(sum==i){
			System.out.printf("%d ",sum);
			for(int j=1;j<i;++j)					
				if(i%j==0){
					System.out.printf("%d ",j);
		
				}
			System.out.println();
		}
    	
    }
    
}

博主java萌新,有问题可评论区共同交流学习,欢迎大家交流awa

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值