导航:首页 > 编程语言 > 50道java基础编程练习题

50道java基础编程练习题

发布时间:2022-08-13 00:03:19

1. java编程

/*
1000道题目,每组10道,共100组,前50组一个规则,后50组一个规则,随机抽取,抽完1000题!
*/
importjava.util.HashSet;
importjava.util.TreeMap;
publicclassPaper{
staticString[]arr[]={newString[550],newString[300],newString[100],newString[50]}
,srr={"_易:","较易:","_难:","困难:"};
publicstaticvoidmain(String[]args){
TreeMap<String,HashSet<String>>tm=newTreeMap<String,HashSet<String>>();
for(inti=0;i<arr.length;i++)//题库!
for(intj=0;j<arr[i].length;j++)
arr[i][j]=srr[i]+""+(j+1)+" ";
Stringkey="";
for(inti=1;i<=100;i++){//随机抽题目!
key=i<10?"第00"+i:i<100?"第0"+i:"第"+i;
HashSet<String>hs=newHashSet<String>();
if(i<=50){//前50组规则!
for(intx=0;x<arr.length;x++){
if(x<=0&&hs.size()<6){
sect(6,arr[x].length,x,hs);
}elseif(x==1&&hs.size()<8){
sect(8,arr[x].length,x,hs);
}elseif(x==2&&hs.size()<9){
sect(9,arr[x].length,x,hs);
}else{
sect(10,arr[x].length,x,hs);
}
}
tm.put(key,hs);
}else{//后50组规则!
for(intx=0;x<arr.length;x++){
if(x<=0&&hs.size()<5){
sect(5,arr[x].length,x,hs);
}elseif(x==1&&hs.size()<9){
sect(9,arr[x].length,x,hs);
}elseif(x==2&&hs.size()<10){
sect(10,arr[x].length,x,hs);
}
}
tm.put(key,hs);
}
}
for(Strings:tm.keySet()){//抽提完成查看!
System.out.println(s);
for(Strings1:tm.get(s)){
System.out.print(s1);
}
System.out.println();
System.out.println();
}
}
privatestaticvoidsect(intsize,intlength,intx,HashSet<String>hs){
for(;hs.size()<size;){
intp=(int)(Math.random()*length);
if(arr[x][p]!=null){
hs.add(arr[x][p]);
arr[x][p]=null;
}
}
}
}

2. java编程基础练习题

这道题的答案是C。

double[] num1; //定义一个double类型的数组num1
double num3=2.0; //定义一个double类型的变量并赋值为2.0
int num2=5; //定义一个int类型的冰凉num2,并赋值为5
num1=new double[num2+1];
//给double类型的数组num1赋值,并初始化为5+1个大小, num2=5,所以是5+1
num1[num2]=num3;
//上面这句翻译过来就是:数组num1[5]=2.0 。 由于数组下标从0开始,所以下标为5的元素是最后一个元素。 所以答案是C

3. 要JAVA基础的一些练习题与参考答案

一、问答题
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]=2;int 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=1;i<=3;i++)
{
double v=0,sum=0;
for(int j=1;j<=4;j++)
{
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=0;i<10;i++)
{
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=1;j<10;j++)
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=0;i<len;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}

void ff();
{
int out,in,min;
for(out=0;out<len-1;out++)
{
min=out;
for(in=out+1;in<len;in++)
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();
}
}

4. 跪求50道java基础编程题目(含答案)。

楼主 我真怀疑你的人品,你要知道你现在是在求别人,感觉好像别人在求你一样,不是我说你你提出这样没水准的问题真的很蛋疼很蛋疼,网络知道有你这样的人真是一大祸害

5. 求Java基础,练习题。

选择题 (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:程序运行结果为8; B:程序运行结果为2;

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

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=0; i<10; i++){

if(i==5) break;

System.out.print(i);

}

}

}

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

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

public class Lx1 {

public static void main(String[] args) {

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

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:HE; B:你; 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=0;i
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) 上述说法都不对

6. java基础面试题有哪些

下面是10道java基础面试题,后附答案

1.什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?

Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。

Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

2.“static”关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是static 的方法?

“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

Java 中 static 方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而 static 方法是编译时静态绑定的。static 方法跟类的任何实例都不相关,所以概念上不适用。

3.JDK 和 JRE 的区别是什么?

Java 运行时环境(JRE)是将要执行 Java 程序的 Java 虚拟机。它同时也包含了执行 applet 需要的浏览器插件。Java 开发工具包 (JDK)是完整的 Java 软件开发包,包含了 JRE,编译器和其他的工具(比如:JavaDoc,Java 调试器),可以让开发者开发、编译、执行 Java 应用程序。

4.是否可以在 static 环境中访问非 static 变量?

static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

5.Java 支持的数据类型有哪些?什么是自动拆装箱?

Java 语言支持的 8 中基本数据类型是:

byte

short

int

long

float

double

boolean

char

自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把 int 转化成 Integer,double 转化成 double,等等。反之就是自动拆箱。

6.Java 支持多继承么?

不支持,Java 不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。

7.Java 中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java 编译器会为这个类创建一个默认的构造函数。

Java 中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。

Java 不支持像 C++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java 不会创建默认的复制构造函数。

8.Java 中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

Java 中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

9.接口和抽象类的区别是什么?

Java 提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:

接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

类可以实现很多个接口,但是只能继承一个抽象类

类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

抽象类可以在不提供接口方法实现的情况下实现接口。

Java 接口中声明的变量默认都是 final 的。抽象类可以包含非 final 的变量。

Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private, protected 或者是 public。

接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含 main 方法的话是可以被调用的。

10.什么是值传递和引用传递?

对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。

对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

最后祝你面试顺利!

7. 求解两道JAVA作业题!悬赏50,在线等!~

第一题:

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Ex3_1 {

/**
* @param args
*/
public static void main(String[] args) {
char c;
int i=0;
String s="The past is gone and static. Nothing we can do willchange it. " +
"Thefuture is before us and dynamic. Everything we do will affect it.";
System.out.println("请输入一个字母");
Scanner sc = new Scanner(System.in);
c=sc.next().charAt(0);//输入单个字符
Pattern p=Pattern.compile(String.valueOf(c));
Matcher m=p.matcher(s);
while(m.find()){
i++;
}
System.out.println("指定字符"+c+"出现的频率为"+i);
}

}

第二题:
import java.util.Arrays;
public class Ex3_2 {
public static void main(String[] args) {
int[] a = new int[20];
int b=0;
int max=0;
for(int i=0;i<a.length;i++){
a[i]=(int) (Math.random()*99);

}
System.out.println(Arrays.toString(a));
for(int j=0;j<a.length;j++){
for(int k=0;k<j;k++){
if(a[j]>a[k]){
a[k]=a[j];
a[k]=b;
b=a[j];

}
}

}
max=a[0];
Arrays.sort(a);
System.out.println(max);
}
}

8. java编程练习题

1
importjava.util.Scanner;

publicclasstest1{

privatestaticScannerinput=newScanner(System.in);
publicstaticvoidmain(String[]args){
longnum;
do{
System.out.print(" Inputyournum:");
num=input.nextLong();
}while(num<10000||num>99999);
num=num/100;
num*=100;

System.out.println(" Thisisnum:"+num);

}
}
2.
importjava.util.Scanner;

publicclasstest2{

privatestaticScannerinput=newScanner(System.in);
publicstaticvoidmain(String[]args){
longnum;
do{
System.out.print(" Inputyournum:");
num=input.nextLong();
}while(num<0||num>1000);

intsum=0;

while(num>0){
sum+=num%10;
num/=10;
}

System.out.println(" Thisissum:"+sum);

}
}

9. 15道基础的java选择题

41.C
A.abstract修饰符可修饰字段、方法和类。 不可以修饰字段B.抽象方法的body部分必须用一对大括号{}包住。C.声明抽象方法不可写出大括号。D.声明抽象方法,大括号可有可无。
42D
43.A
A.一个程序里只能有一个类被修饰为Public 错误B.源文件名必须和用public修饰的类名相同 正确C.若程序中没有任何Public类,则文件名可任取 正确D.一个Java程序中,必须有一个被Public修饰的类 怎么说呢?很难说正确,也很难说错误,一个java程序是可以没有一个被修饰为Public的类
44B
A好像也可以
45D
46A
47A
48C
49B
50A
51D
52C
53A
54B
55.A

阅读全文

与50道java基础编程练习题相关的资料

热点内容
考研群体怎么解压 浏览:153
linux修改命令提示符 浏览:222
圆圈里面k图标是什么app 浏览:57
pdf加空白页 浏览:943
linux服务器如何看网卡状态 浏览:314
解压新奇特视频 浏览:702
图书信息管理系统java 浏览:549
各种直线命令详解 浏览:859
程序员泪奔 浏览:143
素材怎么上传到服务器 浏览:513
android百度离线地图开发 浏览:187
web可视化编程软件 浏览:288
java笔试编程题 浏览:742
win11什么时候可以装安卓 浏览:560
java不写this 浏览:1000
云点播电影网php源码 浏览:97
pythonclass使用方法 浏览:226
移动加密软件去哪下载 浏览:294
php弹出alert 浏览:209
吉林文档课件加密费用 浏览:136