XML程序设计习题解答 耿祥义 张跃平 编著

合集下载

XML程序设计习题解答__耿祥义__张跃平_编著

XML程序设计习题解答__耿祥义__张跃平_编著

XML程序设计课后习题习题一1.答:HTML是用来编写Web页的语言、不允许用户自定义标记,HTML体现数据的显示格式。

XML描述数据的组织结构、可自定义标记,其标记名称是对标记所包含的数据内容含义的抽象,而不是数据的显示格式。

2.答:使用UTF-8保存5.答:(1)不可以,(2)可以,(3)不可以6.答:Show.css:time{ display:block;font-size:18pt;font-weight:bold}hour{ display:line;font-size:16pt;font-style:italic}mimute{ display:line;font-size:9pt;font-weight:bold}习题二1.答:(1)使用ANSI编码。

(2)可以。

(3)不合理。

2.答:不相同。

3.答:(1)和(2)。

4.答:A3.xml。

5.答:“root”标记包含的文本内容都是空白字符。

“a1”标记包含的文本内容:<CCTV5>。

“a2”标记包含的文本内容:子曰"有朋自远方来,不亦乐乎"。

6.答:解析器不对CDATA段的内容做分析处理,CDATA段中的内容可以包含任意的字符。

(1)和(5)是正确的CDATA段。

(2)不正确,原因是CDATA段的开始标识中有回行,(3)不正确,原因是:CDATA段的结束标识不正确,(4)不正确,原因是CDATA段中嵌套了另一个CDATA段。

7.答:<p1:开关> 我也是中国制造的</p1:开关>是错误的,因为p1的有效范围是在“电视机”标记中。

8.答:标记:" root "未隶属任何名称空间标记:" 电视机"隶书的名称空间:标记:" 显示器"隶书的名称空间:标记:" 开关"隶书的名称空间:标记:" 电线"隶书的名称空间:习题三1.答:一个规范的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的约束条件,就称之为有效的XML文件。

java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社解析

java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社解析
7.15.0
8.0
8.98.0
12
9.
class A
{ public final void f()
{ char cStart='a',cEnd='z';
for(char c=cStart;c<=cEnd;c++)
{ System.out.print(" "+c);
}
}
}
class B extends A
习题
1.用该类创建对象时。
2.所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。
3.可以。不可以。
4.不可以。
5.成员变量又分为实例变量和类变量,用static修饰的变量是类变量。那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。
{ A a=new A();
B b=new B();
System.out.println("最大公约数:"+a.f(36,24));
System.out.println("最小公倍数:"+b.f(36,24));
}
}
习题
1.仍然有效。
2.可以。
3.不可以。
4.大家好,祝工作顺利!
5.96
乘数超过99
System.out.println("\""+ch3+"\"的位置:"+(int)ch3);

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义张跃平编著(3版)习题解答1-17章完整版.doc第一章习题1.需3个步骤:1)用文本编辑器编写源文件2)使用javac编译源文件,得到字节码文件3)应用程序使用解释器运行;小应用程序使用浏览器运行。

2.应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。

小应用程序必须有一个类是java.applet.Applet类的子类,该类称做主类。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

小应用程序的主类必须用public修饰。

3.java的源程序是由若干个书写形式互相独立的类组成的。

小应用程序的主类必须用public修饰。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

一个java的源程序至多可以有一个public类。

Java源文件的名字可以和其中某个类的名字相同,扩展名是.java,但是,如果源程序中有public类,那么源文件的名字必须和这个public类的名字相同,扩展名是.java。

4.属于操作,解答略。

第二章习题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。

标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。

3.boolean ,char,byte,short,int,long,float,double。

4.b=x;5.数组b的长度为4b[0]=16.属于操作题,解答略。

7.属于操作题,解答略。

8.public class E{ public static void main (String args[ ]) { char cStart='α',cEnd='ω';for(char c=cStart;c<=cEnd;c++){ System.out.print(" "+c);}}}第三章习题1.你爱她2.beep!!3.public class Xiti3_3{ public static void main(String args[]){ double sum=0,a=1;int i=1;while(i<=20){ sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}4.public class Xiti4{ public static void main(String args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break;}if(i>j/2){ System.out.print(" "+j);}}}}5.class Xiti5{ public static void main(String args[]){ double sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while(i<=20);System.out.println("使用do-while循环计算的sum="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的sum="+sum);}}6.class Xiti6{ public static void main(String args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}7.public class E Xiti7{ public static void main(String args[]){ int m=8,item=m,i=1;long sum=0;while(i<=10){ sum=sum+item;i++;item=item*10+m;}System.out.println(sum);for(i=1,sum=0,item=m;i<=10;i++){ sum=sum+item;item=item*10+m;}System.out.println(sum);}}8.public class E{ public static void main(String args[]){ int n=1;long sum=0;while(true){ sum=sum+n;n++;if(sum>=8888)break;}System.out.println("满足条件的最大整数:"+(n-1));}}第四章习题1.用该类创建对象时。

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)上机实践1 初识JA V A (4)实验1一个简单的应用程序 (4)实验2一个简单的J A V A A PPLET程序 (4)实验3联合编译 (5)上机实践2 基本数据类型与控制语句 (6)实验1输出希腊字母表 (6)实验2回文数 (7)实验3猜数字游戏 (9)上机实践3 类与对象 (10)实验1三角形、梯形和圆形的类封装 (10)实验2实例成员与类成员 (13)实验3使用PACKAGE语句与IMPORT语句 (15)上机实践4 继承与接口 (17)实验1继承 (17)实验2上转型对象 (20)实验3接口回调 (22)上机实践5 字符串、时间与数字 (24)实验1S TRING类的常用方法 (24)实验2比较日期的大小 (25)实验3处理大整数 (26)上机实践6 组件及事件处理 (27)实验1算术测试 (27)实验2信号灯 (30)实验3布局与日历 (32)上机实践7 组件及事件处理2 (36)实验1方程求根 (36)实验2字体对话框 (39)实验3英语单词拼写训练 (42)上机实践8 多线程 (46)实验1汉字打字练习 (46)实验2旋转的行星 (48)实验3双线程接力 (52)上机实践9 输入输出流 (55)实验1学读汉字 (55)实验2统计英文单词字 (58)实验2读取Z IP文件 (62)上机实践10 JAV A 中的网络编程 (63)实验1读取服务器端文件 (63)实验2使用套接字读取服务器端对象 (65)实验3基于UDP的图像传输 (68)上机实践11 数据结构 (72)实验1扫雷小游戏 (72)实验2排序与查找 (77)实验3使用T REE S ET排序 (78)上机实践12 JAV A SWING (80)实验1JL AYERED P ANE分层窗格 (80)实验2使用表格显示日历 (81)实验3多文档界面(MDI) (84)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。

大学_《Java面向对象程序设计》(耿祥义张跃平著) 课后答案下载

大学_《Java面向对象程序设计》(耿祥义张跃平著) 课后答案下载

《Java面向对象程序设计》(耿祥义张跃平著) 课后答案下载《Java面向对象程序设计》(耿祥义张跃平著) 课后答案预览Java语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为强大的编程语言。

Java已成为网络时代最重要的语言之一。

本书注重结合实例以及重要的设计模式,循序渐进地向读者介绍了Java面向对象编程的重要知识。

针对较难理解的问题,所列举例子都是由简到繁,便于读者掌握Java面向对象编程的思想。

全书分为l7章,分别讲解了基本数据类型、枚举和数组、运算符、表达式和语句、类、对象和接口、面向对象的几个基本原则、重要的设计模式、常用实用类、JavaSwin9图形用户界面、对话框、Java输入输出流、泛型与集合框架、BC数据库操作、Java多线程机制、Java网络基础以及JavaApplet等内容。

《Java面向对象程序设计》(耿祥义张跃平著)内容提要第1章Java入门1.1 Java的地位1.1.1 网络地位1.1.2语言地位1.1.3需求地位-1.2 Java的特点1.2.1简单1.2.2面向对象1.2.3与平台无关1.2.4多线程1.2.5安全1.2.6 动态1.3安装K1.3.1 3种平台简介1.3.2安装Java SE平台1.4 Java程序的开发步骤1.5简单的Java应用程序1.5.1源文件的编写与保存1.5.2编译1.5.3 运行1.6 Java应用程序的基本结构 1.7注释1.8编程风格1.8.1 Allmans风格1.8.2 Kernighan风格1.9 Java之父——James Goslin91.10小结习题l第2章基本类型、数组和枚举类型2.1标识符和关键字《Java面向对象程序设计》(耿祥义张跃平著)目录1.James Gosling2.(1)使用一个文本编辑器编写源文件。

(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。

JAVA2实用教程(第4版)答案 耿祥义 张跃平

JAVA2实用教程(第4版)答案 耿祥义 张跃平

1.属于操作题,解答略。 2.属于操作题,解答略。 3.属于操作题,解答略。 4.【代码 1】:4。【代码 2】:b[0]=1。 5.【代码 1】:40。【代码 2】:7 四、编写程序 1. public class E {
public static void main(String args[]) { System.out.println((int)'你'); System.out.println((int)'我'); System.out.println((int)'他');
}
习题五(第 5 章)
一、问答题 1.不可以。 2.是。 3.不继承。 4.声明与父类同名的成员变量。 5.子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重 写的方法的名字、参数个数、参数的类型和父类的方法完全相同。重写方法的目的是隐藏
继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。 6.不可以。 7.Abstract 类。 8.上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。上转型对象可 以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或子类重写的实例方法。 9.通过重写方法。 10.面向抽象编程目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地 交给抽象类的一个子类类去负责,从而让该类的设计者不去关心具体实现。 二、选择题 1.C。2.D。3.CD。4.D。5.B。6.B。7.D。8.B。9.A。
} }
习题四(第 4 章)
一、问答题 1. 封装、继承和多态。 2.当类名由几个单词复合而成时,每个单词的首字母使用大写。
3.名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第 2 个单词开 始的其它单词的首字母使用大写。 4.属性 5.行为 6.用类创建对象时。没有类型 7.用类创建对象时。 8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参 数的个数不同,或者是参数的类型不同。可以。 9.可以。不可以。 10.不可以。 11.一个类通过使用 new 运算符可以创建多个不同的对象,不同的对象的实例变量将被分 配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。 12.代表调用当前方法的对象。不可以。 二、选择题 1.B。2.D。3.D。4.D。5.CD。6.【代码 1】【代码 4】。7.【代码 4】。

java面向对象程序设计课后习题答案耿祥义张跃平主编清华大学出版社之欧阳学创编

习题解答习题11.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。

2)使用javac编译源文件,得到字节码文件。

3)使用解释器运行程序。

3.由类构成。

不是必须的。

4. path=D:\jdk\bin;set classpath=D:\jdk\jre\lib\rt.jar;.;5. B6. Java源文件的扩展名是.java,Java字节码的扩展名是.class。

7.D。

8. A:Speak.java。

B:两个字节码文件,Speak.class和Xiti8.class。

C:java Xiti8。

D:执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you(4)9.属于操作题,解答略。

习题21. D2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。

对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。

4.public class Xiti4{public static void main (String args[ ]){char ch1='你',ch2='我',ch3='他';System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); }}5.数组名字.length6.数组名字.length7.【代码1】A,65【代码2】127【代码3】 123456.783,123456.783128.【代码1】false【代码2】true【代码3】false【代码4】3【代码5】4.4【代码6】8.8习题31.输出110ifelse语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。

JSP程序设计习题答案(张跃平、耿祥义)

习题一:1.答:确保Tomcat服务器使用的是Java_home环境变量设置的JDK。

2.答:属于操作题,解答略。

3.答:Web服务目录的下的目录称为该Web服务目录下的相对Web服务目录。

浏览器的地址栏中键入:http://IP:8080/Web目录名字/子目录名字/JSP页面。

4.答:修改Tomcat服务器安装目录中conf文件夹中的主配置文件:server.xml,只要没有其他应用程序正在占用80,就可以将端口号设置为80。

习题二1.答:“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!、%>所在的位置无关。

所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。

“<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。

运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。

当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。

2.答:两次。

3.答:第一个问题的答案是允许;第二个问题的答案是不允许。

4.答:第一个用户看到的sum的值是610,第二个用户看到的sum的值是12105.答:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><%for(char c='A';c<='Z';c++){out.print(" "+c);}%></BODY></HTML>6.答:include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件,即JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。

jsp大学实用教程第二版课后答案

jsp大学实用教程第二版课后答案【篇一:jsp 实用教程(第二版)程序源代码】class=txt>清华大学出版社(耿祥义张跃平编著)程序源代码建议使用文档结构图浏览使用word菜单→视图→文档结构图)(选择摘要jsp是一种动态网页技术标准,利用这一技术可以建立安全、跨平台的先进动态网站。

本书是一本实用教程,配备了大量的例题,叙述详细,通俗易懂,便于自学,特别注重结合实例讲解一些难点和关键技术。

全书共分10章,内容包括jsp简介、jsp语法、内置对象、jsp与javabean、文件操作、数据库操作、javaservlet、mvc设计模式、jsp中使用xml等重要内容。

本书所有知识都结合具体实例进行介绍.力求详略得当,突出jsp在开发web动态网站方面的强大功能,使读者快速掌握和运用jsp的编程技巧。

本书不仅可以作为大学计算机及相关专业的选修课教材,也适合自学者及网站开发人员参考使用。

前言本书是《jsp实用教程》的第二版,继续保留原教材的特点——注重教材的可读性和实用性,许多例题都经过精心的考虑,即能帮助理解知识,同时又具有启发性。

在第二版中增加了xml和mvc模式在web设计中的应用,对全书章节的先后顺序和部分例题的内容做了调整。

第1章介绍jsp重要性,对tomcat服务器的安装与配置给予了详细介绍。

第2章讲解jsp页面的基本构成、常用的jsp标记。

第3章讲解内置对象,特别强调了这些内置对象在jsp应用开发中的重要性,结合实例使读者掌握内置对象的用法。

第4章是jsp技术中很重要的内容,即怎样使用javabean分离数据的显示和处理,这一章讲解了许多有一定应用价值的例子。

第5章主要讲解怎样使用java中的输入输出流实现文件的读写操作,在实例上特别强调怎样使用javabean实现文件的读写操作。

第6章涉及的内容是数据库,也是web应用开发的非常重要的一部分内容,特别介绍了各种数据库的连接方式。

第7章讲解javaservlet,对servlet对象的运行原理给予了细致的讲解,许多例子都是大多数web开发中经常使用的模块。

XML基础复习习题

一、选择题1.XML采用以下哪种数据组织结构?( C )A星状结构 B 线状结构C树状结构D网状结构2.下列关于XML文档中根元素的说法不正确的是( D )A每一个结构完整的XML文档中有且只有一个根元素B 根元素完全包括了文档中其他所有元素C 根元素的起始标记要放在其他所有元素的起始标记之前,而根元素的结束标记要放在其他所有元素的结束标记之后D 根元素不能包含属性节点3.下面哪个公司或组织制定了XML:( C )A ISOB OracleC W3CD Micrsoft4.以下哪个是规范的XML元素:( D )A -booklistB 3classC Book CaseD book-info5.对于一个XML文档,以下哪个名称是错误的?(C)A<Note> B <h1> C <1dollar> D 以上三个都不正确6.<?xml version="1.0"?><!--例子--><greeting>Hello, World!</greeting>上面的XML文档属于(C)文档。

A无效的 B 有效的 C 格式良好的 D 格式错误的7.以下的xml文档片段中,属性符合XML语法规则的是(A)。

A<car name=”zhang’s car”> B <car name=’zhang’s car’>C <car name=’jieda car ”>D <car name=jieda >8.>、<、&等在XML文档中被赋予了特殊的意义,所以在XML文档中不能直接包含这些字符,而是对这些字符采用了特殊编码,< 对应的特殊编码是:(B)A&amp; B &lt; C &lgt; D &quto;9.在DTD声明中使用下列哪个符号可以允许元素不出现或者只出现一次?(A)A? B * C | D +10.在一个DTD元素中定义了一个元素“学员”为<!ELEMENT 学员(#PCDA TA)>,那么如下的XML实例片段中合法的是(A)A<学员>张三</学员> B <学员><姓名>张三</姓名></学员>C </学员>D <学员>一班<姓名>张三</姓名>同学</学员>11.分析以下在DTD文档:<!ELEMENT doc(title?,chap*)> (*零次或多次)(?零次或一次)(+ 一次或多次)<! ELEMENT title(#PCDA TA)><! ELEMENT chap(sect+)><! ELEMENT sect(para+)><! ELEMENT para(#PCDA TA)>下面的XML实例(C)能够通过DTD的校验。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XML程序设计课后习题习题一1.答:HTML是用来编写Web页的语言、不允许用户自定义标记,HTML体现数据的显示格式。

XML描述数据的组织结构、可自定义标记,其标记名称是对标记所包含的数据内容含义的抽象,而不是数据的显示格式。

2.答:使用UTF-8保存5.答:(1)不可以,(2)可以,(3)不可以6.答:Show.css:time{ display:block;font-size:18pt;font-weight:bold}hour{ display:line;font-size:16pt;font-style:italic}mimute{ display:line;font-size:9pt;font-weight:bold}习题二1.答:(1)使用ANSI编码。

(2)可以。

(3)不合理。

2.答:不相同。

3.答:(1)和(2)。

4.答:A3.xml。

5.答:“root”标记包含的文本内容都是空白字符。

“a1”标记包含的文本内容:<CCTV5>。

“a2”标记包含的文本内容:子曰"有朋自远方来,不亦乐乎"。

6.答:解析器不对CDATA段的内容做分析处理,CDATA段中的内容可以包含任意的字符。

(1)和(5)是正确的CDATA段。

(2)不正确,原因是CDATA段的开始标识中有回行,(3)不正确,原因是:CDATA段的结束标识不正确,(4)不正确,原因是CDATA段中嵌套了另一个CDATA段。

7.答:<p1:开关> 我也是中国制造的</p1:开关>是错误的,因为p1的有效范围是在“电视机”标记中。

8.答:标记:" root "未隶属任何名称空间标记:" 电视机"隶书的名称空间:标记:" 显示器"隶书的名称空间:标记:" 开关"隶书的名称空间:标记:" 电线"隶书的名称空间:习题三1.答:一个规范的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的约束条件,就称之为有效的XML文件。

2.答:DTD文件的编码必须和其约束的XML文件的编码相一致。

3.答:无关。

4.答:(1) 使用SYSTEM文档类型声明的格式:<DOCTYPE 根标记的名称 SYSTEM "DTD文件的URI">(2) 使用PUBLIC文档类型声明的格式:<!DOCTYPE 根标记的名称PUBLIC "正式公用标识符" "DTD文件的URI">5.答:一定。

6.答:(1)约束标记“张三”必须有“学号”属性(2)约束标记“张三”必须有“学号”属性,而且学号的属性值是固定的220123。

(3)约束标记“张三”可以有也可以没有“学号”属性。

7.答:ID类型的属性的属性值具有互斥性,即所有ID类型的属性的属性值必须互不相同。

8.答:不合理。

9.答:(1)、(3)和(4)。

10.答,B.xml不是有效的。

将B.xml修改为有效:B.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE 成绩单SYSTEM "A.dtd"><成绩单><学生><姓名> 张三</姓名><成绩> 优秀</成绩></学生><学生><姓名> 李四</姓名><成绩> 良好</成绩></学生></成绩单>11.答:Goods.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE 商品信息SYSTEM "dtdFile.dtd"><商品信息><商品商标=“Lenovo”><p:名称xmlns:p=“ookk”条形码=“1298-24”>联想电脑</p:名称><价钱>1234</价钱><连锁店><q:名称xmlns:q="Beijing" >中关村专卖店</q名称><地点> 北京市</地点></连锁店></商品></商品信息>习题四1.答:使用操作指令:<?xml-stylesheet href ="样式表的URI" type= "text/css" ?>2.答:student{ display:block;font-size:18pt; color:red;}3.答:假设XML文件中有三个标记的名称都是“name”,“ID”属性分别是a001,a002,a003。

CSS文件如下:namea001{ display:block;border-style:double;width=260;height=120}namea002{ display:block;border-style:dotted;width=150;height=60 ;font-size:10pt;}namea003{ display:block;border-style:ridge;width=90;height=30;font-size:10pt;}4.答:修改XML文件。

5.答:math{ display:block;font-size:12pt;font-style:italic;background-color:rgb(227,228,229);}chemistry{ display:block;font-size:12pt;text-decoration:underline;background-color:cyan;}low{ display:line;font-size:8pt;vertical-align:bottom;}习题五1.答:由若干个模板所构成,但必须有一个主模板。

2.答:必须有主模板吗。

主要体现在该模板中的match属性的值是“/”:<xsl:template match="/">主模板的内容</xsl:template>3.答:student的孙标记。

4.答:<HTML><table border="1"><tr><th> <台灯/></th><td>234元</td><td>北京</td></tr><tr><th> <壁灯/></th><td>56元</td><td>上海</td></tr></table></HTML>5.答:<HTML><table border="1"><tr><td> <张三/></td><td>获得一等奖学金</td><td>25岁</td></tr></table></HTML>习题六 1.答:一个返回子孙节点,而另一个只返回子节点:(1)getElementsByTagName(String name):返回一个NodeList对象,该对象由当前节点的Element类型子孙节点组成,这些子孙节点的名字由参数name指定(2)getChildNodes():节点调用该方法返回一个由当前节点的所有子节点组成的NodeList对象。

2.答:分别是DocumentType类型和Element类型。

3.答:Element类型?4.答:不可以。

5.答:JAXPXiti5.javaimport org.w3c.dom.*;import javax.xml.parsers.*;import java.io.*;public class JAXPXiti5{public static void main(String args[]){OutResult outContent=new OutResult();try {DocumentBuilderFactory factory=DocumentBuilderFactory. newInstance();DocumentBuilder builder= factory. newDocumentBuilder();Document document= builder. parse(new File("a.xml")) ;Element root=document.getDocumentElement() ;String rootName=root.getNodeName();NodeList nodeList=root.getChildNodes();outContent.output(nodeList);System.out.println("数学平均成绩"+outContent.mathAver);System.out.println("物理平均成绩"+outContent.physicsAver);}catch(Exception e){System.out.println(e);}}}class OutResult{double sumAllMath,sumAllPhysics,mathAver,physicsAver;int mathNumber=0, physicsNumber=0;public void output(NodeList nodeList){int size=nodeList.getLength();for(int k=0;k<size;k++){Node node=nodeList.item(k);if(node.getNodeType()==Node.TEXT_NODE){Text textNode=(Text)node;String content=textNode.getWholeText();System.out.print(content);Element parent=(Element)textNode.getParentNode();if(parent.getNodeName().equals("数学")){mathNumber++;sumAllMath=sumAllMath+Double.parseDouble(content.trim());}if(parent.getNodeName().equals("物理")){physicsNumber++;sumAllPhysics=sumAllPhysics+Double.parseDouble(content.trim());}}if(node.getNodeType()==Node.ELEMENT_NODE){Element elementNode=(Element)node;String name=elementNode.getNodeName();System.out.print(name);NodeList nodes=elementNode.getChildNodes();output(nodes);}}mathAver=sumAllMath/mathNumber;physicsAver=sumAllPhysics/physicsNumber;}}6.答:JAXPXiti6.javaimport javax.xml.transform.*;import javax.xml.transform.stream.*;import javax.xml.transform.dom.*;import org.w3c.dom.*;import javax.xml.parsers.*;import java.io.*;public class JAXPXiti6{public static void main(String args[]){try { String [] 车次={"T21","K456","T89"};String [] 区间={"北京-上海","长沙-北京","天津-重庆"};DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderdomPaser=factory.newDocumentBuilder();Document document=domPaser.newDocument();document.setXmlVersion("1.0");Element root=document.createElement("列车表");document.appendChild(root);for(int k=1;k<=车次.length;k++){Node node=document.createElement("客车");root.appendChild(node);}NodeList nodeList=document.getElementsByTagName("客车");int size=nodeList.getLength();for(int k=0;k<size;k++){Node node=nodeList.item(k);if(node.getNodeType()==Node.ELEMENT_NODE){Element elementNode=(Element)node;Node nodeName=document.createElement("车次");Node nodeNumber=document.createElement("运行区间");nodeName.appendChild(document.createTextNode(车次[k]));nodeNumber.appendChild(document.createTextNode(区间[k]));elementNode.appendChild(nodeName);elementNode.appendChild(nodeNumber);}}TransformerFactorytransFactory=TransformerFactory.newInstance();Transformertransformer=transFactory.newTransformer();DOMSource domSource=new DOMSource(document);File file=new File("列车表.xml");FileOutputStream out=new FileOutputStream(file);StreamResult xmlResult=new StreamResult(out);transformer.transform(domSource, xmlResult);out.close();}catch(Exception e){System.out.println(e);}}}习题七1.答:DOM解析器的核心是在内存中建立和XML文件相对应的树形结构数据,如果XML文件较大,相应的Document对象就要占用较多的内存空间;SAX解析器不在内存中建立和XML文件相对应的树形结构数据,和DOM解析器相比,SAX解析器占有的内存少。

相关文档
最新文档