面试
taotaoahui
这个作者很懒,什么都没留下…
展开
-
简述c、c++程序编译的内存分配情况
1,从静态存储区域分配;内存在程序编译时已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。2,在栈上分配在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时,这些存储单元自动释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。3,在堆上分配;即动态内存分配。程序在运行的原创 2016-10-08 16:52:55 · 561 阅读 · 0 评论 -
int *p[4]; int p[4]; int **p; int *(p[4]); int (*p)[4]这5种的区别与联系
int *p[4]; // p是个数组,有四个元素空间,每个元素int p[4]; int **p; int *(p[4]); int (*p)[4]这5种的区别与联系原创 2016-09-28 18:54:59 · 3633 阅读 · 0 评论 -
虚函数的作用及其底层实现机制
http://blog.csdn.net/iFuMI/article/details/510880911. C++中虚函数的作用和多态虚函数: 实现类的多态性关键字:虚函数;虚函数的作用;多态性;多态公有继承;动态联编C++中的虚函数的作用主要是实现了多态的机制。基类定义虚函数,子类可以重写该函数;在派生类中对基类定义的虚函数进行重写时,需要再派转载 2016-09-28 10:58:04 · 456 阅读 · 0 评论 -
c#面试1(填空题)
71、面向对象的三大特性(封装,继承,多态)72、能使用foreach遍历访问的对象需要实现(IEnumerable)接口或声明(GetEnumerator)方法类型73、数组的基类为(Array),委托的基类(MulticastDelegate)。74、用于获取值类型的大小的关键字(sizeof),用于在栈中分配内存空间的关键字(stackalloc)。75、用于表示不安全上转载 2016-09-28 10:54:23 · 1034 阅读 · 0 评论 -
二叉排序树 插入,创建,中序遍历,最大,最小值,层级,打印,删除,搜索
排序二叉树的性质如下:若他的左子树不空,则左子树上所有的结点均小于它的根结点的值。若他的右子树不空,则右子树上所有的结点均大于它的根结点的值。他的左右子树也是排序二叉树。#includeusing namespace std;struct Node{ int data; Node *lchild; Node *rchild;};Node *Tr原创 2016-09-14 15:13:26 · 887 阅读 · 0 评论 -
n个球有一个假冒(重量不足),如果给你一个天平允许你测3次找出那个假冒的,问n可能的数值?
一般化:将楼上的3次改为t次,则n 必须满足原创 2016-09-27 21:53:09 · 1555 阅读 · 1 评论 -
C++输入日期判断是星期几
http://blog.csdn.net/hans_1990/article/details/26486613通过日期判断是星期几可以通过基姆拉尔森计算公式算出。 算法如下:基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7在公式中d表示日期中的日数,m表示月份数,y表示年数。注转载 2016-09-27 16:04:14 · 18528 阅读 · 1 评论 -
求数组中的最大偶数(递归解法)
参考大神的算法int MaxEven(int arr[], int n){ int max; if(n == 0) { if(arr[0] % 2 == 0) return arr[0]; else return -1; } else { max = MaxEven(arr, n - 1); if( max < arr[n -原创 2016-09-27 12:35:13 · 5511 阅读 · 0 评论 -
// 对于一个数组返回第二大数
// 对于一个数组返回第二大数int GetSecondMax(int arr[]){ int max = arr[0], secondMax = arr[0]; for(int i = 0; i < sizeof(arr); i++) { if(arr[i] > secondMax) { secondMax = arr[i]; if(secondMax > max原创 2016-09-26 16:51:26 · 410 阅读 · 0 评论 -
面试题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
#include#includeusing namespace std;char *Fun(char temp[]){ int len = strlen(temp); //cout<<len<<endl; for(int i = 0, j = len - 1; i <= j; i++, j--) { char temp1 = temp[j]; temp[j] = temp原创 2016-09-26 10:23:51 · 4931 阅读 · 2 评论 -
输入一个正整数n,求第n小的质数
#include#includeusing namespace std;//void main(){ //char str[100]; //int n; //char temp = getchar(); //while(temp) //{ // //} long n; cin>>n; bool flag = false; int count = 0; i原创 2016-09-26 09:34:02 · 17801 阅读 · 1 评论 -
读出第n个质数
/* 读出第n个质数*/#include#includeusing namespace std;int Fun(int n){ int count = 0; bool flag; if(n == 1) return 2; for(int i = 2; i < 10000; i++) { flag = true; for(int j = 2;原创 2016-09-29 12:09:52 · 736 阅读 · 0 评论 -
给出两个整数a和b,请计算他们的和a + b,比如输入1和2,计算出结果为3。
/* 给出两个整数a和b,请计算他们的和a + b,比如输入1和2,计算出结果为3。 输入示例: 1 2 3 4 5 6 7 8 输出示例: 3 7 11 15*/using System;using System.Collections.Generic;using System.Linq;usin原创 2016-09-29 12:10:34 · 9740 阅读 · 0 评论 -
判断单链表是否存在环,判断两个链表是否相交问题详解
一、判断链表是否存在环设置两个指针(fast, slow),初始值都指向头结点,命slow每次前进一步,fast每次前进二步,若链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。否则fast先从头到尾为null,则无环链表。bool isExitsLoop(Node *head){ Node *slow = head, *fast = head; while(原创 2016-10-08 11:15:54 · 347 阅读 · 0 评论 -
有向图的拓扑排序——基于邻接矩阵
http://blog.csdn.net/jinzhao1993/article/details/517784681. 拓扑排序的概念定义:将有向图中的顶点以线性方式进行排序。即对于任何连接自顶点u到顶点v的有向边u->v,在最后的排序结果中,顶点u总是在顶点v的前面。考虑一个非常非常经典的例子——选课。假设我非常想学习一门机器学习的课程,但是在修这转载 2016-10-06 21:46:48 · 4994 阅读 · 0 评论 -
稳定排序和不稳定排序
http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针转载 2016-10-06 21:43:10 · 642 阅读 · 0 评论 -
软件生命周期
为了更有效,更科学地组织和管理软件生产,根据某一软件从被提出并着手开始实现,直到软件完成其使命为止的全过程划分为一些阶段,并称这一过程为软件生命周期。软件生命周期包括八个阶段:问题定义、可行性研究、需求分析、系统设计、详细设计、编码、测试、运行维护。可以分为以下三个时期:1,,软件定义期:问题定义、可行性研究和需求分析三个阶段。2,软件开发期:系统设计、详细设计、编原创 2016-10-19 16:21:29 · 713 阅读 · 0 评论 -
把链表中的奇偶数分开
http://blog.csdn.net/jiyanfeng1/article/details/8607889Segregate even and odd nodes in a Linked List给你一个单链表,修改此单链表,使得前面是偶数,后面是奇数。偶数间的相对顺序不变,奇数间的相对顺序不变。返回修改后的单链表的头节点。例如:Input: 1转载 2016-10-06 10:13:16 · 978 阅读 · 0 评论 -
关键字static的作用是什么? C++类中的静态成员变量和静态成员函数的作用
本文转自《面试宝典》1,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时,仍维持上次的值;转载 2016-10-17 22:12:29 · 5553 阅读 · 0 评论 -
求解最大连续子数组的算法
/* 求解最大连续子数组的算法 */#includeusing namespace std;void Fun(int temp[]){ int len = sizeof(temp) / sizeof(int); int maxSum = temp[0]; // /记录最大子数组的和 int low = 0; //记录最大子数组的底 int high = 0; // 记转载 2016-10-01 11:39:03 · 303 阅读 · 0 评论 -
不申请新的空间,字符串反转
// 申请了 一个变量保存串的长度 ,一般面试这个程序就可以了,能写出这个其实已经很牛 b 了,整上面那个, 估计别人开始怀疑是以前做过这个题目了,呵呵,还得装傻点/* 图示过程:字符串 abcdefS+1 = Str = abcdef’/0’ abcdef’/0’ > fbcdea’/0’ > fbcde’/0’aS+1 = Str = bcde’/0 fbcde’/0’a >转载 2016-10-01 10:47:27 · 928 阅读 · 0 评论 -
要求:不申请变量和空间 反转字符串 ,用一个函数实现。 异或^交换或者加减交换的典型应用! VIA 笔试题
要求:不申请变量和空间 反转字符串 ,用一个函数实现。 异或^交换或者加减交换的典型应用! VIA 笔试题基本思路:从 两头往中间做字符交换 。字符串最后一个字符是 '/0' ,表示结束,没有实际意义,可以将它 当作中间变量 ,等处理完成后,再将最后一个字符置 '/0' 即可// 申请了 一个变量保存串的长度 ,一般面试这个程序就可以了,能写出这个其实已经很牛 b 了,整上原创 2016-09-30 21:59:57 · 386 阅读 · 0 评论 -
资源包常见问题 AssetBundles
资源包常见问题1. 什么是资源包 (AssetBundles)?2. 资源包 (AssetBundles)有何用途?3. 如何创建资源包 (AssetBundles)?4. 如何使用资源包 (AssetBundles)?5. 如何在编辑器中使用资源包 (AssetBundles)?6. 如何缓存资源包 (AssetBundles)?转载 2016-09-29 21:34:21 · 1383 阅读 · 0 评论 -
求这棵树的高度
题目描述一棵树有n个节点,其中1号节点为根节点。输入格式第一行是整数n,表示节点数后面若干行,每行两个整数a b,表示b是a的子节点。输出求这棵树的高度(根节点为第1层)样例输入51 21 33 43 5样例输出3#includeusing namespace std;struct Node原创 2016-09-25 20:45:30 · 724 阅读 · 0 评论 -
单链表的建立、测长和打印
/* 单链表的建立、测长和打印*/#include#includeusing namespace std;typedef struct student{ int data; struct student *next;}Node;// 创建Node *Creat(){ Node *head = (Node*)malloc(sizeof(Node)); int cy转载 2016-09-22 16:13:50 · 317 阅读 · 0 评论 -
字符串全排列
http://blog.163.com/yunfei_lei@126/blog/static/140864561201181694915129//* 设R={r1,r2,...,rn}是要进行排列的n个元素,Ri=R-{ri}. Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri得到的排列。 (1)当n=1时,Perm(R)=(r),其中r是集合R中唯一的元素;转载 2016-09-22 15:07:36 · 286 阅读 · 0 评论 -
面试宝典第6章_ 1(预处理)
First:宏定义面试题例子:One,用预处理命令#define声明一个常数,用以表面1年中有多少秒()#define Seconds_PerEar (60 * 60 24 * 360)UL关键点:1,define不能以分号结束,括号的使用;2,意识到这个表达式将使一个16位的整数溢出,所以要都用到长整型符号L,更好的一点是在表达式中用到UL(无符号长整型)。Two,写转载 2016-09-16 17:08:49 · 263 阅读 · 0 评论 -
自己封装String类
#include#includeusing namespace std;class MyString{public: MyString(); MyString(const MyString&); MyString(const char*); MyString(const size_t, const char); ~MyString(); size_t Length();转载 2016-09-16 11:17:23 · 1378 阅读 · 0 评论 -
c++ 二叉树的构建 前序遍历 中序遍历 后续遍历 层次遍历
#include #include#includeusing namespace std; // 定义二叉链表节点类型templatestruct Node{ T data; Node *lchild; Node *rchild;};// 二叉树链表类templateclass Binary_Tree{private: Node *BT; // 二叉链表原创 2016-09-14 07:58:59 · 1367 阅读 · 0 评论 -
堆 栈笔试题
int a=0;class someClass{ int b; static int c;};int main(){ int d=0; someClass *p=new someClass(); return 0;}1、栈区(stack)— 由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回转载 2016-04-15 15:13:35 · 1386 阅读 · 1 评论 -
A *a=new B();
#includeusing namespace std;class A{ public: ~A(){ cout<<111<<endl; } virtual void Fun() { cout<<"A"<<endl; }};class B:public A{ public: ~B(原创 2016-09-11 15:36:04 · 740 阅读 · 0 评论 -
软件设计之——“高内聚低耦合”
http://blog.csdn.net/csh624366188/article/details/7183726耦合度一、什么是耦合度软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。 耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是转载 2016-09-10 21:09:36 · 494 阅读 · 0 评论 -
什么是三层架构?简单的介绍三层架构!
http://blog.csdn.net/agonie201218/article/details/44424031 三层架构(3-tierarchitecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(Presentation layer)业务逻辑层(Business Logic Layer)数据访问层(Data access转载 2016-09-10 20:59:52 · 680 阅读 · 0 评论 -
进程(process)和线程(thread)及其在项目中的应用 协程
进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋转载 2016-09-02 11:00:04 · 1365 阅读 · 0 评论 -
统计回文
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”原创 2016-09-17 14:54:32 · 382 阅读 · 0 评论 -
STL模板和容器(1)
STL 标准模板库优点:1, 方便,容易地实现搜索数据或者对数据排序等一系列算法。2,调试程序更加安全和方便;3,跨平台。基础概念:模板:类的宏。泛型,一个类的模板叫做泛型类,而一个函数的模板也自然地被叫做泛型函数;容器:Container,可以容纳一些数据的模板类,例如以下几种容器:1,vector vector是一个动态数组,是一个类模板(class原创 2016-09-05 17:31:15 · 252 阅读 · 0 评论 -
Unity中的优化技术
http://blog.csdn.net/candycat1992/article/details/42127811影响性能的因素首先,我们得了解,影响游戏性能的因素哪些,才能对症下药。对于一个游戏来说,有两种主要的计算资源:CPU和GPU。它们会互相合作,来让我们的游戏可以在预期的帧率和分辨率下工作。CPU负责其中的帧率,GPU主要负责分辨率相关的一些东西转载 2016-10-11 10:10:36 · 521 阅读 · 0 评论 -
指针和引用的区别
主要有两方面:1,非空区别。在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这个时候你应该把变量声明为指针,因为这样你可以赋空值给该变量。反之,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这是你就可以把变量声明为引用。不存在指向空值的引用这个事实意味着使用引用的代码效率转载 2016-09-24 19:39:38 · 219 阅读 · 0 评论 -
C#与C++的区别!
http://blog.csdn.net/freeplayer/article/details/1675710(1) 编译目标:C++代码经常编译成汇编语言。而C#则编译成中间语言(IL)它与Java的字节代码有些相似。IL随后在通过Iust-In-Time编译进程转换成本机的可执行代码。IL代码将作为一个装配件存储在一个或多个文件中,一个装配件就形成一个单元,IL代码就是在该单元中被转载 2016-10-10 15:44:21 · 370 阅读 · 0 评论 -
进程之间的8种通信方式
现在最常用的进程间通信的方式有信号、信息量、消息队列、共享内存等。百度经验有介绍8种 无名管道(pipe),高级管道(popen)、有名管道(nemed pipe)、消息队列(message queue)、信号量(semophore)、信号(sinal)、共享内存(shared memory)、套接字(socket)。进程通信,就是不同进程之间进行一些“接触”。它们使用的方法基转载 2016-10-10 15:38:22 · 3649 阅读 · 0 评论