【Java PTA作业】当老师一口气布置八个作业( 5 / 8 )
创始人
2024-02-07 06:50:10
0

目录

作业一:基本数据类型与表达式

一、判断题

二、单选题 

作业二:程序控制结构

一、单选题

二、程序填空题

三、编程题

7-3 sdut-循环-5-百钱买百鸡

作业三:类与对象

一、单选题

二、编程题 

6-2 长方形长方体类

作业四:继承与多态

一、单选题

二、程序填空题 

super使用--有如下父类和子类的定义,根据要求填写代码

设计一个ComparableCircle类继承自Circle类并实现Comparable接口

三、函数题

6-1 重写父类方法equals 

6-2 设计一个Circle类

四、编程题

7-2 接口--四则计算器

作业五:数组与字符串

一、单选题

二、编程题

 7-1 找出10个整数中的最大值、最小值、偶数的个数、偶数的平均值

7-2 字符串加密


作业一:基本数据类型与表达式

一、判断题

1、(x > 0 || x < 10 && y < 0) 与 ((x > 0 || x < 10) && y < 0)等价。        F

&&优先级大于||

2、Java中的String类型是一种基本数据类型。       

String不是基本的数据类型,是final修饰的java类,是引用类型

3、 Java语言对语法要求严格,局部变量只有在定义、赋初值后才能访问。        T

4、 (x % 2 == 0 && x % 3 ==0 )和 (x % 6 == 0)等价        T

5、如将一个int类型的数转为byte类型,不会造成数据精度的丢失。        F 

如果将数据范围大的类型转化为数据范围小的类型 会造成数据精度丢失

6、运算符“&”和“&&”都表示“与”操作。        T 

7、在Java中,小数会被默认是double类型的值。                T

8、语句 System.out.println(4+8+"Hello,world!"); 的输出结果是12Hello,world!。        T 

二、单选题 

 1、若有定义:int x=3,y=2;float a=2.5,b=4.5;则下面表达式的值为()。

        (x+y)%2+(int)a/(int)b。

A.1.0

B.1

C.1.5

D.2

(int)a=2  (int)b=4 int转化float类型只保留整数

5%2=1 + 2/4 = 1 + 0 = 1

2、下列代码的执行结果是( )

public class Main {public static void main(String[] args) {int a=2,b=8,c=6;String s = "abc";System.out.println(a+b+s+c);System.out.println();}
}

 10abc6

3、JAVA中,下面哪个赋值表达式正确:( )

A.float f=1.3;   java默认类型是double 应该是float f=1.3f

B.char c="a";

C.byte b=257;

 257是int类型,直接赋值给byte类型报错,正确的写法应该是 byte b = (byte) 257

D.int i=10;

4、Java源代码文件的扩展名为(

A..txt

B..class

C..java

D..doc

5、下列关于变量作用域的说法中,正确的是()

A.在main()方法中任何位置定义的变量,其作用域为整个main()方法。

B.代码块中定义的变量,在代码块外也是可以使用的。

C.变量的作用域为:从定义处开始,到变量所在代码块结束的位置。

D.变量的作用域不受代码块的限制。

6、以下( )不是Java中正确的整数表示。

A.22

B.0x22

C.022

D.22H

选项A中表示的是十进制的整数

选项B中表示的是十六进制的整数

选项C中表示的是八进制的整数

选项D它表示的也是十六进制整数,只不过它的表示方法在Java中不能使用,它是在汇编或接口中使用的十六进制表示整数的方法

作业二:程序控制结构

一、单选题

1、对于break语句和continue语句,说法正确的是( )。

A.break语句只应用于循环体中        switch也可以用break 

B.continue语句只应用于循环体中

C.break是无条件跳转语句,continue不是

D.break和continue的跳转范围不够明确,容易产生问题

二、程序填空题

1、功能:计算正整数num的各位上的数字之积。

例如:输入252,则输出应该是20。

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);//int n=sc.next();//此行语句有错误,改正后填到下侧空格内int n=sc.nextInt();//System.out.println(fun(int n));//此行语句有错误,改正后填到下侧空格内System.out.println(fun(n));}//public int fun(int num)//此行语句有错误,改正后填到下侧空格内public static int fun(int num){//int k;//此行语句有错误,改正后填到下侧空格内int k=1;do{k=k*(num%10);//num\=10;//此行语句有错误,改正后填到下侧空格内num/=10;}while(num>0);return k;}
}

注意:public class Main主函数里所有方法必须是静态的static!!!

三、编程题

7-3 sdut-循环-5-百钱买百鸡

 一只公鸡五块钱,一只母鸡三块钱,三只小鸡一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

输入格式:

无输入。

输出格式:

输出所有的解决方案。

每种解题方案各在一行内输出,一行按顺序输入公鸡、母鸡、小鸡的数量,其中每个数值占2个字符的位置,不足2位的数值右对齐放置。

多种解题方案,按公鸡数量从小到大的顺序排列。

输入样例:


输出样例:

公鸡 0只,母鸡25只,小鸡75只
公鸡 4只,母鸡18只,小鸡78只
公鸡 8只,母鸡11只,小鸡81只
公鸡12只,母鸡 4只,小鸡84只
import java.util.*;public class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);for(int i=0;i<20;i++)for(int j=0;j<33;j++)for(int k=0;k<300;k+=3)if(i*5+j*3+k/3==100&&i+j+k==100){System.out.printf("公鸡%2d只,母鸡%2d只,小鸡%2d只\n",i,j,k);}}
}

作业三:类与对象

一、单选题

1、在Java中,负责对不再使用的对象自动回收的是( )

A.垃圾回收器

B.虚拟机

C.编译器

D.多线程机制

2、下面哪句说法是正确的?        A

A.在类中若无显式定义构造函数,会自动产生一个缺省构造器。

B.必须显式定义一个构造函数。

C.每个类都有一个缺省构造函数。  可以没有  

D.缺省构造函数可以有参数也可以没有参数。 缺省构造函数没有参数

类可以有多个构造函数,但最多只能有一个缺省的构造函数,当然类也可能没有缺省的构造函数

3、已如类A的定义如下,程序代码执行结果是:( )。

class A {int v = 10;public void print() {int v = 100;System.out.println(v);}
}public class Main {public static void main(String[] args) {A a=new A();a.print();}
}

 100

4、关于类和对象的关系,下列说法哪种说法是错误的?

A.类和对象都是具体的。

B.类是抽象的,对象是具体的。

C.一般情况下,在定义类之后,能创建无数个对象,可以说,类能化身千万。

D.类是引用型数据类型。

5、 下列关于修饰符使用的说法,错误的是( )。

A.abstract不能与final并列修饰同一个类

B.abstract类中可以有private的成员

C.abstract方法必须在abstract类中

D.static方法中能访问非static的属性

二、编程题 

6-2 长方形长方体类

定义一个长方形类Rectangle,拥有长、宽属性,提供构造方法,能够计算周长getPerimeter()和面积getArea() 。

定义一个子类长方体类,拥有长、宽、高属性,提供构造方法,getPerimeter()方法计算所有边的周长,getArea()方法计算表面积,新增getVolume()方法,计算体积。

在main()方法中,分别构造长方形类和长方体类的对象,并输出他们的周长、面积、体积,保留两位小数。

class Rectangle
{double length,wide;public Rectangle(double length,double wide){this.length=length;this.wide=wide;}public double getPerimeter() //计算周长{return (length+wide)*2;}public double getArea() //计算面积{return length*wide;}
}class Cuboid extends Rectangle
{double height;public Cuboid(double length,double wide,double height){super(length,wide);this.height=height;}//@Overridepublic double getPerimeter() //计算周长{return (length+wide+height)*4;}//@Overridepublic double getArea() //计算面积{return (length*wide+height*length+height*wide)*2;}public double getVolume(){return length*wide*height;}
}

作业四:继承与多态

一、单选题

1、以下对重载描述错误的是

A.方法重载只能发生在一个类的内部

B.构造方法不能重载

C.重载要求方法名相同,参数列表不同

D.方法的返回值类型不是区分方法重载的条件

2、下列哪个叙述是正确的?

A.一个类最多可以实现两个接口

B.允许接口中只有一个抽象方法

C.如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法

D.如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法

  • 如果子类是抽象类,则可以写接口中的部分方法,因为抽象类允许抽象方法的存在
  • 如果子类是非抽象类,则它必须重写接口中所有方法

3、Java关于方法的重写,哪个说法是错误的?( )

A.对一个方法的重写必须发生在具有继承关系的两个类中,即子类对父类方法的重写。

B.方法的重写在一般意义上要求:两个方法的参数个数和类型以及返回值类型都一致。

C.方法的重写是一个类的两个方法,方法的名称相同,但参数不同。

D.子类对象调用子类重写了父类的方法时,优先调用子类的方法。

4、输出结果是

class A {int a = 11;int b = 12;public void print() {System.out.println(a + " " + b);}
}class B extends A {int a = 20;public void print() {System.out.println(a + " " + b);}
}public class Main {public static void main(String[] args) {A aObj = new A();aObj.print();B bObj = new B();bObj.print();}
}

 11 12

 20 12

5、

class A {double f(double x, double y) {return x * y;}
}class B extends A {double f(double x, double y) {return x + y;}
}public class Test {public static void main(String args[]) {A obj = new B();System.out.println(obj.f(4, 6));}
}

 10.0

6、以下关于继承的叙述正确的是( )。

A.在Java中类只允许单一继承

B.在Java中,一个类只能实现一个接口

C.在Java中,一个类不能同时继承一个类和实现一个接口

D.在Java中,接口也具有单继承性

7、接口是一种特殊的类,由()和公共的抽象方法组成,不能包含普通方法和构造方法。

A.全局常量

B.成员变量

C.成员方法

D.构造方法

二、程序填空题 

super使用--有如下父类和子类的定义,根据要求填写代码

class Father {int a;public Father(int a) {this.a=a;}public void print() {System.out.println(a);}
}class Child extends Father {int a;public Child(int a) {super(a);      // 将形参a的数值赋给父类成员变量a this.a=a*10;   // 将父类成员变量a的值*10赋给本类的成员变量a}public void print(){System.out.println(super.a);    // 输出父类成员变量a的值System.out.println(this.a);      // 输出子类成员变量a的值}
}public class Main {public static void main(String[] args) {Child child=new Child(10);child.print();}
}

设计一个ComparableCircle类继承自Circle类并实现Comparable接口

class Circle {private double radius;public Circle(){radius = 1;}public Circle(double radius) {this.radius = radius;}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}public double getArea() {return Math.PI*radius*radius;}public String toString() {return "Cirlce: radius = "+radius;}
}class ComparableCircle extends Circle implements Comparable {public ComparableCircle() {}public ComparableCircle(double radius) {super(radius);}@Override // Implement the compareTo method defined in Comparablepublic int compareTo(ComparableCircle o) {if (getArea() > o.getArea())return 1;else if (getArea() < o.getArea())return -1;elsereturn 0;}@Overridepublic String toString() {return super.toString()+ "\nArea: " + getArea();}
}
public class Main {public static void main(String[] args) {ComparableCircle c1 = new ComparableCircle(7);ComparableCircle c2 = new ComparableCircle(5);System.out.println(c1);System.out.println(c2);System.out.println((c1.compareTo(c2)>=0)?"c1较大":"c2较大");
}
}

三、函数题

6-1 重写父类方法equals 

在类Student中重写Object类的equals方法。使Student对象学号(id)相同时判定为同一对象。

裁判样例:

import java.util.Scanner;
class Student {int id;String name;int age;public Student(int id,     String name,     int age) {this.id = id;this.name = name;this.age = age;}/* 请在这里填写答案 */}
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Student s1 = new Student(sc.nextInt(),sc.next(),sc.nextInt());Student s2 = new Student(sc.nextInt(),sc.next(),sc.nextInt());System.out.println(s1.equals(s2));sc.close();}
}
public boolean equals(Student stu)
{if(this.id==stu.id) return true;return false;
}

6-2 设计一个Circle类

构造一个Circle类,该类有一个double变量radius存放半径,该类具有getArea和getLength两个方法,能够利用半径和Math.PI计算高精度的面积和周长。

该段程序会自动提交import java.util.Scanner;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);while(scanner.hasNextFloat()){double r=scanner.nextDouble();Circle c = new Circle(r);System.out.printf("%.2f %.2f\n",c.getArea(),c.getLength());c.radius = 2*r;System.out.printf("%.2f %.2f\n",c.getArea(),c.getLength());}}
}

输入样例:

在这里给出一组输入。例如:

5

输出样例:

在这里给出相应的输出。例如:

78.54 31.42
314.16 62.83
class Circle
{double radius;public Circle(double r){radius=r;}public double getArea(){return Math.PI*radius*radius;}public double getLength(){return Math.PI*radius*2;}
}

四、编程题

7-2 接口--四则计算器

 利用接口做参数,写个计算器,能完成加减乘除运算。

  1. 定义一个接口ICompute含有一个方法int computer(int n, int m)。
  2. 定义Add类实现接口ICompute,实现computer方法,求m,n之和
  3. 定义Sub类实现接口ICompute,实现computer方法,求n-m之差
  4. 定义Main类,在里面输入两个整数a, b,利用Add类和Sub类的computer方法,求第一个数a和第二个数b之和,输出和,第一个数a和第二个数b之差,输出差。

输入格式:

输入在一行中给出2个整数

输出格式:

输出两个数的和、差

输入样例:

在这里给出一组输入。例如:

6 7

输出样例:

在这里给出相应的输出。例如:

13
-1
import java.util.*;public class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);int a=sc.nextInt(),b=sc.nextInt();Add add=new Add(a,b);Sub sub=new Sub(a,b);System.out.println(add.computer(a,b));System.out.println(sub.computer(a,b));}
}interface ICompute
{abstract int computer(int n,int m);
}class Add implements ICompute
{int m,n;Add(int n,int m){this.n=n;this.m=m;}public int computer(int n,int m){return m+n;}
}class Sub implements ICompute
{int m,n;Sub(int n,int m){this.n=n;this.m=m;}public int computer(int n,int m){return n-m;}
}

作业五:数组与字符串

一、单选题

1、关于字符串的构造方法,如下代码执行结果是( BCD )。

String str="ABCDEFG";
char[] chars=str.toCharArray(); 
System.out.println(new String(chars,1,3));

String(chars,idx,len)      从idx下标开始 len长度的字符串

二、编程题

 7-1 找出10个整数中的最大值、最小值、偶数的个数、偶数的平均值

import java.util.*;public class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);int[] a=new int[10];for(int i=0;i<10;i++) a[i]=sc.nextInt();int maxx=a[0],minx=a[0];int sum=0,cnt=0;for(int i=0;i<10;i++){if(a[i]>maxx) maxx=a[i];if(a[i]

7-2 字符串加密

输入一个原始字符串(长度小于80),然后输入一个5位的数字字符串作为加密密钥,对原始字符串中的每个字符根据其位置(对5取模)变换为加上数字字符串中的数字的字符。如输入原始字符串student,然后输入5位的加密数字12345,因此:

原始字符   加密数字  变换后的字符s          1         tt          2         vu          3         xd          4         he          5         jn          1         ot          2         v

加密后的字符串位:tvxhjov

输入格式:

第一个输入一个原始字符串
第二行输入一个5位用来加密的数字字符串

输出格式:

加密后的字符串

输入样例1:

在这里给出一组输入。例如:

student
12345

输出样例1:

在这里给出相应的输出。例如:

tvxhjov

输入样例2:

在这里给出一组输入。例如:

Welcome to Java!
10932

输出样例2:

在这里给出相应的输出。例如:

Xeufqne)wq!Jjyc"
import java.util.*;public class Main
{public static void main(String[] args){Scanner sc=new Scanner(System.in);String s=sc.nextLine();String n=sc.next();StringBuffer res=new StringBuffer();int[] num=new int[5];for(int i=0;i<5;i++) num[i]=n.charAt(i)-'0';for(int i=0;i

 

相关内容

热门资讯

“索赔420万”,公牛集团已起... “10户中国家庭,7户用公牛”,是公牛集团股份有限公司(以下简称“公牛集团”)长期使用的宣传语。然而...
赋能法援“生力军”!龙华区为2... 深圳商报·读创客户端首席记者 张玮玮 通讯员 曹鹏 文/图 12月17日,深圳市龙华区司法局组织开展...
韩媒:金建希弊案独检组下周将同... 中新网12月21日电 据韩联社21日报道,负责调查韩国前总统尹锡悦夫人金建希弊案的独立检察组(独检组...
湖南祁阳通报“手术钻头断裂遗留... 12月21日,祁阳市卫生健康局发布情况通报: 近日,有媒体报道祁阳市中医医院发生骨科手术钻头断裂遗留...
报告指,新业态从业人员社会保障... 中新网北京12月21日电 (记者 李京泽)21日发布的《社会保障绿皮书:中国社会保障发展报告(202...
相亲闪婚后未办婚礼未同居,男子... 近日,湖南省汨罗市人民法院审理了一起婚约财产纠纷案件。 2024年4月初,王某与张某(女)通过某婚姻...
韩独检组下周将同时起诉尹锡悦夫... 据中国新闻网援引韩联社21日报道,负责调查韩国前总统尹锡悦夫人金建希弊案的独立检察组(独检组)将于下...
对毒品犯罪被告人适用死刑,应考... 如果您想第一时间收到我的更新,请点开文章标题下面的蓝色字体的“刑事专业律师何忠民”,再点击右上角,然...
一财社论:海南封关为制度型开放... 12月18日,海南自由贸易港正式启动封关运作。封关后,海南岛全岛将建成一个海关监管特殊区域,实施以“...
石家庄市住建局:制度筑基 科技... 石家庄发布(shijiazhuangfabu) 运营|石家庄广播电视台新媒体中心 来源|石家庄新闻 ...