第一章习题及思考题.docx
- 文档编号:11079707
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:20
- 大小:25.19KB
第一章习题及思考题.docx
《第一章习题及思考题.docx》由会员分享,可在线阅读,更多相关《第一章习题及思考题.docx(20页珍藏版)》请在冰豆网上搜索。
第一章习题及思考题
第一章习题及思考题
1、Java程序是由什么组成的?
一个程序中必须有public类吗?
Java源文件的命名规则是怎样的?
2、怎样区分应用程序和小应用程序?
应用程序的主类和小应用程序的主类必须用public修饰吗?
3、开发与运行Java程序需要经过哪些主要步骤和过程?
4、安装JDK之后如何设置JDK系统的PATH,CLASSPATH?
他们的作用是什么?
5、Java语言特点是什么?
6、简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
第二章习题及思考题
1.试分析基本数据类型和引用数据类型的基本特点?
2.请使用异或运算符^,实现两个整数的交换。
3.下列哪个是合法的标识符:
()。
A、a=b B、_Hello C、2nd D、Chongqing
4.下列哪些是合法的标识符()。
A、new B、class C、int D、const2
5.如果定义有变量doubled1,d2=4.0则下列说法正确的是:
A、变量d1,d2均初始化为4.0
B、变量d1没有初始化,d2初始化为4.0
C、变量d1,d2均未初始化
D、变量d2没有初始化,d1初始化为4.0
6.判断题:
所有的变量在使用前都必须进行初始化。
()
7.内部数据类型byte的取值范围是:
()
A、0~65,535
B、(-128)~127
C、(-32,768)~32,767
D、(-256)~255
8.下列哪些是不能通过编译的语句:
()
A、inti=32;
B、floatf=45.0;
C、doubled=45.0;
D、chara=‘c’;
9.判断题:
Java中数据类型的长度与具体使用的机器相关。
()
10.如果定义有doublex;floaty;intm,则表达式x*y-m的类型为():
A、double B、float C、int D、short
11.如果定义有shorts;byteb;charc,则表达式s*b+c的类型为():
A、char B、short C、int D、byte
12.已知inti=;++i;则i的值等于多少()
A-BC
13.已知bytei=127;++i;则i的值等于多少()
A-128B127C128
14.已知bytei=127;i=i+1;这两行语句能否编译成功?
()
15.执行以下程序段inta=5,b; b=++a*3后b的值为:
()
A、17 B、18 C、16 D、15
16.如果x=3,y=5,则表达式x|y的值为:
()
A、15 B、8 C、1 D、7
17.如果inta=3,b=2,则执行a*=b+8后a的值为:
()
A、20 B、14 C、30 D、16
18.若所用变量都已正确定义,以下选项中,非法的表达式是:
()
A、a!
=4||b==1 B、'a'%3 C、'a'=1/2 D、'A'+32
19.设有定义语句inta[]={1,1,2};则以下对此语句的叙述错误的是()。
A、定义了一个名为a的一维数组B、a数组有3个元素
C、a数组的下标为1~3D、数组中的每个元素是整型
20.以下数组初始化形式正确的是:
()
A、intt1[][]={{1,2},{3,4},{5,6}}B、intt2[][]={1,2,3,4,5,6}
C、intt3[3][2]={1,2,3,4,5,6}D、intt4[][];t4={1,2,3,4,5,6}
第三章习题及思考题
1、编写一个程序,用选择法对数组a[]={20,10,55,40,30,70,60,80,90,100}进行从大到小的排序
2、求两个整数的最大公约数
3、请打印出如下九九乘法表
*|123456789
-------|------------------------------------
1|1
2|24
3|369
4|481216
5|510152025
6|61218243036
7|7142128354249
8|816243240485664
9|91827364554637281
4、求一元二次方程ax2+bx+c=0的根,要求a、b、c从控制台输入。
5、求前40个Fibonacci数列。
Fibonacci数列:
1,1,2,3,5,8,13,21,34,…
从数列看到:
F1=1(n=1)
F2=1(n=2)
Fn=Fn-1+Fn-2(n≥3)
6、已知公鸡5元1只,母鸡3元一只,小鸡1元3只,要求用100元刚好买100只鸡,问有多少种采购方案。
7、判断一个字符串是否是回文,例如“rotor“反转之后还是”rotor“,所以是回文。
需查阅String类的一些方法。
8、求2-1000内的所有素数
9、在一个循环中使用break,continue和return有什么不同?
10、结构化程序设计有哪三种流程?
他们分别对应Java中那些语句
第四章习题及思考题
1.什么是类?
什么是对象?
对象和类是什么关系?
2、什么是方法?
方法的结构是怎样的?
设计方法应考虑哪些因素?
3.创建一个有两个方法的类,其中第一个方法两次调用第二个方法,第一次不使用this,第二个使用this。
4、创建一个类,该类还有int和char类型的成员变量且未被初始化,然后编程输出这些成员变量的值,查看java是否执行了默认的初始化操作。
5、创建一个类,该类含有的成员变量和成员方法,创建一个该类的对象,察看当时图访问这些成员时,编译程序会给出那些信息(注意:
在同一目录下的类都属于一个默认的包)。
6、下面给出了一个矩形类Rectangle,其中含有多个构造方法。
上机编译并运行此程序,观察运行结果,体会其中不同构造方法的设计和使用。
importjava.io.*;
classRectangle//矩形类
{
privateintwidth;//矩形的宽度
privateintlength;//矩形的长度
Rectangle()//矩形的不带参数的构造函数,缺省的给出长(30)和宽(20)
{
length=30;width=20;
}
Rectangle(intl,intw)//矩形的带参数的构造函数
{
length=l;width=w;
}
Rectangle(Rectangler)//此构造方法以另一个Rectangle作为参数
{
width=r.width();//通过对象调用函数并附值给相应变量
length=r.length();
}
intwidth()//返回宽度
{
returnwidth;
}
intlength()//返回长度
{
returnlength;
}
}
publicclassCRctngle
{
publicstaticvoidmain(Stringargs[])
{
Rectanglex1=newRectangle();//声明类的对象并实例化
Rectanglex2=newRectangle(50,40);//声明类的对象并初始化
Rectanglex3=newRectangle(x1);
System.out.println(x1.length());
System.out.println(x1.width());
System.out.println(x2.length());
System.out.println(x2.width());
System.out.println(x3.length());
System.out.println(x3.width());
}
}
运行结果:
30
20
50
40
30
20
7、下面给出了一个计算阶乘的类Fact和使用该类计算阶乘的程序Check1。
编译并运行该程序,观察运行结果,体会方法的参数的传递和返回值的用法。
在调用时改变参数的个数和类型,看看编译时会得到什么信息。
classFact
{
floatfact(intn)//定义计算n!
的方法
{
inti;
floatx=1;
for(i=1;i x=x*n; returnx; } } publicclassCheck1 { publicstaticvoidmain(Stringargs[]) { Factx=newFact(); System.out.println(x.fact(10));//计算10! System.out.println(x.fact(15));//计算15! } } 运行结果: 1.0E9 2.E16 8、编译并运行下面的程序,观察分析运行结果,体会程序中super和this的用法,进一步理解变量隐藏和方法重写的概念。 importjava.io.*; classSuperClss//定义父类 { intx; SuperClss()//父类的构造方法 { x=10; } voiddoClss() { System.out.println("SuperClss.doClass()"); } } classSubClssextendsSuperClss//定义子类 { intx; SubClss()//子类的构造方法 { super();//调用父类的构造方法 x=100; } voiddoClss()//重写父类的doClss方法 { System.out.println("SubClss.doClss()"); } voiddoDemo()//演示super和this的方法 { intx; x=1000; super.doClss();//调用父类的doClss方法 doClss();//调用本类的doClss方法 System.out.println("super.x="+super.x);//父类的x System.out.println("this.x="+this.x);//本类的x System.out.println("x="+x);//本方法的x } } publicclassSuperDemo { publicstaticvoidmain(Stringargs[])//主方法 { SubClsss=newSubClss(); s.doDemo(); } } 运行结果: SuperClss.doClass() SubClss.doClss() super.x=10 this.x=100 x=1000 9、编译并运行下面的程序,分析运行结果,体会其中方法重载的用法,进一步理解方法重载的概念。 classFather //本类中的speak方法重载了两次 { voidspeak() //无参数的speak方法 { System.out.println(″IamFather! ″); } voidspeak(Strings) //有参数的speak方法 { System.out.println(″Ilike″+″″+s+″.″); } } publicclassOverLoadingDemo { publicstaticvoidmain(Stringargs[]) { Fatherx=newFather(); x.speak(); //调用无参的speak方法 x.speak(″music″) //调用有参的speak方法 } } 运行结果: IamFather! Ilikemusic. 第五章习题及思考题 1、什么是继承? 什么是父类? 什么是子类? 继承的特性可给面向对象编程带来 什么好处? 什么是单重继承? 什么是多重继承? 2、“子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否 正确? 为什么? 3、什么是方法的覆盖? 方法的覆盖与域的隐藏有何不同? 与方法的重载有何不同? 4、什么是多态? 面向对象程序设计为什么要引人多态的特性? 使用多态有什么优点? 5、父类对象与子类对象相互转化的条件是什么? 如何实现它们的相互转化? 6、什么是包? 它的作用是什么? 7、CLASSPATH是有关什么的环境变量? 它如何影响程序的运行? 如何设置 和修改这个环境变量? 8、一个类如何实现接口? 实现某接口的类是否一定要重载该接口中的所有抽象方法? 9、为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。 现有两种工具: Car007和Plane,其中Car007的速度运算公式为: A*B/C,Plane的速度运算公式为: A+B+C。 需要编写三类: ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。 其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下: 计算Plane的时间: "javaComputeTimePlane203040" 计算Car007的时间: "javaComputeTimeCar007233445" 如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入: "javaComputeTimeShip223344" 提示: 充分利用接口的概念,接口对象充当参数。 实例化一个对象的另外一种办法: Class.forName(str).newInstance();例如需要实例化一个Plane对象的话,则只要调用Class.forName("Plane").newInstance()便可。 10、编写求解几何图形(如直线、三角形,矩型,圆,多边型)的周长,面积的应用程序,要求用到继承和接口等技术。 第六章习题及思考题 a)找出以下有问题的代码 pulicintsearchAccount(int[25]number){ number=newint[15]; for(inti=0;i number[i]=number[i-1]+number[i+1]; returnnumber; } 2、将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母. 3、求若干个数的平均数,若干个数从键盘输入. 4、将一个字符串数组按字典序重新排列. 5、编写应用程序,分析字符串,分别输出字符串的单词,并统计出单词个数. 6、使用java.lang包中System类的静态方法arraycopy可以实现数组的快速拷贝 7、运行下面程序,给出结果 publicclassExample4{ publicstaticvoidmain(Stringargs[]){ byted[]="你我他".getBytes(); System.out.println("数组d的长度是(一个汉字占两个字节): "+d.length); Strings=newString(d,0,2); System.out.println(s); } } 第七章习题及思考题 1、编写判断某年是否是闰年的Java程序。 2、已知f(n)公式如下: f (1)=f (2)=1当n=1,2 f(n)=f(n-1)+f(n-2)当n>=3 计算f(28)的结果,并测试计算该公式所花的时间数。 (提示: 可以用System类的静态方法publiclongcurrentTimeMillis()获取系统当前时间,也可以根据currentTimeMillis()方法得到的数字,用Date的构造方法) 解: 3、利用Vector类,实现一个先进先出队列。 4、将从小到大的素数30个放入数组中。 5、编写生成100个1-6之间的随机数,统计1—6每个出现的概率。 6、在所有的Java系统类中,Object类有什么特殊之处? 它在什么情况下使用? 7、试列举你使用过的数据类型类,数据类型类与基本数据类型有什么关系? 8Math类用来实现什么功能? 设x,y是整型变量,d是双精度型变量,试书写表 达式完成下面的操作: (1)求x的y次方。 (2)求x和y的最小值。 (3)求d取整后的结果。 (4)求d四舍五人后的结果。 (5)求atan(d)的数值。 9、向量与数组有何不同? 它们分别适合于什么场合? 10、什么是排序? 你了解几种排序算法? 它们各自有什么优缺点? 分别适合在什么情况下使用? 第八章习题及思考题 1. 什么是异常? 简述Java的异常处理机制。 2.系统定义的异常与用户自定义的异常有何不同? 如何使用这两类异常? 3.输入并运行下面的程序: 4.编写从键盘读入10个字符放入一个字符数组,并在屏幕上显示它们的程序。 请处理数组越界异常. 第九章习题及思考题 1、编一个应用程序,按行顺序地读取一个可读文件的内容。 2、把Hashtable存放的信息输出到磁盘文件中,并再从中读进Hashtable. 3、利用StringBuffer类编写从键盘读入字符串、整数、实型数,并在屏幕上输出。 4、什么叫流? 简述流的分类? 5、编写一个测试文件一般属性(如显示文件的路径、绝对路径、显示文件是否可写、显示文件是否可读、显示文件的大小等属性)的程序。 6、利用RandomAccessFile类编写应用程序,要求输入10组数据到文件中,每组数据为1个整形数和一个双精度数,然后随机修改文件的某组数,并显示修改的结果。 7、将如下三组不同类型的数据利用DataInputStream和DataOutputStream写入文件,然后从文件中读出。 三组数据如下 {19.99,9.99,15.99,3.99,4.99}; {12,8,13,29,50}; {"JavaT-shirt","JavaMug","DukeJugglingDolls","JavaPin","JavaKeyChain"} 8、利用BufferedReader和BufferedWriter在文件中实现输入输出字符串。 9、什么是过滤流,并举例 10、什么是串行化,并举例 第十章习题及思考题 1.什么是线程? 它产生的背景是什么? 线程有几种状态? 说明状态变化调用的方法。 2、实现两个定时线程,一个线程每隔1秒显示一次,一个线程每隔3秒显示一次。 3、创建两个线程,每个线程打印出线程名字后再睡眠,给其它线程以执行的机会,主线程也要打印出线程名字后再睡眠,每个线程前后共睡眠5次。 要求分别采用从Thread中继承和实现Runnable接口两种方式来实现程序。 (即写两个程序) 第十一章习题及思考题 1、什么是AWT,什么是Swing? 2、AWT中包含了那些常用的组件,有什么用途? 3、什么是事件? 什么是委托事件处理模型? 4、编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换。 5、编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的背景色为青色,未选中时为灰色。 6、编程包含一个下拉列表和一个按钮,下拉列表中有10、14、18三个选项。 选择10时,按钮中文字的字号为10,选择14时,按钮中文字的字号为14,选择18时,按钮中文字的字号为18。 7、编程包含一个列表和两个标签,在第一个标签中显示列表中被双击的选项的内容,在第二个标签中显示列表中被选中的所有选项的内容。 8、编程确定当前鼠标的位置坐标。 9、编程创建一个Frame,实现窗口的监听器接口。 10、使用组件,制作一元二次方程求根的系统。 要求: (1) 一元二次方程三个系数a,b,c输入界面 (2) 显示检查b*b-4*a*c的值 (3) 显示求出的根 第十二章习题及思考题 1. 以在屏幕上显示“您好! ”为例,简述Java小应用程序Applet的开发的步骤。 2、浏览器采取哪些办法,保证Applet安全运行。 3、实现一个Applet,使其可以用用三个按钮控制: (1)从服务器下载音乐播放 (2)不停地运行一个动画; 使上述动画和音乐协调播放。 第十三章习题及思考题 1.如何建立数据库的连接? 2、有哪写方法可以发送访问、操作数据库的SQL语句? 3.如何处理对数据库访问操作的结果? 4、如何获得关于数据库的信息? 第十四章习题及思考题 1.组建模型提供哪些服务? 2.简单回答JavaBean的5个特性? 3.JavaBean属性类型? 4.编写一个表示银行账户的JavaBean,名称叫AccountBean,分别设计一个绑定属性和限制属性;取款时,如果账户余额不足,不能取款;存款时,自动通知用户现在新的存款余额。 第十五章习题及思考题 1.套接口作用是什么? 端口有什么意义? 2.什么是URL? 一个URL由哪此部分组成? 3.编程读出中国矿业大学主页的html文件,判断主页的html文件有无关于“教学改革”的内容。 上面的程序中用到了哪些有关URL操作的方法? 各起什么作用? 中国矿业大学URL为: . 4、顾客和服务者通过套接口通讯,描述基于有连接和无连接通讯时的流程图。 5、利用Java网络包java.io中套接口类Socket和服务者套接口类(ServerSocket)分别实现有连接和无连接的通讯。 第十六章习题及思考题 1.(简答题)简单回答对计算机系统的攻击方法? 2.什么是对称密码技术和非对称密码技术? 3.简述数字签名的基本原理?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 习题 思考题