java练习题V1

第一章 习题及思考题

1. 试分析基本数据类型和引用数据类型的基本特点?

java的8种基本类型:??byte,short, char, int, long,float,double,boolean.??与此对应的,java

提供了8种包装类型:??Byte,Short,Character,Integer,Long,Float,Double,Boolean.??它们之间的相互转换:例如:??double a=1;??//把double基本类型转换为Double包装类型??Double b=new Double(a);??//把Double包装类型转换为double基本类型??a=b.doubleValue();????所谓引用,就是指针了,就是说对象指向的不是数据本身,而是它所在的内存地址.??数组就是引用类型!??一般在传参的时候用的最多。

5. 如果定义有变量double d1, d2=4.0则下列说法正确的是:(B)

A、变量d1,d2均初始化为4.0

B、变量d1没有初始化,d2初始化为4.0 C、变量d1,d2均未初始化

D、变量d2没有初始化,d1初始化为4.0

6. 判断题:所有的变量在使进行用前都必须初始化。(×)

在类中定义的成员变量中的类变量如果你没有初始化java会自动帮你初始化,如果是数

字会自动初始化成0,字符会初始化成'o',对象引用会初始化成null.????当然如果你定义的是局部变量就必须初始化了,否则编译会报错???? 7. 内部数据类型byte的取值范围是:( B )

A、0~65, 535 B、(-128)~127

C、(-32,768)~32,767 D、(-256)~255

8. 下列哪些是不能通过编译的语句:( B )

A、int i = 32; B、float f = 45.0; C、double d = 45.0; D、char a=‘c’;

9. 判断题:Java中数据类型的长度与具体使用的机器相关。( × ) 与您所使用的平台无关

10. 如果定义有double x;float y;int m,则表达式x*y-m的类型为(A ):

A、double B、float C、int D、short

11. 如果定义有short s;byte b;char c,则表达式s*b+c的类型为(C):

A、char B、short C、int D、byte 12. 已知int i= 2147483647; ++i; 则i的值等于多少( A ) A -2147483648 B 2147483647 C 2147483648

13. 已知byte i= 127; ++i; 则i的值等于多少( A ) A -128 B 127 C 128

14. 已知byte i= 127; i=i+1;这两行语句能否编译成功?( 不能 )

15. 执行以下程序段int a=5,b; b=++a*3后b的值为:( B)

A、17 B、18 C、16 D、15 16. 如果x=3,y=5,则表达式x|y的值为:( D ) 两位数有1,则为1

A、15 B、8 C、1 D、7

17. 如果int a=3,b=2,则执行a*=b+8后a的值为:( B )

A、20 B、14 C、30 D、16 18. 若所用变量都已正确定义,以下选项中,非法的表达式是:( C )

A、a!=4||b==1 B、'a'%3 C、'a'=1/2 D、'A'+32

19. 设有定义语句int a[]={1,1,2}; 则以下对此语句的叙述错误的是( C )。

A、定义了一个名为a的一维数组 B、a数组有3个元素

C、a数组的下标为1~3 D、数组中的每个元素是整型 20. 以下数组初始化形式正确的是:( A )

A、int t1[][]={{1,2},{3,4},{5,6}} B、int t2[][]={1,2,3,4,5,6} C、int t3[3][2]={1,2,3,4,5,6} D、int t4[][];t4={1,2,3,4,5,6}

第二章 习题及思考题

1、编写一个程序,用选择法对数组a[]={20,10,55,40,30,70,60,80,90,100}进行从大到小

的排序

public class ArrayPaiXu {

public static void main(String[] args) {

int temp;

int a[]={20,10,55,40,30,70,60,80,90,100}; for(int i=0;i<10;i++) {

for(int j=0;j<10;j++) {

if(a[i]>a[j]) {

temp=a[i]; a[i]=a[j]; a[j]=temp; } } }

for(int k=0;k<10;k++) {

System.out.println(a[k]); } } }

2、求两个整数的最大公约数

import java.util.Scanner;

public class ZuiDaGongYueShu {

public static void main(String[] args) { }

}

System.out.println(\请输入第一个数m的值\); Scanner sc = new Scanner(System.in);

int m = sc.nextInt(); // 定义第一个数并从键盘获取 System.out.println(\请输入第二个数n的值\); Scanner sca = new Scanner(System.in);

int n = sca.nextInt(); // 定义第二个数并从键盘获取 int temp; // 定义公约数 temp = n; // 给公约数赋初值 if (m % temp == 0) {

System.out.println(\的最大公约数为:\ + n); } else {

for (; temp > 0; temp--) {

if (m % temp == 0 && n % temp == 0) { }

System.out.println(\的最大公约数为:\ + temp); break; } }

3、请打印出如下九九乘法表

* | 1 2 3 4 5 6 7 8 9 -------|------------------------------------ 1 | 1 2 | 2 4 3 | 3 6 9

4 | 4 8 12 16

5 | 5 10 15 20 25 6 | 6 12 18 24 30 36 7 | 7 14 21 28 35 42 49 8 | 8 16 24 32 40 48 56 64 9 | 9 18 27 36 45 54 63 72 81 public class ChengFaBiao {

public static void main(String[] args) {

System.out.print(\); for(int k=0;k<10;k++) {

System.out.print(k+\); }

System.out.println();

System.out.println(\); for(int i=1;i<10;i++) {

System.out.print(\+i+\); for(int j=1;j<=i;j++) {

System.out.print(i*j+\); }

System.out.println(); } } }

4、求一元二次方程ax2+bx+c=0的根,要求a、b、c从控制台输入。 import java.util.*;

class JieHanShu {

public static void main(String[] args) { Scanner scan = new Scanner(System.in); double a, b, c, x1, x2, d; a = scan.nextDouble(); b = scan.nextDouble(); c = scan.nextDouble(); if (a == 0) {

if (b == 0) {

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4