第1章 ASP程序设计概述
习题1
1. 选择题(可多选)
(1)静态网页的扩展名一般是:
A.htm B .php C.asp D.jsp
答案:A
(2)ASP文件的扩展名是:
A.htm B. txt C. doc D. asp
答案:D
(3)当前的Web程序开发中通常采用什么模式?
A. C/S B. B/S C. B/B D. C/C
答案:B
解释:C/S是客户机(client)/服务器(server),B/S是浏览器(browser)/服务器。C/S一般要求用户有特定的客户端。比如QQ就是C/S模式,你的桌面上的QQ就是腾讯公司的特定的客户端,而服务器就是腾讯的服务器。而B/S模式则不需要特定的客户端,只要有普通浏览器,就可以访问到服务器了,Web页就是B/S 模式。
(4)小王正在家里通过拨号上网访问搜狐主页,此时,他自己的计算机是:
A. 客户端 B. 既是服务器端又是客户端
C. 服务器端 D. 既不是服务器端也不是客户端
答案:A
(5)小王正在访问自己计算机上的网页,此时,他自己的计算机是:
A. 客户端 B. 既是服务器端又是客户端
C. 服务器端 D. 既不是服务器端也不是客户端
答案:B
(6)ASP脚本代码是在哪里执行的?
A. 客户端 B. 第一次在客户端,以后在服务器端
C. 服务器端 D. 第一次在服务器端,以后在客户端
答案:C
解释:ASP脚本代码是在服务器端运行的,服务器将其解释执行为标准的HTML代码,然后发送到客户端。
(7)在以下URL中,从形式上看正确的是:
A. http:///history/1998/intro.asp
B. http:///news/1.jpg
C. ftp://http:// /history/1998/intro.asp
D. ftp://http:///news/1.jpg
答案:A B C D
解释:从形式上看,都是正确的。
(8)如果在chapter1下建立了一个子文件夹images,并且在其中放置了一个图片文件1.jpg,那么以下URL正确的是:
A. http://localhost/asptemp/chapter1/images/1.jpg
B. http://127.0.0.1/asptemp/chapter1/images/1.jpg
C. http://localhost/inetpub/wwwroot/asptemp/chapter1/images/1.jpg
D. http://127.0.0.1/inetpub/wwwroot/asptemp/chapter1/images/1.jpg
答案:A B
(9)对于1.5.5节建立的1-2.asp,以下浏览方式正确的是:
A. http://localhost/temp/1-2.asp
B. http://127.0.0.1/temp/1-2.asp
C. http://localhost/asptemp/chapter1/temp/1-2.asp
D. http://127.0.0.1/asptemp/chapter1/temp/1-2.asp
答案:A B C D
解释:AB两种方式利用了建立的虚拟目录,CD实际上没有用到这个虚拟目录,此时和1-1.asp没有什么区别。
(10)以1.5.5节的示例为基础,假如现在在C:\inetpub\wwwroot\asptemp\chapter1\temp下又建立了一个子文件夹temp,其中建立了一个ASP文件1-3.asp,则浏览方式正确的是:
A. http://localhost/temp/temp/1-3.asp
B. http://127.0.0.1/temp/temp/1-3.asp
C. http://localhost/asptemp/chapter1/temp/temp/1-3.asp
D. http://127.0.0.1/asptemp/chapter1/temp/temp/1-3.asp
答案:A B C D
解释:AB利用了建立的虚拟目录,CD没有用到虚拟目录。
2. 问答题
(1)名词解释:静态网页、动态网页、服务器端、客户端、URL
答案:
静态网页——所谓静态网页,就是说该网页文件里没有程序代码,只有HTML标记,这种网页的扩展名一般是.htm或.html。静态网页一经制成,内容就不会再变化,不管何时何人访问,显示的都是同样的内容,如果要修改内容,就必须修改源文件,然后重新上传到服务器上。
动态网页——所谓动态网页,就是说该网页文件不仅含有HTML标记,而且含有程序代码,这种网页的扩展名一般根据不同的程序设计语言而不同,如ASP文件的扩展名为.asp。动态网页能够根据不同的时间、不同的来访者而显示不同的内容。如常见的BBS、留言板、聊天室一般是用动态网页实现的。
服务器端、客户端——一般来说,凡是提供服务的一方称为服务器端,而接受服务的一方称为客户端。比如,当我们在浏览搜狐主页的时候,搜狐主页所在的服务器就称为服务器端,而我们自己的计算机就称为客户端。
URL——大家在上网的时候,需要在浏览器地址栏中输入一个网址,回车后就可以打开相应的网页了,这个网址又叫做统一资源定位符(URL:Uniform Resource Locator)。在Internet中的每一个网页文件或其他类型的文件都有自己的URL,它的一般形式是:
协议://服务器地址(域名或IP地址): 端口号/路径(含文件名)
(2)请结合URL知识简述静态网页和动态网页的工作原理。
答案:静态网页的工作原理是当你在浏览器里输入一个网址回车后,就向服务器端提出了一个浏览网页的请求。服务器端接到请求后,就会找到你要浏览的静态网页文件,然后发送给你。
动态网页的工作原理是服务器端接到客户端发出的请求后,首先会找到你要浏览的动态网页文件,然后就解释执行其中的程序代码,将含有程序代码的动态网页转化为标准的静态网页,然后将静态网页发送给你。
(3)请简单比较ASP、PHP和JSP的优缺点。
答案:总的来说,ASP、PHP和JSP基本上都是把脚本语言嵌入到了HTML文档中。如果要说它们最主要的优点:ASP学习简单,使用方便;PHP软件免费,运行成本低;JSP多平
台支持,转换方便。
(4)某同学开发了一个显示来访时间的ASP文件,存放在C:\inetpub\wwwroot下,然后在Windows资源管理器中双击该文件,却不能正常显示,请问是什么原因?
答案:ASP文件是不能直接双击运行的,必须通过浏览器访问,由服务器端来解释执行为标准的HTML代码,然后才可以显示在浏览器中。
(5)在1.4.3节中讲的是如何访问ASP文件,如果希望访问HTML网页文件,可以用类似的方法吗?
答案:可以。对于HTML文件,服务器端找到到该文件后,直接发送给客户端即可。
(6)想一想,把一个HTML网页文件直接更改扩展名为.asp行不行?
答案:可以。相当于一个不含有任何动态代码的ASP文件,运行时服务器端也会对其进行解释执行,只不过实际上没有代码需要解释执行而已。
(7)什么是应用程序?为什么要建立应用程序?
答案:简单的说,添加了虚拟目录的文件夹就可以称为应用程序。建立应用程序后,多个网站之间就可以独立了,一些公共变量就不会混淆。
3. 实践题
(1)请根据自己的实际情况搭建ASP的运行环境。
答案:请按照教材中1.2节说明搭建,具体步骤略。
(2)请上网下载并安装EditPlus。
答案:从http://下载安装程序后,直接双击安装即可,具体步骤略。
(3)请在文件夹C:\Inetpub\wwwroot\asptemptj\chapter1下新建一个asp文件,在页面上显示来访日期(日期函数为Date())。
答案:打开EditPlus,在其中输入清单date所示的程序代码,然后将其保存到C:\Inetpub\wwwroot\asptemptj\chapter1文件夹下,名称为date.asp。
清单date date.asp 显示来访日期
<html>
<head>
<title>一个简单的ASP程序</title>
</head>
<body>
<h1 align="center">欢迎您光临我的主页</h1>
<%
Dim a '声明一个变量
a="您来访的日期是:" & Date() '给变量赋值,其中Date是日期函数
Response.Write a '在页面上输出变量a的值
%>
</body>
</html>
保存完毕后,打开浏览器,在其中输入http://localhost/asptemptj/chapter1/tj1-1.asp即可。
(4)请在C:\Inetpub\wwwroot\asptemptj\chapter1下面新建一个文件夹tempb,然后为该文件夹添加虚拟目录aspb,并设置默认文档为index.asp和index.htm。
答案:请参考教材1.5节进行,具体步骤略。
(5)(选做题)请参考IIS的专门书籍好好研究一下,是否一定要在C:\Inetpub\ wwwroot下
开发ASP文件?可不可以放在别的文件夹下?
答案:其实可以在其他文件夹下,比如在D:\asptemp下建立ASP文件,具体步骤如下: 第1步:首先建立D:\asptemp文件夹。
第2步:在IIS中为该文件夹建立虚拟目录asptemp(注意,也可以用别的名称).
第3步:下面就可以在asptemp文件夹下分章建立子文件夹和ASP文件了,比如建立chapter1子文件夹,然后在其中建立1-1.asp文件。
第4步:建立ASP文件后,在浏览器中输入http://localhost/asptemp/chapter1/1-1.asp即可。
第2章 HTML基础知识
习题2
1. 选择题(可多选)
(1)HTML文档包含的两个部分是指:
A. 文档头部 B. 标题 C. 注释 D. 文档主体
答案:A D
(2)HTML中的注释格式是:
A. <!-- 注释内容 --!> B. <!-- 注释内容 -->
C. <%-- 注释内容 --%> D. <!-- 注释内容 --%>
答案: B
(3)下列哪段语句将会以粗体、下划线显示?
A. <b><u>欢迎大家</u></b> B. <u><b>欢迎大家</b></u>
C. <i><b>欢迎大家</b></i> D. <b><i>欢迎大家</i></b>
答案: AB
(4)在HTML中,插入换行符用什么标记?
A. <hr> B. <br> C. <p> D. Enter键
答案: B
(5)在HTML中,下面哪一种方法可以在网页上显示“<p>”?
A. <p> B. <p> C. p D. \<p\>
答案: B
(6)如果希望使用实心方块作为符号列表前面的符号,type属性的取值应该为:
A. Circle B. Squire C. Disc D.■
答案: B
(7)HTML中用什么标记表示表格的一行?
A. <row>和</row> B. <tr>和</tr>
C. <td>和</td> D. <table>和</table>
答案: B
(8)在表格中哪个属性用于设置文本水平对齐方式?
A. align B. valign C. top D. bottom
答案: A
(9)关于网页中的图像,下列说法正确的是?
A. 图像标记是以<img>开始,以</img>结束
B. href属性用于指定所要显示图像文件的路径
C. src 属性用于指定所要显示图像文件的路径
D. alt用于指定显示在图像上的文字
答案: C
解释:图像标记不需要</img>标记。Alt是当图片显示不出来时显示的替换文字,不是显示在图片上的文字。
(10)当前文件夹下有一个HTML文件a.htm和一个子文件夹B,文件夹B中有一个图片文件flower.jpg,请问下面哪种写法可以在a.htm中插入该图片?
A. <img src="flower.jpg"> B. <img src="../flower.jpg">
C. <img src="B/flower.jpg"> D. <img src="/B/flower.jpg">
答案: C
(11)在超链接标记中,下面哪个属性用来指定超链接路径?
A. src B. href C. dynsrc D. action
答案: B
(12)在一组单选框中,下面哪一个属性可以用来默认选中某个选项?
A. slected B. checked C. multiple D. noresize
答案: B
(13)下面哪种方法可以设置单行文本框的默认值为“在这里输入用户名”?
A. <input type="text" name="txtUserId" value="在这里输入用户名">
B. <input type="text" name="txtUserId">在这里输入用户名</input>
C. <textarea type="memo" name="txtUserId" value="在这里输入用户名">
D. <textarea type="memo" name="txtUserId"> 在这里输入用户名</textarea>
答案: A
(14)下面哪一种文本框中输入数据后,数据将以*号显示?
A. 单行文本框 B. 多行文本框 C. 数值文本框 D. 密码文本框
答案: D
(15)在表单中,下列哪个属性用于指定表单处理程序文件的地址?
A. method B. action C. GET D. POST
答案: B
(16)在框架网页中,如果一个超链接在整个浏览器窗口中打开,target属性的值为:
A. _blan B. _self C. parent D._top
答案: D
(17)要实现一个上下型框架网页,至少需要几个网页文件?
A. 2 B. 3 C. 4 D. 6
答案: B
(18)下列哪个属性可以用来使框架不显示滚动条?
A. cols B. rows C. scrolling D. noresize
答案: C
(19)在示例2-7中,下面哪一条语句可以将C:\inetpub\wwwroot\asptemp\chapter1文件夹中的1-1.htm当作“right”框架的初始网页?
A. <frame name="right" src="1-1.htm">
B. <frame name="right" src="../1-1.htm">
C. <frame name="right" src="../chapter1/1-1.htm">
D. <frame name="right" src="/asptemp/chapter1/1-1.htm">
答案:CD
解释:C用的是相对路径,D用的是绝对路径。
(20)下列哪个标记可以单独使用(不需要结束标记)?
A. <p> B. <br> C. <img> D. <input>
答案:ABCD
2. 问答题
(1)为什么需要给HTML文件添加注释语句?
答案:适当地使用注释语句,可以让网页的维护和更新变得很方便。
(2)如果同时设置了背景颜色和背景图片,会出现什么情况?
答案:如果同时设置了背景颜色和背景图片,将只有背景图片起作用。
(3)请比较背景图片、图片标记、超链接、框架网页中用到的文件路径的语法?
答案:这些文件路径的引用都分相对路径和绝对路径两种,其中背景图片、图片标记、框架网页的链接写法为 src= “URL地址”,而超链接的写法为href= “URL地址”。
(4)为什么HTML文件一般可以直接双击打开,而ASP文件就不能呢?
答案:因为ASP文件必须要到服务器端解释执行后才可显示到浏览器端。
(5)在示例2-2中,也可以将背景音乐文件的路径修改为“C:\inetpub\wwwroot\asptemp\chapter2\bgmusic.mp3”,而且也可以正常运行。但是,这样做实际上是有问题的,请大家想想为什么?(提示:要注意客户端和服务器端的区别)
答案:因为背景音乐文件的路径其实仅是指明了文件在哪个服务器地址存放,并没有将文件发送到客户端,只有当浏览器执行到这一句时,才会自动到相应服务器的C:\inetpub\wwwroot\asptemp\chapter2目录下去寻找bgmusic.mp3文件,然后发送到客户端,如果服务器上没有找到这个文件,就不会播放出音乐来,但是因为我们此时指定的服务器和客户端机是同一台,因此就可以找到播放文件正常运行。
3. 实践题
(1)请开发一个网页,3秒后自动转到新浪网站,并且在页面上显示文字“3秒后将转到新浪网站 ”。
答案:请参见asptemptj\chapter2\Auto_redirect.htm 文件,并在浏览器中输入http://localhost/asptemptj/chapter2/ Auto_redirect.htm即可访问。
清单Auto_redirect Auto_redirect.htm 3秒后自动转到新浪网站
<html>
<head>
<title>尚网:计算机教学网站</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Refresh" content="3; URL=http://">
</head>
<body >
<p>3秒后将转到新浪网站
</body>
</html>
程序(2)请开发一个网页,并在Internet中搜索找到一个MP3文件,作为该网页的背景音乐;然后再搜索找到一个图片文件,并将其插入到该页面中。(提示:请直接用URL)
答案:请参见asptemptj\chapter2\Insert_pic.htm文件,并在浏览器中输入http://localhost/asptemptj/chapter2/ Insert_pic.htm.htm即可访问。
清单Insert_pic Insert_pic.htm 插入图片和背景音乐
<html>
<head>
<title>尚网:计算机教学网站</title>
<bgsound
src="http:///video/site1/20071204/0019213dcb6e08bef45c12.MP3"
loop="-1">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<img src="http:///d/2007-2/2007021714412052881.jpg"
border="0" alt="鲜花" align="left" >
</body>
</html>
(3)请尝试将清单2-6中的提交按钮替换为图片按钮?
答案:将提交按钮语句替换为<input name="tj" type="image" src="tijiao.jpg" border="0">即可。见清单Pic_button,并在浏览器中输入http://localhost/asptemptj/chapter2/ Auto_redirect.htm即可访问。
清单Pic_button Pic_button.asp. 插入图片按钮码
<html>
<head>
<title>用户注册表单示例</title>
</head>
<body leftmargin="100">
<h1 align="center">用户注册</h1>
<p><font color="red">以下内容请如实填写,其中带有*号的栏目是必须填写的</font> <form name="frmUserReg" method="POST" action="mailto:jjshang@http://" >
<p>请选择用户名:
<input type="text" name="txtUserId" size="15">*
<p>请输入你的密码:
<input type="password" name="txtPwd" size="8" maxlength="8">*(密码不能超过8位)
<p>请再次输入密码:
<input type="password" name="txtPwd2" size="8" maxlength="8">*
<p>请输入你的姓名:
<input type="text" name="txtUserName" size="15">*
<p>请选择你的性别:
<input type="Radio" name="rdoSex" value="male" checked >男
<input type="Radio" name="rdoSex" value="femail">女*
<p>请输入你的生日:
<input type="text" name="txtYear" size="4">年
<input type="text" name="txtMonth" size="2">月
<input type="text" name="txtDay" size="2">日*
<p>请选择你的最高学历:
<select size="1" name="sltEducation">
<option value="高中" >高中</option>
<option value="本科" selected>大学本科</option>
<option value="硕士">硕士</option>
<option value="博士">博士</option>
</select>
<p>请选择你的爱好:
<input type="checkbox" name="chkLove" value="book">读书
<input type="checkbox" name="chkLove" value="movie">看电影
<input type="checkbox" name="chkLove" value="travel">旅游
<input type="checkbox" name="chkLove" value="other">其他
<p>你有什么意见吗?
<textarea name="txtMemo" rows="4" cols="40"></textarea>
<p align="center"><input name="tj" type="image" src="tijiao.jpg" border="0">
<input type="reset" name="btnReset" value="取消" >
</form>
</body>
</html>
(4)请在2.4.2节框架网页示例的基础上制作自己的个人主页,并且要满足如下要求:
A. 在“个人简介”页面上方给出一段自我介绍的文字和一张照片。
B. 在“个人简介”页面下方利用表格说明自己的教育经历。
C. 在“我的照片”页面中添加一些照片的缩略图,点击缩略图自动打开原始照片。
D. 在“我的文章”页面中用排序列表的方式添加一些自己撰写或下载的文章标题,并为标题添加超链接,单击超链接在新窗口中打开对应的文章页面。
E. 在左侧框架中添加一个“给我留言”的超链接,然后在对应的页面中添加一个留言表单,其中应该包括留言主题、留言内容、留言人姓名、留言人E-mail等内容。单击“提交”按钮后,将留言发送到自己的信箱。
答 案:程序详见chapter2/Myweb下,其中简单应用了样式的写法,请大家参考学习。
并在浏览器中输入http://localhost/asptemptj/chapter2/ Myweb/index.htm即可访问。
(5)(选做题)请为“C:\Inetpub\wwwroot\chapter2”添加虚拟目录temp2,然后分别用相对路径、绝对路径和URL改写2-2.htm。(提示:请参考附录A)
答 案:改写为Rewrite2-2.htm,并在浏览器中输入http://localhost/asptemptj/chapter2/ Rewrite2-2.htm即可访问,清单如下:
清单Rewrite2-2 Rewrite2-2.htm 用不同路径方式改写2-2.htm
<html>
<head>
<title>尚网:计算机教学网站</title>
<bgsound src="bgmusic.mp3"> <!-- 相对路径引用-->
<bgsound src="C:\Inetpub\wwwroot\asptemp\chapter2\bgmusic.mp3" ><!-- 绝对路径引用-->
<bgsound src="http://localhost/temp2/bgmusic.mp3" ><!-- URL引用-->
<meta name="Generator" content="EditPlus">
<meta name="Author" content="尚网">
<meta name="Keywords" content="ASP, http://, 教学网站">
<meta name="Description" content="这是一个计算机教学网站">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Refresh" content="10">
</head>
<body >
<p>该页面用来演示文档头部
</body>
</html>
第3章 VBScript基础知识
习题3
1. 选择题(可多选)
(1)下列哪一个变量名称是正确的?
A. 1_ab B. ab_1 C. _ab D. ab?
答案:B
(2)在一段程序中a是一个变量,那么"a"是:
A. 变量 B. 直接常量 C. 字面常量 D. 符号常量
答案:D
(3)下面哪条语句可以正确执行?(注:第四句我的主页两边是中文引号)
A. Response.Write "<h1 align="center">我的主页</h1>"
B. Response.Write "<h1 align='center'>我的主页</h1>"
C. Response.Write "<h1 align=""center"">我的主页</h1>"
D. Response.Write "<h1 align=""center"">“我的主页”</h1>"
答案:BCD
解释:在两个双引号中再次用到双引号时,可以用单引号或两个双引号来代替。
(4)执行语句a="6"后,变量a的数据子类型是?
A. 字符串 B. 日期 C. 数值 D. 布尔
答案:A
(5)执行语句a="2008-8-8"后,变量a的数据子类型是?
A. 字符串 B. 日期 C. 数值 D. 布尔
答案:A
(6)假设变量a=5、b=3,则执行语句c="a>b"后,变量c的数据子类型是?
A. 字符串 B. 日期 C. 数值 D. 布尔
答案:A
(7)语句a="abc"="abc"运行完毕后,变量a的数据子类型是?
A. 数值 B. 字符串 C. 布尔 D. 日期
答案:C
解释:右侧是一个比较运算,结果是True,然后再赋值给a
(8)执行语句a=3: a=a+5后,变量a的值是:
A. 3 B. 5 C. 8 D. 出错
答案:C
解释:ASP中,冒号(:)是用来做语句分割的,也就是说可以将两行语句合成为一行来写。因此a=3: a=a+5就等价于a=3
a=a+5,结果自然就是8.
(9)已知x=120,那么执行语句y=x \10 Mod 10后,变量y的值是?
A. 0 B. 1 C. 2 D. 3
答案:C
解释:这是一个算术运算,运算顺序为从左至右,x\10表示x整除10后的值,为12,然后再计算12 Mod 10,表示12除以10的余数,结果为2.
(10)已知a= "ab",那么执行语句b="cd'" & a & " " & "ef"后,变量b的值是?
(提示:请注意题目和答案中的空格)
A. "cd'ab ef" B. "cd'abef" C. "cdabef" D. "cdab ef"
答案:A
(11)下面的语句执行完毕后,变量a、b、c、d的值分别是?
<% a="1"+"1": b="1"+1: c="1" & "1": d="1" & 1 %>
A. "11"、"11"、"11"、"11" B. "11"、2、"11"、"11"
C. 2、2、"11"、"11" D. "11"、"11"、2、2
答案:B
解释:做算术运算+的时候,如果有一个操作数是数值型,另一个是可以转换为数值的字符串,则会自动转换为数值,并执行相加运算。但是如果用&,则任何时候都是执行连接运算。
(12)请问表达式Not(6+3<5+2)的值是?
A. True B. False C. 9 D. 无法计算
答案:A
(13)请问Int(3.45)和Int(-3.45)的值分别是什么?
A. 4、-4 B. 3、-4 C. 3、3 D. 3、-3
答案:B
解释:Int:返回数的整数部分,且对于负数,将返回小于或等于 number 的第一个负整数。
(14)执行语句a=Int(10 * Rnd())后,则a的值不可能出现的有?
A. 0 B. 1 C. 10 D. 11
答案:CD
解释:Rnd()返回一个大于等于0且小于1的随机数。
(15)在取整时按四舍五入进行的函数是?
A. Int B. Fix C. Round D. CInt
答案:C
(16)请问Mid("八千里路云和月",3,2)的返回值是什么?
A. "千里" B. "里路" C. "里" D. "路云"
答案:B
解释:表示从第三个字符开始取两个字符。
(17)执行语句a=InStr(Trim(Replace(" abcdef ","c","")),"ef")后,变量a的值是?
A. 0 B. 1 C. 4 D. 5
答案:C
解释:注意Replace(" abcdef ","c","")是将字符c替换为空,而不是空格。
Instr()是返回第二子串在第一个串中第一次出现的位置。
(18)函数DateDiff("m",#2008-8-8#,#2008-10-1#)的返回值是?
A. 1 B. 2 C. 54 D. 5
答案:2
(19)对于数组a(3,4),函数UBound(a,2)的值是:
A. 1 B. 2 C. 3 D. 4
答案:D
解释:UBound()返回数组的指定维数的最大可用下标.
(20)假如变量a的值是"100",则IsNumeric(a)和VarType(a)的值分别是?
A. True、2 B. True、8 C. False、2 D. False、8
答案:B
解释:IsNumeric()会先转化变量a的类型为数值,如果能转化,就为True。而VarType函数只返回当前的类型,而"100"当前确实是字符串。
(21)假如变量a的值是"2008-8-8",则IsDate(a)和VarType(a)的值分别是?
A. True、2 B. True、8 C. False、2 D. False、8
答案:B
解释:同上题。
(22)执行语句a=Chr(Asc("ABC"))后,则a的值是:
A. "ABC" B. "A" C. 65 D. 出错
答案:B
解释:Asc()函数返回与字符串的第一个字母对应的 ANSI 字符代码,而Chr函数返回该ANSI代码对应的字符,所以最后为"A"。
(23)退出Do循环的语句是?
A.Exit For B. Exit Do C. Exit Sub D. Exit Function
答案:B
(24)在示例3-11和3-12中,循环结束后,I的值分别是多少?
A. 100、100 B. 101、101 C. 100、101 D. 101、100
答案:B
(25)以下哪些语句可以嵌套使用?
A. For…Next B. Do…Loop C. Select Case D. If…Then…Else
答案:ABCD
2. 问答题
(1)名词解释:单目运算符、双目运算符、操作数、函数、子程序、过程
单目运算符——就是指该运算符只对一个操作数起作用。
双目运算符——指运算符对它左右两侧的操作数都起作用。
操作数——参与运算的数。
函数——就是由若干语句组成的程序模块,它可以实现一个特定的功能,并返回一个函数值。
子程序——就是只执行程序而不返回值的程序模块。
过程——就是自己定义的函数,过程有两种:一种是Sub子程序,一种是Function函数。两者的区别在于:Sub子程序只执行程序而不返回值,而Function函数执行程序后会返回值。
(2)脚本级变量和过程级变量有什么重要区别?
答案:脚本级变量在整个ASP文件内都可以被引用,而过程级变量,只能在过程内使用。
(3)在页面A中定义的变量可以在页面B中引用吗?
答案:一般是不可以的,但是如果把A页面包含在B中,就是可以的。
(4)程序中的符号常量可以用变量来代替吗?
答案:可以。
(5)请简述四类运算符的优先级顺序。
答案:算术运算符>连接运算符>比较运算符>逻辑运算符
(6)不同过程中的变量名是否可以一样?
答案:可以,因为过程级变量,只在本过程中有效。但不推荐这样使用。
(7)Function函数中的形参和实参名称是否可以一样?
答案:可以,形参和实参名称可以一样,也可以不一样,因为两者是按位置对应的。
(8)在For Next循环中,可以给计数器变量赋值吗?
答案:虽然也是可以的,但是不建议更改计数器变量,因为很容易引起变量值的混乱。
(9)请以示例3-12为例简述Do Loop循环的执行过程。
答案:略,请参考3.11.2节的讲解。
(10)如何将两个变量的值互换?(提示:用一个中间变量)
答案:首先定义一个中间变量,将第一个变量的值赋给中间变量,然后再将第二个变量的值赋给第一个变量,最后将中间变量的值赋给第二个变量,这样就实现了两个变量值的互换。
3. 实践题
(1)请在你的个人主页上添加时间显示信息,显示当天的日期、时间及星期几。
答案:参见asptemptj/chapter3/Time_list.asp,注意学习select case的写法, 并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Time_list.asp即可访问,清单如下:
清单Time_list Time_list.asp. 显示时间信息代码
<html>
<head>
<title>习题3-2-(1)</title>
</head>
<body>
<%
Response.Write Date() & " " & Time()
Select Case Weekday(Date())
Case 1
Response.Write "星期日"
Case 2
Response.Write "星期一"
Case 3
Response.Write "星期二"
Case 4
Response.Write "星期三"
Case 5
Response.Write "星期四"
Case 6
Response.Write "星期五"
Case 7
Response.Write "星期六"
End Select
%>
</ head >
</ html >
(2)请编写程序段,判断当天日期,如果是25日,则显示“请注意,明天可能有病毒发作”。 答案:参见asptemptj/chapter3/Date_meg.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Date_meg.asp即可访问,清单如下:
清单Date_meg Date_meg.asp. 判断当天日期
<html>
<body>
<%
If Day(Date())=25 Then
Response.Write "请注意:明天可能有病毒发作。"
End If
%>
</ body >
</ html >
(3)请编写程序段,随机产生一个0到9的整数。如果是偶数,则在页面上输出“生成的是偶数”,否则输出“生成的是奇数”。
答案:参见asptemptj/chapter3/Random.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Random.asp即可访问,清单如下:
清单Random.asp 判断奇偶数码
<html>
<body>
<%
Dim s
s=Int(10 * Rnd())
If (s Mod 2)=0 Then
Response.Write "生成的是偶数"
Else
Response.Write "生成的是奇数"
End if
%>
</ body >
</ html >
(4)S=12+32+52+ +992,请利用两种循环语句编写程序,计算S的值。
答案:参见asptemptj/chapter3/Cycle.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Cycle.asp即可访问,清单如下:
清单Cycle Cycle.asp 计算平方和
<html>
<body>
<%
'第1种算法:
Dim I,Sum
Sum=0
For I=1 To 99 Step 2
Sum=Sum+I^2
Next
Response.Write "S=" & Sum
%>
<p>
<%
'第2种算法
I=1
Sum=0
Do While I<=99
Sum=Sum+I^2
I=I+2
Loop
Response.Write "S=" & Sum
%>
</ body >
</ html >
(5)请编写函数计算a到b的立方和,并举例调用,调用时a、b分别为3和6。
答案:参见asptemptj/chapter3/Cute_sum.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Cute_sum.asp即可访问,清单如下:
清单Cute_sum.asp 计算立方和
<html>
<body>
<%
'下面是函数
Function lifanghe(a,b)
Dim Sum,I
Sum=0
For I=a To b
Sum=Sum+I^3
Next
lifanghe=Sum
End Function
'下面是主程序,用来调用
Dim S
S=lifanghe(3,6)
Response.Write "立方和=" & S
%>
</ body >
</ html >
(6)请编写函数能够随机产生从a到b之间的整数,并举例调用。
答案:参见asptemptj/chapter3/Rnd_ab.asp,注意产生a到b之间随机整数的写法为:Int((b-a+1)*Rnd)+a,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Rnd_ab.asp即可访问,清单如下:
清单Rnd_ab Rnd_ab.asp 产生从a到b之间随机数
<html>
<body>
<%
'下面是函数
Function Rndab(a,b)
Rndab=Int((b-a+1)*Rnd)+a
End Function
'下面是主程序,用来调用
Dim S
S=Rndab(3,10)
Response.Write "产生3到10之间的一个随机整数为" & S
%>
</ body >
</ html >
(7)请结合示例3-13开发一个函数,使其能实现Join函数的功能。
答案:参见asptemptj/chapter3/Join.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/Join.asp即可访问,清单如下:
清单Join Join.asp 构造Join函数
<% Option Explicit '强制声明变量%>
<html>
<body>
<%
'下面是将全部数组元素连接在一起的函数
Function join_string(S_temp)
Dim strSum,Item
For Each Item in S_temp '执行循环,取出每个元素
strSum=strSum & Item
Next
join_string=strSum
End Function
'下面是主程序,用来调用
Dim S(3) '定义一个数组
Dim Return_string
S(0)="a"
S(1)="b"
S(2)="c"
S(3)="--end--"
Return_string=join_string(S)
Response.Write "全部数组元素连接成的字符串为" & Return_string
%>
</body>
</html>
(8)请在示例3-14的基础上增加一段代码,从而可以计算所有数组元素的平方和。(提示:请用嵌套循环)
答案:参见asptemptj/chapter3/Pingfanghe.asp,并打开浏览器,在其中输入http://localhost/asptemptj/chapter3/ Pingfanghe.asp即可访问,清单如下:
清单Pingfanghe Pingfanghe.asp 计算所有数组元素的平方和
<% Option Explicit '强制声明变量%>
<html>
<body>
<%
Dim intA(9,9),intSum '声明一个10行10列的二维数组
Dim I,J 'I是外层循环计数器变量,J是内层循环计数器变量 For I=0 To 9 '外层循环
For J=0 To 9 '内层循环
intA(I,J)=10 '给每一个元素赋初值10
Next
Next
For I=0 To 9 '外层循环
For J=0 To 9 '内层循环
intSum=intSum+intA(I,J)^2 '给每一个元素赋初值10
Next
Next
Response.write "该数组元素的平方和是"& intSum