随笔分类 -  收藏面试题

摘要:第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内 阅读全文
posted @ 2016-03-12 11:15 任智康 阅读(7418) 评论(0) 推荐(1) 编辑
摘要:堆排序:1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]#includeusing namespace std;void HeapAdjust(int *a,int i,int size) //调整堆 { int lchild=2*i; //i的左孩子节点序号 int rchild= 阅读全文
posted @ 2013-10-18 21:26 任智康 阅读(345) 评论(1) 推荐(1) 编辑
摘要:1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。 3.因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。 4.C... 阅读全文
posted @ 2013-05-30 17:32 任智康 阅读(569) 评论(0) 推荐(0) 编辑
摘要:1.extern的作用(附带const和static)const能定义常量,并且常量是有数据类型的,且可以调试。const还可以修饰函数形式参数、返回值和类的成员函数。static最主要的功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0;extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时在其他模块中寻找其定义。另外还可以做链接指示。static声明一个变量的作用(1)对局部变量声明,则为改变量分配的控件在整个程序执行期间始终存在;(2)对全局变量声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。静态局 阅读全文
posted @ 2013-05-26 13:40 任智康 阅读(695) 评论(0) 推荐(1) 编辑
摘要:初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。 为便于说明,我们先定义一个简单的类: class Vehicle { int passengers; int fuelcap; int mpg; }有了这个模板,就可以用它来创建对象: Vehicle veh1 = new Vehicle();通常把这条语句的动作称之为创建一个对象,其实,它包含了四个动作。1)右边的“new Vehicle”,是以Vehicl... 阅读全文
posted @ 2012-10-19 10:23 任智康 阅读(744) 评论(0) 推荐(0) 编辑
摘要:1、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 都不能2、数组有没有length()这个方法? String有没有length()这个方法? 数组没有length()这个方法,有length的属性。String有有length()这个方法。3、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 不对,有相同的hash code。4、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传. 阅读全文
posted @ 2012-10-18 19:33 任智康 阅读(198) 评论(0) 推荐(0) 编辑
摘要:String s = new String("xyz") 创建了几个String Object? 那么,会有两个String被创建,一个是你的Class被CLassLoader加载时,你的 "xyz "被作为常量读入,在constant pool里创建了一个共享的 "xyz " 。然后,当调用到new String( "xyz ")的时候,会在heap里创建这个new String( "xyz ");所以一个在heap中,一个在String常量池。 但是如果你把String s = new St 阅读全文
posted @ 2012-10-18 17:22 任智康 阅读(279) 评论(0) 推荐(0) 编辑
摘要:野指针:“野指针”不是NULL指针,是指向“垃圾”内存(不可用内存)的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if无法判断一个指针是正常指针还是“野指针”。“野指针”的成因主要有三种: 1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。例如: char *p = NULL; char *str = (char *) malloc(100); 2)指针p被free或者delete之后,没有置为NUL.. 阅读全文
posted @ 2012-10-17 09:56 任智康 阅读(802) 评论(0) 推荐(0) 编辑
摘要:void main() { char s[]="Welcometohengtian"; printf("%s%d\n",(s+7),sizeof(s)); char s[20]="Welcometohengtian"; printf("%s%d\n",(s+7),sizeof(s)); int a=4; printf("%d\n",sizeof(int)); char *p="renyuan"; printf("%d\n",sizeof(p)); int 阅读全文
posted @ 2012-10-16 11:20 任智康 阅读(208) 评论(0) 推荐(0) 编辑
摘要:C++中: 在C++程序设计中,多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。或指发出同样的消息被不同类型的对象接收时产生不同的执行结果和行为。 消息: 对成员函数的调用 不同的行为:不同的函数实现,即调用了不同的函数 静态多态:函数重载、运算符重载、类模板 动态多态:虚函数 动态多态要研究的问题是:当一个基类被继承为不同的派生类时,各派生类可以使用与基类成员相同的成员名,如果在运行时用同一个成员名调用类对象的成员,会调用哪个对象的成员? 关联(binding):在这里是指把一个函数名与一个类对象捆绑在一起,建立关联。一般地说,关联指把... 阅读全文
posted @ 2012-10-16 10:42 任智康 阅读(416) 评论(0) 推荐(0) 编辑
摘要:C语言里定义一个字符串可以使用指针也可以使用数组,如:(1) char *s="hello"; //"hello"是字符串常量,s是指向常量的指针,常量是不允许改变的,不能写成s[0]=X,但可以改变指针的值,使其指向不同的常量,如 s = "Xeron";(2) char s[]="hello"; //指针常量,s本身的值不能修改,但可以修改其指向的内容,s[0]=X两者的区别是(1)定义的字符串在程序里不能被修改,因为它存放在代码段内;(2)定义的字符串可被修改,它存放在数据段或者栈内。这两种定义字符串的方法在 阅读全文
posted @ 2012-10-15 15:43 任智康 阅读(12318) 评论(0) 推荐(0) 编辑
摘要:c语言中需要内存来存放数据。而内存主要分为两类:静态存储区和动态存储区;1.静态存储区分为:只读数据(READONLY DATA)区、以读写数据(RW DATA)区、未初始化区(BSS)。它们都是在程序编译连接阶段确定的,在程序执行的阶段不会改变。2.动态存储区分为堆和栈。都是程序执行的过程中动态分配的,大小也随之动态变化。从内存管理的实现的角度看来,堆使用的链表实现的,而栈使用的是线性存储的方法。栈:栈是先进后出,实际的操作中,栈内存可以有满栈和空栈的情况,满栈的情况下,栈指针当前的位子是已经使用的的栈区域;空栈的情况是,栈指针当前的位子是没有使用的栈区域,所以两种情况的出入栈,指针和数据的 阅读全文
posted @ 2012-10-12 18:32 任智康 阅读(4932) 评论(1) 推荐(1) 编辑
摘要:A.逻辑推理1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费? 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥? 4、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到 阅读全文
posted @ 2012-09-24 10:12 任智康 阅读(2726) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示