【Jsp精品源码栏目提醒】:网学会员,鉴于大家对Jsp精品源码十分关注,论文会员在此为大家搜集整理了“ASP动态网站开发教程(第二版)课后习题答案 - 大学课件”一文,供大家参考学习!
第1章 习题参考答案 一、填空题 1、HTTP 请求 2、Apache IIS 3、C/S B/S 4、公共语言运行库 .NET Framework 类库 VB.NET、C等语言运行库 5、中间语言 6、命名空间 7、System.Web 8、拆分 9、工具箱 10、属性 二、单项选择题 B D C B D 三、问答题 1. 答:静态网页和动态网页在客户端看来是除了发送请求是的后缀名外没有其它任何区别,主要是服务器端的区别。
静态网页服务器在接收了客户端的请求后直接读取相应的网页文件返回给客户端,而动态网页服务器在接收到了客户端发来的请求后先找到相应文件然后根据相应参数将文件编译成标准的 html 代码,再返回给客户端。
2. 答:asp:优点:简单易学、容易上手;缺点:不能跨平台,速度较慢。
php:优点:免费、开放源代码;缺点:缺乏大公司的支持。
jsp:优点:跨平台;缺点:复杂难学。
3. 答程序结构清晰、效率增强、顶级开发工具支持、开发简单、支持 Web 服务。
4. 答:搜狐网站的服务器是服务器端,因为它提供网页服务;而小王的电脑就是客户端了。
5. 答:开发 ASP.NET Web 应用程序,总的来说有 3 步:首先要建立 Web 应用程序,然后是进行开发调试,最后发布网站。
其中开发调试是一个很大的环节,包括网站的,其中涉及的内容很多,比如数据库实现、类实现、图片设计、素材收集、设计页面等。
一般在系统实现时,从底层到上层逐步实现,先建立数据库并实现存储过程,然后实现类文件,最后实现 Web 页面。
当然整个过程中各阶段不是完全独立的,会在具体实现过程中交叉进行。
附录 各章习题参考答案 7 第2章 习题参考答案一、填空题1、Hypertext Markup Language 超文本标记语言2、ltHTMLgt…lt/HTMLgt ltHEADgt…lt/HEADgt ltBODYgt…lt/BODYgt3、background text4、center5、统一资源定位符6、href7、c:my documentsmy web favorite.htm8、gif 格式 jpeg 格式9、post get10、XHTML二、单项选择题C A B D D C A B B C三、问答题1. HTML 超文本标记语言,是一种基于标记的网页设计语言。
XHTML 是为了适应 XML 也是一种标记语言。
而重新改造的 HTML, 它可以看作是从 HTML 到 XML 的过渡。
XHTML要求在网页中出现的任何元素都应该被标记出来。
2. ltpgt和ltbrgt标记都可以用于换行,ltpgt是段落标记,在换行的同时,会在前段与后段之间留一空白行。
ltbrgt不会产生空行。
3. lttablegt lttrgt和lttdgt四、程序设计题1. 见 2-1.html2. 见 2-2.html 第3章 习题参考答案一、填空题 1. 条件运算符: 2. 装箱 3. 3 种 4. const 成员都是 static,所以应该去掉 static 5. -123 6. System.Exception 7. delegate 8. 密封、不可被继承 9. 将值类型转化为引用类型 10. 不可以,不可以二、单项选择题 1. C 2. B 3. A 4. C 5. A 6. D 7. D 8. C 9. A 10. A三、问答题 1. 答:值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。
注意,堆和堆栈是两个不同的概念,在内存中的存储位置也不相同,堆一般用于存储可变长度的数据,如字符串类型而堆栈则用于存储固定长度的数据,如整型类型的数据 int每个 int 变量占用四个字节。
由数据存储的位置可以得知,当把一个值变量赋给另一个值变量时,会在堆栈中保存两个完全相同的值而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆位置的两个引用,即在堆栈中保存的是同一个堆的地址。
在进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其它变量对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。
2. 答:C支持的数据类型有: 1 值类型 包括:简单类型、结构类型、枚举类型。
其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。
2 引用类型 包括:对象类型、类类型、接口、元数据、字符串类型、数组。
3. 答:见 3.2.5 节 4. 答: 附录 各章习题参考答案 9 1)12.34--1234.00good 2)0--good 3)456--00456good 5. 答: 面向对象的程序设计(Object-Oriented Programming,OOP)是一种基于结构分析的、以数据为中心的程序设计方法。
其主要思想是将数据及处理这些数据的操作都封装(Encapsulation)到一个被称为类(Class)的数据结构中,使用这个类时,只需定义一个类的变量,这个变量被称为对象(Object)。
类的成员有:成员常量,代表与类相关的常量值。
字段,即类的变量。
成员方法,执行类中的复杂计算和其他操作。
事件,定义了由类产生的事件公告,用于说明发生了什么事情。
属性:定义命名的属性以及与读写属性相关的行为。
索引指示器,允许类的实例通过与数组相同的方法来索引。
操作符,定义类的实例能够使用的操作符。
构造函数,在类被实例化时首先执行,完成对类的实例的初始化。
析构函数,在类被删除之前最后执行,用于对类的实例销毁。
对象是一个类的变量,这个变量被称为对象(Object)。
6. 答:由于 C中的类不支持多重继承,而客观世界出现多重继承的情况又比较多。
为了避免传统的多重继承给程序带来的复杂性等问题,同时保证多重继承带给程序员的诸多好处,C 提出了接口(interface)的概念,通过接口来实现多重继承的功能。
接口用于定义一种程序的协定。
实现接口的类或者结构要与接口的定义严格一致。
有了这个协定,就可以抛开编程语言的限制(理论上)。
接口可以包含方法、属性、事件和索引器。
7. 答:.NET 以委托(delegate)的形式实现了函数指针的概念。
委托实际上相当于 C中的函数指针原型。
与指针不同的是,委托在 C 中是类型安全的。
事件是.NET 开发人员监视应用程序执行时出现的各种 Windows 消息的方式。
事件为类和类的实例提供了向外界发送通知的能力,形象地说,事件就是类或对象用来“发出通知”的成员。
通过提供事件的句柄,客户能够把事件和可执行代码联系在一起。
8. 答: 1 错误。
if 中的条件表达式结果不是布尔型。
2 正确。
3 错误一:temp 没有定义。
错误二:在 foreach 块内 test 作为枚举成员是只读的,不能使用 test修改其值。
4 错误。
Console 后应该是点,而不应该是大于号。
9. 答:输出结果为: Test1 This is a string. 10. 答 . private : 私有成员 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
四、设计题1. 代码如下: using System using System.Collections.Generic using System.Text namespace outputSquareValue class Program static void Main //用 for 语句实现 forint i1ilt5i Console.WriteLinequot0的平方值为1quotiii //用 while 语句实现 int j0 whilejlt5 Console.WriteLinequot0的平方值为1quotjjj //用 do-while 语句实现 int k1 do Console.WriteLinequot0的平方值为1quotkkk whileklt5 Console.ReadLine 2. 代码如下: class A//定义一个类 public A Console.WriteLinequotAquot 附录 各章习题参考答案 11 class B//定义一个类 public B Console.WriteLinequotBquot class C:A B bnew B class D public static void Main C cnew C //执行结果就为quotA” ”Bquot. 3. 代码如下: using System class MyClass public int i private int j protected int k public void method1 Console.WriteLinequotpublic method.quot private void method2 Console.WriteLinequotprivate method.quot protected void method3 Console.WriteLinequotprotected method.quot class mymain : MyClass public static void Main MyClass t new MyClass Console.WriteLinequoti0quot t.i Console.WriteLinequotj0quot t.j //会出现编译错误,私有成员不允许在其它类中访问 Console.WriteLinequotk0quot t.k //会出现编译错误,应该创建 MyMain 的对象,然后通过 MyMain 的对象访问 t.method1 t.method2 //会出现编译错误,私有的方法不允许在其它类中调用 t.method3 //会出现编译错误,应该创建 MyMain 的对象,然后通过 MyMain的对象调用该方法 4. 代码如下: using System class Test6 public static void Main string str quotquot while str.Length lt 3 Console.Writequot请输入一个长度大于 3 的字符串:quot str Console.ReadLine //1 Console.WriteLinequot字符串的长度为:0quot str.Length //2 int i str.IndexOfa if i gt -1 Console.WriteLinequot第一个出现字母 a 的位置是:0quot i 附录 各章习题参考答案 13 else Console.WriteLinequot字符串中不包含字母 a。
quot //3 string str1 str.Insert3 quothelloquot //在第 3 个初始序号为字符前插入 hello Console.WriteLinequot插入 hello 后的结果为:0quot str1 //4 string str2 str1.Replacequothelloquot quotmequot Console.WriteLinequot将 hello 替换为 me 后的结果为:0quot str2 //5 string arr str2.Splitm Console.WriteLinequot以 m 为分隔符分离后的字符串有:quot for int j 0 j lt arr.Length j Console.WriteLinearrj 5.代码如下: usingSystem usingSystem.Collections.Generic usingSystem.Text namespace completeNumber class Program static void Mainstringargs forinti2ilt1000i int s1 string strquot1quot forintj2jltintMath.Sqrtij ifji/ji ifji/j sji/j strstring.Formatquot01quotji/j else sj strstring.Formatquot0quotj ifsiConsole.WriteLinequot01quotistr Console.ReadLine 第4章 习题参考答案一、填空题1、page2、IsPostBack3、回发4、 Page5、单文件页模型 代码隐藏页模型6、ltscriptgt…lt/scriptgt7、partial8、.aspx.cs9、视图状态10、Machine.config WebWeb.config二、单项选择题C A D C D三、问答题 附录 各章习题参考答案 15 1.答:(1) 用户通过客户端浏览器请求页面,页面第一次运行。
如果程序员通过编程让它执行初步处理,如对页面进行初始化操作等,可以在 Page_load 事件中进行处理。
(2) Web 服务器在其硬盘中定位所请求的页面。
(3) 如果 Web 页面的扩展名为 .aspx,就把这个文件交给 aspnet-isapi.dll 进行处理。
如果以前没有执行过这个程序,那么就由 CLR 编译并执行,得到纯 HTML 结果;如果已经执行过这个程序,那么就直接执行编译好的程序并得到纯 HTML 结果。
(4) 把 HTML 流返回给浏览器,浏览器解释执行 HTML 代码,显示 Web 页面的内容。
(5) 当用户键入信息、从可选项中进行选择,或单击按钮,页面可能会再次被发送到 Web 服务器,在 ASP.NET 中被称为“回发”。
更确切地说,页面发送回其自身。
例如,如果用户正在访问 default.aspx 页面,则单击该页面上的某个按钮可以将该页面发送回服务器,发送的目标还是 default.aspx。
(6) 在 Web 服务器上,该页面再次运行,并执行后台代码指定的操作。
(7) 服务器将执行操作后的页面以 HTML 标记的形式发送到客户端浏览器。
2. 答:1、页请求: 2、开始 3、页初始化 4、加载 5、验证 6、回发事件处理 7、呈现 8、卸载 3. 答:有两种即单文件页模型和代码隐藏页模型。
在单文件页模型中,页的标记及其编程代码位于同一个后缀为 .aspx 的文件中。
代码隐藏页模型与单文件页模型不同的是, 当代码隐藏页模型将事物处理代码都存放在单独的 cs 文件中, ASP.NET 网页运行的时候,ASP.NET 类生成时会先处理 cs 文件中的代码,再处理.aspx 页面中的代码。
4. 答:视图状态:用于保存本窗体页的状态。
控件状态:用于存储控件状态数据。
隐藏域:呈现为 ltinput type quothiddenquot/gt 元素,用于存储一个值。
应用程序状态:用于保存整个应用程序的状态,状态存储在服务器端。
会话状态:用于保存单一用户的状态,状态存储在服务器端。
Cookie 状态:用于保存单一用户的状态,状态存储在浏览器端。
第5章 习题参考答案一、填空题1、HTML Web2、server3、asp4、TextMode5、nn6、Checked7、TableRow TableCell8、Enabled9、RequiredFieldValidator10、ControlToValidate二、单项选择题B A A C C B三、问答题1. 答:HTML 表单是静态网页中定义的表单,只在浏览器端运行,用于向服务器提交用户的请求。
WEB 表单是 ASP.NET 中的表单,是在服务器上运行的。
WEB 表单也是用ltFormgt标记定义的。
WEB 表单标记中有一个重要的属性:Runat”Server”。
正是这个属性使WEB 表单与 HTML 表单有了本质的不同。
2. HTML 服务器控件和 WEB 服务器控件都是从普通 HTML 发展过来的,只要给普通HTML 代码添加 id 和 runatserver 属性就变成了 HTML 服务器控件,WEB 服务器控件是.net提供的一套全新的控件,它的设计合理使用更简便,但是目前还没有和 HTML 完全一一对应。
推荐使用 WEB 服务器控件。
3. 在不需要和服务器端交互的程序中应该尽量使用普通 html 代码,这样会减轻服务器负担,在需要交互时尽量使用 web 服务器控件,实在没有可用的 web 服务器控件再考虑 html服务器控件。
4. 答:若要使多个 RadioButton 控件具有互斥作用,只需要将这些 RadioButton 控件的GroupName 设置到同一个标识符即可。
利用这个特性,可以将分散在页面各个位置的RadioButton 控件成组,产生互斥。
四、程序设计题1. 见 5-6.aspx 和 5-6.aspx .cs。
第6章 习题参考答案一、填空题1、QueryString2、true3、Redirect 附录 各章习题参考答案 174、Sessionquotgreetingquot5、SessionID6、Session . Timeout 907、Application8、lock unlock9、Global.asax10、HTMLEncode二、单项选择题B C A C B A C C A B三、问答题1. 答:利用 response.write 方法和 label 都可以输出信息,但是 label 相对比较容易控制输入的位置和格式。
建议用 label。
2. 答:设置 cookies 是必须设置有效期限,否则浏览器关闭后,就会失效!3. 答:Application 对象是网站的应用程序可以共享的,而网站程序可能同时会有多个用户访问,那么可能出现多个用户同时访问某个保存在 Application 对象中的变量的问题。
当多个用户同时需要修改 Application 中某个变量时,还有可能产生数据不一致的问题。
为了避免这种情况的发生,Application 对象提供了两个方法:Lock 和 UnLock。
当需要修改某个 Application 对象中保存的变量值时,先用 Lock 方法将 Application 对象锁住,禁止其它用户修改 Application 对象中的变量值,然后再对变量值进行修改。
修改结束后,再用 UnLock 方法把锁打开。
这样就避免了访问冲突的问题。
Lock 和 UnLock 方法必须成对使用。
如果只用了 Lock 方法而不用 Unlock,则获得资源的用户永远占有 Application,不释放,导致其它用户无法得到 Application。
没有 Lock方法使用 Unlock 也是无意义的。
4. 答:Application 是保存在服务器内存中的数据,可以让所有用户来共享,如用来制作简单的记数器或聊天室等。
Session 是保存特定用户的数据,对该用户起作用,一旦该用户退出或关机,则数据自然就消失了,主要用于来判断用户是否登录等。
Cookie 是保存在用户硬盘中的数据,一般用来保存登录的用户名与口令等,这样用户以后登录中可以省去输入的麻烦。
5. 答:Cookie 是 WEB 服务器用于跟踪用户信息、存在于客户机上、存储着用户特定信息的文件。
6. 答:上传时间超出了脚本执行最长时间,应该通过设定 server.scripttimeout 到足够长来解决。
7. 用 Server 对象的 htmlencode 方法,将字符串变换后再输出。
四、程序设计题略 第7章.