c/c++笔试面试
mznewfacer
这个作者很懒,什么都没留下…
展开
-
面试字符串处理之单词翻转
问题:将一句话里的单词进行倒置,标点符号不倒置。例如"i come from nanjing."输出结果为"nanjing. come from i"。分析:第一步,将字符串完全倒置,即".gnijnan morf emoc i"第二步,将每个单词进行部分倒置,即"nanjing. from come i"实现一:#include #include #include c原创 2011-10-22 14:03:23 · 797 阅读 · 0 评论 -
SIFT算法概述
SIFT算法小结1 SIFT 发展历程 SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。后来Y.Ke将其描述子部分用PCA代替直方图的方式,对其进行改进。2 SIFT 主要思想 SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量。3 SIFT算法的主要特点: a) SIFT特征是图像的局部特转载 2011-10-24 23:06:20 · 2545 阅读 · 0 评论 -
重载运算符之前++和后++
下面例子程序中 const Fraction operator ++(int) 中 int不过是个哑元(dummy),是永远用不上的 它只是用来判断++是prefix 还是 postfix 记住,如果有哑元,则是postfix,否则,就是prefix 就像其他的一元算法和逻辑运算一样 而其实在C++中用到这种哑元的也只有在转载 2011-10-23 15:37:43 · 11339 阅读 · 1 评论 -
C语言宏定义使用技巧
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H //头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。转载 2011-11-14 16:46:59 · 2495 阅读 · 0 评论 -
C++ 虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用转载 2011-10-31 18:09:29 · 638 阅读 · 0 评论 -
static_cast、dynamic_cast reinterpret_cast和const_ cast
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。转载 2011-10-31 16:57:17 · 758 阅读 · 1 评论 -
2011NOKIA笔试题目
今天去NOKIA机试,纯粹打酱油,没什么准备,题目貌似不难,但时间和空间效率都要求很高,现场调试成功还是要相当的水准的。以后要好好练练北大ACM上的题目了。以下题目自然输入项范围都很大,时间和空间效率要求最优。题目细节记不太清了,大致翻译而已。全部只能用C语言完成。1. 输入: char *S 字符串S是a-z的任意字符组成的乱序字符串,没有任何规律。 要求判断经过原创 2011-10-30 01:21:03 · 1926 阅读 · 0 评论 -
面试常见题目之海量数据排序(编程珠玑总结一)
编程珠玑是很经典的算法讨论书籍,想进大公司的朋友还是要好好啃啃的,思路可谓经典,引入位向量概念。比如常见与国内某社交网站(自然很山寨,我们大学时常用)的面试题目。问题:对1000w个整数排序,条件为(1)都是非负整数,(2)每个整数最多出现一次,(3)最大整数小于 n。先将问题简化:可以将小于32的非负整数集合用32个二进制位表示(big endian),换句话说就是在32bit操原创 2011-11-02 21:46:10 · 2322 阅读 · 1 评论 -
去掉C/C++程序代码中的注释
程序员面试宝典上面的题目有很多是很经典的问题,可供我们思考,而且会对我们面试有很大好处。下面是第45页的一个题目:编写一个函数,实现把C/C++程序代码中的注释去掉,我开始看的时候总是看不懂,后来在网上看到一个网友详细的分析了其代码,但是我看了之后觉得有好多地方他分析的都不对,于是,我自己又花了半天的时间分析了一遍,觉得自己理解了,下面给出我的分析语句。如果还有不严谨的部分,请指教!转载 2011-11-07 11:39:02 · 8256 阅读 · 2 评论 -
Linux批量删除指令
出自:http://blog.csdn.net/zly8602经常在Linux系统上进行某些模块相关进程的重启操作,有时候某个目录下进程非常多,挨个杀死比较麻烦,故求助Google,结论如下: linux下边一般用pkill可以杀掉指定的进程,但是有的时候进程并不是一个合法的,因此我只好退回到kill的世界,用那个万能的kill -9来结束一起。那进程很多怎么办,比转载 2012-04-01 20:40:37 · 3276 阅读 · 0 评论 -
笔试考察高数之平均要取多少个(0,1)中的随机数才能让和超过1。
转载 2011-10-24 15:42:57 · 1048 阅读 · 0 评论 -
全局对象和函数内静态对象调用构造析构函数差异
全局对象的构造函数将在main函数之前运行。析构在main函数之后运行。函数内部的static对象的构造函数将在第一次调用该函数时调用,main函数结束之后执行。但其析构会在全局对象之前,因为所有对象的析构顺序和构造顺序相反,即全局对象在函数内部的static对象前构造,在后面析构。若包含静态局部对象的函数未被调用,则也不进行析构。可以通过atexit函数指定当离开main或者调用exit原创 2011-10-23 13:19:39 · 4120 阅读 · 0 评论 -
const之陷阱注意
1.常量不能为左值cannot convert 'this' pointer from 'const class X' to 'class X &'例子:#include class X{ int i; public: void modify() {cout};const class X fun(){return X();}void ma原创 2011-10-22 23:43:30 · 889 阅读 · 0 评论 -
c/c++中const用法总结
const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令 **************常量必须被初始化*************************const的作用 (1)可以定义const常量 例如: const int Max=100; int Array[Max];原创 2011-10-22 14:09:25 · 591 阅读 · 0 评论 -
单链表逆序
实现一: #include "stdafx.h" #include using namespace std; template struct MyNode { T id; MyNode * next; MyNode(T _id) { id = _id;转载 2011-10-22 15:26:13 · 491 阅读 · 0 评论 -
const内存分配
常量有没有存储空间,或者只是编译时的符号而已?不一定。在C中,define常量是预处理阶段的工作,其不占据内存。但是const常量总是占据内存在C++中,const常量是否占据存储空间取决于是否有引用该常量地址的代码。C++对于const默认为内部链接,因此const常量定义通常都放在头文件中,即使分配内存也不会出现链接错误。若不引用常量对应的地址,则不会为其分配空间。 C原创 2011-10-22 19:31:46 · 2874 阅读 · 0 评论 -
c语言中去除const修饰
a. 能否将一个非常量对象的地址赋给一个常量指针?b. 能否将一个常量对象的地址赋给一个非常量指针?若确要如此,该如何做?可以将非常量对象地址赋值给常量指针,但是不能将常量对象地址给非常量指针,因为其无法保证不修改常量对象。若却要如此,则只能强制转换,能编译通过,但却可能存在隐患。因此编译器的工作就是将一切可能的隐患扼杀在摇篮中。 void main(){转载 2011-10-22 19:43:44 · 6985 阅读 · 2 评论 -
c/c++ static 用法总结(三版本合一)
最近经历了一些笔试和面试,经常会被问到static关键字的作用,感觉虽然知道一些,但每次回答的都不够满意,今天在网上查了一下,总结总结,恩,以备后用!综述static关键字是C, C++中都存在的关键字。static从字面理解,是“静态的“的 意思,与此相对应的,应该是“动态的“。static的作用主要有以下3个:1、扩展生存期;转载 2011-10-23 13:32:22 · 13198 阅读 · 4 评论 -
2011面试题目之猴子偷桃
五只猴子摘了一堆桃子,可是怎么也平分不了。于是一致同意先去睡觉,明天再分。夜里,一只猴子偷偷起来,先吃掉一个桃子,剩下的桃子正好平分成5份。它蒇起自己的1份,然后再去睡觉。过了一会,第二只猴子起来,也吃掉1个桃子,剩下的桃子也正好平分成5份。它也藏起了自己的1份,然后再去睡觉。第三只、第四只和第五只也都依次这样做。问最初那堆桃子至少有多少个?第五只猴子吃掉一个桃子后剩5a个 第四只猴子转载 2011-10-22 17:06:53 · 1348 阅读 · 0 评论 -
腾讯面试题:买200返100优惠券,实际上折扣是多少?
到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。典型错误回答 200/300 = 67%.简要分析:(假设商家和你都不笨,每人求最大利益,商家想卖多商品,买主想少花钱,而你不可能买到刚好,故只能出现以下情况)用枚举清晰设花销为x元,折扣为r。当原创 2011-10-23 23:30:43 · 13107 阅读 · 8 评论 -
数据结构之kmp模式匹配
KMP字符串模式匹配详解KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一.简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos){/* 若串 S 中从第pos(S 的下标转载 2011-10-23 23:55:43 · 1279 阅读 · 0 评论 -
虚析构函数(总结 帖子)
一. 虚析构函数我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。如:class Base{public: Base(){} virtual ~Base(){}};class Derived: public转载 2011-10-24 14:47:49 · 869 阅读 · 0 评论 -
Big endian and Little endian
我的理解:小端:机器的理解方式( x86 设计思路)低位先来,低位内存就先保存大端:人的理解方式谈到字节排序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列 CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。ARM同时支持 big和littl转载 2011-11-02 10:51:00 · 779 阅读 · 0 评论