求Java基础,练习题。

Python015

求Java基础,练习题。,第1张

选择题 (25道)

1. 下列选项中,不属于Java语言特点的一项是( C )。

A:分布式 B:安全性 C:编译执行 D:面向对象

2. Java语言的特点与 C/C+ +语言的比较中说法错误的是:( D )

A:简单性Java继承了 C/C+ +的语法 ,丢弃了其中不常用又容易引起混淆的功能。

B:Java是一种纯面向对象的语言 ,具有封装、继承 ( Inheritance)和多态( Polymorphism)的特点。

C:Java应用程序可凭借URL打开并访问网络上的对象。

D:解释型Java写成的源代码需要被编译成高阶的字节码 ,它们与机器架构有关。

3. 阅读下列代码,选出该代码段正确的文件名( C )。

class A{

void method1(){

System.out.println("Method1 in class A")

}

}

public class B{

void method2(){

System.out.println("Method2 in class B")

}

public static void main(String[] args){

System.out.println("main() in class B")

}

}

A: A.java B:A.class C: B.java D: B.class

4. 如果一个类的文件名为Student.java,但是类的代码为:

public class Student {

public static void main(String[] args) {

System.out.println(8>>2)

}}

那么下列说法正确的是:( B )

A:程序运行结果为8B:程序运行结果为2

C:程序运行结果为0D:程序编译错误,不能运行

5. 符合对象和类的关系的是( D )。

A:教师和学生 B:书和房子

C:狗和猫 D:飞机和交通工具

6. 关于垃圾回收机制描述不正确的是( B )

A:垃圾回收机制不须通过程序员调用相应方法,也能自动启动。

B:java程序员用System.gc()方法一定能进行垃圾回收

C:垃圾回收机制属于jvm自动操作,java程序员可以不进行垃圾回收操作。

D:垃圾回收机制并不是由操作系统自动执行。

7. 编译下面源程序会得到哪些文件( D )?

class A1{

}

class A2 exdends A1{

}

public class B{

public static void main(String[] args){

}

}

A: 只有B.class文件 B:只有A1.class和A2.class文件

C: 编译不成功 D:A1.class、A2.class和B.class文件

8. 下列关于基本数据类型的说法中,不正确的一项是( D )。

(A)boolean类型变量的值只能取真或假

(B)float是带符号的32位浮点数

(C)double是带符号的64位浮点数

(D)char是8位Unicode字符

9. 下列(D )是合法的标识符?

A:12class B:void C:-5 D:_blank

10. 在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是( D )。

A:byte的默认值是0 B:boolean的默认值是false

C: char类型的默认值是’\0’ D: long类型的默认值是0.0L

11. 下列程序执行的结果是:( B )

public class News {

public static void main(String[] args) {

System.out.println(1+2+ "aa"+3)

}}

A: "12aa3" B: "3aa3 " C: "12aa" D: "aa3"

12. 表达式(12==0) &&(1/0 <1)的值为( B )。

A: true B: false C: 0 D: 运行时抛出异常

13. 下列循环体执行的次数是( C )。

int y=2, x=4

while(--x != x/y){ }

A : 1 B: 2 C : 3 D : 4

14. 已知如下代码:

switch(m){

case 0: System.out.println("Condition 0")

case 1: System.out.println("Condition 1")

case 2: System.out.println("Condition 2")

case 3: System.out.println("Condition 3")break

default:System.out.println("Other Condition")

}

当m的值为( D )时,输出“Condition 3”

(A)2 (B)0、1 (C)0、1、2 (D)0、1、2、3

15. 下列语句输出的结果是:( C )

public class X3 {

public static void main(String[] args) {

for(int i=0i<10i++){

if(i==5) break

System.out.print(i)

}

}

}

A:编译错误B:1234C:01234D:12345

16. 下列语句输出的结果是:( D )

public class Lx1 {

public static void main(String[] args) {

for(int i=0i<5i++){

switch(i){

case 0:System.out.print("B")

case 1:System.out.print("e")break

case 2:System.out.print("g")

case 3:System.out.print("!")break

case 4:System.out.print("!")break

default:System.out.print("!")

}

}

}

}

A:Beg!!! B:Beeg! C:Beg! D:Beeg!!!

17. 下面foreach循环的程序输出结果是( D )。

public class Lx1{

public static void main(String[] args) {

String s1[]={"欢迎您","3","G","同","学",}

Arrays.sort(s1)

for(String s0:s1)

System.out.print (s0)

}

}

A:欢迎您3G同学 B:3G欢迎您同学 C:同学欢迎您3G D:3G同学欢迎您

18. 阅读以下程序,选择正确的运行结果:( B )

public class Lx1 {

public static void main(String[] args) {

byte d[]="YOUIHE你我他".getBytes()

String s=new String(d,6,2)

System.out.println(s)

}

}

A:HEB:你C:我D:他

19. 设有下列数组定义语句:

int a[][]= {{1, 2}, {3}}

则对此语句的叙述正确的是( D )。

A: 定义了一个名为a的一维数组 B: a数组 a[1][1]为0

C: a数组元素的下标为1~3 D: 数组中每个元素的类型都是整数

20. 下列程序输出的结果是:( B )

public class Lx1 {

public static void main(String[] args) {

String a[][] ={{"","","",""},{""},{"",""}}

System.out.println(a[2].length)

}

}

A:1 B:2 C:3 D:4

21. 关于以下程序的说明,正确的是( C )

1. class StaticStuff

2. {

3. static int x=10

4. static { x+=5}

5. public static void main(String args[ ])

6. {

7. System.out.println(“x=” + x)

8. }

9. static { x/=3}

10. }

A、4行与9行不能通过编译,因为缺少方法名和返回类型

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:x=5

D、编译通过,执行结果为:x=3

22. 给出下面代码,关于该程序以下哪个说法是正确的?( C )

public class Person{

static int arr[] = new int[5]

public static void main(String a[]) {

for(int i=0i

System.out.print(arr[0])

}

}

A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空

23. 下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。( C )

class ClassDemo {

public static int sum=1

public ClassDemo() {

sum = sum + 5}

}

public class ClassDemoTest{

public static void main(String args[]) {

ClassDemo demo1=new ClassDemo()

ClassDemo demo2=new ClassDemo()

System.out.println(demo1.sum)}

}

A: 0 B: 6 C: 11 D: 2

24. 下面关于方法的说法,不正确的是( C )。

A: Java中的构造方法名必须和类名相同

B: 方法体是对方法的实现,包括变量声明和合法语句

C: 如果一个类定义了构造方法,也可以用该类的默认构造方法

D: 类的私有方法不能被其他类直接访问

25. 在Java中下列说法正确的是( C )

A) 一个子类可以有多个父类,一个父类也可以有多个子类

B) 一个子类可以有多个父类,但一个父类只可以有一个子类

C) 一个子类可以有一个父类,但一个父类可以有多个子类

D) 上述说法都不对

一、问答题

1、Java语言的数据类型有哪些?8

答:有byte(字节型)、char(字符型)、boolean(布尔型)、short(短整型)、int(整型)、long(长整型)、

浮点型:float(单精度)、double(双精度)。

2、写出算术运算符、关系运算符、逻辑运算符各自包含的运算符,写出条件运算符的形式,并简述其执行过程。10

答:

算术运算符:++、--、+、-、*、/、%

关系运算符:!=、>=、<=、>、<、==

逻辑运算符:!(逻辑非)、&&(逻辑与)、||(逻辑或)

条件运算符的形式:表达式1?表达式2:表达式3;3、数组有怎样的特征?写出一维数组两种初始化的语法格式(可使用具体的实例)。10

答:数组特征:数组有若干个元素;

各元素有相同的数据类型;

按一定的顺序排列;

一维数组两种初始化的语法格式:

int a[]=new int[2]

a[0]=1

a[1]=2

或int a[]

a[]=new int[2]

a[0]=1

a[1]=2int a[]={1,2}

4、比较顺序表、栈、队列的异同点,分别写出冒泡法排序的主要特点。12

答:都运用数组的知识,都运用了方法调用;

栈的特点是:

冒泡法排序的主要特点:

经过多轮循环,每一轮循环从最后一个元素依次与前面的元素比较大小,最终找到的最小元素排在第一位,第一轮循环终止;再依次进行下一轮循环。

二、编程题

1、规定一个工人工作时间一月160小时,每小时工资5元,加班的话,每小时增加4元,请编程计算此工人一个月的工资,工作时间由键盘输入。15

import jaimport java.io.*

pubic class Qgrgz

{

public static void main(String[] args)throws IOException

{int x,result<br> InputStreamReader ir<br> BufferedReader in<br> ir=new InputStreamReader(System.in)<br> in=new BufferedReader(ir)<br> System.out.println("Shurugongrengongzuoshijian:")<br> String s=in.readLine()<br>x=Integer.parseInt(s)<br>if(0<x&&x<=160)<br>result=x*5<br>else<br> result=(160*5+(x-160)*9)<br>System.out.println("gongrenyuegongziwei:"+result)<br> }

}2、编程求解1—100中是7的倍数的数值的和。15

public class Qh

{

public static void main(String[] args)

{

int sum=0

int i=1

while(i<100)

{

if(i%7==0)

sum +=i

i++

}

System.out.println("sum="+sum)

}

}

3、输入3名学生4门课程的成绩,分别统计每个学生4门课程的平均成绩。15

import java.io.*

public class Pjf

{

public static void main(String[] args)throws IOException

{

InputStreamReader ir

BufferedReader in

ir=new InputStreamReader(System.in)

in=new BufferedReader(ir)

for(int i=1i<=3i++)

{

double v=0,sum=0

for(int j=1j<=4j++)

{

System.out.print("请输入第"+i+"个学生第"+j+"科成绩:")

String a=in.readLine()

int x=Integer.parseInt(a)

sum=sum+x

}

v=sum/4

System.out.println("总分是:"+sum)

System.out.println("平均分是:"+v)

}

}

}

4、运用方法调用求一维数组中的最大元素及下标,在main方法中输入数组元素。15

import java.io.*

public class Qszzdys

{ int a[]=new int[10]

public static void main(String[] args)throws IOException

{

int i

Qszzdys b=new Qszzdys()

InputStreamReader ir

BufferedReader in

ir=new InputStreamReader(System.in)

in=new BufferedReader(ir)

for(i=0i<10i++)

{

System.out.println("请输入a["+i+"]:")

String s=in.readLine()

b.a[i]=Integer.parseInt(s)

}

b.d()

}

void d()

{

int max,x=0

max=a[0]

for(int j=1j<10j++)

if(a[j]>max)

{

max=a[j]

x=j

}

System.out.println("最大值是:"+max+"下标是:"+x)

}

}

5、运用选择法对23,45,34,78,99,12,50,0这组数进行升序排列。(选做题,做了加分,没做不减分)15

public class Paixu

{

int [] a

int len

void f(int maxSize)

{

a=new int[maxSize]

len=0

}

void b(int value)

{

a[len]=value

len++

}

void display()

{

for(int i=0i<leni++)

{

System.out.print(a[i]+" ")

}

System.out.println()

}

void ff()

{

int out,in,min

for(out=0out<len-1out++)

{

min=out

for(in=out+1in<lenin++)

if(a[in]<a[min])

min=in

swap(out,min)

}

}

void swap(int one,int two)

{

int temp=a[one]

a[one]=a[two]

a[two]=temp

}

public static void main(String[] args)

{

Paixu paixu=new Paixu()

int maxSize=100

paixu.f(maxSize)

paixu.b(23)

paixu.b(45)

paixu.b(34)

paixu.b(78)

paixu.b(99)

paixu.b(12)

paixu.b(50)

paixu.b(0)

System.out.println("排序前:")

paixu.display()

paixu.ff()

System.out.println("排序后:")

paixu.display()

}

}

public abstract class Animal

{

protected string _Name

public abstract string Name

{

get

}

public abstract void Show()

public void MakeVoice()

{

Console.WriteLine("{0}在叫",_Name)

}

}

public interface IAction

{

void Move()

}

public class Duck:Animal,IAction

{

public override string Name

{

get

{

return _Name

}

}

public Duck(string name)//构造函数

{

_Name = name

Console.WriteLine(_Name)

}

public override void Show() //重写

{

Console.WriteLine("{0}闪亮登场",Name)

}

public void Move() //接口的实现

{

Console.WriteLine("{0}快爬.", Name)

}

}

public class Dog : Animal, IAction

{

public override string Name

{

get

{

return _Name

}

}

public Dog(string name)

{

_Name = name

Console.WriteLine(_Name)

}

public override void Show()

{

Console.WriteLine("{0}闪亮登场", Name)

}

public void Move()

{

Console.WriteLine("{0}快爬", Name)

}

}

#endregion

class Program

{

static void Main(string[] args)

{

Duck duck = new Duck("鸭子")

duck.MakeVoice()

duck.Show()

duck.Move()

Dog dog = new Dog("小狗")

dog.MakeVoice()

dog.Show()

dog.Move()

IAction iaction = (IAction)duck

iaction.Move()

IAction iaction2 = (IAction)dog

iaction2.Move()

Console.ReadKey()

}

}