注册 登录
编程论坛 ASP.NET技术论坛

.NET面试题

misswang 发布于 2010-07-12 17:37, 1588 次点击
1). 你用过.NET哪些框架,说说其优缺点?
2). 在下面...处添加代码,来获取哪个按钮被选中
    function fun(){
        .....
    }
<form>
    <input type=radio groupname="abc">
    <input type=radio groupname="abc">
    <input type=radio groupname="abc">
    <input type=button onclick="fun()">
</form>
3)有A,B,C,D四个人晚上要过一个桥,分别通过桥的时间是1,2,5,10分钟。只有一个手电筒,每次只能通过两个人,请你写一个方法用时17分钟过桥。
4)像如下字符串  2009/1/2  
                 2010/10/2
                  1/2 2010
                2010-1-2
    写个小函数来使这些字符串变为 2009/01/02
                                 2010/10/02
                                01/02 2010
                                2010-01-02
此题有三个点,一个是判断比10小的数 ,二是给比10小的数加前加0,三是再输出
5).叙

[ 本帖最后由 misswang 于 2010-7-13 10:02 编辑 ]
13 回复
#2
冰镇柠檬汁儿2010-07-12 18:09
1).那可多了,jquery、mvc等等很多,优点……口述开差不多,要是手写,太浪费时间了
2).居然这样,form.abc.value不知道对不对
3).不就是用A带B C D过桥吗?用时间最短的那个人带其他人过桥而已,正好17分钟,但问题是A那个人就不用回来了吗?不回来怎么带下一个人?所以总用时应该是19分钟
#3
bygg2010-07-12 18:20
程序代码:
<html>
<head>
    <title>test</title>
    <script>
        function fun() {
            for(var i=0;i<form1.abc.length;i++){
                if (form1.abc[i].checked) {
                    alert(form1.abc[i].value);
                }
            }
        }     
    </script>
</head>
<body>
    <form id="form1">
        <input type=radio name="abc" value="1"/><br>
        <input type=radio name="abc" value="2"/><br>
        <input type=radio name="abc" value="3"/><br>
        <input type=button onclick="fun()" value="Test"/>
    </form>
</body>
</html>

===========================================

1、2 -->   花2分钟
    1回来  花1分钟
5、10 -->  花10分钟
    2 回来 花2分钟
1、2 -->   花2分钟


顺便说一下:冰镇柠檬汁儿 有些笨

[ 本帖最后由 bygg 于 2010-7-12 18:35 编辑 ]
#4
冰镇柠檬汁儿2010-07-12 21:29
回复 3楼 bygg
看来这回丢人了

[ 本帖最后由 冰镇柠檬汁儿 于 2010-7-12 22:04 编辑 ]
#5
冰镇柠檬汁儿2010-07-12 21:41
function fun() {
            for(var i=0;i<form1.abc.length;i++){
                if (form1.abc[i].checked) {
                    alert(form1.abc[i].value);
                }
            }
        }   

bygg我觉得这种代码不够标准,如果用getElevmentByID的方式能做到这样的效果吗,我觉得这样的方式可能更规范些
你的这个代码我试过了,至少IE和火狐都支持。
还有,如果是复选框,是不是你的代码也能用呢?请教了


[ 本帖最后由 冰镇柠檬汁儿 于 2010-7-12 21:45 编辑 ]
#6
冰镇柠檬汁儿2010-07-12 22:02
哈哈,自己写出来了
<html>
<head>
    <title>test</title>
    <script type="text/javascript">
        function funRadio() {
            for(var i = 0; i < form1.abc.length; i++){
                if (form1.abc[i].checked) {
                    alert(form1.abc[i].value);
                }
            }
        }

        function funCheckbox() {
            var printbing = "";
            for (var i = 0; i < form1.iambing.length; i++) {
                if (form1.iambing[i].checked) {
                    printbing += form1.iambing[i].value + ",";
                }
            }
            alert(printbing.substr(0, printbing.length - 1));
        }
    </script>
</head>
<body>
    <form id="form1">
        <input type="radio" name="abc" value="1"/>1<br />
        <input type="radio" name="abc" value="2"/>2<br />
        <input type="radio" name="abc" value="3"/>3<br />
        <input type="button" onclick="funRadio();" value="Test"/>
        <br />
        <input type="checkbox" name="iambing" value="1" />1<br />
        <input type="checkbox" name="iambing" value="2" />2<br />
        <input type="checkbox" name="iambing" value="3" />3<br />
        <input type="checkbox" name="iambing" value="4" />4<br />
        <input type="button" onclick="funCheckbox();" value="Test"/>
    </form>
</body>
</html>

不够除了这种方式外,还有别的方式吗?bygg
#7
bygg2010-07-13 09:32
因为radio和checkbox一般都会以组的形式出现,所以通过name(也就是组名)来进行取舍判断,是最快的。
别的方法就是遍历所有的元素,这个当然可以做到,但是无疑多了判断,也复杂化了,而且如何元素太多,影响效率。

用getElevmentByID同样可以做到。但是你也得用循环吧
而且也得给radio命名,最好是以规则命名,如:radio1、radio2、radio3……
这样在判断的时候也方便一些
for(i= 1 ; i< N; i++)
{
    if(document.getElevmentByID("radio"+i) != null)
    {
        if(document.getElevmentByID("radio"+i).checked)
        ……
    }
    else{   
        break;
    }
}


我知道的,也就这样的方法,呵呵。不知还有没有更简洁的了。

[ 本帖最后由 bygg 于 2010-7-13 09:37 编辑 ]
#8
冰镇柠檬汁儿2010-07-13 09:35
主要是这种方法不是很规范,但是我想过,如果使用id,那肯定是你说的那样,增加了大量的判断,反而会影响效率。其他的我也不知道了,看来只有这个办法了。
#9
bygg2010-07-13 09:49
我想知道你所说的不规范是什么,呵呵
#10
冰镇柠檬汁儿2010-07-13 13:06
我记得以前的公司不让用form1.iambing.length这样的代码,说这样的代码不规范,可能造成某些浏览器不支持,尽量都用getElevmentByID的方式,呵呵
#11
gq1987182010-07-13 14:29
4)像如下字符串  2009/1/2  
                 2010/10/2
                  1/2 2010
                2010-1-2
    写个小函数来使这些字符串变为 2009/01/02
                                 2010/10/02
                                01/02 2010
                                2010-01-02
此题有三个点,一个是判断比10小的数 ,二是给比10小的数加前加0,三是再输出
#include<iostream>
#include<string>
using namespace std;

void main()
{
string strData="2009/1/2";
string strTemp;
string str2;
int CurrentIndex=0;
while(strData.find("/")!=string::npos){
strTemp=strData.substr(0,strData.find_first_of("/"));
strData=strData.substr(strData.find_first_of("/")+1);
if(strTemp.length()<=2)strTemp="0"+strTemp;
str2+=strTemp+"/";
}
str2.substr(0,str2.length()-1);
if(strData.length()<=2)strData="0"+strData;
str2+=strData;
printf(str2.c_str());

system("pause");

getchar();
}
#12
gq1987182010-07-13 14:32
4)像如下字符串  2009/1/2  
                 2010/10/2
                  1/2 2010
                2010-1-2
    写个小函数来使这些字符串变为 2009/01/02
                                 2010/10/02
                                01/02 2010
                                2010-01-02
此题有三个点,一个是判断比10小的数 ,二是给比10小的数加前加0,三是再输出
#include<iostream>
#include<string>
using namespace std;

void main()
{
string strData="2009/1/2";
string strTemp;
string str2;
int CurrentIndex=0;
while(strData.find("/")!=string::npos){
strTemp=strData.substr(0,strData.find_first_of("/"));
strData=strData.substr(strData.find_first_of("/")+1);
if(strTemp.length()<=2)strTemp="0"+strTemp;
str2+=strTemp+"/";
}
str2.substr(0,str2.length()-1);
if(strData.length()<=2)strData="0"+strData;
str2+=strData;
printf(str2.c_str());

system("pause");

getchar();
}
#13
aei1352010-07-14 12:09
用document.getElementsByName好了
 function funRadio() {
            for(var i = 0; i < document.getElementsByName["abc"].length; i++){
                if (document.getElementsByName("abc")[i].checked) {
                    alert(document.getElementsByName("abc")[i].value);
                }
            }
        }
#14
fdming2010-11-04 11:15
第三个  改进了了
程序代码:
            string strData = "1/2/2009";
            string strTemp="";
            string str2="";
            //int CurrentIndex=0;
            string[] a=strData.Split('/');
            for (int i = 0; i < a.Length; i++)
            {
                //strTemp = strData.Substring(0, strData.IndexOf("/"));
               
//strData = strData.Substring(strData.IndexOf("/") + 1);
               
//if (strTemp.length() <= 2) strTemp = "0" + strTemp;
               
//str2 += strTemp + "/";

                if (a[i].Length <= 2)
                {
                    strTemp = "0" + a[i];
                    str2 += strTemp + "/";
                }
                else {
                    strTemp = a[i];
                    str2 += strTemp + "/";
                }
               

            }
            str2=str2.Substring(0, str2.Length - 1);
            return str2;

 
1