C/C++
文章平均质量分 53
无敌的成长日记
这个作者很懒,什么都没留下…
展开
-
MFC如何在VS2008中创建弹出式菜单?
在VS2008中,不能像VC++6.0那样通过Compnents and Controls来自动添加弹出式菜单,需要手动添加。可以采用两种方式创建弹出式菜单。一、利用现有的菜单资源创建(1)首先在资源视图中的Menu下新建一个菜单资源。(2)然后将新建的菜单编辑为你想要的弹出式菜单的样子。 (3)再在CView类中添加WM_RBUTTONDOWN消息转载 2013-12-01 23:50:09 · 3852 阅读 · 0 评论 -
单链表之插入删除结点
题:编程实现单链表删除结点。【美国某著名分析软件公司面试题】解析:如果删除的是头结点,如下图所示。则把head指针指向头结点的下一个结点,同时free P1结点,如下图所示。。如果删除的是中间结点,如下图所示。则用P2的next指向P1的next同时,free P1,如下图所示。。答案:完整代码如下:// P167_example1.cpp原创 2013-07-30 15:02:57 · 2635 阅读 · 0 评论 -
单链表之逆置
题:编程实现单链表的逆置。【美国某著名分析软件公司2005年面试题】解析:单链表模型如下图所示。进行单链表逆置,首先要让P2的next指向P1,如下图所示。原创 2013-07-30 19:10:47 · 905 阅读 · 0 评论 -
模版——容器,迭代器
题:试用多态实现线性表(队列、串、堆栈),要求具备线性表的基本操作:插入、删除、测长等。【美国著名软件企业GS公司2007年11月面试题】解析:队列、串、堆栈都可以实现push、pop、测长等操作。现在要求用多态去实现,就要建立一个线性表的共性模版,来实现以上的功能。答案:程序源代码与解释如下// P101_example2.cpp : Defines the entry po原创 2013-07-04 14:55:09 · 1193 阅读 · 0 评论 -
继承与接口之默认继承方式
题:找出下面程序的错误,并解释它为什么是错的。【中国台湾某著名杀毒软件公司2005年面试题】// P138_example2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include class Base{public: int val; Base()原创 2013-07-19 09:58:01 · 1332 阅读 · 0 评论 -
泛型编程之3
题:Below is usual way we find one element in an array: In this case we have to bear the knowledge of value type "int", the size of array, even the existence of an array. Would you re-write it using t原创 2013-07-02 14:51:01 · 1000 阅读 · 0 评论 -
泛型编程
题:何为泛型编程?【美国某著名CPU生产公司面试题】答案:STL代表用一致的方式编程是可能的。实际上,它完全不同于我们过去看到的C++编程,也完全不同于大多数教科书里所描述的方式。STL并不是试图用C++编程,只是试图找到一种正确的方式来处理软件,寻找一种可以表达我的想法的语言而已。换句话说,我知道我想说什么。我能用C++说,我能用Ada说,我能用Scheme说。我可以让自己去适应语言,但原创 2013-07-02 10:45:21 · 686 阅读 · 0 评论 -
泛型编程之2
题:解释一下什么是泛型编程,泛型编程和C++及STL的关系是什么?并且,你是怎么在C++环境里进行泛型编程的?【美国某著名CPU生产公司面试题】答案:泛型编程是一种基于发现高效率算法的最抽象表示的编程方法。也就是说,以算法为起点并寻找能使其工作且有效率工作的最一般的必要条件集。令人惊讶的是,很多不同的算法都需要相同的必要条件集,并且这些必要条件有多种不同的实现方式。类似的事实在数学里面原创 2013-07-02 10:59:31 · 888 阅读 · 0 评论 -
向量容器2
题3:以下代码有什么问题?如何修改?【中国某著名综合软件公司2005年面试题】// P96_example3.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include void print(std::vector);int _tmain原创 2013-07-02 10:37:10 · 928 阅读 · 0 评论 -
向量容器
题:介绍一下STL和包容器,如何实现?举例实现vector。【美国某著名移动通信企业面试题】答案:C++的一个新特性就是采用了标准模版库(STL)。所有主要编译器销售商现在都把标准模板库作为编译器的一部分进行提供。标准模板库是一个基于模版的容器类,包括链表、列表、队列和堆栈。标准模版库还包含许多常用的算法,包括排序和查找。标准模板库的目的是提供对常用需求重新开发的一种替代方法。标准原创 2013-07-01 09:57:08 · 1731 阅读 · 0 评论 -
继承与接口之覆盖之一
题:以下代码的输出结果是什么?【中国著名门户网站W公司2007年9月校园招聘面试题】// P123_example1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include class A{protected: int m_data;public: A(原创 2013-07-16 10:11:32 · 990 阅读 · 0 评论 -
概率题
题:Please write out the program output.(写出下面程序的运行结果。)【德国某著名软件咨询企业2005年10月面试题】// P92_example1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #define原创 2013-06-28 11:32:14 · 1317 阅读 · 1 评论 -
面向对象之拷贝构造函数和赋值函数之三
题:以下程序存在问题吗?该如何修改?【中国著名杀毒软件企业J公司2008年4月面试题】// P115_example5.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include class NameStr{private: char *原创 2013-07-12 21:29:48 · 712 阅读 · 0 评论 -
面向对象之拷贝构造函数和赋值函数之二
题:哪个子类的虚函数重新声明是正确的?【中国台湾某著名杀毒软件公司2004年面试题】A. Base* Base::copy(Base*); B. Base* Base::copy(Base*); Base* Derived::copy(Derived*); Derived* Derived::copy(Base*);C. ostream& Base::print(i原创 2013-07-12 20:14:34 · 1109 阅读 · 0 评论 -
螺旋队列问题2
题:如矩阵1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9 找出规律,并打印出一个NxN的矩阵,规律就是从首坐标开始顺时针一次增大。解析:依次:按左-->右,上-->下,右-->左,下-->上的原创 2013-06-27 15:23:34 · 1662 阅读 · 2 评论 -
螺旋队列算法分析
螺旋队列的样子如下图:两大规律:1、螺旋规律2、奇数(圈数,或X轴正坐标)平方规律(紫线) 问题描述: 设1的坐标是(0,0),x方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(1,0)。编程实现输入任意一点坐标(x,y),输出所对应的数字! 问题解决:从紫线突破。从图中不难转载 2013-06-26 15:22:08 · 771 阅读 · 0 评论 -
单链表之建立/测长/打印
题:编程实现一个单链表的建立/测长/打印。【日本某著名家电/通信/IT企业面试题】答案:完整代码如下:// P167_example1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include type原创 2013-07-30 10:52:51 · 2425 阅读 · 2 评论 -
单链表之插入结点
题:编写程序实现单链表的插入。【美国某著名计算机嵌入式公司2005年面试题】答案:完整代买如下:// P167_example1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include typedef原创 2013-07-30 16:06:44 · 1736 阅读 · 2 评论 -
高效合并两个有序数组
问题:两个有序数组,合并成一个有序数组,假设第一个数组空间足够容纳两个数组。分析:考虑到a数组很大,可以直接在a数组上进行合并,但是要讲究效率。如果单纯从前往后合并,那么效率会非常低,因为a数组后面的数字需要不停的移动。换一种思路,我们采用从后往前合并,首先计算出总长度,设置一个指针从a数组最后往前移动。算法代码:#include #include #include转载 2013-10-18 00:03:52 · 1470 阅读 · 0 评论 -
判定一棵二叉树是否是二叉搜索树
问题给定一棵二叉树,判定该二叉树是否是二叉搜索树(Binary Search Tree)?解法1:暴力搜索首先说明一下二叉树和二叉搜索树的区别。二叉树指这样的树结构,它的每个结点的孩子数目最多为2个;二叉搜索树是一种二叉树,但是它有附加的一些约束条件,这些约束条件必须对每个结点都成立:结点node的左子树所有结点的值都小于node的值。 结点node的右子树所有结点转载 2013-10-17 23:47:52 · 1034 阅读 · 0 评论 -
百度2014校园招聘-研发工程师笔试题(济南站)
一,简答题(30分)1,当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?(10分) 所谓存储系统的层次结构,就是把各种不同存储容量、存取速度和价格的存储器按层次结构组成多层存储器,并通过管理软件和辅助硬件有机组合成统一的整体,使所存放的程序和数据按层次分布在各种存储器中。目前,在计算机系统中通转载 2013-10-14 22:03:42 · 1360 阅读 · 0 评论 -
广联达软件开发笔试题
1.[编程]给定一个整数,获得它的逆序数,如整数87231,逆序后为13278// nixushu.cpp : Defines the entry point for the console application.////思路是先转成字符串再操作#include "stdafx.h"#include #include //返回值为计算出的逆序数int fun(int nu原创 2013-09-20 18:41:44 · 7210 阅读 · 2 评论 -
阿里巴巴笔试题
转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/69029171、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?A、7 B、8转载 2013-09-15 15:40:03 · 1981 阅读 · 0 评论 -
写一个方法,输入任意一个整数,返回它的阶乘
// jiecheng.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include //递归实现long fac(int n){ long f; if(n == 0) f = 1; else f = n*fac(n-1); return f;}//非原创 2013-08-08 21:12:07 · 4073 阅读 · 0 评论 -
二分查找算法
二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为: 1.第一步查找中间元素,即5,由于5 2.寻找{6, 7, 8,转载 2013-08-08 16:07:27 · 825 阅读 · 0 评论 -
字符串中相同且长度最长的字符串
题目出自:《程序员面试宝典》(第三版) P226页 面试例题2 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及首字符的位置。例如“yyabcdabjcabceg”,输出结果应该为abc和3。 这个题目存在一个歧义,例如如果测试字符串为aaaaaa,我一开始以为结果是长度为3的aaa,原来正确答案是长度为5的aaaaa。即2个等长的子串可以有转载 2013-08-21 21:57:40 · 4607 阅读 · 0 评论 -
#pragma comment(lib,"wsock32.lib")是干什么用的?
这是告诉编译器在编译形成的.obj文件和.exe文件中加一条信息,使得 链接器在链接库的时候要去找wsock32.lib这个库,不要先去找别的库。(.exe文件找DLL 也是这种写法,例如 wsock32.dll).转载 2013-08-07 20:18:19 · 7996 阅读 · 1 评论 -
#pragma comment
简介#pragma comment( comment-type ,["commentstring"] )comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。commentstring是一个提供为comment-type提供附加信息的字符串。参数使用说明compiler放置编译器转载 2013-08-07 20:13:55 · 1006 阅读 · 0 评论 -
位运算与嵌入式编程之位制转换之一
题:下面哪个进制能表述13*16=244是正确的?【中国台湾某计算机硬件公司V2010年5月面试题】A. 5 B. 7 C. 9 D. 11解析:13如果是一个十进制的话,它可以用13=1*10^1+3*10^0来表示。现在我们不知道13是几进制,那我们姑且称其X进制。X进制下的13转化为X进制可以用13=1*X^1+3*X^0表示;X进制下16转化为X进制可以用16=1*X^1+原创 2013-07-24 10:32:37 · 1087 阅读 · 0 评论 -
位域的用法
首先看一个例子:struct a{ int x:1; int y:2; int z:33;};位域的概念位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划原创 2013-07-23 16:02:49 · 3980 阅读 · 0 评论 -
C++类型转换 static_cast, dynamic_cast, reinterpret_cast, const_cast
-- static_cast用于类层次结构中基类和子类之间转换。(基类和子类之间的转换通常建议用dynamic_cast) 进行上行转换(把子类的指针转换成基类)是安全的; 进行下行转换(把基类的指针转换成子类)时,由于没有动态类型检查,所以是不安全的。用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。转载 2013-07-24 16:12:35 · 793 阅读 · 0 评论 -
单链表之排序
题:编程实现单链表的排序。答案:完整代码如下:// P167_example1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include typedef struct student{ int da原创 2013-07-30 16:40:15 · 3432 阅读 · 0 评论 -
面向对象之拷贝构造函数和赋值函数之一
题:编写类String的构造函数、析构函数和赋值函数。【中国某著名综合软件公司2005年面试题】答案:已知类String的原型为:class String{public: //普通构造函数 String(const char *str = NULL); //拷贝构造函数 String(const String &other); //析构函数 ~String(void);原创 2013-07-11 11:31:11 · 881 阅读 · 0 评论 -
面向对象之构造函数和析构函数之五
题:请看下面一段程序:// P110_example5.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include class B{private: int data;public: B() { std::cou原创 2013-07-11 10:18:16 · 1093 阅读 · 0 评论 -
循环与数组问题4
题4、The following C++ code tries to count occurence of each ASCII charcaterin given string and finally print out the occurency numbers.(下面C++代码用来统计每个ASCII字符的出现次数,最后给出出现数值。)#include #include voi原创 2013-06-25 10:21:09 · 1302 阅读 · 0 评论 -
C++ 关键字typeid
在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。 dynam转载 2013-05-29 16:24:08 · 474 阅读 · 0 评论 -
虚函数与纯虚函数
1、基本形式:virtual ReturnType Function_1(); //虚函数声明virtual ReturnType Function_2() = 0; //纯虚函数声明先讲示例吧,再总结结论。2、示例:class Animail{public: void Function_1() {cout <<"Animail::F转载 2013-05-29 16:11:50 · 572 阅读 · 0 评论 -
C++主要数据类型在计算机中所占字节大小
遇到了数据存储的大端和小端问题,这你妹的看的一头雾水,发现我基本知识严重匮乏啊,先了解C++各数据类型在自己机子上占多少字节吧,以及这些数据类型所占字节大小与神马有关。各种查资料然后写代码检验,小结于本文中,给自己补补基础知识。先来列一下C++的数据类型:整型:int,long。这两个还分signed(有符号)和unsigned(无符号)的,当然有符号和无符号所占字节大小是一样的,转载 2013-05-13 09:42:31 · 770 阅读 · 0 评论 -
VS编译器常见错误中英文对照表
fatal error C1003: error count exceeds number; stopping compilation中文对照:(编译错误)错误太多,停止编译分析:修改之前的错误,再次编译 fatal error C1004: unexpected end of file found中文对照:(编译错误)文件未结束分析:一个函数或者一个结构定义缺少“}转载 2013-05-22 16:10:48 · 2728 阅读 · 0 评论 -
程序员面试100题之六:最长公共子串
题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。 例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串,则输出它们的长度4,并打印任意一个子串。转载 2013-05-07 16:00:18 · 659 阅读 · 0 评论