前端基础练习题

/*

    变量命名规则:

    1.只能由字母、数字、下划线、美元符号组成,并且不能以数字开头。

    2.变量命名要有意义,杜绝a01,b0046。

    3.变量遵循小驼峰规则:第一个单词全小写,从第二个单词开始,首字母大写。 myColorArray

        - 大驼峰:每个单词首字母大写。myDemo

        - C语言的风格:单词全小写,中间用下划线隔开。my_color_array

    4.变量名不能和系统关键字冲突。

    */

// (1) 循环求和:利用循环语句计算从100加到500的后的总和。

var sum = 0; //用于存放累加和的变量

    for (var i = 100; i < 501; i++){

        sum += i;

    }

    document.write(sum);

// (2) 字符判断:从键盘输入一个字符,判断这个字符是数字,

// 还是大写字母,还是小写字母,还是符号。

//输入字符串 adf 2332afd

    var content = prompt();

                //得到这个字符串的第一位的ascii码

                var code = content.charCodeAt(0);

                if (code >=48 && code <=57){

                    document.write("是数字!");

                }

                if( code >= 65 && code <= 90 ){

                    document.write("大写字母!");

                }

                if( code >= 97 && code <= 122 ){

                    document.write("小写字母!");

                }else {

                    document.write("符号!");

                }

 

// (4) 水仙花数:计算三位整数(100~999)的水仙花数。

// 水仙花数是指每一位的立方相加等于该数自己,比如153 = 1^3 + 5^3 + 3^3。

//从100遍历到999

    for (var i = 100; i < 1000; i++){

            //分别得到i的个十百位

            //百位:除以100再取整

            var a = parseInt(i / 100);

            //十位:除以10再取整,对10取余

            var b = parseInt(i / 10) % 10;

            //个位:对10取余

            var c = i % 10;

            //如果a、b、c的三次方之和等于i本身,那就是水仙花数

            //if在for中起了过滤的作用

            if ( a*a*a + b*b*b + c*c*c == i ){

                document.write(i + "<br/>");

            }

        }


    //抽象一下:用i、j、k分别表示百十个位

    1

      for (var i = 1; i < 10; i++){

            for (var j = 0; j < 10; j++){

                for (var k = 0; k < 10; k++){

//                    document.write(i+""+j+""+k+"<br/>");

                    //进行if判断,过滤

                    var number = i*100 + j*10 + k;

                    if ( i*i*i + j*j*j + k*k*k ==  number){

                        document.write(number + "<br/>");

                    }

                }

            }

        }

   

// (5) 次方计算:计算X的Y次方,X(底数)和Y(指数)的值由用户输入。

//次方:2^3: 2 * 2 * 2 2^-3: 1/2*2*2 公理:任何数的0次方都为1

    var x = parseInt(prompt("请输入底数:")); //2

        var y = parseInt(prompt("请输入指数:")); //3

        //保存相乘的结果

        var result = 1;

        /*

        1: result 1      2 = 1 * 2

        2:  result 2      4  = 2 * 2

        3: result 4        8  = 4 * 2

        4:result 8

        */

        if (y>0){

            //对y是正数的情况下的处理

            for ( var i = 0; i < y; i++){

                result = result * x;

            }

        }else{

            //y是负数,让y等于正数

            for ( var i = 0; i < -y; i++){

                result = result * x;

            }

            //将result求倒

            result = 1 / result;

        }

        document.write(result);


// (6) 统计字符:从键盘输入一个字符串,统计这个字符串当中包含几个大写字母,

// 几个小写字母,几个数字,几个特殊符号。

//输入字符串

    var content = prompt("请输入字符串:"); //1234abc

//        document.write(content.length);

        //定义一些变量去保存个数

        var countNumber = 0;

        var countBig = 0;

        var countSmall = 0;

        var countChar = 0;

        //遍历字符串的每一位 1a2b3C

        for ( var i = 0; i < content.length; i++){

            //得到当前位的ascii码

            var code = content.charCodeAt(i);

            //判断这一位字符是在哪个区间

            if (code >=48 && code <=57){

                countNumber ++;

            }else if( code >= 65 && code <= 90 ){

                countBig ++;

            }else if( code >= 97 && code <= 122 ){

                countSmall ++;

            }else {

                countChar ++;

            }

        }

        document.write("数字的个数:"+countNumber + "<br/>");

        document.write("大写的个数:"+countBig + "<br/>");

        document.write("小写的个数:"+countSmall + "<br/>");

        document.write("字符的个数:"+countChar + "<br/>");

 

// (7) 抓球问题:有红球5个,黑球7个,白球9个,随机取出12个,

// 计算可能的颜色组合有多少种?

    var count = 0;

        //用三个循环变量分别代表三种球

        for (var r = 0; r <= 5; r++){

            for (var b = 0; b <= 7; b++){

                for (var w = 0; w <= 9; w++){

                    //筛选满足我们条件的情况

                    if ( r + b + w == 12){

                        document.write("红球:" + r + ", 黑球:" + b + ", 白球:" + w +"<br/>");

                        count++;

                    }

                }

            }

        }

        document.write("种数为:" + count);

(8) 组合问题:用1元纸币兑换1分,2分和5分的硬币,要求兑换总数为50枚,

// 问可以有多少种组合,每种组合对应1分,2分,5分分别是多少?

//i代表1分,j代表2分,k代表5分

  var count = 0; //计数器

        for(var i = 0; i <= 100; i++){

            for ( var j = 0; j <= 50; j++){

                for ( var k = 0; k <= 20; k++){

                    //过滤总数为50且面值和为100分的情况

                    if (i+j+k==50 && i+2*j+5*k == 100){

                        document.write(i + ", " + j + ", " + k +"<br/>");

                        count ++;

                    }

                }

            }

        }

        document.write(count);

// (9) 九九乘法表:尝试用for循环完成九九乘法表输出。要求:三角形输出。

    for(var i=1;i<10;i++) {

            document.write("<br>");

            for (var j=1; j <= i; j++) {

                if(i*j<10){

                    document.write("&nbsp&nbsp");

                }

                document.write(i + "*" + j + "=" + i * j + "&nbsp&nbsp&nbsp");

                }

        }

// (10) 字符串判断:从键盘输入一个字符串,

// 判断该字符串是否可以被转换为一个有效的数字。正整数

//123 abc 判断每一位的ascii码是否都在数字的区间

  var content = prompt("请输入:");

        for ( var i = 0; i < content.length; i++ ){

            //获取当前位的ascii码

            var code = content.charCodeAt(i);

            if (code >= 48 && code <=57){

                document.write("是数字!");

            }else{

                document.write("不是数字!");

            }

        }

 

    //上面的这种做法:每判断一个字符,就得出一个结论。

    1

  var content = prompt("请输入:");

        //利用一个变量打标记

        var isNumber = true; //是true就是纯数字,是false就不是纯数字。

        //123a45  12345

        for ( var i = 0; i < content.length; i++ ){

            //获取当前位的ascii码

            var code = content.charCodeAt(i);

            //判断是否有某一位不是数字区间的情况

//            if ( !(code >= 48 && code <=57)){

            if ( code < 48 || code > 57){

                isNumber = false;

                break;

            }

        }

        //通过前面的逻辑处理,已经得到了一个结果。isNumber

        if ( isNumber ){

            document.write("是数字!");

        }else{

            document.write("不是数字!");

        }


// (11) 用户输入一个数字,倒序输出,并计算每一位数字的和。

方法一:

        var content = prompt('input:');

        var sum = 0;

        //abcd

        for ( var i = content.length - 1; i >= 0; i--){

            document.write(content[i]);

            sum = sum + parseInt(content[i]);

        }

        document.write(sum);

    方法二:

        var number = parseInt(prompt('input:'));

        var sum = 0;

        while (number){

            var value = number%10;

            document.write(value);

            sum = sum + value;

            number = parseInt(number / 10);

        }

        /*

        1.number 1234  value 4  sum 4 = 0 + 4  number 123

        2.number 123    value 3  sum 7 = 4 + 3  number 12

        3.number 12    value 2  sum 9 = 7 + 2  number 1

        4.number 1    value 1  sum 10 = 9 + 1  number 0

        5.number 0 - 循环结束

        */

        document.write("<br/>"+sum);


// (12)猜数字游戏,猜数字游戏,系统随机生成一个1000以内的数字,

// 用户输入一个数字,如果输入数字大于系统数字则提示‘大了’,反之提示‘小了’,

// 直到相等游戏结束,提示‘通关’ 并输出猜测次数。(提示:用到Math模块)

//Math.random()生成一个0-1的随机数

var randomNumber = parseInt(Math.random() * 1000);

// document.write(randomNumber + “

”);

// var count = 0; //计数器

//猜测一万次

// var randomNumber = parseInt(Math.random() * 1000);

// document.write(randomNumber + “

”);

// var count = 0; //计数器

//猜测一万次

// for ( var i = 0; i < 10000; i++){

//死循环

      while(true){

            count ++;

            var myNumber = parseInt(prompt('请输入数字:'));

            //比较我输入的和随机的这个数是否一致

            if( myNumber > randomNumber ){

                document.write('大了!');

            }else if ( myNumber < randomNumber ){

                document.write('小了!');

            }else{

                document.write('恭喜通关!');

                break;

            }

        }

        document.write('总共猜测了 <' + count+ '> 次!');

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容