精华内容
下载资源
问答
  • 46家IT企业面试笔试题目集锦 46家IT企业面试笔试题目集锦
  • PHP宝典面试笔试题目

    2018-12-08 12:37:15
    PHP宝典面试笔试题目 来自《PHP程序员面试笔试宝典》,涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书。   PHP题目 【真题68】 ( )操作符在两个操作数中有一个...

    PHP宝典面试笔试题目

    来自《PHP程序员面试笔试宝典》,涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书。

     

    PHP题目

    真题68】 (    )操作符在两个操作数中有一个(不是全部)为 True 时返回 True。

    参考答案:逻辑异或(xor)运算符。

     

    【真题61】 执行如下程序段:

    <?php

        echo 24%(-5);

    ?>

     

    程序的输出结果是(    )。

    A.5 B.4 C.-4 D.19

    参考答案:B。

    分析:在PHP中,取模运算符%的操作数在运算之前都会转换成整数(除去小数部分)。其运算结果和被除数的符号(正负号)相同。即$a%$b的结果和$a的符号相同。本题中,24%(-5)的符号为正,结果为4。所以,选项B正确。

     

    【真题181】 写一个函数,算出两个文件的相对路径。例如,$a = \/a/b/c/d/e.php\;,$b =  \/a/b/12/ 34/c.php\;,计算出 $b 相对于 $a 的相对路径应该是 ../../c/d。

    参考答案:示例代码如下:

    function getRelativepath($a, $b) {

    $returnpath = array(dirname($b));

    $arrA = explode(' \/\ ', $a);

    $arrB = explode(' \/\ ', $returnpath[0]);

    for ($n = 1, $len = count($arrB); $n < $len; $n++) {

    if ($arrA[$n] != $arrB[$n]) {

    break;

    }

    }

    if ($len - $n > 0) {

    $returnpath = array_merge($returnpath, array_fill(1, $len - $n, "\..\ "));

    }

    $returnpath = array_merge($returnpath, array_slice($arrA, $n));

    return implode(' \/\ ', $returnpath);

    }

    $a = "\/a/b/c/d/e.php\";

     

    $b = "\/a/b/12/34/c.php\";

    echo getRelativepath($a, $b);

     

     

    【真题182】 以下关于PHP文件处理的说法中,正确的是(    )。

    A.filegetcontents()函数能用来抓取网页数据,但是没办法设置超时时间

    B.file()函数既能读取文本文件也能读取二进制文件,但是读取二进制文件有可能出现安全问题

    C.如果表单中没有选择上传的文件,则 PHP 变量的值将为NULL

    D.fsockopen()和fputs()结合起来可以发送邮件,也可以用来抓取网页内容、下载ftp文件等

    参考答案:C。

    分析:对于选项A,可以通过context参数设置超时时间。所以,选项A错误。

    对于选项B,file()函数是可以安全用于读取二进制文件的。所以,选项B错误。

    对于选项C,表单中没有文件上传时,PHP的$_FILES变量值为NULL。所以,选项C正确。

    对于选项D,fputs()用于写入字符串到文件中,只能用于上传不能用于下载ftp文件。所以,选项D错误。

     

    【真题215】 按要求写出SQL实现。

    1)创建新闻发布系统,表名为message,有如下字段:

    id 文章id

    title 文章标题

    content 文章内容

    category_id 文章分类id

    hits 点击量

     

    参考答案:

    CREATE TABLE 'message'(

    'id' int(10) NOT NULL auto_increment,

    'title' varchar(200) default NULL,

    'content' text,

    'category_id' int(10) NOT NULL,

    'hits' int(20),

    PRIMARY KEY('id');

    )ENGINE=InnoDB DEFAULT CHARSET=utf8;

     

    2)同样上述新闻发布系统:表comment记录用户回复内容,字段如下:

    comment_id 回复id

    id 文章id,关联message表中的id

    comment_content 回复内容

     

    现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面。

    文章id 文章 标题 点击量 回复 数量

     

    用一个SQL语句完成上述查询,如果文章没有回复,则回复数量显示为0。

    参考答案:

    SELECT message.id id,message.title title,IF(message.'hits' IS NULL,0,message. 'hits') hits,

    IF(comment. 'id' is NULL,0,count(*)) number FROM message LEFT JOIN

    comment ON message.id=comment.id GROUP BY message. 'id';

     

    上述内容管理系统,表category保存分类信息,字段如下:

    category_id int(4) not null auto_increment;

    category_name varchar(40) not null;

     

    3)用户输入文章时,通过选择下拉菜单选定文章分类,写出如何实现这个下拉菜单。

    参考答案:

    function categoryList()

    {

            $result=mysql_query("select category_id,categroy_name from category")

                or die("Invalid query: " . mysql_error());

     

            print("<select name='category' value=''>/n");

            while($rowArray=mysql_fetch_array($result))

            {

           print("<optionvalue='".$rowArray['category_id']."'>".$rowArray['categroy_name']."</ option>/n");

            }

            print("</select>");

    }

     

     

    【真题216】 使用PHP写一段简单查询,查出所有姓名为“张三”的内容并打印出来。

    表名User

    Name    Tel      Content      Date

    张三 13333663366 大专毕业 2006-10-11

    张三 13612312331 本科毕业 2006-10-15

    张四 021-55665566 中专毕业 2006-10-15

     

    参考答案:根据上面的题目完成代码:

    $mysql_db=mysql_connect("local","root","pass");

    @mysql_select_db("DB",$mysql_db);

     $result = mysql_query("SELECT * FROM 'user' WHERE name='张三'");

     while($rs = mysql_fetch_array($result)){

         echo $rs["tel"].$rs["content"].$rs["date"];

      }

     

     

    【真题217】 考虑如下SQL语句,哪个选项能对返回记录的条数进行限制?(    )(双选)

    SELECT * FROM MY_TABLE

     

    A.如果可能,那么把查询转换成存储例程

    B.如果程序允许,那么给查询指定返回记录的范围

    C.如果可能,那么添加 where 条件

    D.如果DBMS允许,那么把查询转换成视图

    参考答案:B、C。

    分析:有两个方法能限制返回记录的条数——使用 where 条件或limit关键字指定查询返回的记录的范围。

    通常情况下,如果没有特殊需要,那么尽量不要用 select *,这会浪费大量的数据缓存。

     

    【真题218】 执行以下 SQL 语句后将发生(    )。

    BEGIN TRANSACTION

    DELETE FROM MYTABLE WHERE ID=1

    DELETE FROM OTHERTABLE

    ROLLBACK TRANSACTION

     

    A.OTHERTABLE 中的内容将被删除

    B.OTHERTABLE 和 MYTABLE 中的内容都会被删除

    C.OTHERTABLE 中的内容将被删除,MYTABLE 中 ID 是 1 的内容将被删除

    D.数据库没有变化

    参考答案:D。

    分析:这个查询是一个事务,并且这个事务的最后有回滚,数据库不会有变化。

     

     

    Mysql题目

    一、如何进行数据库优化?

    数据库优化的过程可以使用以下的方法进行:

    1)选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份、性别',最好设置为ENUM。

    2)使用连接(JOIN)来代替子查询。

    ① 删除没有任何订单客户:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)。

    ② 提取所有没有订单客户:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)。

    ③ 提高b的速度优化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo. customerid=orderinfo.customerid WHERE orderinfo.customerid IS NULL。

    3)使用联合(UNION)来代替手动创建的临时表。创建临时表:SELECT name FROM 'nametest' UNION SELECT username FROM 'nametest2'。

    4)事务处理。保证数据完整性,例如添加和修改。同时,如果两者成立,则都执行,一者失败都失败:

    mysql_query("BEGIN");

    mysql_query("INSERT INTO customerinfo (name) VALUES ('$name1')";

    mysql_query("SELECT * FROM 'orderinfo' where customerid=".$id");

    mysql_query("COMMIT");

     

    5)锁定表,优化事务处理。用一个SELECT语句取出初始数据,通过一些计算,用UPDATE语句将新值更新到表中。包含有WRITE关键字的LOCK TABLE语句可以保证在UNLOCK TABLES命令被执行之前,不会有其他的访问来对customerinfo表进行插入、更新或者删除的操作。

    mysql_query("LOCK TABLE customerinfo READ, orderinfo WRITE");

    mysql_query("SELECT customerid FROM 'customerinfo' where id=".$id);

    mysql_query("UPDATE 'orderinfo' SET ordertitle='$title' where customerid=".$id);

    mysql_query("UNLOCK TABLES");

     

    6)使用外键,优化锁定表。把customerinfo里的customerid映射到orderinfo里的customerid,任何一条没有合法的customerid的记录不会写到orderinfo里。

     CREATE TABLE customerinfo

       (

         customerid INT NOT NULL,

         PRIMARY KEY(customerid)  

       )TYPE = INNODB;

       CREATE TABLE orderinfo

       (

         orderid INT NOT NULL,

         customerid INT NOT NULL,

         PRIMARY KEY(customerid,orderid),

         FOREIGN KEY (customerid) REFERENCES customerinfo

         (customerid) ON DELETE CASCADE   

       )TYPE = INNODB;

     

    注意:'ON DELETE CASCADE',该参数保证当customerinfo表中的一条记录删除的话同时也会删除order。

    表中的该用户的所有记录,注意使用外键时要定义数据库引擎为INNODB。

     

    • 选择正确的存储引擎?

    在MySQL中有两个存储引擎:MyISAM和InnoDB,每个引擎都有利有弊。

    MyISAM适合于一些需要大量查询的应用,但其对于有大量写操作的支持并不是很好。甚至只是需要update一个字段,整个表都会被锁起来,而其他进程,就算是读进程都无法操作直到读操作完成。另外,MyISAM 对于 SELECT COUNT(*) 这类的计算是超快无比的。

    InnoDB 的趋势会是一个非常复杂的存储引擎,对于一些小的应用,它会比 MyISAM 还慢。但是它支持“行锁”,于是在写操作比较多的时候,会更优秀。并且,它还支持更多的高级应用,例如事务。

     

    • 【真题231】 用什么方法检查PHP脚本的执行效率(通常是脚本执行时间)和数据库SQL的效率(通常是数据库query时间),并定位和分析脚本执行和数据库查询的瓶颈所在?

    参考答案:检查PHP脚本的执行效率的方法如下:可以在检查的代码开头记录一个时间,然后在代码的结尾也记录一个时间,结尾时间减去开头时间取这个时间的差值,从而检查PHP的脚本执行效率,记录时间可以使用microtime()函数。

    检查数据库SQL的效率的方法如下:可以通过explain显示MySQL如何使用索引来处理select语句及连接表,帮助选择更好的索引和写出更优化的查询语句。然后启用slow query log记录慢查询,通过查看SQL的执行时间和效率来定位分析脚本执行的问题和瓶颈所在。

     

    •  以下代码的运行结果为(    )。

    <?php

        mysql_connect('localhost','root',"");

        $result = mysql_query("SELECT id,name FROM tb1");

        while($row = mysql_fetch_array($result,MySQL_ASSOC)){

            echo' ID:' .$row[0].' Name:' .$row[];

        }

    ?>

     

    A.报错    B.循环换行打印全部记录      

    C.无任何结果 D.只打印第一条记录

    参考答案:A。

    分析:因为代码中没有指明要操作的数据库名,所以会报错。

    所以,本题的答案为A。

     

     

    【真题222】 以下说法正确的是(    )。

    A.使用索引能加快插入数据的速度

    B.良好的索引策略有助于防止跨站攻击

    C.应当根据数据库的实际应用合理设计索引

    D.删除一条记录将导致整个表的索引被破坏

    参考答案:C。

    分析:索引的作用主要是帮助数据库快速查找到对应的数据,并不能加快插入数据的速度,所以,选项A错误。

    索引不能够帮助防止跨站攻击,所以,选项B错误。

    创建合理的索引需要分析数据库的实际用途并找出它的弱点。优化脚本中的冗余查询同样也能提高数据库效率。索引是占用物理空间的,所以在实际的应用中是要合理设计使用索引的。所以,选项C正确。

    索引是一种表结构,删除一条数据也不会影响到整个表的索引,并且索引不一定是数字,也可以是字符串。所以,选项D错误。

     

    【真题223】 下列关于全文检索技术的说法中,不正确的是(    )。

    A.Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL做全文搜索,它可以提供比数据库本身更专业的搜索功能

    B.Solr是新一代的全文检索组件,它比Lucene的搜索效率高很多,还能支持HTTP的访问方式,PHP调用Solr也很方便

    C.MySQL中把一个字段建立FULLTEXT索引,就可以实现全文检索,目前MyISAM和InnoDB的table都支持FULLTEXT索引

    D.Lucene附带的二元分词分析器CJKAnalyzer切词速度很快,能满足一般的全文检索需要

    参考答案:B。

    分析:Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL、PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    Solr是一个独立的企业级搜索应用服务器,用户可以通过HTTP请求访问,它是采用JAVA5开发,基于Lucene的全文搜索服务器,同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。并且Solr比Lucene的搜索效率高很多,但是PHP调用Solr并不方便,选项B的说法错误。

    MySQL中的MyISAM和InnoDB都是支持FULLTEXT全文索引的。全文搜索引擎可以在不使用模板匹配操作的情况下查找单词或短语。

     

    更多PHP面试笔试真题可以浏览:www.shuaiqi100.com  

    更多有趣有料的PHP面试笔试资料可以关注:“琉忆编程库”

    PHP程序员面试笔试宝典

    展开全文
  • java面试笔试题目.ppt

    2020-04-12 08:00:56
    Java面试笔试题目 1.列举出 10个JAVA语言的优势 a:免费开源跨平台(平台独立性)简单易用功能完善面向对象健壮性多线程结构中立企业应用的成熟平台, 无线应用 2.列举出JAVA中10个面向对象编程的术语 a:包类接口对象...
  • Java常见的面试笔试题目Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?如何实现? 答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的...
  • 面试笔试题目大全》,很多知名大型企业的笔试面试题目汇总,具有很强的针对价值。作为即将走向工作岗位的人,我热诚地贡献给大家我的宝典资料。
  • 程序员面试笔试宝典学习记录(一)(常见面试笔试题目) 摘选著名的互联网企业的面试笔试真题: 1.extern的作用 自己理解:应该需要区分extern在C语言中和C++语言中的作用,C语言中extern声明的...

      转自:http://www.cnblogs.com/weixliu/p/3903390.html


    程序员面试笔试宝典学习记录(一)(常见面试笔试题目)

    摘选著名的互联网企业的面试笔试真题:

    1.extern的作用

    自己理解:应该需要区分extern在C语言中和C++语言中的作用,C语言中extern声明的函数和变量可以被该文件外部模块引用,C++语言中除了该作用还可以声明extern “C”声明一段代码编译连接的方法为C语言的方法。

    参考:其实extern的百度词条解释的很清楚,具体的也是跟我上面自己理解差别不是很大。

    (a) extern是C/C++语言中声明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量在本模块或其他模块中使用(通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。)

    (b) 被extern “C”修饰的变量和函数是按照C语言的方式编译和链接的。(C语言不支持函数重载,所以函数的C++和C的编译方式不同,这一句的作用就是实现C++和C及其他语言混合编程)

    2.strstr()函数的作用

    strstr()函数的原型一般为extern char * strstr(const char *src , const char *dest) , 其作用就是寻找目标字符串在源字符串中第一次出现的位置。

    3.windows线程优先级问题( 进程和线程的区别和联系 )

    我觉得这个概念可能面试、笔试的时候不是很适合,毕竟平台相关,大多数公司可能更多的倾向于linux开发,这个问题更换为进程和线程的区别更好,这个是笔试,面试常见的知识考查。

    (a) 通常一个进程可以包含若干个线程,它们可以利用进程所拥有的资源。进程是系统进行资源分配和调度的一个独立单位,线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本不拥有系统资源,只拥有一些在运行中必不可少的资源(如程序计数器,一组寄存器和栈),线程可与同属于一个进程的其他线程共享进程所拥有的全部资源。

    线程和进程区别归纳:

    •     地址空间和其他资源:进程间互相独立,同一个进程的各线程共享。
    •     通信:进程间通信IPC,线程间可以直接读写进程序数据段(如全局变量)来进行通信-需要进行同步和互斥的辅助。
    •     调度和切换:线程上下文切换比进程上下文切换快速,高效。
    •     多线程的OS中,进程不是一个可执行的实体。

    4.多方法交换x与y的值

    5.指针的自加与引用

    6.前置++与后置++

    前置++和后置++我觉得一个比较重要的问题是C++中重载两个操作符的时候如何区别:区分前置和后置 函数的参数有一个 (函数重载),后置++有一个(int)参数。

    7.inline的作用

    inline函数不像正常函数在调用时存在压栈和call的操作,它会把程序代码直接嵌入到调用代码段中,也就是说使用inline函数会增大二进制程序的体积,但是会使执行速度加快。

    同时,编译期间可以对参数进行强类型的检查,这是inline优于宏的一个方面。

    8.二维数组的表示

    9.ifndef的作用

    条件编译的语法,一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。

    10.KMP算法

    字符串匹配的高级算法

    11.函数调用方式

    • __cdecl               堆栈由调用者清除          参数从右至左的顺序压入堆栈内
    • __stdcall             堆栈由被调用者清除       参数从右至左的顺序压入堆栈内
    • __fastcall            堆栈由被调用者清除       部分参数保存在寄存器中,然后其他的压入堆栈内
    • thiscall(非关键字)  堆栈由被调用者清除       参数压入堆栈内,this指针保存在ECX寄存器内

    12.重载函数

        函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。不能利用返回类型进行重载!类中函数const和非const可以进行重载,其实原理是利用this指针的类型是const和非const进行重载,其实原理就是参数类型不同,const指针orconst引用调用的为const版本的函数~更多函数重载的知识

    13.构造函数和析构函数

        虚拟析构函数的使用场景是指向父类的指针实则为子类指针,调用delete的时候使用虚拟析构函数,防止部分内存泄露。

        构造函数不能声明为虚拟函数,因为对象的虚拟函数表的指针其实是在构造函数内编译器添加完成的代码,所以在构造函数执行之前无法访问到虚拟函数表的。

    14.合并两个有序链表

        类似归并排序,两个指针归并即可。

    15.100亿条记录的文本文件,取出重复数最多的前10条

        类似top k算法,无法全部读入内存的top k算法是利用容量为k的最大堆,达到线性时间的top k算法。

        首先利用hash table预处理每个元素出现的次数,然后利用次数执行top k算法。

    16.设计一个双向链表,并且提供一个可根据值删除元素的函数

        STL中的list底层及为双链表实现。

    17.二叉树的多种遍历算法实现

    18.有读和写的两个线程和一个队列,读线程从队列中读数据,写线程往队列中写数据

        生产者和消费者模型:

        使用信号灯和互斥量。

    semaphore mutex = 1;
    semaphore fillCount = 0;
    semaphore emptyCount = BUFFER_SIZE;
    
    procedure producer() {
        while(true) {
            item = produceItem();
            down(emptyCount);
                down(mutex);
                    putItemIntoBuffer(item);
                up(mutex);
            up(fillCount);
        }
    }
    procedure consumer() {
        while(true) {
            down(fillCount);
                down(mutex);
                    item = removeItemFromBuffer();
                up(mutex);
            up(emptyCount);
            consumeItem(item);
        }
    }
    

      不使用信号灯和互斥量。

    volatile unsigned int produceCount, consumeCount;
    TokenType buffer[BUFFER_SIZE];
     
    void producer(void) {
        while (1) {
            while (produceCount - consumeCount == BUFFER_SIZE)
                sched_yield(); // 缓冲区满
     
            buffer[produceCount % BUFFER_SIZE] = produceToken();
            produceCount += 1;
        }
    }
     
    void consumer(void) {
        while (1) {
            while (produceCount - consumeCount == 0)
               sched_yield(); // 缓冲区空
     
            consumeToken( buffer[consumeCount % BUFFER_SIZE]);
            consumeCount += 1;
        }
    }

    19.stack,heap,memory-pool

         

    20.TCP的流量控制和拥塞控制机制

         TCP的流量控制就是让发送方的发送速率不要太快,让接收方来得及接收。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。

        所谓的拥塞控制为防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制索要做的都有一个前提,就是网络能承受现有的网络负荷。流量控制往往指点对点通信量的控制,是一个端到端的问题。因特网建议标准RFC2581定义了进行拥塞控制的四种算法,即慢开始(Slow-start),拥塞避免(Congestion Avoidance)快重传(Fast Restrangsmit)和快回复(Fast Recovery)。

    21.写一个函数,返回一个字符串中只出现一次的第一个字符

         目前想到的方法就是利用hash表记录每个字符出现的次数,然后两次遍历即可找到只出现一次的第一个字符。

    22.求一个数组中第k大的数的位置

         

    23.面向对象继承,多态问题,如多态的实现机制

        虚拟函数,指针and引用

    24.内联函数什么时候不展开

         在内联函数内不允许用循环语句和开关语句。 如果内联函数有这些语句,则编译将该函数视同普通函数那样产生函数调用代码,递归函数(自己调用自己的函数)是不能被用来做内联函数的。内联函数只适合于只有1~5行的小函数。对一个含有许多语句的大函数,函数调用和返回的开销相对来说微不足道,所以也没有必要用内联函数实现。

    25.成员函数初始化列表有什么作用?什么必须在成员初始化列表中进行初始化?

        类的static变量在类的构造函数前已进行初始化!

        类对象的构造顺序:

        (a)分配内存,调用构造函数时,隐式/显式的初始化各数据成员(顺序和类中声明对象一致)。如果无成员初始化列表。隐式初始化阶段按照声明的顺序依次调用所有基类的缺省构造函数,然后所有成员类对象的缺省构造函数。

        (b)进入构造函数执行函数体内语句,函数体内的数据成员的设置被认为赋值,而不是初始化。

        所以,使用初始化列表的两个情况:

        1)必须使用初始化列表进行初始化![1]数据成员为类对象并且该类对象仅提供带参数的构造函数[2]const修饰的数据成员[3]引用数据成员;

        2)考虑效率的时候!因为未利用初始化列表而是在构造函数体内进行赋值,则调用了缺省构造函数和赋值运算符操作。如果数据成员为自定义的类对象,则效率比直接利用构造函数初始化低很多。

    27.指针与引用的区别

        相同点:

    •     都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。

        不同点:

    •     指针是一个实体,而引用仅是个别名
    •     引用只能并且必须在定义时被初始化一次,之后不可变(类似常量指针,引用自带常量指针属性);指针可变;
    •     引用没有const,指针有const,const的指针不能够改变;(int & const refer 不存在,因为引用本身就初始化一次不可变,但是const int &refer是存在的,指引用所指向的值不可改变)
    •     引用不能为空,指针可以为空
    •     sizeof针对指针得到的是指针的大小,针对引用得到的是指向对象的大小;
    •     指针的++操作和引用的++操作完全不同,指针为移动指针地址,引用++操作作用于指向的对象;
    •     引用是类型安全的,而指针不是类型安全的。

    28.创建空类时,哪些成员函数是系统默认的?

        构造函数,拷贝构造,赋值函数,析构函数,取址运算符,const取址运算符

    29.有10W个IP段,这些IP段之间都不重合,随便给定一个IP,求出属于哪个IP段

     

    30.网络编程(网络编程范式,非阻塞connect)

         常见的IO模型有阻塞、非阻塞、IO多路复用、异步。

    31.TCP/IP

     

    32.LINUX的命令,原理及底层实现

     

    33.LINUX编程,包括所有互斥的方法,多线程编程,进程间的通信

     

    34.一个一维数轴上的不同线段,求重复最长的两个线段

     

    35.有向带权图最短路径

     

    36.内存溢出和内存泄露有什么区别?

    • 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。
    • 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

    37.利用互斥量和条件变量设计一个消息队列,具有以下功能:1)创建消息队列(消息中所含的元素);2)消息队列中插入消息;3)取出一个消息(阻塞方式);4)取出第一个消息(非阻塞方式)。注意互斥量,条件变量和队列系统提供

     

    38.非递归方法实现二叉树的遍历

        利用栈stack的方法和morris遍历方法,分别O(lgn)和O(1)的额外空间。

    39.cnwap和cnnet的区别

        CMWAP 和 CMNET 只是中国移动人为划分的两个GPRS接入方式。前者是为手机WAP上网而设立的,后者则主要是为PC、笔记本电脑、PDA等利用GPRS上网服务。它们在实现方式上并没有任何差别,但因为定位不同,所以和CMNET相比,CMWAP便有了部分限制,资费上也存在差别。

    40.设计一个内存管理策略,要求可以保证多线程安全,防止内存越界等,效率不低于malloc()/free()函数

        

    41.排列组合问题

        排列递归dfs版本穷举,另外还可以有一些带剪枝的题目。

    42.若有序的关键字序列为{b,c,d,e,f,g,q,r,s,t},则在二分查找关键字b的过程中,先后进行比较的关键字依次是什么?

        此问题向上取整和向下取整也相关,而且与结束条件相关。

        [0,9]->4(f)

        [0,3]->1(c)

        [0,0]->0(b)

        如果是向下取整则为以上比较过程,依次f,c,b。

    43.有一个虚拟存储系统,若进程在内存中占3页(初始状态为空),若采用先进先出页面淘汰算法,当执行如下访问下列后,1,2,3,4,5,1,2,5,1,2,3,4,5, 会发生多少缺页?

         另外一个比较重要的淘汰算法LRU,最近最久未使用。

        3+8 = 11

    44.有一个顺序栈S,元素s1,s2,s3,s4,s5,s6,依次进栈,如果6个元素出栈顺序s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应该有多少?

       s1进入,1,s2进入,2,s2弹出,s3进入,2,s3弹出,s4进入,2,s4弹出,s5进入,2,s6进入,3,s6弹出,s5弹出,s1弹出。

       根据以上过程所以顺序栈的容量至少为3才可以。

    45.[0,2,1,4,3,9,5,8,6,7]是以数组形式存储的最小堆,删除堆顶元素0后的结果是多少?

        自己理解:[1,2,5,4,3,9,7,8,6,0]

    46.某页式存储管理系统中,地址寄存器长度为24位,其中号占14位,则主存的分块大小是多少字节?

        页式存储管理是把主存储器分成大小相等的许多区,每个区称为一块,与此对应,编制程序的逻辑地址也分成页,页的大小与块的大小相等。

        (a) 地址转换:绝对地址 = 块号 * 块长 +块内地址

        块号是页号根据页表查询得到

        这里寄存器长度24位,号占14位,所以页面大小占10位,所以块的大小也为10位。

    47.运算符重载

    48.各种排序算法的使用与比较

    49.一维数组默认初始化问题

    • 如果不对数组进行任何初始化操作, 仅定义一个数组, 那么数组中这些元素的值是不确定的, 是系统中随机的一个值。

    50.const char *p1 = "hello";char *const p2 = "hello",有什么区别。

    const在指针和引用声明中位置的不同分别代表不同的意义。

    • const char *p1 等价于 char const *p1为指针指向内容为常量,指向字符串常量的指针;
    • char *const p2 为常量指针,指向字符串的常量指针。

    51.struct与class有什么区别和联系

    struct与class在C++中看起来没什么区别,只是使用习惯,不过说到区别可能还有2点吧。

    (a)默认的访问控制,struct默认访问控制public,class默认访问控制private,写代码时最好标明确访问控制。

    (b)class这个关键字还用于定义模板参数,like "typename"。关键字struct不能用于定义模板参数。

    52.函数指针和指针函数

    函数指针:char (*p)();p为指向函数的指针

    指针函数:char *p();返回指针的函数

    53.指针数组和数组指针

    指针数组:char *cp_array[];

    数组指针:char (*p_array)[];

    54.大端小端

    • 大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
    • 小端模式,是指数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
    static union { char c[4]; unsigned long l; } endian_test = { { 'l', '?', '?', 'b' } };
    #define ENDIANNESS ((char)endian_test.l)
    //(如果ENDIANNESS=’l’表示系统为little endian,为’b’表示big endian )。
    

      利用union共享存储单元的原理。

    55.虚函数问题

    针对每个类存在一个虚拟函数表,每个类的实例中存在一个指向虚拟函数表的指针。

    56.如果判断单链表是否有环

    快慢指针,相遇则存在环。


    展开全文
  • 以前找工作的时候,看过的。 适用于一般的网管招聘。
  • 我遇到的企业C++面试题目+多套大企业笔试题目
  • net程序员面试笔试题目集合

    千次阅读 2006-09-18 00:38:00
    这些题目大部分来自网络,还有就是自己和同学面试时碰到的面试笔试题目。可能对那些将要找工作或正在找工作的人会有所帮助。问题有些只是提供个粗略的答案,或一个参考答案,有些未必如此,真要做答,每题几乎都...
      
    
    这些题目大部分来自网络,还有就是自己和同学面试时碰到的面试或笔试题目。可能对那些将要找工作或正在找工作的人会有所帮助。问题有些只是提供个粗略的答案,或一个参考答案,有些未必如此,真要做答,每题几乎都可以说很长的答案,回答这些题目时当然是要了解问此问题的目的,加以解答。有些无答案,还请各位认真去查查相关资料了。大家有好的题目也可以一起讨论讨论,共同学习,共同进步。所谓独学,不如众学矣。
    1.       面向对象的思想主要包括什么?
         答:封装,继承,多态。无非都是你这个三的论述,描述时顺便稍带几个例子就行。
    2.       什么是ASP.net中的用户控件?(用户控件和自定义控件有什么区别?)
    答:主要是分清这两个区别, ( ). 用户控件和自定义控件概述  
          
    用户控件 (UserControl):  扩展名为 *.ascx, *.aspx 在结构上相似,是指页面中  
    加载的功能块 , 只是用户控件不能单独作为页面运行 , 必须嵌入到 *.aspx 页面或其它用  
    户控件中使用
          
    自定义控件,跟 HtmlControl WebControl 相似,编译后可以添加引用到工具栏里  
    面,直接用鼠标拖动使用
     
    (
    ). 使用        
          
    在一个大系统中 , 有时候会只能几个 *.aspx 页面,其余的都是做成 *.ascx 页面,  
    这样可以增强页面之间的藕合性 , 一个用户控件 *.ascx 都作为一个独立的功能块
          
    自定义控件是指编译后直接可以放到工具箱中用,就像 TextBox,DataGrid 一样  
    在设计器中可以用鼠标拖动到页面上使用
          
    自定义服务器控件分为两种:    
                   1.
    一种是用 *.aspx 代码和 *.cs 代码编译后生成 DLL, 再添加引用到工具箱使用 .         
                      
    一般用于 WebForm .       
                   2.
    另一种是只用 *.cs 实现 , 再编译生成 DLL, 添加到工具箱使用
                      
    一般用于 WinForm
          
    自定义控件生成步骤
                
    比如 :   
                   1. 
    将一个 Button 从设计器拖到页面中
                        
    对按钮大小 , 颜色或文本设置一个固定值 , 保存文件名为 :  a.cs 
                   2.  csc  /r:System.dll  /t:library/out:../../A.dll    a.cs 
                   3. 
    右击工具箱空白处,弹出右击菜单后,选 添加移除项 ”, 将刚生成的 DLL 
                        
    添加到工具箱里面来,这样,就可以像一般的 Button 一样拖动使用了 .
    3.      什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载? CTS CLS CLR 分别作何解释?
      : 应用程序域(通常为 AppDomain)是一个用于隔离应用程序的虚拟进程。
         受管制的代码:Managed Code,官方翻译是“托管代码”,即在 .net 中,由公共语言运行环境进行管理的代码,它主要负责内存管理。
    强类型系统:是对系统的类型进行细化定义,纯粹是概念问题,不做深入研究的话,看书理解一下就行。
    装箱和拆箱:值类型转化引用类型为装箱,引用类型转化为值类型为拆箱。关键看看堆栈问题。
    CTS :通用语言系统。 CLS :通用语言规范。 CLR :公共语言运行库。
    4 .强类型与弱类型的区别?
    : 完全的面向对象要求对象是强类型的。强类型是只在对象类型的定义尽量的细化。我们可以定义所有的对象都是 object, 然后允许后期绑定来对对象进行操作。事实上,有些语言是弱类型的,特别是一些教本语言,比如 javascript. 弱类型语言对简化了语言本身,因而语言本事是可以轻量的,在一些特殊的场合还是很有用的。
    但弱类型与强类型语言相比,它们能完成的功能从本质上来说,是没有区别的。但弱类型的轻量化是以牺牲开发的方便性和效率为基础的。它将一部分机器能完成的事情移到程序员来完成。如果开发同样一个功能,如果用 javascript 和强类型的 vb.net 来开发,两者对程序员的要求与开发所需要的时间是明显不同的。
    4.      列举一下你所了解的 XML 技术及其应用 .
    5.      值类型和引用类型的区别?写出 C# 的样例代码。
        6. .net 中读写数据库需要用到那些类?他们的作用?
    答: DataSet: 数据存储器。
             DataCommand: 执行语句命令。
             DataAdapter: 数据的集合,用语填充。
        7.ASP.net 的身份验证方式有哪些?分别是什么原理?
    答: Windwos( 默认 ) IIS...From( 窗体 ) 用帐户 ....Passport( 密钥 )
        8. .net 中,配件的意思是?
    答:程序集。(中间语言,源数据,资源,装配清单)
     9. 常用的调用 WebService 的方法有哪些?
    答: 1. 使用 WSDL.exe 命令行工具。
    2. 使用 VS.NET 中的 Add Web Reference 菜单选项
    10. net Remoting 的工作原理是什么?
    答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
    11. C #中, string str = null string str = “” 请尽量使用文字或图象说明其中的区别。  
    答: string str = null 是不给他分配内存空间 , string str = "" 给它分配长度为空字符串的内存空间。
    12. 请详述在 dotnet 中类 (class) 与结构 (struct) 的异同?
    答: Class 可以被实例化 , 属于引用类型 , 是分配在内存的堆上的 ,Struct 属于值类型 , 是分配在内存的栈上的 . Class 可以被继承, struct 不可以等等
    13. 根据委托 (delegate) 的知识,请完成以下用户控件中代码片段的填写:  
    namespace test 
    public delegate void OnDBOperate(); 
    public class UserControlBase : System.Windows.Forms.UserControl 
    public event OnDBOperate OnNew; 
    privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
    if(e.Button.Equals(BtnNew)) 
    // 请在以下补齐代码用来调用 OnDBOperate 委托签名的 OnNew 事件。
    }
    答: if( OnNew != null  
        OnNew( this, e) ; 
    14. 分析以下代码,完成填空  
    string strTmp = "abcdefg 某某某 "; 
    int i= System.Text.Encoding.Default.GetBytes(strTmp).Length; 
    int j= strTmp.Length; 
    以上代码执行完后, i= j= 
    答: i=13,j=10 
    15. SQLSERVER 服务器中,给定表 table1 中有两个字段 ID LastUpdateDate ID 表示更新的事务号, LastUpdateDate 表示更新时的服务器时间,请使用一句 SQL 语句获得最后更新的事务号
    答: Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
    16. 根据线程安全的相关知识,分析以下代码,当调用 test 方法时 i>10 时是否会引起死锁 ? 并简要说明理由。
    public void test(int i) 
       lock(this) 
     { 
       if (i>10) 
       { 
         i--; 
         test(i); 
       } 
     } 
    }
    答:不会发生死锁,(但有一点 int 是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把 int 换做一个 object ,那么死锁会发生)
    17. 简要谈一下您对微软 .NET 构架下 remoting webservice 两项技术的理解以及实际中的应用。
    答: WS 主要是可利用 HTTP ,穿透防火墙。而 Remoting 可以利用 TCP/IP ,二进制传送提高效率。
    18. 公司要求开发一个继承 System.Windows.Forms.ListView 类的组件,要求达到以下的特殊功能:点击 ListView 各列列头时,能按照点击列的每行值进行重排视图中的所有行 ( 排序的方式如 DataGrid 相似 ) 。根据您的知识,请简要谈一下您的思路
    答:根据点击的列头 , 包该列的 ID 取出 , 按照该 ID 排序后 , 在给绑定到 ListView 中。
    19. 给定以下 XML 文件,完成算法流程图。
    <FileSystem> 
    < DriverC > 
    <Dir DirName=”MSDOS622”> 
    <File FileName =” Command.com” ></File> 
    </Dir> 
    <File FileName =”MSDOS.SYS” ></File> 
    <File FileName =” IO.SYS” ></File> 
    </DriverC> 
    </FileSystem> 
    请画出遍历所有文件名( FileName )的流程图 ( 请使用递归算法 )
    答:
    void FindFile( Directory d  
       FileOrFolders = d.GetFileOrFolders(); 
       foreach( FileOrFolder fof in FileOrFolders  
       { 
         if( fof is File  
         You Found a file; 
         else if ( fof is Directory  
         FindFile( fof ; 
        } 
    }
    20. 写出一条 Sql 语句:取出表 A 中第 31 到第 40 记录( SQLServer, 以自动增长的 ID 作为主键 , 注意: ID 可能不是连续的。
    答:解 1: select top 10 * from A where id not in (select top 30 id from A) 
        2: select top 10 * from A where id > (select max(id) from (select top 30 id from A as A) 
    21. 能用 foreach 遍历访问的对象需要实现 ________________ 接口或声明 ________________ 方法的类型。
    答: IEnumerable GetEnumerator
    22. GC 是什么 ? 为什么要有 GC?
    答: GC 是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:  
     System.gc()
     Runtime.getRuntime().gc()
    23. String s = new String("xyz"); 创建了几个 String Object?
    答:两个对象,一个是“ xyx , 一个是指向“ xyx ”的引用对象 s
    24. abstract class interface 有什么区别 ?
    答:
    声明方法的存在而不去实现它的类被叫做抽象类( abstract class ),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建 abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。 Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
    接口( interface )是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义 static final 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换, instanceof 运算符可以用来决定某对象的类是否实现了接口。
    25. 启动一个线程是用 run() 还是 start()?
    答:启动一个线程是调用 start() 方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 JVM 调度并执行。这并不意味着线程就会立即运行。 run() 方法可以产生必须退出的标志来停止一个线程。
    26. 接口是否可继承接口 ? 抽象类是否可实现 (implements) 接口 ? 抽象类是否可继承实体类 (concrete class)?
    答:接口可以继承接口。抽象类可以实现 (implements) 接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
    27. 构造器 Constructor 是否可被 override?
    答:构造器 Constructor 不能被继承,因此不能重写 Overriding ,但可以被重载 Overloading
    28. 是否可以继承 String ?
    答: String 类是 final 类故不可以继承。
    29. try {} 里有一个 return 语句,那么紧跟在这个 try 后的 finally {} 里的 code 会不会被执行,什么时候被执行,在 return 前还是后 ?
    答:会执行,在 return 前执行。
        30.
    两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这句话对不对 ?
    答:不对,有相同的 hash code
    31. swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String ?
    答: switch expr1 )中, expr1 是一个整数表达式。因此传递给 switch case 语句的参数应该是 int short char 或者 byte long,string 都不能作用于 swtich
    32. 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法 ?
    不能,一个对象的一个 synchronized 方法只能由一个线程访问。
    33. abstract method 是否可同时是 static, 是否可同时是 native ,是否可同时是 synchronized?
    答:都不能。
    34. List, Set, Map 是否继承自 Collection 接口 ?
    答: List Set Map 不是
    35. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢 ? 是用 == 还是 equals()? 它们有何区别 ?
    答: Set 里的元素是不能重复的,那么用 iterator() 方法来区分重复与否。 equals() 是判读两个 Set 是否相等。
    equals() == 方法决定引用值是否指向同一对象 equals() 在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
    36. 数组有没有 length() 这个方法 ? String 有没有 length() 这个方法?
    答:数组没有 length() 这个方法,有 length 的属性。 String 有有 length() 这个方法。
    37. sleep() wait() 有什么区别 ?
    答: sleep() 方法是使线程停止一段时间的方法。在 sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非 (a) “醒来”的线程具有更高的优先级
    (b) 正在运行的线程因为其它原因而阻塞。
    wait() 是线程交互时,如果线程对一个同步对象 x 发出一个 wait() 调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
    38. short s1 = 1; s1 = s1 + 1; 有什么错 ? short s1 = 1; s1 += 1; 有什么错 ?
    答: short s1 = 1; s1 = s1 + 1; 有错, s1 short 型, s1+1 int , 不能显式转化为 short 型。可修改为 s1 =(short)(s1 + 1) short s1 = 1; s1 += 1 正确。
    39. 谈谈 final, finally, finalize 的区别。
    答:
    final —修饰符(关键字)如果一个类被声明为 final ,意味着它不能再派生出新的子类,不能作为父类被继承。因此      一个类不能既被声明为 abstract 的,又被声明为 final 的。将变量或方法声明为 final ,可以保证它们在使用中      不被改变。被声明为 final 的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为      final 的方法也同样只能使用,不能重载
    finally —再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会      执行,然后控制就会进入 finally 块(如果有的话)。
    finalize —方法名。 Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理      工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的      ,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。 finalize()      方法是在垃圾收集器删除对象之前对这个对象调用的。
    40. 如何处理几十万条并发数据?
    答:用存储过程或事务。取得最大标识的时候同时更新 .. 注意主键不是自增量方式这种方法并发的时候是不会有重复主键的 .. 取得最大标识要有一个存储过程来获取 .
    41. Session 有什么重大 BUG ,微软提出了什么方法加以解决?
    答:是 iis 中由于有进程回收机制,系统繁忙的话 Session 会丢失,可以用 Sate   server SQL   Server 数据库的方式存储 Session 不过这种方式比较慢,而且无法捕获 Session END 事件。
    42. 进程和线程的区别?
    答:进程是系统进行资源分配和调度的单位;线程是 CPU 调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
    43. 堆和栈的区别?
    答:
        栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。
        堆:一般由程序员分配释放。用 new malloc 等分配内存函数分配得到的就是在堆上。
    44. 成员变量和成员函数前加 static 的作用?
    答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。
    45. ASP NET ASP 相比,主要有哪些进步?
    答: asp 解释形, aspx 编译型,性能提高,有利于保护源码。
    46. 产生一个 int 数组,长度为 100 ,并向其中随机插入 1-100 ,并且不能重复。
    int[] intArr=new int[100];
    ArrayList myList=new ArrayList();
    Random rnd=new Random();
    while(myList.Count<100)
    {
     int num=rnd.Next(1,101);
     if(!myList.Contains(num))
     myList.Add(num);
    }
     for(int i=0;i<100;i++)
       intArr[i]=(int)myList[i];
    47. 请说明在 .net 中常用的几种页面间传递参数的方法,并说出他们的优缺点。
    答: session(viewstate) 简单,但易丢失
        application         全局
        cookie             简单,但可能不支持,可能被伪造
        input ttype="hidden"     简单,可能被伪造
        url 参数                   简单,显示于地址栏,长度有限
        数据库                    稳定,安全,但性能相对弱
    48. 请指出 GAC 的含义?
    答:全局程序集缓存。
    49. 向服务器发送请求有几种方式?
    答: get,post get 一般为链接方式, post 一般为按钮方式。
    50. .DataReader Dataset 有什么区别?
    答:一个是只能向前的只读游标,一个是内存中的表。
    51. 软件开发过程一般有几个阶段?每个阶段的作用?
    答:需求分析,架构设计,代码编写, QA ,部署
    52. c# using new 这两个关键字有什么意义,请写出你所知道的意义? using 指令 和语句 new 创建实例 new 隐藏基类中方法。
    答: using 引入名称空间或者使用非托管资源
        new 新建实例或者隐藏父类方法
    53. 需要实现对一个字符串的处理 , 首先将该字符串首尾的空格去掉 , 如果字符串中间还有连续空格的话 , 仅保留一个空格 , 即允许字符串中间有多个空格 , 但连续的空格数不可超过一个 .
    答: string inputStr=" xx   xx ";
    inputStr=Regex.Replace(inputStr.Trim()," *"," ";
    54. 下面这段代码输出什么?为什么?
    int i=5;
    int j=5;
    if (Object.ReferenceEquals(i,j))
    Console.WriteLine("Equal";
    else
    Console.WriteLine("Not Equal";
    答:不相等,因为比较的是对象
    55. 什么叫做 SQL 注入,如何防止?请举例说明。
    答:利用 sql 关键字对网站进行攻击。过滤关键字 '
    56. 什么是反射?
    答:动态获取程序集信息
    57. Singleton 如何写设计模式
    答: static 属性里面 new , 构造函数 private
    58. 什么是 Application Pool
    答: Web 应用,类似 Thread Pool ,提高并发性能。
    59. 什么是虚函数?什么是抽象函数?
    答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。
    60. 什么是 XML
    答: XML 即可扩展标记语言。 eXtensible Markup Language. 标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的标记语言,比如 HTML ,也可以使用象 XML 这样由相关人士自由决定的标记语言,这就是语言的可扩展性。 XML 是从 SGML 中简化修改出来的。它主要用到的有 XML XSL XPath 等。
    61. 什么是 Web Service UDDI
    答: Web Service 便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得 Web Service 能与其他兼容的组件进行互操作。
       UDDI 的目的是为电子商务建立标准; UDDI 是一套基于 Web 的、分布式的、为 Web Service 提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的 Web Service 注册,以使别的企业能够发现的访问协议的实现标准。
    62. 什么是 SOAP, 有哪些应用。
    答: simple object access protocal, 简单对象接受协议 . xml 为基本编码结构 , 建立在已有通信协议上 ( http, 不过据说 ms 在搞最底层的架构在 tcp/ip 上的 soap) 的一种规范 Web Service 使用的协议 ..
    63. C# property attribute 的区别,他们各有什么用处,这种机制的好处在哪里?
    答:一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质
    64. XML HTML 的主要区别
    答: 1. XML 是区分大小写字母的, HTML 不区分。  
        2. HTML 中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略 </p> 或者 </li> 之类的结束        标记。在 XML 中,绝对不能省略掉结束标记。  
        3. XML 中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用        查找结束标记了。  
        4. XML 中,属性值必须分装在引号中。在 HTML 中,引号是可用可不用的。  
        5. HTML 中,可以拥有不带值的属性名。在 XML 中,所有的属性都必须带有相应的值。
    65. c# 中的三元运算符是?
    答:?:。
    66. 当整数 a 赋值给一个 object 对象时,整数 a 将会被?
    答:装箱。
    67. 类成员有 _____ 种可访问形式?
    答: this.;new Class().Method;
    68. public static const int A=1; 这段代码有错误么?是什么?
    答: const 不能用 static 修饰。
    69. float f=-123.567F; int i=(int)f;i 的值现在是 _____? 
    答: -123
    70. 委托声明的关键字是 ______?
    答: delegate.
    71. sealed 修饰的类有什么特点?
    答:密封,不能继承。
    72. Asp.net 中所有的自定义用户控件都必须继承自 ________?
    答: Control
    73. .Net 中所有可序列化的类都被标记为 _____? 
    答: [serializable]
    74. .Net 托管代码中我们不用担心内存漏洞,这是因为有了 ______?
    答: GC
    75. 下面的代码中有什么错误吗? _______
         using System;
         class A
         {
              public virtual void F(){
                  Console.WriteLine("A.F";
               }
          }
          abstract class B:A
           {
               public abstract override void F();  答: abstract override 是不可以一起修饰
           }                                           // new public abstract void F(); 
    76. 当类 T 只声明了私有实例构造函数时,则在 T 的程序文本外部, ___ 可以 ___ (可以 or 不可以)从 T 派生出新的类,不可以 ____ (可以 or 不可以)直接创建 T 的任何实例。
    答:不可以,不可以。
    77. 下面这段代码有错误么?
        switch (i){
        case():        答: //case() 条件不能为空
            CaseZero();
            break;
        case 1:
            CaseOne();
            break;
        case 2:
            dufault;   答: //wrong ,格式不正确
            CaseTwo();
            break;
       }
    78. .Net 中,类 System.Web.UI.Page 可以被继承么?
    答:可以。
    79. .net 的错误处理机制是什么?
    答: .net 错误处理机制采用 try->catch->finally 结构,发生错误时,层层上抛,直到找到匹配的 Catch 为止。
    80. 利用 operator 声明且仅声明了 == ,有什么错误么 ?
    答:要同时修改 Equale GetHash() ? 重载了 "==" 就必须重载 "!="
    81. .net C# or vb.net )中如何用户自定义消息,并在窗体中处理这些消息。
    答:在 form 中重载 DefWndProc 函数来处理消息 :
    protected override void DefWndProc ( ref System.WinForms.Message m  
     switch(m.msg) 
     { 
        case WM_Lbutton : 
       ///string MFC 中的 CString Format 函数的使用方法有所不同  
       string message = string.Format(" 收到消息 ! 参数为 :{0},{1}",m.wParam,m.lParam); 
       MessageBox.Show(message);/// 显示一个消息框  
       break; 
        case USER:
        处理的代码
        default: 
       base.DefWndProc(ref m);/// 调用基类函数处理非自定义消息。  
       break; 
     } 
    }
    82. SQL题目:
    有一张表,结构与数据如下:
    姓名
    成绩
    李四
    语文
    张三
    英语
    张三
    语文
    李四
    61
    王五
    75
    赵六
    89
     
     
    select 姓名,count(*)as 科目 from cj group by 姓名 order by 科目 desc
    现在要求用一条SQL语句得出如下查询结果:
    姓名            科目
    李四             2
    张三           2
    王五           1  
    83. 有一张表,结构与数据如下:
    姓名
    职等
    张三
    1
    李四
    2
    王五
    3
    赵六
    4
           现在要求用一条SQL语句得出如下查询结果:
                  姓名                 职等名称
                  张三                      一级
                  李四                      二级
                  王五                      三级
                  赵六                      四级
    答案:
    select 姓名 ,case 职等 when '1'then ' 一级 ' when '2' then ' 二级 '
           when '3'then ' 三级 ' when '4'then ' 四级 ' end 职等名称
    from 等级表
    84. C#中的表单界面上,有一个DataGrid控件,如何将SQL数据库里的一个表中的数据显示在这个控件上,请描述一下操作方法及步骤:
    85. 在C#中如何命名方法和属性,并列举出几种常用的访问方式:
    86. 在C#中,有几种连接到数据库的方式,请列举出并分别说明它们可以连接哪些数据库
    87. 请描述一下在ASP.NET中,Application对象、Session对象、Cookies对象的用法及不同之处,及它们与传统的ASP有没有不同之处??
    88. 试简单描述以下扩展名程序或系统档案的角色 .ascx , .aspx , .dll , .vb , .xml, css , js, global.asax ,web.config
    89. <table width=100%> <tr> <td>
    尝试举例上述tag attribute (property)例如table width=100%
    90. 如何在 C# 中实现继承?
    在类名后加上一个冒号,再加上基类的名称。
    91. 一个进程可以访问的 Windows 地址空间有多大?等于系统的虚拟内存大小么?这两方面将对系统的设计产生什么样的影响?
    答: 4G ,虚拟内存大小是看你物理内存大小来定的啊,实际进程在 windows 上默认是可以访问 2G 内存,通过一个 /3g boot 参数,可以用到 3G
    92. 下面这个命令是做什么的? gacutil /l | find /i “system”
    答:全局缓存工具, gacutil /l 列出全局程序集缓存的内容。 /i “system” 将程序集安装到全局程序集缓存中。
     
    93. 相对于 .NET 1.1 .NET2.0 为了避免过度的 boxing/unboxing 造成的系统开销提供了哪些支持?
    94. String Value Type 还是 Reference Type ?为什么 .NET 中的 String 对象被设置成 immutable
     
    展开全文
  • 一名入门的asp.net程序员应该掌握的知识: (1)熟练使用Sql Server中企业管理器、查询分析器和事件探查器,能熟练编写T-SQL、存储过程、用户自定义函数、视图、触发器; (2)了解ASP.net服务器控件的生命周期; ...
  • http://blog.csdn.net/v_JULY_v  ①.本blog开通于2010年10月11日,高级C++/算法交流群:128691433;北京程序员联盟:172727781。②.狂热算法,热爱数据挖掘,关注机器学习、统计分析,爱好文学数学。③....
    http://blog.csdn.net/v_JULY_v            
    
    • ①.本blog开通于2010年10月11日,高级C++/算法交流群:128691433;北京程序员联盟:172727781。②.狂热算法,热爱数据挖掘,关注机器学习、统计分析,爱好文学数学。③.微博:研究者July,邮箱:zhoulei97@aliyun.com,或zhoulei0907@yahoo.cn,July,二零一三年八月七日。
    展开全文
  • 现在Java程序员面试都是因为没有丰富的工作经验和自己过硬的技术,所有都不知道一般互联网应该会问什么技术问题,加上自己可能去面试的时候没有准备的太充分,一面试刚跟面试官扯几个面试题就不知道自己在哪里了,被...
  • 软件测试笔试面试题目完全汇总

    万次阅读 多人点赞 2019-03-06 13:29:37
    因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。 进行压力测试是指实际破坏一个Web...
  • 各大企业笔试面试题目精华合集
  • 【大数据面试】--2019年面试笔试题目汇总

    千次阅读 多人点赞 2020-01-12 18:58:23
    经过一段时间的面试笔试,已经彻底快让鄙人失去了信心!年底了,找工作真难!但是这也对个人将来的规划和学习工作有了一定的提示。下面将把个人算是面经吧,分享出来,希望对各位有帮助。 二、思考 每次进入...
  • IT面试笔试--腾讯/创新工场/淘宝公司笔试面试题目总结及答案,包含详细的答案
  • 知名企业面试笔试题知名企业面试笔试题知名企业面试笔试
  • 一名入门的asp.net程序员应该掌握的知识: (1)熟练使用Sql Server中企业管理器、查询分析器和事件探查器,能熟练编写T-SQL、存储过程、用户自定义函数、视图、触发器; (2)了解ASP.net服务器控件的生命周期; ...
  • 面试必问的16个经典问题的回答思路 C-C++软件工程师笔试题 多线程编程 IT职场中外企面试最爱提的问题TOP10 C,C++经典问题,及面试笔试题 非官方的面试技术指南 相等性(==及equals方法)详解 ... .. .
  • 21.在servlet中怎么获取页面传过来的 name=”a” 或者 id=”b” 的输入框的值?name: String name = arg0.getParameter("request_name"); id:22.jsp和servlet有哪些相同点和不同点
  • Java笔试面试题目

    2010-01-25 17:19:27
    找工作时,软件企业常用的Java笔试面试题目大全,并有这些题目的参考答案,希望对各位朋友提供帮助。
  • 各IC企业笔试面试基础题目集合,较齐全,部分有答案。。。
  • 著名互联网企业迅雷笔试面试题精选题目详解,除了题目以外,还有对每个题目的详细解答,对于基础知识的考察细致入微,是不可多得的复试好资料。
  • 世界大型IT企业笔试面试题目,IBM,微软,华为,中兴,收集了众多企业面试笔试合集,经典收藏
  • 包括java,C,C++,oracle,PL/SQL,struts,J2SE等软件笔试题目以及相关的面试题目和一些面试心得。
  • IQ_mensa(IQ测试手册),内含世界500强公司招聘面试笔试逻辑推理题目
  • 本人精心从各个企业 网站上整理的关于数据机构的 多种笔试面试题目,如果你还是 编程 基础薄弱的话,一定要看哦,绝对经典!
  • 内含大量的C++笔试题目,JAVA面试题目,还有包括IBM、Intel等公司的面试笔试题目。另外还有46家国内知名企业的笔试题目,对高手来说,最为有价值的是另外一个世界500强企业的面试题目。希望各位看了我的资源之后,都...
  • 各大企业笔试以及面试题目 很全面 内容很多 可以做做参考 也可以锻练自己的能力
  • 1 What types of documents would you need for QA, QC, and Testing?2 What did you include in a test plan?3 Describe any bug you remember.4 What is the purpose of the testing?5 What do you like (not like...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,374
精华内容 3,749
关键字:

企业面试笔试题目