《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;

}