java程序设计练习题(二)附答案

一、单项选择题

1、下列关于注释语句的描述中,正确的一项是( C )。

A、以//开始的是多行注释语句

B、以/*开始,*/结束的是单行注释语句

C、以/**开始,*/结束的是可以用于生成帮助文档的注释语句

D、以/**开始,*/结束的是单行注释语句

2、对下面的语句序列正确的说法是( B )

int c=’A’/3; c+=’1’%5; System.out.println(c);

A、产生编译错误 B、输出结果25 C、输出结果21 D、输出结果2

3、算术表达式1+2/3—4*5的值为 ( B )

A、1 B、-19 C、-5 D、0

4、运行下列代码中的方法divide(int a, int b) ,传递4,0,结果是:( A )

public void divide(int a, int b) {

try {

int c = a / b;

} catch (Exception e) {

System.out.print(\”Exception \”);

} finally {

System.out.println(\”Finally\”);

}

A、打印输出: Exception Finally B、打印输出: Finally

C、打印输出: Exception D、没有任何输出

5、Applet使用下列哪一项布局管理器?( B )

A、BorderLayout B、FlowLayout C、BoxLayout D、GridLayout

6、main()方法是Java Application程序执行的入口点,关于main()方法的方法头下面哪一项是合法的?( B )

A、public static void main( ) B、public static void main(String args[ ])

C、public static int main(Stnng[ ]arg) D、public Void main(Stnng arg[ ])

7、下列哪个是正确的字符常量?( D )

A、 “DA” B、 ‘da’ C、 ‘字” D、 ‘\t’

8、下列标识符中,正确的是( B )。

A、1_Back B、$_Money C、$-money D、2-Foward

9、构造方法何时被调用:( A )

A、创建对象时 B、类定义时 C、使用对象的方法是 D、使用对象的属性时

10、public void add(int a) {…}方法的重写方法返回类型为:( A )

A、void B、int C、任何需要的类型 D、public

11、下列语句序列执行后,r的值是( C )

int x=5,y=10,r=5;

switch(x+y)

{

case 15:r+=x;

case 20:r-=y;

case 25:r*=x/y;

default:r+=r;

}

A、15 B、10 C、0 D、20

12、编译并运行下面的程序,运行结果为( C )

public class A {

public static void main(String[] args){

A a=new A();

a.method(8);

}

void method (int i) { System.out.println(\”int: \”+i); }

void method (long i) { System.out.println(\”long: \”+i); }

A、程序有编译错误,不能运行 B、可以运行,输出结果为long:8

C、可以运行,输出结果为int:8 D、可以运行,但没有输出

13、下列关于类、包和源文件的说法中,错误的一项是( D )。

A、一个文件可以属于一个包 B、一个包可包含多个文件

C、一个类可以属于一个包 D、一个包只能含有一个类

14、一个处于运行过程中的Java Application在系统中是作为一项( C )。

A、代码 B、程序 C、进程 D、线程

15、设有定义int a=12;则执行以下语句后,a的值为( A )。

a*=12;

A、144 B、12 C、24 D、0

16、下列属于Java语言的特点的一项是( D )。

A、运算符重载 B、类间多重继承 C、指针操作 D、垃圾回收

17、该类中若要处理ActionEvent事件,则该类需要实现的接口是( A )。

A、ActionListener B、Runnable C、Serializable D、Event

18、以下的选项中能正确表示Java语言中的一个整型常量的是( A )。

A、435 B、 -34+3 C、34,000 D、4 5 6

19、下列关于浮点型数据的说法中,不正确的一个是( C )。

A、浮点型数据属于实型数据 B、浮点型数据由数据和小数组成

C、浮点型数据小数位数越少越精确 D、浮点数据包括实型常量和实变量

20、下列情况中,哪一项不需要异常机制。( B )

A、当方法因为自身无法控制的原因而不能完成其任务时 B、编译出错时

C、处理在方法、类库、类中抛出的异常时 D、使系统从故障中恢复时

二、简答题

1、在Java中对于异常的处理除了默认的异常处理程序(只能处理运行时异常)外,还提供了哪两种方式来处理程序中可能存在的异常?简述这两种方法。

答案:

一是利用try-catch-finally结构来捕获处理异常,try块:用来包含可能抛出异常的程序段,可以是方法的调用,也可以是复杂的语句序列。catch块:用来捕获指定的异常,并进行相应处理。finally块:finally块是可选的,它为异常处理提供了一个统一的出口,无论程序中是否出现异常,也不论出现什么异常,finally块中的语句均要被执行一遍。

二是利用throws语句来声明抛出异常。这样就不需要在方法中处理该异常,而是留给了方法的调用者。

2、简述JAVA标识符命名规则。

Java中的标识符必须以字母(a~z、A~Z)、下划线(_)或美元符号($)为开头,其后可以是字母、下划线、美元符号和数字(0~9)。Java中的标识符严格区分大小写。Java中的标识符没有长度限制。

三、程序结果题

1、public class test1{

public static void main(String[ ]args){

int al=3;

int a2=4;

int xl=5;

if(++al<a2)

xl=xl+1;

System.out.println(xl);

}

}

答案:5

2、public class test1{

public static void main(String[]args)

{

for(int cnt=0;cnt<10;cnt++)

{

if (cnt==5)

break;

System.out.print(cnt);

}

}

}

答案:01234

四、编程题

设一字符串中包含有大写字母的字符,也有小写字母的字符,编写一程序,将其中的大小写字母的字符分别输出。

[解答]:

public class test1 {

public static void main(String[] args) {

String s=\”sdQfEKJsfjEKjhjsjQHdFfKjSDFsdf\”;

String s1=\”\”,s2=\”\”,s3;

for(int i=0;i<s.length();i++){

s3=\”ABCDEFGHIJKLMNOPQRSTUVWXYZ\”;

if(s3.indexOf(s.charAt(i))!=-1){

s1=s1+s.charAt(i);

}else{

s2=s2+s.charAt(i);

}

}

System.out.println(\”大写字母 :\”);

System.out.println(s1);

System.out.println(\”小写字母 :\”);

System.out.println(s2);

}

}

编写一段Java程序,查找1~100之间的素数并将运行结果输出。

[解答]:

public class Test_14 {

public static void main(String[] args) {

int m, k, i, n = 0;

boolean flag;

for (m = 1; m <= 100; m=m+2) {

flag = true;

k = (int)Math.sqrt(m);

for (i = 2; i <= k; i++)

if (m % i == 0) {

flag = false;

break;

}

if (flag) {

System.out.print(m + \” \”);

n = n + 1;

}

if (n % 10 == 0)

System.out.println();

}

}

}

3、编写程序,打印三角形状的九九乘法表,要求使用break或continue语句。

[解答]:

public class ContinueFor99

{//使用continue语句打印出三角形状的九九乘法口诀表。

public static void main(String[] args)

{

int i,j,num;

System.out.println(\”九九乘法表\”);

a: for(i=1;i<=9;i++)

{for(j=1;j<=9;j++)

{

num=i*j;

System.out.print((int)i+\”*\”+(int)j+\”=\”+(int)num );//输出:i*j=num

System.out.print(\” \”);//调整两个输出字符串间的距离

if(i==j) System.out.println(\”\”);

if(i==j) continue a ; //当i=j时,换行并结束本次循环

}

}

}

}

public class BreakFor99

{ //使用break语句打印出三角形状的九九乘法口诀表。

public static void main(String[] args)

{

int i,j,num;

System.out.println(\”九九乘法表\”);

for(i=1;i<=9;i++)

{for(j=1;j<=9;j++)

{

num=i*j;

System.out.print((int)i+\”*\”+(int)j+\”=\”+(int)num );//输出:i*j=num

System.out.print(\” \”);//调整两个输出字符串间的距离

if(i==j) System.out.println(\”\”);

if(i==j) break; //当i=j时,换行并结束本次循环

}

}

}

}

Java程序设计试卷

JAVA程序设计试卷库(第5套)

一、单选题(每小题 2 分,共 20 分)

1、Java Application源程序的主类是指包含有( A )方法的类。

A. main方法 B. toString方法

C. init方法 D. actionPerfromed方法

2、分析下面的程序段,下面的哪个描述是正确的。( B )

char mychar=’c’;

switch(mychar){

default:

case ‘a’: System.out.println(“a”);break;

case ‘b’: System.out.println(“b”);break;

}

A. switch语句块是错误的,因为switch后面的表达式值的类型不是整数;

B. switch语句块是正确的;

C. switch语句块是错误的,因为default没有放在语句块的最后面;

D. 代码运行时,没有任何输出结果。

3、编译并运行下面的Java程序,将产生(  B  )结果。

class A{

    int var1=1;

     int var2;

     public static void main(String[] args){

    int var3=3;

   A a=new A();

System.out.println(a.var1+a.var2+var3);

}

}

A. 0 B. 4

C. 3 D. 代码无法编译,因为var2根本没有被初始化

4、在Java中,下面关于包的陈述中正确的是( D )。

A. 包的声明必须是源文件的任意位置;

B. 包的声明必须紧跟在import语句的后面;

C. 只有公共类才能放在包中;

D. 可以将多个源文件中的类放在同一个包中

5、 在Java语言中,当一个类的某个变量声明为protected时下列说法正确的是( C )。

A. 只有同一类中的成员才能访问它;

B. 不同包中的任何其他类都能够访问它;

C. 同包中的任何其他类能够访问它;

D. 不同包中的子类不可以访问该变量。

6、在Java中,执行下面的语句后,c的值为(  D  )。

String s= \”Jessica \”;

char c=s.charAt(6);

A. \”c \”   B. \”a \”

C. \’c \’ D. \’a \’

7、设有下面两个赋值语句:

a = Integer.parseInt(“1024”);

b = Integer.valueOf(“1024”).intValue();

下述说法正确的是( D )。

A.a是整数类型变量,b是整数类对象。

B.a是整数类对象,b是整数类型变量。

C.a和b都是整数类对象并且它们的值相等。

D.a和b都是整数类型变量并且它们的值相等。

8、事件剪裁类如WindowAdapter(它实现了WindowListener接口)的优点是什么? ( C )。

A. 继承了那个类的所有行为 ;

B. 子类自动成为监听器;

C. 没有必要实现不使用的任何WindowListener接口中定义的方法;

D.可以自动充当事件的监听者。

9、在用Java构建动画时,(C )方法创建新线程并启动它运行。

A. init() B. start()

C. run() D. paint()

10、下面哪一个选项能正确地创建一个InputStreamReader对象( A )。

A.new InputStreamReader(new FileInputStream(“data”))

B.new InputStreamReader(new FileReader(“data”))

C.new InputStreamReader(new BufferedReader(“data”))

D.new InputStreamReader(“data”)

二、填空题(每空格1分,共15分)

1、阅读下面的程序片段,在①中,parent类与child类之间是继承关系;在②中,parent类与child类之间包含。

① class parent{

int fields;

}

class child extends parent{

int fieldChild;

}

② class child{

int fieldsChild;

}

class parent {

child myChild;

}

2、Java中的多态有两种方式:子类对父类方法的覆盖、同类中方法的重载。

3、下面程的输出结果是:?吗对,上海自来水来自海上

public class turnString {

public static void main(String args[]) {

String s=“上海自来水来自海上,对吗?” ;

     for(int i=s.length( )-1;i>=0;i++)

System.out.println(s.charAt(i));

System.out.println():

}

}

4、Applet的init( )方法仅在开始时执行一次?start( )方法在用户每次访问包含Applet的HTML文件时都被调用?

5、创建一个FlowLayout的对象fd,使应用该布局管理器的各个组件都向右对齐排列。该对象的创建语句为:FlowLayout fd=new FlowLayout(FlowLayout.RIGHT);。

6、java.net包中定义的两个类Socket、ServerSocket;分别用来实现双向连接的Client和Server端。

7、巳知a=14,b=3,则表达式a<<b运算结果为:112;。

8、写出运行下面程序片段后的屏幕输出:0 1 2 i=3。

int i;

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

{

if(i==3)

break;

System.out.print(i+” ”);

}

System.out.println(“i=”+i)

9、在Java Application程序中,一个类是主类的标志是包含main( )方法,在Java Applet程序中,一个类是主类的标志是该类是Applet类的子类;。

10、多态的概念是一个程序中同名的不同方法共存的情况。。

三、判断改错题(每题2分,共20分)(正确的打√,错误的打×并说明原因)

1、 Java系统包提供了很多预定义类,我们可以直接引用它们而不必从头开始编写程序。 (√ )

2、 程序可以用字符‘*’替代一个TextField中的每个字符的显示,使别人看不出其中的具体内容。( √)

3、 Class1类的属性被private修饰符修饰为私有变量,所以方法不能访问它。(×,Class1类自身的方法可以访问这个私有变量。 )

4、 如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。(×,如果p实际代表的是一个子类对象的引用,可以用强制类型转换成c=(Child)p;否则不能把父类对象赋值给子类对象。 )

5、 如果希望程序能够处理所有的异常,包括未知的异常,可以在所有的catch块后面加下catch(Exception e){}。(√ )

6、 TextComponent是一个抽象类,它的两个子类TextField和TextArea才拥有具体的对象。( √)

7、 一个Applet程序在运行过程中,创建的Frame窗框,当Applet或浏览器关闭时也会自动跟着关闭。(×,Frame与Applet平级,不受Applet的关闭的影响。 )

8、 判断下面程序片段的正确性。(×,Vector对象的addElement( )方法的参数类型为对象,所以myv.addElement(i)应改为所以myv.addElement(new Integer(i)); )

import java.util.*;

public class UseVector{

public static void main(String args[])

{

Vector myv=new Vector( );

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

myv.addElement(i);

}

}

9、 在Applet中显示一幅图像,首先要把它调入内存,保存在一个Image对象中,然后调用drawImage()方法画出这个图像。(√)

10、挂起、阻塞或等待的线程都能够恢复运行,但是停止运行的线程将不可能再运行(√)。

四、问答题(每小题10分,共30分)

1、 阅读下面的程序片段,并回答问题。

① Class1被称为是Class2的什么?Class2被称为是Class1的什么?

② Class1有哪些属性和方法?Class2有哪些属性和方法?其中哪些与Class1的属性和方法有关?

class Class1

{

 int field1;

private int field2;

void method1( )

 {

  System.out.println(“我是Class1的第一个方法”);

 }

  void method2( )

 {

  System.out.println(“我是Class1的第二个方法”);

 }

  }

class Class2 extends Class1{

int fieldChild1;

void methodchild1()

{

System.out.println(“我是Class2的第一个方法”);

 }

}

1、 阅读下面的程序片段,并回答问题。

① Class1被称为是Class2的什么?Class2被称为是Class1的什么?

答:Class1被称为Class2的父类,Class2被称为是Class1的子类。

② Class1有哪些属性和方法?Class2有哪些属性和方法?其中哪些与Class1的属性和方法有关?

答:Class1包括属性field1和field2,方法method1和method2;Class2包括自身定义的属性fieldChild1和自身定义的方法methodChild1,以及它从父类继承来的属性field1和方法method1、method2。

2、写出下面程序的功能

import java.applet.Applet;

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

public class DataType extends Applet implements ActionListener

{ Label prompt=new Label(\”请分别输入整数和浮点数:\”);

TextField input_int=new TextField(6);

TextField input_double=new TextField(6);

TextField output=new TextField(35);

int getInt; double getDouble;

public void init() {

add(prompt); add(input_int); add(input_double);

add(output); output.setEditable(false); input_double.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {

getInt=Integer.parseInt(input_int.getText());

getDouble=Double.parseDouble(input_double.getText());

output.setText(\”您输入了整数: \”+getInt+\”和浮点数:

\”+getDouble);

}

}

2、写出下列程序完成的功能

答:功能:从图形界面输入一个整数和一个浮点数,然后将其输出来。

3、 说明下面程序段是否有误,如有误,请将错误的地方指出来,并改正

Interface MyInterface

{

void method1();

}

abstract class Parent implements MyInterface

{ }

class Child extends Parend

{

void method1()

{

System.out.println(“I am implemented now!”);

}

}

3、说明下面程序是否有误,如有误,请将错误的地方指出来,并改正

答:接口中的方法都是public ,所以重载方法也必须声明为public.

class Child extends Parend

{

{

System.out.println(“I am implemented now!”);

}

}

五、用Java语言编写程序。(共15分)

假设用户输入一组整数被保存在Vector对象中,请定义一个类vecSort,用来求Vector对象中整数中的最大和最小数据。

要求:

1、 根据题目给出vecSort类应包含的属性和方法(5分)

2、 用Java语言定义类vecSort(10分)

五、用Java语言编写程序。(共15分)

参考代码:

class vecSort{

int max,min;

Vector x=new Vector();

vecSort(Vector y)

{

for(int i=0;i<y.size() ;i++)

x.addElement(y.elementAt(i) );

}

int getmax()

{ max=((Integer)(x.elementAt(0))).intValue() ;

for(int i=1;i<x.size();i++)

if(max<((Integer)(x.elementAt(i))).intValue())

max=((Integer)(x.elementAt(i))).intValue();

return max;

}

int getmin()

{ min=((Integer)(x.elementAt(0))).intValue() ;

for(int i=1;i<x.size();i++)

if(min>((Integer)(x.elementAt(i))).intValue())

min=((Integer)(x.elementAt(i))).intValue();

return min;

}

}

基于Java的C程序试题库数字化平台的设计与智能管理

基于Java的C程序试题库数字化平台的设计与智能管理

随着信息技术的快速发展,传统的纸质试题库已经无法满足现代教育的需求。因此,设计并实现一个基于Java的C程序试题库数字化平台,旨在提高试题管理的效率和智能化水平,已成为教育领域的重要课题。该平台可以方便地进行试题的添加、修改、查询和智能组卷,提高教学评估的质量和效率。

视频加载中…

  1. 用户管理:实现用户注册、登录、权限管理等功能。
  2. 试题管理:实现试题的添加、修改、删除、查询等功能。
  3. 智能组卷:根据教学需求,自动或半自动地生成试卷。
  4. 数据分析:对试题的使用情况进行统计和分析,为教学评估提供依据。
  5. 数据库设计:设计合理的数据库结构,确保数据的安全性和完整性。
  6. 系统性能:保证系统的稳定性和高效性。

数据库设计是数字化平台的核心部分,主要包括以下几个表:

  1. 用户表:存储用户信息,如用户名、密码、角色等。
  2. 试题表:存储试题信息,如试题编号、题目内容、答案、难度等。
  3. 题库表:存储试题的分类信息,如题库编号、题库名称、试题列表等。
  4. 组卷记录表:存储智能组卷的记录信息,如试卷编号、组卷时间、试卷内容等。
  5. 分析统计表:存储试题使用情况的统计数据,如试题被使用次数、使用时间段等。

系统实现主要包括以下几个步骤:

  1. 系统架构设计:采用Java语言进行开发,使用MVC模式进行架构设计。
  2. 数据库连接:使用JDBC连接数据库,实现数据的增删改查。
  3. 用户管理模块:实现用户注册、登录、权限管理等功能。
  4. 试题管理模块:实现试题的添加、修改、删除、查询等功能。
  5. 智能组卷模块:根据教学需求,自动或半自动地生成试卷。
  6. 数据分析模块:对试题的使用情况进行统计和分析,为教学评估提供依据。
  7. 系统测试与优化:进行系统测试,发现并修复存在的问题,优化系统性能。

基于Java的C程序试题库数字化平台的设计与智能管理,实现了试题管理的数字化和智能化,提高了教学评估的质量和效率。通过合理的数据库设计,保证了数据的安全性和完整性。通过智能组卷和数据分析功能,为教师和学生提供了便利。该系统具有一定的通用性,可以应用于其他类型的试题库管理。在未来的工作中,可以进一步优化系统性能,提高智能组卷的效果,增加更多的教学辅助功能。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。