视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JAVA程序设计语言基础习题及答案
2025-09-23 22:12:16 责编:小OO
文档
JAVA程序设计语言基础习题

(1)在Java中,负责对字节代码解释执行的是(B )。

A.垃圾回收器    B.虚拟机    C.编译器    D.多线程机制 

//编译器将JAVa源程序编译成字节代码,即虚拟机代码,然后由虚拟机将虚拟机代码换成相应硬件的机器代码,之后加以执行。

(2)Java语言中,负责并发管理的机制是(   D)

A.垃圾回收     B.虚拟机     C.代码安全   D.多线程 

//多线程即是多任务的特殊形式,多个任务并发执行。

(3)下列叙述中,正确的是 (C   )

A.源文件扩展名为.jar 

B.源文件名与public类名可以不相同 

C.Java语言的标识符是区分大小写的      

D.源文件中public类的数目不限 

//A项扩展名应为.java;B项应为相同;D项public类只能有一个。

(4)Java为移动设备提供的平台是( A  )

A.J2ME     B.J2SE      C.J2EE     D.J2RE 

//J2ME是致力于消费产品与嵌入式设备之间的最佳解决方案,特别是在移动通信设备,移动计算设备上应用广泛;J2SE是用于编写桌面/工作站应用软件;J2EE是前沿的JAVA技术平台,为服务器的计算提供了所有范围的企业级功能。J2RE是JAVA的运行环境。

(5)JDK中提供的文档生成器是( C  )

A.java.exe        B. javap.exe   

C. javadoc.exe     D. jdb.exe 

//A中的java.exe是java语言解释器;B中的javap.exe是java类文件反汇编器,用于分析类中的所有成员方法和成员变量,当然也包括构造方法;C中的javadoc.exe是Java API文档生成器;D中的jdb.exe是javadebug的缩写,既JAVA调试器。

(6)在Java语言中,不允许使用指针体现出的Java特性是( D  )

A.可移植   B.解释执行   C.健壮性    D.安全性 

//java不支持指针数据类型,它提供了字节码的检查机制还提供了自动的“内存垃圾”手机功能,提高了JaVA的稳定性和安全性。

(7)下列描述中,错误的是(A   )    

A.Java要求编程者管理内存

B.Java的安全性体现在多个层次上 

C.Applet要求在支持Java的浏览器上运行 

D.Java有多线程机制Java不需要编程者管理内存,提供了自动的“内存垃圾”的收集功能

// Java不需要编程者管理内存,提供了自动的“内存垃圾”的收集功能

(8)Java编译器将源代码翻译成于平台的格式是(B   )

A.opcodes   B.bytecodes   C.virtual machines   D.applet

// Java编译器将源代码翻译成于平台的格式是字节码即bytecodes

(9)Java可以用来创建程序的工具集是(  D )

A.JRE      B.JNI      C.JVM       D.JDK

//A中的JRE是JAVA运行环境。B中JNI是JAVA本地接口。C中的JVM是JAVA虚拟机。D中的JDK是JAVA的工具集。

(10)Java语言与其他主要语言相比较,独有的特点是( C  )

A.面向对象    B.多线程    C.平台无关性    D.可扩展性

//用JAVA语言编写的各种程序可以不经过修改在各个平台系统上运行。

(11)下列属于合法的Java标识符是( A  ) 

A._cat    B.5books    C. +static    D.-3.14159 

//标识符是以字母、下划线或$符号开头的字母、下划线以及数字序列。    

(12)按照Java的标识符命名规范,下列表示一个类的标识符正确的是(  B )  

A.Helloworld    B.HelloWorld    

C.helloworld    D.helloWorld  

//用Java标识符来表示类名时,如果多于一个单词,则每个单词的第一个字母需要大写。定义变量名时,若一个变量名是有一个以上单词所组成的,则第一个单词之后的所有单词都以大写字母开头。

(13)在Java中,表示“回车”的转义字符是( B  ) 

A.\\n      B.\r        C.\\b         D.\t 

//A中的\\n是回车并且换行的意思。B中的\\r是回车的意思(即回到本行的开头)。C中的\\b是向前退格的意思。D中的\是横向跳格的意思。

(14)char类型的取值范围是( B  ) 

A. 2-7 ~27 -1         B. 0~216-1 

C. -215 ~215 -1       D. 0~28-1 

//JAVA中字符型是用16位的Unicode码来表示的。

(15)十进制数16的16进制表示格式是(  A ) 

A.0x10    B.0x16    C.0xA    D.16 

//十进制数16表示的二进制数为00010000,然后再将其化为十六进制的0X10

(16)下列的(  A  )赋值语句是不正确的

A.float  f = 2E1.2;        B.double  d = 5.3E-12; 

C.float  d = 3.14f ;        D.double  f=0.3E0; 

//表示float型数时在后面加f或F,浮点型数据采用科学计数法表示时尾数必须有,小数部分可有可无;阶码必须有,且必须是整数。

(17)下列的(  D  )赋值语句是正确的

A.char a=12;        B.int a=12.0; 

C.int a=12.0f;      D.int a=(int)12.0; 

//浮点型转化为整型数据,必须用强制类型转换。

(18)"++"运算符的操作数个数是(  A )

 A. 1个     B. 2个     C. 3个    D. 4个

//++为单目运算符,操作数个数为1。

(19)在switch(expression)语句中,expression的数据类型不能是(  A  ) 

 A. double    B. char    C. byte    D. short

//表达式必须是符合byte,char,short和int类型的表达式,而不能使用浮点类型或long类型,也不能是一个字符串。

(20)阅读下列代码

public  class  Test{

public  static  void  main(String args[]){ 

System.out.println(~(0xa5) & 0xaa);  }    } 

其运行结果是 ( B  )

A.0xa5    B.10    C.0x50    D.0xaa 

//~(0XA5)为0X5A,然后与0XAA相与得0X0A,因为计算机输出的结果为十进制,所以结果为10。

(21)阅读下列代码

public class Test{

public static void main(String args[]){ 

System.out.println(9 >>>2);   }    } 

其运行结果是( B ) 

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

//9的二进制形式为00001001,无符号右移2位的0010,十进制为2

 (22)阅读下列代码段

int x=3;

while(x<9)

x+=2;

x++;

while语句成功执行的次数是(  D  ) 。

A.1次      B.2次       C.0次       D.3次

//如果在while(x<9)后加入大括号,括住x+=2;再加入输出语句System.out.println(“x=”+x);则会输出x=5  x=7  x=9,成功执行while语句3次。但是如果将x++;也括到大括号中,则输出x=5  x=8,成功执行while语句2次。

(23) 阅读下面程序:

import java.*;

public class TypeTransition

{  public static void main(String args[])

{  char a='h';

int i=100,j=97;

int aa=a+i;

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

char bb=(char)j;

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

}

}

如果输出结果的第二行为bb=a,那么第一行的输出是( C  )

A. aa=1   B. aa=v   C. aa=204   D. aa=156

//字符h的Unicode值为104,所以a转化为整型数据时为104,故aa为204

(24)给出下列的代码,哪行在编译时可能会有错误? 

① public void modify(  C  ){ 

② int i, j, k; 

③ i = 100; 

④ while ( i > 0 ){ 

⑤ j = i * 2; 

⑥ System.out.println (" The value of j is " + j );

⑦ k = k + 1; 

⑧ } 

⑨ } 

A.line 4    B.line 6     C.line 7     D.line 8 

//⑦ k = k + 1; 中的k没有初始化,所以出错。

 (25)下列程序中,要求按照从小到大的顺序输出1到100之间所有能被7整除的数字,请将下列程序补充完整。

注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。

public class Example1

{   public static void main(String args[])

    {  int i=1;

          【do】       

       { if(    【i%7==0】    )

            System.out.print(i+

                   【i++】     

}while(i<100);

      System.out.println();

   }

}

(26)下面的程序中,随机产生100个学生的成绩,并计算他们的平均成绩。学生的成绩按照5级打分制,A表示4分、B表示3分、C表示2分、D表示1分、E表示0分,平均成绩用浮点数表示。请填写横线处的内容。

import java.math.*;

public class AverageScore

{   public static void main(String args[])

    {   float aver=0;

        int a=0,b=0,c=0,d=0,e=0;

        for(  【int i=0】   ;i<100;i++)

        {   double sd=Math.random()*5+'A';

            char score=   【(char)sd】   ;

              【switch】  (score)

            { case 'A': aver+=4;a++;break;

              case 'B': aver+=3;b++;break;

              case 'C': aver+=2;c++;break;

              case 'D': aver+=1;d++;break;

              case 'E': aver+=0;e++;break;

              default : break;

             }

          }

         aver/=100;

     System.out.println("平均分数为"+aver+学生人数100");

         System.out.println("得A分的学生有"+a+"人");

         System.out.println("得B分的学生有"+b+"人");

         System.out.println("得C分的学生有"+c+"人");

         System.out.println("得D分的学生有"+d+"人");

         System.out.println("得E分的学生有"+e+"人");

     }

}

(27)下面程序中的continue的作用是什么?有、没有标号,运行结果相同吗?

public class SignContinue

{   public static void main(String args[])

    { label: 

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

       {   for(int j=1;j<3; j++)

             {  if(j!=i)  continue label ;                  

            System.out.println(i+j); 

              }

        }

    }

}

//continue的作用是跳过label所指语句块中所有余下部分的语句,回到label语句块的条件测试部分继续执行。

有标号的运行结果为2;无标号的运行结果是2  4。

第三章课后的8题,很简单,略。

第三章课后的9题,需要分别取出百位数,十位数与个位数。

可以使用下面语句实现;设i为一个三位数,a为百位数,b为十位数,c为个位数。则有a=i/100 ; b=j/10%10; c=i%10; 

第三章课后的9题,设置三层循环,外层i控制输出5行,中层j控制每行开头的空格,内层k控制*号的输出。

程序如下:

/*打印图案:每行打印5个星号,每个星号之间空两个空格*/

public class xinghao 

{   public static void main(String args[])

   {   int i, j, k;

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

{ for (j=0;j<=3*(i-1);j++)

              System.out.print(" ");

for (k=1;k<=5;k++)

              System.out.print("*  ");

          System.out.println();

}

    }

}

或者:

public class PrintStar 

{   public static void main(String[] args) 

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

        {    String num = "   ";

         for(int k=0; k            {    System.out.print(num);    }

         for(int j=0; j<5; j++)

            {    System.out.print("*  ");     }

            System.out.println();            

         }

     }

}下载本文

显示全文
专题