第一篇:Java程序设计实用教程_胡伏湘_清华大学出版社007习题答案
《Java程序设计精典教程》习题答案
编著:胡伏湘,雷军环
清华大学出版社
第7章习题解答
一、简答题
1.Applet有什么安全限制?
答:Applet不能加载客户端的类与定义客户端的方法,Applet不能访问客户端的文件,包括阅读、修改、删除,Applet不能在客户端创建网络连接,防止客户端的资料被盗取,Applet不能在客户端启动任何程序。
2.Applet是什么?简述Applet在浏览器中执行的工作原理。
答:Applet也叫小应用程序,是一种在浏览器环境下运行的Java程序。当某一个浏览器向服务器请求下载嵌入了Applet的HTML文件时,浏览器会根据Applet的名字和位置自动把字节码文件从www.xiexiebang.component类中声明的。
Applet的显示和刷新由一个独立的线程控制,称为AWT线程。当Applet首次被加载或Applet部分显示内容被其他窗口覆盖,那么当其他窗口关闭或移开时,AWT线程会自动调用paint()方法。当在程序中使用repaint()方法通知系统更新显示内容时,AWT线程会自动调用update()方法,该方法首先将当前显示画面清空,然后调用paint()方法绘制新的内容。
5.在Applet中如何显示图像?
答:在Applet中显示图像的方法如下:
在Applet的init()方法中用Applet类的getImage()方法装载一个Image对象 在Applet的paint()方法中用Graphics类的drawImage()方法将该对象画在屏幕上。
6.在Applet中如何播放声音?
答:在Applet中播放声音文件有两种不同的方式: 第一种方法:利用Applet类的play()方法直接播入。
第二种方法:利用Applet的getAudioClip()方法创建声音剪辑对象,加载指定文件,返 回AudioClip对象,然后利用AudioClip对象的声音文件处理方法play()或loop()方法播放声音。
二、编程题
1.试绘制一面国旗。程序的运行结果如图7-11所示:
图7-11 程序代码如下: import java.awt.*;import java.awt.Graphics;import java.awt.event.*;import java.applet.Applet;
public class XT007201 extends Applet {
public void paint(Graphics g){
//下面两行是大五角星的10个拐点的X坐标和Y坐标
int xs1[]={80,85,98,87,92,80,68,73,63,75,80};
int ys1[]={40,54,54,62,76,67,76,62,54,54,40};
//下面两行是第1个小五角星的10个拐点X坐标和Y坐标
int xs2[]={115,117,120,117,118,115,112,113,110,113,115};
int ys2[]={34,38,38,40,44,42,44,40,38,38,34};
g.setColor(Color.red);
g.fillRect(40,20,250,150);
g.setColor(Color.yellow);
Polygon p1=new Polygon(xs1,ys1,10);
g.fillPolygon(p1);
Polygon p2=new Polygon(xs2,ys2,10);
g.fillPolygon(p2);//绘制小五角星
g.copyArea(110,34,10,10,10,11);//复制绘出第二个小五星
g.copyArea(110,34,10,10,10,26);//复制绘出第三个小五星
g.copyArea(110,34,10,10,0,38);//复制绘出第四个小五星
} }
.编写一个Applet,实现一个字符串沿正弦曲线移动。
import java.applet.*;import java.awt.*;
public class XT007202 extends Applet {
int x,y;
int h;
Dimension d;
public void init(){
d = getSize();
h = d.height / 2;
x = 20;
}
public void paint(Graphics g){
if(x y =(int)((1.0 + Math.sin((x)*0.05))*h); //y =(int)(Math.sin(x*0.01)*h); x++; } else x=20; g.drawString(“你好”,x,y); try { Thread.sleep(50); } catch(InterruptedException e){ showStatus(e.toString()); } repaint(); } } //Dimension //The Dimension class encapsulates the width and height of a component //(in integer precision)in a single object.The class is associated 2 //with certain properties of components.Several methods defined by the // Component class and the LayoutManager interface return a Dimension object.//Normally the values of width and height are non-negative integers.// The constructors that allow you to create a dimension do not prevent //you from setting a negative value for these properties.If the value of //width or height is negative, the behavior of some methods defined by other // objects is undefined.//showStatus()//Requests that the argument string be displayed in the “status window”.//Many browsers and applet viewers provide such a window, where the //application can inform users of its current state.3.当鼠标单击事件发生时,利用Math类的方法Random()产生3个随机数,同时获得鼠标位置坐标,在鼠标单击处绘制圆。圆的颜色由三个随机数决定。程序的输出结果如图7-12所示。 图7-12 import java.awt.*;import java.awt.event.*;import java.applet.*; public class XT007203 extends Applet { int i,j,k; int x,y; Color mycolor; public void init(){ this.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ this_mouseClicked(e); } }); } void this_mouseClicked(MouseEvent e){ x = e.getX(); y = e.getY(); i =(int)(255*Math.random()); j =(int)(255*Math.random()); k =(int)(255*Math.random()); repaint(); } public void paint(Graphics g){ mycolor = new Color(i,j,k); g.setColor(mycolor); g.fillOval(x-10,y-10,20,20); } //重载update()方法,使每次单击鼠标所绘制的点圆得以保留。 public void update(Graphics g){ paint(g); } } 4.编写一个Applet,显示一幅图像并配上背景音乐。请参考7.1.2节和7.3.1节内容。 C语言程序设计教程课后习题答案 第一章 C语言程序设计概述 -习题答案 算法的描述有哪些基本方法? 答 1、自然语言 2、专用工具C语言程序的基本结构是怎样的?举一个例子说明。 答 1、C语言程序由函数构成; 2、“/*”与“*/”之间的内容构成C语言程序的注释部分; 3、用预处理命令#include、#define可以包含有关文件或预定义信息; 4、大小写字母在C语言中是有区别的; 5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。C语言有什么特点? 答 1、具有结构语言的特点,程序之间很容易实现段的共享; 2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化; 3、运算符丰富,包含的范围很广; 4、数据类型丰富; 5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能; 6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚; 7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。★指出合法与不合法的标识符命名。 答 AB12--√ leed_3--a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×说明下列Turbo C热键的功能。 答 F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序)Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。 ①main() {printf(“********************n”);printf(“ welcome you n”);printf(“ very good n);printf(”********************n“);} ②main() { int a,b,c,t;printf(”please input three numbers;“);scanf(”%d,%d,%d“,&a,&b,&c);/*教材S是错误的*/ t=max(max(a,b),c);printf(”max number is:%dn“,t);} int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);} 答 运行结果: ******************** welcome you very good ******************** 运行结果: please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/ max number is:4 7 一个C程序是由若干个函数构成的,其中有且只能有一个___函数。 答 main()8 在Turbo C环境下进行程序调试时,可以使用Run下拉菜单的___命令或按___键转到用户屏幕查看程序运行结果。 答 1、User screen 2、Alt+F5 9 ★C语言对标识符与关键字有些什么规定? 答 1、标识符用来表示函数、类型及变量的名称,它是由字母、下划线和数字组成,但必须用字母或下划线开头。 2、关键字是一种语言中规定具有特定含义的标识符,其不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。C源程序输入后是如何进行保存的? 答 是以C为扩展名保存的纯文本文件。 第二章 C语言程序的基本数据类型与表达式 -习题答案 ★指出下列常数中哪些是符合C语法规定的。 答 ''--× '101'--× ”“--× e3--× 019--√ 0x1e--√ ”abn“--√ 1.e5--×(2+3)e(4-2)--× 5.2e2.5--×请找出下列程序中的错误,改正后写出程序运行结果。 ①void main(){int x,y=z=5,aver;x=7 AVER=(x+y+z)/3 printf(”AVER=%dn“,aver);} ②void main() { char c1='a';c2='b';c3='c';int a=3.5,b='A' printf(”a=%db='“endn”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 答 main(){int x,y=5,z=5,aver;x=7;aver=(x+y+z)/3;printf(“AVER=%dn”,aver);} 运行结果:AVER=5 ②main() { char c1='a', c2='b', c3='c';int a=3,b='A';printf(“a=%d,b='%c'”end“n”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 运行结果:a=3,b='A'“end” aabcc abc 3 写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格填上赋值后的数据(实数保留到小数点后两位)。int 99 -1 char 'h' unsigned int float 55.78 long int 答 int 99 104 66 55 68-1 char 'c' 'h' 'B' '7' 'D' unsigned int 99 104 66 55 68 65535 float 99.00 104.00 66.00 55.78 68.00-1.00 long int 99 104 66 55 68-1 ★写出程序运行结果。 ①void main(){int i,j;i=8,j=10;printf(“%d,%d,%d,%dn”,i,j,++i,j++);} ②main() { int a=1,b=2,c=30;;printf(“%d,%d,%d,%dn”,a=b=c,a=b==c,a==(b=c),a==(b==c));} 注意:a=b=c,a=b==c之间应为逗号,教材有误 答 运行结果: 9,11,9,10 运行结果: 30,1,0,0 ③void main() {int a=10,b=20,c=30,d;d=++a<=10||b-->=20||c++;printf(“%d,%d,%d,%dn”,a,b,c,d);} 答 运行结果: 11,19,30,1 ★写出下面表达式的值(设a=10,b=4,c=5,d=1,x=2.5,y=3.5)。⑴a%=(b%=3) ⑵n++,a+=a-=a*=a ⑶(float)(a+c)/2+(int)x%(int)y ⑷a*=b+c ⑸++a-c+b++ ⑹++a-c+++b ⑺a ⑼a+b,18+(b=4)*3,(a/b,a%b) ⑽x+a%3*(int)(x+y)%2/4+sizeof(int)⑾a 答 ⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0 下列每组表达式中,被执行后结果完全等价的是哪些(设a、b、m是已被赋值的整型变量)? ①m=(a=4,4*5)与m=a=4,4*5 ②(float)(a/b)与(float)a/b ③(int)a+b与(int)(a+b)④m%=2+a*3与m=m%2+a*3 ⑤m=1+(a=2)+(b=3)与a=2,b=3,m=1+a+b 答 ①前面是赋值表达式,而后面的是一个逗号表达式,所以一定不同; ②前面的表达式中a/b结果为一整数,结果已经取整,精度可能受到影响,之后强制float后才为浮点型,后面的是先将a转换为float后再与b相除,其值保证了精度,所以不同。 ③因为a、b均为整数,其前后两个表达式的计算结果是一致的。 ④前一表达式是一算术表达式,而后者为一赋值表达式,此为一点不同;另外,前一表达式的m只被赋过一次值,后一表达式中的m曾两次被赋值,第一次赋值时与第一表达式中的值一致,第二次赋值后即不再相同。⑤前后表达式的计算结果应该是一致的:a=2, b=3, m=6 7 条件表达式x>0?x:-x的功能是什么? 答 如果x的值是一正数,则表达式的值为x值;如果x的值是一非正数,则表达式的值为-x。其实该表达式的值即为x的绝对值,C语言中提供了一个函数fabs(x)即可完成此功能,该函数包含在math.h头文件中。用一个条件表达式描述从a、b、c中找出最大都赋给max.答 max=a>(b>c?b:c)?a:(b>c?b:c);9 ★若x为int型变量,则执行以下语句后x的值为()。x=6;x+=x-=x*x;A.36 B.-60 C.60 D.-24 答 B.10 ★若有以下类型说明语句: char w;int x;float y;double z;则表达式w*x+z-y的结果为()类型。A.float B.char C.int D.double 答 D.第三章 顺序结构程序设计 -习题答案 变量k为float类型,调用函数scanf(“%d”,&k),不能使变量k得到正确数值的原因是___。 答 格式修饰符与变量类型不一致。因为%d输入的数据类型应该为十进制整数,而&k为占用4个字节的float类型变量的地址。★a=1234,b=12,c=34,则执行“printf(“|%3d%3d%-3d|n”,a,b,c);”后的输出是___。 答 |1234 1234 | 分析如下: ①%3d为右对齐输出变量,且指定输出变量的值宽度为3个字符位,如果变量实际位数小于3,则左端补空格,如果变量实际位数大于3,则按实际长度输出,不受限制。 ②%-3d为左对齐输出变量,在输出变量时,如是变量实际位数小于3,则在右端补空格,否则按实际输出。★设有“int a=255,b=8;”,则“printf(“%x,%on”,a,b);”输出是___。答 ff,10 ①如果“printf(“%X,%on”,a,b);”则输出为FF,10。说明在输出十六进制字母时,其大小写受格式修饰符的限制,如果是“%x”则输出小写,如果是“%X”则输出大写。 ②如果希望在输出十六进制时输出前导符0x或0X,则以上输出语句应改“printf(“%#x,%on”,a,b);”为或“printf(“%#X,%on”,a,b);”。本条解释不必须掌握。★以下程序输出的结果是___。main(){ int a1=1,a2=0,a3=2;printf(“%d,%d,%dn”,a1,a1+a2+a3,a3-a1);} 答 1,3,1 5 printf函数中用到格式符%5s,其中5表示输出字符占用5列。如果字符串长度大于5,则按___输出;如果字符串长度小于5,则按___输出。 答 ①实际 ②左端补空格 6 ★已定义变量如下: int a1,a2;char c1,c2;若要求输入a1、a2、c1和c2的值,正确的输入函数调用语句是___。 答 scanf(“%d,%d,%c,%c”,&a1,&a2,&c1,&c2);7 输入两个整型变量a、b的值,输出下列算式以及运算结果___。a+b、a-b、a*b、a/b、(float)a/b、a%b 每个算式占一行。如a=10,b=5,a+b输出为:10+5=15 答 设int a=10,b=5;以下为输出语句及结果: ①printf(“%d+%d=%dn”,a,b,a+b);10+5=15 ②printf(“%d-%d=%dn”,a,b,a-b);10-5=5 ③printf(“%d*%d=%dn”,a,b,a*b);10*5=50 ④printf(“%d/%d=%dn”,a,b,a/b);10/5=2 ⑤printf(“%(float)d/%d=%fn”,a,b,(float)a/b);(float)10/5=2.000000 ⑥printf(“%d%%%d=%dn”,a,b,a%b);10%5=0 8 ★输入一个非负数,计算以这个数为半径的圆周长和面积。答 #define PI 3.1415926 main(){ float r,l,area;printf(“Input a positive:”);scanf(“%f”,&r);l=2*PI*r;area=PI*r*r;printf(“l=%ftarea=%fn”,l,area);} 9 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。 答 main(){ int x,y;printf(“Input a number(100-999):”);scanf(“%d”,&x);y=100*(x%10)+10*(x/10%10)+x/100;/*注意分析此处算法*/ 1.239页1题小时钟 procedure TForm1.Timer1Timer(Sender: TObject);var xt,yt:integer;h,m,s,ms:word;begin decodetime(time,h,m,s,ms);xt:=paintbox1.clientwidth div 2;yt:=paintbox1.clientheight div 2;paintbox1.refresh;paintbox1.canvas.moveto(xt,yt);paintbox1.canvas.pen.width:=3;paintbox1.canvas.lineto(xt+round(sin((60*h+m)/(12*60)*2*pi)*100), yt-round(cos((60*h+m)/(12*60)*2*pi)*100));paintbox1.canvas.moveto(xt,yt);paintbox1.canvas.pen.width:=2;paintbox1.canvas.lineto(xt+round(sin(m/60*2*pi)*140), yt-round(cos(m/60*2*pi)*140));paintbox1.canvas.moveto(xt,yt);paintbox1.canvas.pen.width:=1;paintbox1.canvas.lineto(xt+round(sin(s/60*2*pi)*180), yt-round(cos(s/60*2*pi)*180));end;end.2.239页3题求两点间的距离 procedure TForm1.Button1Click(Sender: TObject);begin paintbox1.Refresh;formpaint(sender);end;procedure TForm1.FormPaint(Sender: TObject);var xt,yt:integer;ax,ay,bx,by:integer;begin xt:=paintbox1.ClientWidth div 2;yt:=paintbox1.Clientheight div 2;paintbox1.canvas.MoveTo(xt,0);paintbox1.canvas.lineTo(xt,2*yt);paintbox1.canvas.MoveTo(0,yt);paintbox1.canvas.lineTo(2*xt,yt);ax:=strtoint(edit1.text);ay:=strtoint(edit2.text);bx:=strtoint(edit3.text);by:=strtoint(edit4.text); edit5.Text:=floattostr(sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by))); paintbox1.canvas.MoveTo(xt+ax*10,yt-ay*10); paintbox1.canvas.lineTo(xt+bx*10,yt-by*10);end;end.3.226页5题输入学生成绩 var Form1: TForm1;type studentrecord=record xh,xm:string[6];xb:boolean;yy,sx,dz:integer;end; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var t:studentrecord; f,f1:file of studentrecord;p1,p2:boolean;begin assignfile(f,'c:my documentsstu.dat');reset(f); assignfile(f1,'c:my documentsstu1.dat');rewrite(f1); while not eof(f)do begin read(f,t); p1:=(t.sx>=85)and(t.yy>=85)and(t.dz>=85); p2:=t.sx+t.yy+t.dz>=270;if p1 or p2 then write(f1,t);end; closefile(f);closefile(f1);end; procedure TForm1.FormCreate(Sender: TObject); var t:studentrecord;f:file of studentrecord;xingbie:string;begin assignfile(f,'c:my documentsstu.dat');reset(f); while not eof(f)do begin read(f,t);if t.xb then xingbie:='男' else xingbie:='女'; listbox1.Items.Add(t.xh+' '+t.xm+' '+xingbie+' '+inttostr(t.sx)+ ' '+inttostr(t.yy)+' '+inttostr(t.dz));end; closefile(f);end; procedure TForm1.Button2Click(Sender: TObject);begin close;end;end.4.226页8题保存获得奖学金者 var Form1: TForm1;type studentrecord=record xh,xm:string[6];xb:boolean;yy,sx,dz:integer;end; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);var t:studentrecord;f,f1:file of studentrecord;p1,p2:boolean;begin assignfile(f,'c:my documentsstu.dat');reset(f);assignfile(f1,'c:my documentsstu1.dat');rewrite(f1);while not eof(f)do begin read(f,t);p1:=(t.sx>=85)and(t.yy>=85)and(t.dz>=85);p2:=t.sx+t.yy+t.dz>=270;if p1 or p2 then write(f1,t);end;closefile(f);closefile(f1);end;procedure TForm1.FormCreate(Sender: TObject);var t:studentrecord;f:file of studentrecord;xingbie:string;begin assignfile(f,'c:my documentsstu1.dat');reset(f);while not eof(f)do begin read(f,t);if t.xb then xingbie:='男' else xingbie:='女';listbox1.Items.Add(t.xh+' '+t.xm+' '+xingbie+' '+inttostr(t.sx)+ ' '+inttostr(t.yy)+' '+inttostr(t.dz));end;closefile(f);end;procedure TForm1.Button2Click(Sender: TObject);begin close;end;end.5.166页22题素数 procedure TForm1.Button1Click(Sender: TObject);type sushuset=set of byte;var sushu:sushuset;i,j,n,m,k:longword;s,s0:string;begin n:=strtoint(edit1.text);m:=strtoint(edit2.text);if n mod 2=0 then n:=n+1;k:=m-n; if k>255 then showmessage('范围太大,请重新输入区间端点!')else begin sushu:=[0..k];for i:=2 to n-1 do for j:=n to m do if j mod i =0 then sushu:=sushu-[j-n];for i:=n to m div 2 do for j:= i+1 to m do if j mod i =0 then sushu:=sushu-[j-n];s:='';s0:=''; for i:=n to m do if i-n in sushu then begin if length(s0+' '+inttostr(i))>60 then begin s:=s+s0+chr(13);s0:='' end; s0:=s0+' '+inttostr(i);end;s:=s+s0;label1.caption:=s; groupbox1.Top:=(panel1.Top-groupbox1.height)div 2;end;end; procedure TForm1.FormCreate(Sender: TObject);begin groupbox1.Top:=(panel1.Top-groupbox1.height)div 2;end; procedure TForm1.Edit1KeyPress(Sender: TObject;var Key: Char);var j:set of char;begin j:=['0'..'9',#8]; if not(key in j)then key:=#0;end;end.6.148页12题整除的数 implementation {$R *.dfm} function d7(x:integer):boolean;begin if x mod 7=0 then d7:=true else d7:=false;end; function d17(x:integer):boolean;begin if x mod 17=0 then d17:=true else d17:=false;end; procedure TForm1.FormActivate(Sender: TObject);var n:integer;begin for n:=1000 to 4000 do if d7(n)and d17(n)then memo1.Lines.Add(inttostr(n));end;end.7.148页17题求斐波那契数列问题 implementation {$R *.dfm} function fib(n:integer):int64;begin case n of 1,2:fib:=1;else fib:=fib(n-1)+fib(n-2);end;end;procedure TForm1.Button1Click(Sender: TObject);var k:integer;begin memo1.lines.clear;for k:=1 to strtoint(edit1.text)do memo1.lines.add(format('%2d %3d',[k,fib(k)]));end;end.8.120页10题,判断是否是闰年 procedure TForm1.Button1Click(Sender: TObject);var y,m:integer;begin y:=strtoint(edit1.text);m:=strtoint(edit2.text);label3.Caption:='';if((y mod 4 = 0)and(y mod 100 <> 0))or(y mod 400=0)then label3.Caption:=edit1.text+'年是闰年,' else label3.Caption:=edit1.text+'年不是闰年,';case m of 3,4,5:Label3.Caption:=Label3.Caption+edit2.Text+'月份是春天,';6,7,8:Label3.Caption:=Label3.Caption+edit2.Text+'月份是夏天,';9,10,11:Label3.Caption:=Label3.Caption+edit2.Text+'月份是秋天,';else Label3.Caption:=Label3.Caption+edit2.Text+'月份是冬天,';end; case m of 1,3,5,7,8,10,12:Label3.Caption:=Label3.Caption+'共有31天,'; 4,6,9,11:Label3.Caption:=Label3.Caption+'共有30天,';else if((y mod 4 = 0)and(y mod 100 <> 0)or(y mod 400=0))then Label3.Caption:=Label3.Caption+'共有29天,' else Label3.Caption:=Label3.Caption+'共有28天,';end;end;end.9.120页11题求和的 procedure TForm1.Button1Click(Sender: TObject);var n,k,j:integer;s:int64;begin n:=strtoint(edit1.text);j:=0;s:=0; for k:=1 to n do begin j:=j+k;s:=s+j;end; panel2.Caption:=format('s = %d',[s]);edit1.setfocus;end; procedure TForm1.Edit1KeyPress(Sender: TObject;var Key: Char);var b:boolean;begin b:=(key<>#8)and(key<#48)or(key>#57); if b then key:=#0;end;end.10.120页12题男人,女人,小孩各有多少人 procedure TForm1.Button1Click(Sender: TObject);var x,y,z:integer;p:string;begin memo1.clear;for x:=0 to 16 do for y:=0 to 24 do begin z:=30-x-y; if 3*x+2*y+z/1=50 then begin p:=format('%3d %3d %3d',[x,y,z]); memo1.lines.add(p);end;end;end;end.11.98页2题求长方体的表面积 procedure TForm1.Button1Click(Sender: TObject);var s,l,k,h:double;begin l:=strtofloat(edit1.text);k:=strtofloat(edit2.text);h:=strtofloat(edit3.text);s:=2*l*k+2*k*h+2*l*h;label1.Caption:=floattostr(s);end;end.12.98页5题计算圆的面积和周长 procedure TForm1.Edit1KeyPress(Sender: TObject;var Key: Char);var r:real;b:boolean;begin b:=(key<>#8)and(key<>'.')and(key<>#13)and(key<#48)or(key>#57);if b then key:=#0;if key =#13 then begin if edit1.text='' then edit1.text:='0';r:=strtofloat(edit1.text);if radiobutton1.Checked then label1.Caption:=format('圆的面积为: %f',[pi*r*r]);if radiobutton2.Checked then label1.Caption:=format('圆的周长为: %f',[2*pi*r]);if radiobutton3.Checked then label1.Caption:=format('圆的面积为: %f'+chr(13)+ '周长为: %f',[pi*r*r,2*pi*r]);edit1.SelectAll;end;end;procedure TForm1.RadioButton1Click(Sender: TObject);var sender0:tobject;key:char;begin sender0:=edit1;key:=#13;form1.edit1keypress(sender0,key);end;procedure TForm1.RadioButton2Click(Sender: TObject);var sender0:tobject;key:char;begin sender0:=edit1;key:=#13;form1.edit1keypress(sender0,key);end;procedure TForm1.RadioButton3Click(Sender: TObject);var sender0:tobject;key:char;begin sender0:=edit1;key:=#13; form1.edit1keypress(sender0,key);end;end.13.98页6题统计奇数和偶数的个数 procedure TForm1.Button1Click(Sender: TObject);var k,j,n:word;begin k:=0; n:=combobox1.items.count;for j:=1to n do if strtoint(combobox1.items[j-1])mod 2 = 0 then k:=k+1; label1.caption:=format('共有: '+#13+'%d个偶数,'+#13+'%d个奇数。',[k,n-k]);end; procedure TForm1.Button2Click(Sender: TObject);begin combobox1.items.clear;end; procedure TForm1.ComboBox1KeyPress(Sender: TObject;var Key: Char);begin if(key =#13)and(combobox1.text<>'')then //按 combobox1.items.insert(0,combobox1.text); //按 combobox1.selstart:=0;combobox1.text:='';end; if key = #27 then if combobox1.itemindex<>-1 then combobox1.items.Delete(combobox1.itemindex);end;end.14.98页8题设置倒计时的时间,并进行倒计时 procedure TForm1.Timer1Timer(Sender: TObject);var m,n,s,h:integer;begin timer1.Tag:=timer1.Tag-1;m:=timer1.Tag;if m<0 then begin timer1.enabled:=false; showmessage('预定的时间到了!');edit1.Text:='0';end else begin s:=m; n:=s div 60;s:=s mod 60;h:=n div 60;n:=n mod 60; maskedit1.text:=format('%d:%d:%d',[h,n,s]); if n <> strtoint(edit1.text)then edit1.Text:=inttostr(n);end;end; procedure TForm1.Button1Click(Sender: TObject);begin timer1.enabled:=True; timer1.Tag:=strtoint(edit1.Text)*60;end;end. 1、li 300.0 chang 30 200.0 chang 2、#include char sid[100]; char name[100]; float score[3];}student;void main(){ int i;float j; printf(“nPlease input sid: ”); scanf(“%s”,student.sid); printf(“nPlease input name: ”); scanf(“%s”,student.name); printf(“nPlease input 3 score:(like1,1,1)”);/*输入逗号隔开*/ scanf(“%f,%f,%f”,&student.score[0],&student.score[1],&student.score[2]); printf(“nsid = %s”,student.sid); printf(“nname = %s”,student.name); j=(student.score[0]+student.score[1]+student.score[2])/3.0; printf(“naverage = %.2f”,j); getch();} 3、#include do { n++; printf(“nnPlease input %d student message: nn”,n); printf(“t%d student sid: ”,n); p1=(student *)malloc(F);p1->next=NULL; scanf(“%s”,p1->sid); printf(“nt%d student name: ”,n); scanf(“%s”,p1->name); printf(“nt%d student scores(englesh,math,c_language): ”,n); scanf(“%d,%d,%d”,&p1->score.english,&p1->score.math,&p1->score.c_language); p1->score.all=p1->score.english+p1->score.math+p1->score.c_language; if(n==1) { head->next=p1;p2=p1;} else { p2->next=p1; p2=p1; } printf(“nntttContinue or back(press y/n): ”); ch=getch(); }while(ch=='y'||ch=='Y');return head;} void average1(student *head){ student *p;int j;clrscr();p=head->next; while(p) { j=p->score.all/3; printf(“nnname: %staverage: %d”,p->name,j); p=p->next; } printf(“nnnPress eny key return.”);getch();} void average2(student *head){ student *p;int n=0,temp1=0,temp2=0,temp3=0;p=head->next;while(p){ temp1+=p->score.english; temp2+=p->score.math; temp3+=p->score.c_language; p=p->next;n++;} printf(“nnaverage english is : %dnaverage math is : %dnaverage c_language is : %dt”,temp1/n,temp2/n,temp3/n);} student *sort(student *head){ student *head1,*p,*q,*r;int temp1=0,temp2=0,temp3=0,temp4;char s[15],n[15];head1=head;for(p=head1->next;p->next!=NULL;p=p->next){ r=p; for(q=p->next;q;q=q->next) if(q->score.all>r->score.all) r=q; if(r!=p) { strcpy(s,p->sid);strcpy(n,p->name); temp1=p->score.english; temp2=p->score.math; temp3=p->score.c_language; temp4=p->score.all; strcpy(p->sid,r->sid);strcpy(p->name,r->name); p->score.english=r->score.english; p->score.math=r->score.math; p->score.c_language=r->score.c_language; p->score.all=r->score.all; strcpy(r->sid,s);strcpy(r->name,n); r->score.english=temp1; r->score.math=temp2; r->score.c_language=temp3; r->score.all=temp4; } } return head1;} void output(student *head){ student *head2,*p;int i=1;clrscr();head2=sort(head);for(p=head2->next;p!=NULL;p=p->next) printf(“nnname: %stsid: %stenglish: %dtmath: %dtc_language: %dtaverage: %dtmingci: %d”,p->name,p->sid,p->score.english,p->score.math,p->score.c_language,p->score.all/3,i++); average2(head); printf(“nnnttPress eny key back.”);getch();} void main(){ student *head,*p1,*p2;int i=0,j=1;head=input();do { clrscr(); printf(“nn(1): average1.nn(2): average2.nn(3): sort.nn(4): output.nnn Please choose: ”); scanf(“%d”,&i); switch(i) { case 1: average1(head);break; case 2: clrscr();average2(head);printf(“nnnPress eny key retuen.”);getch();break; case 3: clrscr();p1=sort(head);for(p2=p1->next;p2!=NULL;p2=p2->next)printf(“nttname: %stmingci:%d”,p2->name,j++);printf(“nnnPress eny key back.”);getch();break; case 4: output(head);break; default: printf(“nYour choose is not right.”);break; } }while(i!=-1);} 4、#include p=(worker *)malloc(F);p->next=0; printf(“nntPlease input %d worker message : ”,n); printf(“n%d worker sid: ”,n);scanf(“%s”,p->sid); printf(“n%d worker name: ”,n);scanf(“%s”,p->name); printf(“n%d worker money: ”,n);scanf(“%d”,&p->money); if(n==1) { head->next=p;q=p; max=p->money;strcpy(a,p->name); min=p->money;strcpy(b,p->name); } else { q->next=p; if(p->money>max){max=p->money;strcpy(a,p->name);} if(p->money q=p; } printf(“ntty/n”);ch=getch();}while(ch=='y'||ch=='Y');return head;} void output(){ clrscr();printf(“nThe max money is: %dttname is: %snn”,max,a);printf(“nThe min money is: %dttname is: %s”,min,b);} void main(){ input();output();getch();} 5、6、#include“stdio.h” #define F sizeof(stu)#define NULL 0 typedef struct student { int sid;int average;struct student *next;}stu;stu *head;stu *create(){ stu *p1,*p2;int n=0;char ch;head=(stu *)malloc(F);head->next=NULL; do { n++; printf(“nnPlease input %d student message: nn”,n); printf(“t%d student sid: ”,n); p1=(stu *)malloc(F);p1->next=NULL; scanf(“%d”,&p1->sid); printf(“nt%d student average: ”,n); scanf(“%d”,&p1->average); if(n==1) { head->next=p1;p2=p1;} else { p2->next=p1; p2=p1; } printf(“nntttContinue or back(press y/n): ch=getch(); }while(ch=='y'||ch=='Y');return head;} stu *select(stu *head,int x){ stu *s;s=head->next;while(s){ if(s->sid==x) break; s=s->next;} return s;} stu *insert(stu *head,int x,int y){ stu *p,*r,*q;clrscr();p=head->next;r=(stu *)malloc(sizeof(stu));r->sid=x;r->average=y;if(p==NULL)/*如果插入空表*/ { p=r; r->next=NULL; ”); printf(“ninsert success!”); } else { while(x>p->sid)/*找到插入的位置,按学号大小。(找到位置或者到了表尾都会跳出循环)*/ { if(p->next==NULL)break;p=p->next; } if(x sid) /*插到中间位置*/ { r->sid=p->sid; r->average=p->average; p->sid=x; p->average=y; r->next=p->next; p->next=r; printf(“ninsert success!”); } else if(x==p->sid)/*学号不能相同*/ printf(“nError--->your input this same sid.”); else /*插到末尾*/ { p->next=r; r->next=NULL; printf(“ninsert success!”); } } return head;} stu *get(stu *head,int n)/*得到位置为n的结点的指针*/ { stu *p;int i;p=head->next;if(n==0)return head;else { for(i=1;i p=p->next; return p;} } stu *delete(stu *head,int sid){ stu *p,*q;int temp=0,i=0;p=head->next;if(!p) { printf(“nlist is empty.press eny key back.”);getch();return head;}/*表空*/ else { while(p) /*查找学号为sid的结点的指针*/ {i++;/*标记学号为sid的结点的位置*/ if(p->sid==sid) {temp=1;break;} /*temp=1标记找到了*/ p=p->next;} if(temp==1)/*如果有学号为sid的结点*/ { q=get(head,i-1);/*得到sid的前一个结点的指针*/ q->next=p->next; free(p); printf(“nndelete sucess!!”); return head; } else /*没有找到*/ { printf(“nnNO this data.n”); return head; } } } void print(stu *head){ stu *p;p=head->next;if(!p){printf(“nlist is empty.press eny key back.”);getch();} while(p){ printf(“n%d :t%d ”,p->sid,p->average); p=p->next;} } main(){ stu *p1,*p2;char ch1;int n,i=0,j=0;head=create();do {clrscr();printf(“n1.insert.”);printf(“n2.select.”);printf(“n3.delect.”);printf(“n4.print list.”);printf(“n5.EXIT ”);printf(“n ............choice(1-5).............”);ch1=getch();switch(ch1){ case '1': { clrscr(); printf(“nplease input insert sid.and average(like 1,1):”); scanf(“%d,%d”,&i,&j); head=insert(head,i,j); printf(“nnnPress eny key back.”);getch(); break; } case '2': { clrscr(); printf(“ninput you want to selete sid: ”); scanf(“%d”,&n); p1=select(head,n); { if(p1)printf(“nsid:%dtaverage:%d”,p1->sid,p1->average); else printf(“nNo this data.”); } printf(“nnnPress eny key back.”);getch(); break; } case '3': { clrscr();printf(“nPlease input you want delete sid: ”); scanf(“%d”,&n); head=delete(head,n); printf(“nnnPress eny key back.”);getch(); break; } case '4': { clrscr(); printf(“All information :”); print(head); printf(“nnnPress eny key back.”);getch(); break; } case '5': return; default: printf(“nnYour enter is not right.press eny key back.”);getch();} }while(n);} 7、#include char data; struct list *next;}L;L *set_list(){ L *head,*p1,*p2; char c; int n=0; head=(L *)malloc(F);head->next=0; /*建立链表*/ p1=p2=head; printf(“nPlease input char(press * finish):”); scanf(“%c”,&c); while(c!='*') { n++; if(n==1) p1->data=c; else { p1=(L *)malloc(F); p1->data=c; p2->next = p1; p2 = p1; p1->next = 0; } scanf(“%c”,&c); } p1=head; while(p1) { printf(“%c ”,p1->data);p1=p1->next; } printf(“nnn”); return head;} void change_list(L *head1) /*算法:p2指向最后一个元素,p1指向第一个元素。交换他们的值,p1,p2同时往中间靠拢。*/ { L *p1,*p2,*p3; int i,j,k,n=1; char temp; p1=head1;p2=head1;p3=head1; while(p3->next) { p3=p3->next;n++; }/*求链长*/ for(i=n;i>(n/2);i--)/*外循环使p1后移,p2前移。*/ { p2=head1;for(j=1;j p2=p2->next;/*p2指向最后一个元素*/ temp=p1->data;p1->data=p2->data;p2->data=temp;/*交换他们的值*/ p1=p1->next;/*p1向后移*/ } while(head1) { printf(“%c ”,head1->data);head1=head1->next;} } void main(){ L *head;head=set_list();change_list(head);getch();} 第1章:习题集: 填空题 1.多态2.java.exe 3.jdb.exe 4.标准字节码5.Java 6.独立于平台 二、选择题 1.B 2.A 3.B 4.A 5.A 6.C 7.C 8.D 9.C 第2章: 参考答案: 实验指导: 2.5.1. 第一处需要的代码:yourGuess>realNumber 第二处需要的代码:yourGuess=input.nextInt();第三处需要的代码:yourGuess iArray[i] = iArray[j];iArray[j] = iTemp;2.5.2. 第一处需要的代码:iArray[i] < iArray[j] 2.5.3. 第一处需要的代码:continue lable;第二处需要的代码:System.out.print(“ ”+(i+j));第二处需要的代码:System.out.print(j + “*” + i + “=” +(i*j)+ “t”);2.5.4. 第一处需要的代码:System.out.print(“t”);习题集: 一、填空题 1.i=i+1 sum=sum+1 i<100 2.while do while for 3.9 4. The symbol is an a.The symbol is a b.The symbol is c.The symbol is not a,b,or c.Switch is completed 5.sum=0 pos++ 二、选择题 1.D 2.A 3.D 4.A 5.D 6.A 7.B 三、简答题 2、there is no this value 3.Message four i is 1,2,3 i is 1,2,3 i is 1,2,3 i is 4 第3章 参考答案: 实验指导: 3.10.1. 第一处需要的代码:balance+=saveAccount; 第二处需要的代码:balance+=calculateInterst(Days);第三处需要的代码:ba.setMoney(save_value);第四处需要的代码:ba.accountInterst(365); 8.B 9.C ba.setInterstRate(interst_rate);3.10.2. 第一处需要的代码:minute=this.m_Minute;second=this.m_Second;第二处需要的代码:s=d.getMinutes()+“:”+d.getSeconds()+“:”+d.getTime();3.10.3. 第一处需要的代码:super(number,pass);balance=bal;第二处需要的代码:connect 3.10.4. 第一处需要的代码:super(pass, motor);this.make=make;this.model=model;第二处需要的代码:am.run();习题集: 一、填空题 1.类2.代码和数据3.点4.实例变量5.Test te=new Test();6.对象实例化7.值、引用 8.the original is data is:-1 now the data is:10 9.I am parent I am child I am child 二、选择题 1.B 2.A 3.C 4.C 三、简答题 6. A abstract和final修饰符不能同时使用 B 未给出类型定义,final int MAX_NUMBER=10;C 常量不能修改 D 静态方法值能访问静态变量,static int data。或者把方法标志为非静态方法,int getData()E 构造方法无返回值,把void去掉 F 抽象类不能进行实例化,把abstract去掉 G 子类不能继承父类的私有成员,应把Parent类中的mine属性的private修饰符去掉。H 父类对象不能与之类形式参数结合,可以颠倒过来。如下代码所示: class Parent { } class Child extends Parent{ } class UseChild{ } public static void main(String[] args){ Child c=new Child();System.out.println(UseChild.getMine(c));static int getMine(Parent p){ } return(p.mine);int mine;int mine; 5.A 6.A 7.C 8.A 9.D 10.C 11.A 12.C 13.C } 第4章 实验指导 4.5.1. 第一处需要的代码:public void print(){System.out.println(“hello”);}yourGuess>realNumber 第二处需要的代码:Hello h = new Hello();h.print();第二处需要的代码:public void start(){ System.out.println(“Du du...”);} 4.5.2. 第一处需要的代码:public void stop(){ System.out.println(“Network stop!”);} 第三处需要的代码:SoundCard sc=new SoundCard();mb.usePCICard(sc);4.5.3. 第一处需要的代码:this.userAccount = acc;this.userPassword = pass;第二处需要的代码:public void show(){ System.out.println(resultMessage);} 第三处需要的代码:user.connect();user.show();填空题 1.javac –d.Test.java 2.package 3.public 4. package com.my.test;public void inPut(){System.out.println(“n hi,keybroad has be input into then mainbroad!n”);} public void inPut(){System.out.println(“n hi,netCardBroad has be input into then mainbroad!n”);} publicvoid getMainMessage(Extendbroadable ext){ext.inPut();} 5.Constants.MAX_COUNT 6.interface B extends A{ public void printB();} 11.D 12.A 选择题 1.C 2.D 3.B 4.C 5.B 6.C 7.C 8.B 9.D 10.D 简答 (1) 1、接口是类似于类的结构,它只包含常量和抽象方法。在某些情况下,接口类似于抽象类,但是抽象类能够包含常量和抽象方法,还能够包含变量和具体方法。(2) 1、在接口中,数据可以是常量;而抽象类可以有数据字段。 2、在接口中方法只有无实现的签名,而抽象类可以有具体的方法。 3、因为定义在接口中的所有方法都是抽象方法,Java不要求将抽象修饰符放在4、接口中的方法签名中,但是在抽象类中要将抽象修饰符放在抽象方法之前。(3) 1、可以更好的组织类。 2、减少类名的冲突问题,同一包中的类名不能重复,不同包中的类名可以重复; 3、对包中的类起了一定的保护作用; (4) 1、直接引用指定的类,如import java.util.Vector; 2、引用一个包中的多个类,如import java.awt.*。更确切的说,它并不是引用java.awt中的所有类,而只引用定义为public的类,并且只引用被代码引用的类,所以这种引用方法并不会降低程序的性能; 3、*号代替类名,在不能代替包名,如import java.awt.*,只引用java.awt下的类,而不引用java.awt下的包; 4、import java.awt.F*,这种使用方法是错误的; 5、import语句在所有类定义之前,在package定义之后; 6、import只告诉编译器及解释器哪里可以找到类、变量、方法的定义,而并没有将这些定义引入代码中; 第5章 参考答案: 实验指导: 5.6.1. 第一处需要填写的代码:i 1.equalsIgnoreCase 2.Hello I like Java!3.char值4.java.util.Date 5.HELLO!6.False 7.a#a#a## 8.xyz345 9.int len=str.length(); 二、选择题 1.B 2.A 3.A 4.B 5.D 6.A 7.B 8.D 三、简答题 1. 字符串的容量是:28 用过setLength(200)后 字符串的长度是:200 使用了charAt(2):w 2. 中国: The Money is: ¥30,215.00 The Number is: 121.66667 3.good and gbc 4.strawberry plum persimmon pear peach peach orange grape fig banana apple 第6章 实验指导 6.4.1. 第一处需要的代码:number1 = Integer.parseInt(firstNumber);number2= Integer.parseInt(secondNumber);yourGuess>realNumber 第二处需要的代码:NumberFormatException ex 6.4.2. 第一处需要的代码:catch(IOException e){System.out.println(“catch ”+e.toString());} 第二处需要的代码:catch(NumberFormatException e){System.out.println(“catch ”+e.toString());} 填空题: 1.Welcome to java The finally clause is executed 2.Welcome to java The finally clause is executed 3.catch(NumberFormatException e){} 4.仍然执行 c>='A'&&c<='Z' i++; sum++;10.i=0;i int temp=str.charAt(i);5.ArithmeticException 6.IOException 7.数据转换错误异常 8.statement1,statement2 二、选择题 1.C 2.B 3.C 4.D 5.C 6.B 7.C 第7章 实验指导: 7.7.1. 第一处需要填写的代码:panel.setVisible(true);第二处需要填写的代码:group.add(radioButton1); group.add(radioButton2);第三处需要填写的代码:mainPanel.add(panel);7.7.2. 第一处需要填写的代码:commentTabPane = new JTabbedPane();第二处需要填写的代码:tabAddComponent.add(nameLabel);第三处需要填写的代码:queryCom();7.7.3. 第一处需要填写的代码:System.exit(0);第二处需要填写的代码:new Counter();7.7.4. 第一处需要填写的代码:setVisible(true);第二处需要填写的代码:frame.getContentPane().add(new JTextArea());习题集: 填空题 1.btn[i]=new JButton(strname[i]);BorderLayout.EAST、BorderLayout.WEST、BorderLayout.SOUTH、BorderLayout.NORTH、BorderLayout.CENTER 2.frame.setContentPane(new CalculatorPanel().createPane());int y = 0;y < 4;y++、button = new JButton(lables[y][x]);3.frame.getContentPane().add(new TreePanel().createComponent());node01.add(node0102);int i = 0;i < names.length;i++、panel.add(new JLabel(names[i]));4.jframe.setVisible(true);Container contentpane=jframe.getContentPane();text.append(s);5.Container contentPanel = frame.getContentPane();frame.setVisible(true);add(part2());panel.setVisible(true);6.Panel pan=new Panel(); 二、选择题 1.D 2.A 3.B 4.B 5.A 6.D 7.C 第8章 实验指导: 8.6.1. 第一处需要的代码:contentPane.addMouseListener(this);contentPane.addMouseMotionListener(this); 第二处需要的代码:g.drawLine(startx,starty,endx,endy);第二处需要的代码:(e.getActionCommand()).equals(“按我有声音喔”)第二处需要的代码:e.getSource()==tree 第二处需要的代码:x=Double.parseDouble(tf1.getText().trim());8.6.2. 第一处需要的代码:Container contentPane = f.getContentPane();8.6.3. 第一处需要的代码:treeModel.insertNodeInto(leafnode,node1,node1.getChildCount());8.6.4. 第一处需要的代码:b0.addActionListener(new Bt());习题集: 一、填空题 1.程序符号 2.授权事件模型 3.actionPerformed(ActionEvent e),itemStateChanged(ItemEvent e)4.事件适配器 5.new WindowAdapter(),System.exit(0); 二、选择题 1.D 2.C 3.D 4.B 5.A 第9章 参考答案: 实验指导: 9.4.1. 第一处需要填写的代码:g_2d.setStroke(bs);g_2d.setColor(Color.yellow);g_2d.draw(hourLine);第二处需要填写的代码:secondLine.setLine(120,120,(int)pointSX[a],(int)pointSY[a]);9.4.2. 第一处需要填写的代码:signal.setRed(0);signal.setYellow(1);第二处需要填写的代码:g.setColor(Color.green);习题集: 填空题: 1.Drawstring 2.add(p1)3.toString(i)4.public void paint(Graphics g){ 5.int count=1;count 1.A 2.B 3.B 4.B 第10章 实验指导: 10.6.1. 第一处需要填写的代码:tempStr=bufReader.readLine();第二处需要填写的代码:s*=i;10.6.2. 第一处需要填写的代码:filePrex == null 第二处需要填写的代码:int j = 0;j < children.length;j++ 10.6.3. 第一处需要填写的代码:inStream,outStream 第二处需要填写的代码:copyBut,0,copyLen 10.6.4. 第一处需要填写的代码:tempStr=inObj.readLine();习题集: 一、填空题: 1.Hello!I like Java!2.110 110 110 110 110 3.InputStreamReader 4.HelloWorld!5.year%4==0&&year%100!=0||year%400==0 6.String s=“information to Appendn mon!n”; 二、选择题: 1.D 2.A 3.A 4.B 5.D 6.B 7.B 8.D BufferedReader readLine()第11章 参考答案: 实验指导: 11.6.1.第一处需要填写的代码:Class.forName(DBDRIVER);conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);第二处需要填写的代码:conn = getConnection();stmt = conn.createStatement();第三处需要填写的代码:stmt.executeUpdate(“insert into t_test values('ew','dgf','dfg');”); stmt.executeUpdate(“insert stmt.executeUpdate(”insert into into t_test t_test values('dg','df','fdg');“); values('dfg','dfg','dfg');”);stmt.executeUpdate(“insert into t_test values('gdf','df','df');”);第四处需要填写的代码:stmt.executeUpdate(“delete from t_test;”);11.6.2.第一处需要填写的代码:pstmt=conn.prepareStatement(“insert into t_grade values(?,?,?);”);pstmt.setString(1,name);pstmt.setString(2,course);pstmt.setString(3,grade);pstmt.execute();第二处需要填写的代码:rs = stmt.executeQuery(“select * from t_grade”); while(rs.next()){System.out.print(“姓名:”+rs.getString(“name”)); System.out.print(“ 课程:”+rs.getString(“course”));System.out.println(“ 成绩:”+rs.getString(“grade”));} conn.close();stmt.close();rs.close();} } 第三处需要填写的代码:try{ catch(SQLException e){ e.printStackTrace();11.6.3.第一处需要填写的代码:conn = getConnection();stmt = conn.createStatement();stmt.executeUpdate(“delete from t_grade where name = '”+name+“'”);第二处需要填写的代码:pstmt = conn.prepareStatement(“update t_grade set course = ?,grade=? where name = '”+name+“'”);pstmt.setString(1,course);pstmt.setString(2,grade);pstmt.execute();习题集: 一、填空题: 1.建立与数据库的连接、处理结果集 2.executeUpdate 3.CallableStatement 4.conn.createStatement();、rs.next();5.conn.createStatement(ResultSet.Type_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE):、rs.updateRow(); 二、选择题: 1.B 2.A 3.B 4.B 5.C 6.A 7.A 8.C第二篇:C语言程序设计教程课后习题答案
第三篇:完整的delphi程序设计教程课后习题答案
第四篇:C语言程序设计教程第九章习题答案
第五篇:《Java6程序设计实践》教程课后答案_清华大学出版社