
面试题
qq_1061856980華仔
这个作者很懒,什么都没留下…
展开
-
引用和指针的区别
指针:指向一块内存,它是值是所指内存的地址。 引用:某块内存的别名区别: 1.引用访问一个变量是直接访问,而指针是间接访问。 2.引用是一个变量的别名,本身不单独分配自己的内存空间;而指针有自己的内存空间。(引用实际上是占用内存空间的) 3.引用只能在定义的时候初始化,之后不可变;而指针可变。(引用“从一而终”,指针“见异思迁”) 4.引用不能为空,指针可以为空。 5.在作size...原创 2018-03-04 09:42:22 · 271 阅读 · 0 评论 -
单链表插入与倒叙
题目:单链表的建立,把’a’ —’z’ 26个字母插入到链表中,并且倒叙,还要打印。此题解法很多,本篇采用不带头结点的单链表头插法插入,然后正序打印。#include #include #include #define OK 1;#define ERROR -1;typedef char ElemType;typedef struct node{原创 2018-01-24 22:47:35 · 520 阅读 · 0 评论 -
编程实现输出2的1000次方
#include void func(){ int a[1000] = {0}; //先定义一个数组 int i, j; a[0] = 1; for (i = 0; i 1000; i++) { for (j = 0; j 1000; j++) { a[j] *= 2; //将每个值原创 2018-01-25 23:13:18 · 721 阅读 · 0 评论 -
八大排序
1、直接插入排序 直接插入排序是稳定的排序方法。基本思想: 对于给定的一组记录,初始时假定第一个记录自成一个有序的序列,其余的记录为无序序列;接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列为止。 相信大家大家都玩过斗地主,插入排序与打扑克牌时整理手上的牌非常相似。摸来的第一张牌无须整理,此后每次从桌上的牌(无序区)中摸最原创 2018-01-24 18:00:23 · 320 阅读 · 0 评论 -
[剑指offer]面试题4(替换空格)
题目:请实现一个函数,把字符串中的每个空格替成“%20”。例如输入“we are happy.”,则输出“we%20are%20happy.”。基本思路:先遍历一遍字符串统计字符串中空格的个数并计算出替换之后的字符串的总长度,每替换一个空格,长度增加2,因此替换后字符串的长度对于原来的长度加上空格个数的2倍。如果从头到尾扫描字符串,遇到空格就做替换,必须每次都把空格后面所有的字符都向后移动两个原创 2018-01-24 13:37:53 · 262 阅读 · 0 评论 -
[剑指offer]面试题2(实现单例模式)
题目:设计一个类,我们只能生成该类的一个实例。 作用:保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象关于单例模式,有两种实现方法:饿汉式和懒汉式 饿汉式 优点:加载进程时静态创建单例对象,线程安全 缺点:无论使用与否,总要创建。会造成一定的资源空间浪费懒汉式 优点:用则创建,不用不创建,什么时候用什么时候创建,空间利用率较高 缺点:在多线程...原创 2018-01-23 21:58:22 · 359 阅读 · 0 评论 -
[剑指offer]面试题1(赋值运算符函数)
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。class CMyString{public: CMyString(char *pData = NULL); CMyString(const CMyString& str); ~CMyString(void);private: char *m_pData;};原创 2018-01-23 21:43:49 · 400 阅读 · 0 评论 -
[剑指offer]面试题3(二维数组中的查找)
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。基本思路: 首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角原创 2018-01-23 23:15:25 · 244 阅读 · 0 评论 -
不同数据类型与0值比较
1、整型int a, b;if(a>b) //a-b大于0if(a==b) //a-b等于0if(a<b) //a-b小于02、布尔型 #define TRUE1 #define FALSE0bool flag;if(flag) //flag不等0if(!flag) //flag等于03、浮原创 2018-01-06 23:10:20 · 3608 阅读 · 0 评论 -
C与C++中const和static
转载:c与c++中const和static的不同。static主要有三个作用:(1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 前两种C和C++都有,第三种仅在C++中有。1、局部变量 static类型局部变量存储在静态存储区,在程序整个运行期间都不释放。 static局部变量在所处模块在初次运行时进行初始化工作,且只操作一次。2、外部静态变量/函数 用来表示不转载 2018-01-22 12:51:59 · 229 阅读 · 0 评论 -
字节序
什么是字节序 字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。分为大端和小端。什么是大端和小端 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。为什么会有大小端 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是...原创 2017-12-10 23:49:01 · 193 阅读 · 0 评论 -
宏定义交换a和b
1.请完成宏定义: #define swap(a,b)解答:交换两个变量的方法有很多种,可以采用中间变量,也可以采用位运算,或者是直接加减运算等。这里因为采用宏定义方式,无法引入合适的中间变量。如果采用直接加减运算:#define swap(a,b) {a = a + b; b = a - b; a = a - b;}如果采用异或运算:#define swap(a,b) {a = a ^ b; b...原创 2017-11-30 14:49:00 · 2313 阅读 · 0 评论 -
main()函数执行完后,还会调用执行其他的语句吗?
通常认为C语言的起始函数是main()函数,实质上一个程序的启动函数并不一定是main()函数,这个可以采用链接器来设置,但是gcc中默认main()就是C语言的入口函数,在main函数启动之前,内核会调用一个特殊的启动例程,这个启动例程从内核中取得命令行参数值和环境变量值,为调用main()函数做好准备。 因此对应程序而言ma转载 2017-11-29 22:34:34 · 1590 阅读 · 0 评论 -
进程的状态以及僵尸进程和孤儿进程
进程的三种基本状态(1)就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。(2)执行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。(3)阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多...原创 2018-03-17 21:14:04 · 258 阅读 · 0 评论