atc:Java程序设计习题

习题22

习题32

习题43

习题54

习题66

习题77

习题89

习题99

习题1011

习题1112

习题1213

习题1315

习题1415

习题1

1.Java语言的主要贡献者是谁?

2.编写、运行Java程序需要经过哪些主要步骤?

4.如果JDK的安装目录为D:\jdk,应当怎样设置path的值?

5.下列哪个是JDK提供的编译器?

A)java.exe

B)javac.exe

C)javap.exe

D)javaw.exe

6.Java源文件的扩展名是什么?Java字节码的扩展名是什么?

7.下列哪个是Java应用程序主类中正确的main方法声明?

A)publicvoidmain(Stringargs)

B)staticvoidmain(Stringargs)

C)publicstaticvoidMain(Stringargs)

D)publicstaticvoidmain(Stringargs)

习题2

1.模仿图2.4简单绘制出例子2中rectangle和lader对象的内存示意图。

2.模仿例子2编写含有3个类的Java应用程序,要求三个类分别在三个源文件中,其中一个源文件包含有名字为

Teacher的类,该类创建的对象调用add(doublea,doubleb)的方法可以得到2个数的和、调用sub(double

a,doubleb)的方法可以得到2个数的差;一个源文件包含有名字为Student的类,该类创建的对象调用speak()

的方法可以可以在命令行窗口输出“老师好”;一个源文件包含名字为MainClass的主类。要求在主类的main方

法中分别用Teacher和Student类创建对象,使得程序能输出12与236的和以及234与120的差,并输出“老师好

”。

3.当源文件中有多个类时,请简述源文件的命名规则。

4.当代码量较大时应当使用哪种编程风格?

习题3

1.什么叫标识符?标识符的规则是什么?true是否可以作为标识符。

2.什么叫关键字?true和false是否是关键字?请说出6个关键字。

3.Java的基本数据类型都是什么?

4.上机运行下列程序,注意观察输出的结果。

publicclassE{

publicstaticvoidmain(Stringargs){

for(inti=20302;i<=20322;i++){

System.out.println((char)i);

}

5.上机调试下列程序,注意System.out.print()和System.out.println()的区别。

publicclassOutputData{

以太坊JavaScript团队发布EthereumJS虚拟机v5版本:11月26日,以太坊官方博客发文宣布,JavaScript团队已正式发布EthereumJS VM v5版本。[2020/11/27 22:19:12]

intx=234,y=432;

System.out.println(x+"<"+(2*x));

System.out.print("我输出结果后不回车");

System.out.println("我输出结果后自动回车到下一行");

System.out.println("x+y="+(x+y));

6.编写一个Java应用程序,输出全部的大写英文字母。

7.是否可以将例子4中的

zhangSan.weight=reader.nextFloat();

更改为:

zhangSan.weight=reader.nexDouble();

习题4

1.下列程序的输出结果是什么?if-else语句的书写是否规范?

intx=10,y=5,z=100,result=0;

if(x>y)

x=z;

else

y=x;

z=y;

result=x+y+z;

System.out.println(result);

2.下列程序的输出结果是什么?

charc='\0';

for(inti=1;i<=4;i++){

switch(i){

case1:c='新';

System.out.print(c);

case2:c='亲';

break;

case3:c='斤';

default:System.out.print("!");

3.参考例子2,在应用程序中使用if-elseif-else多条件分支语句代替switch语句来判断整数的中奖情况。

4.为了节约用电,将用户的用电量分成3个区间,针对不同的区间给出不同的收费标准。对于1至90千瓦

的电量,每千瓦0.6元;对于91至150千瓦的电量,每千瓦1.1元;对于用大于151千瓦的电量,每千瓦1.7元。编

写一个Java应用程序程序。在主类的main方法中,输入用户的用电量,程序输出电费。

5.编写一个应用程序,用两个for循环语句分别输出大写和小写的“字母表”。

6.一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写一个应用程序求1000之内的所有完数。

7.编写一个应用程序求满足1+2!+3!…+n!<=9876的最大整数n。

习题5

1.类中的实例变量在什么时候会被分配内存空间?

2.什么叫方法的重载?构造方法可以重载吗?

3.类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?

4.类中的实例方法可以用类名直接调用吗?

5.简述类变量和实例变量的区别。

6.下列哪些类声明是错误的?

A)classA

B)publicclassA

动态 | 供应链攻击再起 黑客入侵JavaScript库窃取钱包比特币:供应链攻击是一种高级且非常隐蔽的攻击模式,通常通过在软件的依赖库中嵌入恶意代码实现,近日降维安全实验室(johnwick.io)观察到有黑客获取了热门JavaScript库Event-Stream的控制权,并注入了恶意代码来窃取Copay钱包内的比特币等数字货币。该恶意代码默认休眠状态,当BitPay的Copay钱包启动后,就会自动激活。它将会窃取用户钱包内的私钥并发送至copayapi.host:8080。该恶意代码9月至11月期间感染了所有版本的Copay钱包。降维安全建议使用Copay钱包的用户升级到最新版Copay v5.2.2, 使用Event-Stream库的开发者请更新到v4.0.1。[2018/11/27]

C)protectedclassA

D)privateclassA

7.下列A类的类体中~哪些是错误的?

classTom{

privateintx=120;

protectedinty=20;

intz=11;

privatevoidf(){

x=200;

System.out.println(x);

voidg(){

publicclassA{

Tomtom=newTom();

tom.x=22;//

tom.y=33;//

tom.z=55;//

tom.f();//

tom.g();//

8.请说出A类中System.out.println的输出结果。

classB

{intx=100,y=200;

publicvoidsetX(intx)

{x=x;

publicvoidsetY(inty)

{this.y=y;

publicintgetXYSum()

{returnx+y;

publicclassA

{publicstaticvoidmain(Stringargs)

{Bb=newB();

b.setX(-100);

b.setY(-200);

System.out.println("sum="+b.getXYSum());

9.请说出A类中System.out.println的输出结果。

classB{

intn;

staticintsum=0;

voidsetN(intn){

this.n=n;

intgetSum(){

for(inti=1;i<=n;i++)

sum=sum+i;

returnsum;

Bb1=newB(),b2=newB();

b1.setN(3);

b2.setN(5);

ints1=b1.getSum();

ints2=b2.getSum();

System.out.println(s1+s2);

10.请说出E类中System.out.println的输出结果。

研究表明:基于JavaScript钱包应用程序生成的比特币地址长期处于危险之中:据btcmanager消息,一组研究人员发布警告称,由于JavaScript函数存在漏洞,基于JavaScript的钱包应用程序生成的旧比特币地址可能长期存在安全风险。研究人员称,黑客可以利用旧的JavaScript加密缺陷窃取存储在这些地址中的比特币。他们用暴力破解,可以获得这些地址的私钥,并获取存放在其中的钱包和比特币的所有权。[2018/4/21]

classA{

doublef(intx,doubley){

returnx+y;

intf(intx,inty){

returnx*y;

Aa=newA();

System.out.println(a.f(10,10));

System.out.println(a.f(10,10.0));

习题6

1.子类将继承父类的那些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?

2.父类的final方法可以被子类重写吗?

3.什么类中可以有abstract方法?

4.什么叫对象的上转型对象?

5.下列叙述哪些是正确的?

final类不可以有子类。

abstract类中只可以有abstract方法。

abstract类中可以有非abstract方法,但该方法不可以用final修饰。

不可以同时用final和abstract修饰一个方法。

6.请说出E类中System.out.println的输出结果。

doublef(doublex,doubley){

classBextendsA{

doublef(intx,inty){

Bb=newB();

System.out.println(b.f(3,5));

System.out.println(b.f(3.0,5.0));

7.请说出E类中System.out.println的输出结果。

staticintg(intn){

returnn*n;

doublem=super.f(x,y);

returnm+x*y;

intm=A.g(n);

returnm+n;

System.out.println(b.f(10.0,8.0));

System.out.println(b.g(3));

习题7

1.接口中能声明变量吗?

2.接口中能定义非抽象方法吗?

3.什么叫接口的回调?

4.请说出E类中System.out.println的输出结果。

interfaceA{

doublef(doublex,doubley);

classBimplementsA{

publicdoublef(doublex,doubley){

intg(inta,intb){

returna+b;

Aa=newB();

System.out.println(a.f(3,5));

手表零售商JavyEstrella不再接受加密货币付款:手表零售商JavyEstrella在4月18日宣布重启其网站且不再接受包括比特币在内的加密货币付款。Javyestrella老板Jonathan Franco称新的政府立法可能会给公司和客户带来不可预见的税收后果,而比特币支付并没有为其带来显著优势。如果确有好处,公司将在未来重新审视这一选择。[2018/4/18]

Bb=(B)a;

System.out.println(b.g(3,5));

5.请说出E类中System.out.println的输出结果。

interfaceCom{

intadd(inta,intb);

abstractclassA{

abstractintadd(inta,intb);

classBextendsAimplementsCom{

publicintadd(inta,intb){

Comcom=b;

System.out.println(com.add(12,6));

Aa=b;

System.out.println(a.add(10,5));

习题8

1.内部类的外嵌类的成员变量在内部类中仍然有效吗?

2.内部类中的方法也可以调用外嵌类中的方法吗?

3.内部类的类体中可以声明类变量和类方法吗?

4.请说出下列程序的输出结果。

classCry{

publicvoidcry(){

System.out.println("大家好");

Cryhello=newCry(){

publicvoidcry(){

System.out.println("大家好,祝工作顺利!");

};

hello.cry();

习题9

1.下列叙述哪些是正确的?

String类是final类,不可以有子类。

String类在java.lang包中。

"abc"=="abc"的值是false.

"abc".equals("abc")的值是true

2.请说出E类中System.out.println的输出结果。

importjava.util.*;

classGetToken{

Strings;

publicStringgetToken(intindex,Stringstr){

StringTokenizerfenxi=newStringTokenizer(str);

intnumber=fenxi.countTokens();

s=newString;

intk=1;

while(fenxi.hasMoreTokens()){

Stringtemp=fenxi.nextToken();

s=temp;

k++;

if(index<=number)

returns;

returnnull;

classE{

Stringstr="WeLoveThisGame";

超3万个网站运行Coinhive 占JavaScript挖矿代码感染网站的92%:Concordia大学发布一份学术报告,拷问基于网页数字货币挖矿是攻击和商机。该报告发现,目前有超过30000个网站使用Coinhive脚本,占JavaScript挖矿代码感染网站的92%。报告认为由网站管理员发起的数字货币挖矿并不要求用户同意,是“ 无形的滥用”。Showtime在去年9月举报Coinhive在旗下两个网站上秘密运行挖矿代码。被发现后,Coinhive承诺在利用用户算力挖矿前将要求用户同意。上个月,Coinhive被曝出感染了包括政府机构在内的上千家正规网站,英国信息专员办公室、英国国家医疗服务体系(NHS)和美国法院系统。[2018/3/11]

GetTokentoken=newGetToken();

Strings1=token.getToken(2,str),

s2=token.getToken(4,str);

System.out.println(s1+":"+s2);

3.请说出E类中System.out.println的输出结果。

byted="abc我们喜欢篮球".getBytes();

System.out.println(d.length);

Strings=newString(d,0,7);

System.out.println(s);

classMyString{

publicStringgetString(Strings){

StringBufferstr=newStringBuffer();

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

if(i%2==0){

charc=s.charAt(i);

str.append(c);

returnnewString(str);

Strings="1234567890";

MyStringms=newMyString();

System.out.println(ms.getString(s));

Stringregex="\\djava\\w{1,}";

Stringstr1="88javaookk";

Stringstr2="9javaHello";

if(str1.matches(regex)){

System.out.println(str1);

if(str2.matches(regex)){

System.out.println(str2);

6.字符串调用publicStringtoUpperCase()方法返回一个字符串,该字符串把当前字符串中的小写字母变成大写字母;.字符串调用publicStringtoLowerCase()方法返回一个字符串,该字符串把当前字符串中的大写字母变成小写字母。String类的publicStringconcat(Stringstr)方法返回一个字符串,该字符串是把调用该方法的字符串与参数指定的字符串连接。编写一个程序,练习使用这3个方法。

7.String类的publiccharcharAt(intindex)方法可以得到当前字符串index位置上的一个字符。编写程序使用该方法得到一个字符串中的第一个和最后一个字符。

8.通过键盘输入年份和月份。程序输出相应的日历牌。

9.计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、月、日通过通过键盘输入到程序中。

10.编程练习Math类的常用方法。

11.参看例子19,编写程序剔除一个字符串中的全部非数字字符,例如,将形如“ab123you”的非数字字符全部剔除,得到字符串“123”。

12.参看例子21,使用Scanner类的实例解析“数学87分,物理76分,英语96分”中的考试成绩,并计算出总成绩以及平均分数。

习题10

1.如果准备按字节读取一个文件的内容,应当使用FileInputStream流还是FileReader流?

2.FileInputStream流的read方法和FileReader流的read方法有何不同?

3.BufferedReader流能直接指向一个文件吗?

4.使用ObjectInputStream和ObjectOutputStream类有哪些注意事项?

5.怎样使用输入、输出流克隆对象?

6.使用RandomAccessFile流将一个文本文件倒置读出。

7.使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另

一个文件中。

8.了解打印流。我们已经学习了数据流,其特点是用Java的数据类型读写文件,但使用数据流写成的文

件用其它文件阅读器无法进行阅读(看上去是乱码)。PrintStream类提供了一个过滤输出流,该输出流能以文本

格式显示Java的数据类型。上机实习下列程序:

importjava.awt.*;

importjava.io.*;

try{

Filefile=newFile("p.txt");

FileOutputStreamout=newFileOutputStream(file);

PrintStreamps=newPrintStream(out);

ps.print(12345.6789);

ps.println("howareyou");

ps.println(true);

ps.close();

catch(IOExceptione){}

9.参考例子14,解析一个文件中的价格数据,并计算平均价格,比如该文件的内容如下:

商品列表:

电视机,2567元/台

洗衣机,3562元/台

冰箱,6573元/台

习题11

1.JFrame类的对象的默认布局是什么布局?

2.一个容器对象是否可以使用add方法添加一个JFrame窗口?

3.编写应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。窗口中添加两个文本区,当

我们在一个文本区中输入若干个数时,另一个文本区同时对你输入的数进行求和运算并求出平均值,也就是说

随着你输入的变化,另一个文本区不断地更新求和及平均值。

4.编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。设计四个按钮,分别命

名为“加”、“差”、“积、”、“除”,另外,窗口中还有三个文本框。单击相应的按钮,将两个文本框的

数字做运算,在第三个文本框中显示结果。要求处理NumberFormatException异常。

5.参照例子13编写一个体现MVC结构的GUI程序。首先编写一个封装梯形类,然后再编写一个窗口。要求窗口使

用三文本框和一个文本区为梯形对象中的数据提供视图,其中三个文本框用来显示和更新梯形对象的上底、下

底和高;文本区对象用来显示梯形的面积。窗口中有一个按钮,用户单击该按钮后,程序用3个文本框中的数据

分别作为梯形对象的上底、下底和高,并将计算出的梯形的面积显示在文本区中。

习题12

1.线程有几种状态?

2.引起线程中断的常见原因是什么?

3.一个线程执行完run方法后,进入了什么状态?该线程还能再调用start方法吗?

4.线程在什么状态时,调用isAlive()方法返回的值是false。

5.建立线程有几种方法?

6.怎样设置线程的优先级?

7.在多线程中,为什么要引入同步机制?

8.在什么方法中wait()方法、notify()及notifyAll()方法可以被使用?

9.将例子11中SellTicket类中的循环条件:

while(fiveAmount<3)

该写成:

if(fiveAmount<3)

是否合理。

10.线程调用interrupt()的作用是什么?

11.参照例子14,模拟三个人排队买票,张某、李某和赵某买电影票,售票员只有三张五元的钱,电影票5元钱

一张。张某拿二十元一张的新人民币排在李的前面买票,李某排在赵的前面拿一张10元的人民币买票,赵某拿

一张5元的人民币买票。

12.参照例子9,要求有3个线程:student1、student2和teacher,其中student1准备睡10分钟后再开始上课

,其中student2准备睡一小时后再开始上课。teacher在输出3句“上课”后,吵醒休眠的线程student1;

student1被吵醒后,负责再吵醒休眠的线程student2。

12.参照例子19,编写一个Java应用程序,在主线程中再创建3个线程:“运货司机”、“装运工”和“仓库管

理员”。要求线程“运货司机”占有CPU资源后立刻联合线程“装运工”,也就是让“运货司机”一直等到“装

运工”完成工作才能开车,而“装运工”占有CPU资源后立刻联合线程“仓库管理员”,也就是让“装运工”

一直等到“仓库管理员”打开仓库才能开始搬运货物。

14.在下列E类中,System.out.println的输出结果是什么?

importjava.awt.event.*;

publicclassEimplementsRunnable{

StringBufferbuffer=newStringBuffer();

Threadt1,t2;

E(){

t1=newThread(this);

t2=newThread(this);

publicsynchronizedvoidaddChar(charc){

if(Thread.currentThread()==t1){

while(buffer.length()==0){

try{wait();

catch(Exceptione){}

buffer.append(c);

if(Thread.currentThread()==t2){

notifyAll();

publicstaticvoidmain(Strings){

Ehello=newE();

hello.t1.start();

hello.t2.start();

while(hello.t1.isAlive()||hello.t2.isAlive()){}

System.out.println(hello.buffer);

publicvoidrun(){

if(Thread.currentThread()==t1)

addChar('A');

if(Thread.currentThread()==t2)

addChar('B');

习题13

1.URL对象调用哪个方法可以返回一个指向该URL对象所包含的资源的输入流。

2.什么叫socket?怎样建立socket连接?

3.ServerSocket对象调用accept方法返回一个什么类型的对象?

4.InetAddress对象使用怎样的格式来表示自己封装的地址信息?

5.参照例子6,使用套接字连接编写网络程序,客户输入三角形的三边并发送给服务器,服务器把计算出的三

角形的面积返回给客户。

6.参照13.6.2节中的示例代码,使用RMI技术让客户调用远程对象读取服务器上的一个文本文件。

习题14

1.为了操作Derby数据库,需要把Java安装目录目录db/lib下的那些jar文件复制到Java运行环境的扩展

中?

2.参照例子2,编写一个应用程序来查询Derby数据库,用户可以从键盘输入数据库名、表名。

3.使用预处理语句的好处是什么?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:46ms0-0:565ms