《Java语言程序设计》综合练习
2005.6.
五、综合练习
(一)填空题
1.写出下面数学代数式的JavaScript表达式。
(1) | a+b | _______________________________________ |
c+d |
(2)sin(x+30°) ____________________________________(P101)
(3) | x | 开平方_________________________________(P101) |
a+2 |
(4)x的12方 + 10的18方_____________________________(P39倒3)(P101)
2.设a=3,b=7,x="abce计算机abcde",t=true,求下面各式的值。
(1)Math.floor(b/a) __________________(P101)
(2)x.substring(a,b) __________________(P104)
(3)x.charAt(a) __________________(P104)
(4)String.fromCharCode(a*b+44) __________________(返回字符编码为n的字符)
(5)x.toUpperCase() __________________(P104)
(6)Math.round(b/2) __________________(P101)
(7)x.indexOf("ce") __________________(查找第一次出现“ce”的位置)
(8)x.length __________________(P104)
(9)b>a && t __________________(P46)
(10)t ? a : b __________________(P49)
(二)简答题
1. JavaScript有哪些数据类型?(P39-5)
2. 如何创建Date对象?Date对象有哪能些常用方法?(P102倒12)
3. 简单比较Date对象、Math对象及String对象的异同?(P100)(P101)(P104)
4. 用JavaScript在网页上实现动画的原理是什么?(P11-20)
5. 解释:HTML、DHTML、CSS、DOM、W3C
(P11-4、17、25)(P142-5)(P111-9)
W3C:万维网联盟,促进网络演进,保证共同使用的共同协议。
6. write()是什么对象的方法,如何使用?(P126)
7. 表单对象有哪些常用元素?(P33)
8. 常用的鼠标事件和键盘事件有哪些?(P113)(P117)
常用的鼠标事件有:
onClick —— 单击鼠标
onDblClick —— 双击鼠标
onMouseDown —— 按下鼠标键
onMouseUp —— 松开鼠标键
onMouseMove —— 移动鼠标
onMouseOver —— 鼠标移入对象
onMouseOut —— 鼠标移出对象
常用的键盘事件有:
onKeyPress —— 按了键盘按键
onKeyDown —— 按下键盘按键
onKeyUP —— 松开键盘按键
(三)编程题
1.用for语句编程序求:
(1)求 1、4、7、…… 331等差数列的和。S=1+4+7+……+331
(2)求 1!、2!、…… 20!阶乘的和。M=1!+2!+3!+ …… +20!
2.由用户输入两个数,如果第一个数能被第二个数整除,显示“YES”,否则显示“NO”。
要求:如果输入的内容不是数值,给出提示,并让用户重新输入。
3.页面上某段的HTML描述为:
<p>当前时间:<span id="dt"></span></p>
编写程序在该段中显示一个实时时钟,只包括时分秒,当时分秒不足两位时,前面补0。
4.随机产生一个20到60间的整数并显示,直到该数为40时,程序结束。
5.分别编写具有下面功能的自定义函数。
(1)删除字符串的所有空格。function trim(s)
(2)判断一个数是否是整数。function isint(n)
(3)求字符串的反序字符串。function uord(s)
(4)随机产生一种颜色代码。function mcolor()(P151)
6.页面上有一图片,HTML描述如下:
<body onKeyPress="mvpic();">
<div id="pic" style="position:absolute; left:50px; top:50px;
width:100px; height:80px; z-index:1; background-image: url(duck.gif); "></div>
</body>
编写程序,使按键盘的数字键8、2、4、6时可对图片进行上、下、左、右移动。
7.页面上有两段文字,HTML描述如下:
<p>这是第一段</p>
<p>这是第二段</p>
请修改其HTML描述,并编写相应的程序,使鼠标点击某一段时,该段隐藏,另一段显示。
8.一个表单有姓名和电话号码两个文本域,其HTML描述如下:
<form name="form1" method="post" action="data.asp" onSubmit="return vf();">
姓名<input type="text" name="xm">
电话<input type="text" name="dh">
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</form>
要求这两项内容都要填写,且电话号码必须是8位以上的数字。请编写相应的表单检验程序。
六、综合练习参考答案
(一)填空题
1.
(1) (a+b)/(c+d)
(2) Math.sin(x+30*Math.PI/180)
(3) Math.sqrt(x /(a+2))
(4) Math.pow(x,12)+ 1E18
2.
(1)2 (2)e计算机 (3)e (4)A (5)ABCE计算机ABCDE
(6)4 (7)2 (8)12 (9)true (10)3
(二)简答题
1. JavaScript有哪些数据类型?
2. 如何创建Date对象?Date对象有哪能些常用方法?
3. 简单比较Date对象、Math对象及String对象的异同?
4. 用JavaScript在网页上实现动画的原理是什么?
5. 解释:HTML、DHTML、CSS、DOM、W3C
6. write()是什么对象的方法,如何使用?
7. 表单对象有哪些常用元素?
8. 常用的鼠标事件和键盘事件有哪能些?
(三)编程题
1.
(1)求 1、4、7、……331 等差数列的和。
for (i=1,s=0;i<=331;i+=3) s+=i;
alert("1+4+7+......+331=" + s);
(2)求 1!、2!、…… 20!阶乘的和。
for (i=1,n=1,m=0;i<21;i++){
n=n*i;
m=m+n;
}
alert("1!+2!+3!+......+20!=" + m);
2.判断用户输入的两个数能否整除。
while (1){
x=parseFloat(prompt("请输入第一个数:"));
if (Math.abs(x)>0) break;
alert("输入无效,请重新输入!");
}while (1){
y=parseFloat(prompt("请输入第二个数:"));
if (Math.abs(y)>0) break;
alert("输入无效,请重新输入!");
}
if (x%y = = 0)
alert("YES");
else
alert("NO");
3.显示时钟。
setInterval("tt()",1000);
function tt(){
d = new Date();
h = d.getHours();
m = d.getMinutes();
s = d.getSeconds();
t = ((h<10)?("0"+h):h) + ":" + ((m<10)?("0"+m):m) + ":" + ((s<10)?("0"+s):s);
dt.innerHTML = t;
}
4.显示20到60间的随机整数。
i=0;
do{
i++;
x=Math.floor(Math.random()*41+20);
alert("第"+i+"个数是:"+x);
}while (x!=40)
5.
//(1)删除字符串的所有空格。例如:ab cd ef ---- abcdef
function trim(s){
var c=""
for (var i=0;i<s.length;i++){
var c0=s.charAt(i);
if (c0!=" " && c0!=" ") c+=c0;
}
return c;
}
//(2)判断一个数是否是整数。例如:2、2.5。
function isint(n){
if (Math.floor(n) = = n)
return true;
else
return false;
}
//(3)求字符串的反序字符串。例如:abcdef ---- fedcba。
function uord(s){
var c="";
for (var i=s.length-1;i>=0;i--){
var c0=s.charAt(i);
c+=c0;
}
return c;
}
//(4)随机产生一种颜色代码。方法1
function mcolor(){
var c="#"; //颜色代码:#RRGGBB(P151)
for (var i=1;i<=6;i++){ //循环产生6个颜色代码
var n=Math.floor(Math.random()*16); //产生0到15的随机数
n=(n<10) ? n : String.fromCharCode(n+55); //转换成十六进制:0、1、……9、A、B、C、D、E、F
c+=n;
}
return c;
}
//(4)随机产生一种颜色代码。方法2
function mcolor2(){
var m=0xFFFFFF + 1;
var n=Math.floor(Math.random()*m);
c="000000" + n.toString(16);
return c.substring(c.length-6);
}
6.按键盘移动图片。
function mvpic(){
var n=String.fromCharCode(event.keyCode);
switch (n) {
case "8":
pic.style.pixelTop--;
break;
case "2":
pic.style.pixelTop++;
break;
case "4":
pic.style.pixelLeft--;
break;
case "6":
pic.style.pixelLeft++;
break;
}
}
7.隐藏、显示段落。
HTML描述修改为:
<p id="p1" onClick="hv();">这是第一段</p>
<p id="p2" onClick="hv();">这是第二段</p>
程序如下:
function hv(){
if (p1.style.visibility=="visible"){
p1.style.visibility="hidden";
p2.style.visibility="visible";
}else{
p1.style.visibility="visible";
p2.style.visibility="hidden";
}
}
8.检验电话号码必须是8位以上的数字。
function vf(){
if (document.form1.xm.value==""){
alert("姓名不能为空!");
return false;
}
var tel=document.form1.dh.value;
for (var i=0;i<tel.length;i++){
var c=tel.charAt(i);
if (c<"0" || c>"9") break;
}
if (i<8){
alert("电话号码必须是8位以上的数字!");
return false;
}
return true;
}