面试题集
zhuimengzh
c plus plus学习者!
希望与更多的同道中人交流、认识。
展开
-
类型转换运算符重载
类型转换运算符,只要你把XXX对象隐式或者显式转换为T对象时,它都会被自动调用。 #includeusing namespace std;//类型转换运算符重载,只要你把XXX对象隐式或者显式转换为T对象时,它自动被调用templateclass Transfer{public: Transfer(int arg):i(arg){} operator原创 2013-02-21 22:45:15 · 3133 阅读 · 1 评论 -
一个给定的数值由左边开始升位到右边第N 位
一个给定的数值由左边开始升位到右边第N 位,如0010或者0001 0011请用C 或者C++或者其他X86 上能运行的程序实现。 #include using namespace std;void Convert(char* input,in原创 2011-08-23 19:46:35 · 1337 阅读 · 0 评论 -
约瑟夫问题的解答(循环单链表)
// 循环链表.cpp : 定义控制台应用程序的入口点。//约瑟夫问题的解答/* 约瑟夫问题的原理: 编号为1~N的N个人按顺时针方向围坐一圈,每人持有 一个密码(正整数),开始任选一个正整数作为报数上限值M, 从第1个人按顺时针方向自原创 2011-09-20 21:44:34 · 3208 阅读 · 0 评论 -
请说出static 和const 关键字尽可能多的作用
static 关键字至少有下列n 个作用:(1)函数体内static 变量的作用范围为该函数体,不同于auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;(2)在模块内的static 全局变量可以被模块内所用函数访问,但不能被模块外其它函原创 2011-08-22 16:26:10 · 2457 阅读 · 0 评论 -
编写一个函数,返回两个字符串的最大公串
编写一个函数,返回两个字符串的最大公串!例如,“adbccadebbca”和“edabccadece”,返回“bccade”//编写一个函数,返回两个字符串的最大公串!例如,“adbccadebbca”和“edabccadece”,//返回“bccade”#inc原创 2011-08-23 09:59:22 · 4559 阅读 · 2 评论 -
编写类String 的构造函数、析构函数和赋值函数
编写类String 的构造函数、析构函数和赋值函数,已知类String 的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other);原创 2011-08-22 16:00:50 · 11273 阅读 · 1 评论 -
带默认参数的虚函数
// 字串查找.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;class base{public: base(){ cout<<"原创 2011-09-18 19:16:22 · 6296 阅读 · 0 评论 -
设计一个算法判断一个字符串是否是回文
设计一个算法判断一个字符串是否是回文,并写出代码。"A man a plan a canal panama"是回文。//是,返回true,否,返回false#include using namespace std;bool Huiwen(char*s){原创 2011-08-21 20:45:11 · 17140 阅读 · 1 评论 -
求2~2000的所有素数.有足够的内存,要求尽量快
//求2~2000 的所有素数.有足够的内存,要求尽量快方法一:#include #include using namespace std;int findvalue[2000]={2};static int find=1;bool adjust(int原创 2011-08-22 13:09:58 · 3393 阅读 · 0 评论 -
写出下列程序在X86 上的运行结果。
写出下列程序在X86 上的运行结果:struct mybitfields { unsigned short a:4; unsigned short b:5; unsigned short c:7;}test;void main(){ int i;原创 2011-08-21 16:09:06 · 1945 阅读 · 0 评论 -
编写gbk_strlen 函数,计算含有汉字的字符串的长度
13.编写gbk_strlen 函数,计算含有汉字的字符串的长度,汉字作为一个字符处理;已知:汉字编码为双字节,其中首字节 #include using namespace std;/*13.编写gbk_strlen 函数,计算含有汉字的字符串的长度,汉字作为一个原创 2011-08-21 13:28:06 · 3675 阅读 · 0 评论 -
对于C++中类(class) 与结构(struct)的描述正确的为
*************************************************************************** 73 对于C++中类(class) 与结构(struct)的描述正确的为: A,类中的成员默认是priv原创 2011-08-20 10:45:38 · 5793 阅读 · 0 评论 -
各类运算符重载函数的编写
用C++实现一个String类,它具有比较,连接,输入,输出功能,并且提供一些测试实例说明如何使用这个类。注意不要使用MFC,STL以及其他库。解析:要实现这些功能,需要重载的运算符:1 ,==和 != 比较运算符。2 +=连接运算符以及赋值运算符。3 输出,原创 2011-09-18 12:52:58 · 3032 阅读 · 0 评论 -
分析代码写输出--new操作符重载的使用
#include #include class Blanks{public: void * operator new(size_t t,char chInit);};void * Blanks::operator new(size_t t, cha原创 2011-09-18 14:35:45 · 868 阅读 · 0 评论 -
自增自减问题
分析题1:写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中a的值: #include using namespace std;void main(){ int a=4; //a+=(a++);//A //cout<<a<<endl原创 2011-08-24 20:27:11 · 925 阅读 · 0 评论 -
内存操作错误改错
#include using namespace std;//测试1// 传入GetMemory1(char *p) 的形参为字符串指针,在函数内部修改形参并不能//真正的改变传入参数的值。执行完毕后 str1仍为NULLvoid GetMemory1原创 2011-08-14 15:16:09 · 770 阅读 · 0 评论 -
函数对象
函数对戏就是重载了()运算符的类的对象,它可以像一个函数一样使用。 // 函数对象.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #includeusing namespace std;/*原创 2011-10-04 01:36:06 · 749 阅读 · 0 评论 -
模板和模板特化
模板分为函数模板和类模板函数模板:是一种抽象函数定义,它代表一类同构函数。类模板:是一种更高层次的抽象的类定义。函数模板的特化:当函数模板需要对某些类型进行特化处理,称为函数模板的特化。类模板的特化:当类模板内需要对某些类型进行特别处理时,使用类模板的特化。原创 2011-10-01 11:06:12 · 5283 阅读 · 0 评论 -
设计一个公共的class,通过它的接口可以对任何类型的数组排序
设计一个公共的class,通过它的接口可以对任何类型的数组排序。// 泛型编程.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;template cla原创 2011-10-01 12:46:22 · 1071 阅读 · 0 评论 -
求职面试小贴士
胸有成竹去面试· 模拟各种面试不要等到有面试通知才开始模拟面试,从你找工作开始就要着手准备。先搜集现有的面试形式、每种面试的要点,然后进行模拟面试。如果找不到合适的人,就在头脑中进行模拟,把可能的问题、情景和答案在心里仔细地想一遍,也可以进行自我对话。模拟面试可以极大转载 2011-09-29 16:44:51 · 1788 阅读 · 0 评论 -
进程与线程的区别
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程转载 2011-08-29 19:51:26 · 931 阅读 · 0 评论 -
删除两个双向循环链表的相同节点
有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一个函数将两链表中数值相同的节点删除。分析:(1) 首先把A中含有与B中相同的数据节点找出来组成一个新的链表,例如:链表A:1 2 3 4 2 6 4链表B:10 20 3 4 2 10原创 2011-09-23 12:37:57 · 5616 阅读 · 1 评论 -
选择题
What is displayed when f() is called given the code:class Number {public:string type; Number(): type(“void”) { }explicit Number(原创 2011-08-28 13:37:51 · 1109 阅读 · 0 评论 -
构造函数析构函数输出顺序
#include using namespace std;class B{ public: B(){ cout } ~B(){ cout } B(int i):data(i){ cout }protected: i原创 2011-08-27 21:03:03 · 1461 阅读 · 1 评论 -
分析一下
分析1#include#include #include #include #include #include typedef struct AA{int b1:5;int b2:2;}AA;void main(){AA a原创 2011-08-23 20:50:23 · 760 阅读 · 0 评论 -
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序(约瑟夫环问题)
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序 // 用户输入M,N值,从1至N开始顺序// 循环数数,每数到M输出该数值,// 直至全部输出#include // 节点typedef struct nod原创 2011-08-28 19:49:30 · 11025 阅读 · 0 评论 -
数组a[N],存放了1 至N-1 个数,其中某个数重复一次
数组a[N],存放了1 至N-1 个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:int do_dup(int a[],int N) 方法一://好算法,因为第二个重复的数字其位置肯定不会变化,而a[a[0]]正好可以原创 2011-08-26 08:41:31 · 12643 阅读 · 6 评论 -
用两个栈实现一个队列的功能?要求给出算法和思路!
用两个栈实现一个队列的功能?要求给出算法和思路!堆栈的特征:FILO 先进后出队列的特征:FIFO 先进先出所以,用两个栈s1和s2模拟一个队列时,s1作输入栈,逐个元素压栈,以此模拟队列元素的入队。当需要出队时,将栈s1退栈并逐个压入栈s2中,s1中原创 2011-08-25 20:47:52 · 7048 阅读 · 1 评论 -
偏移了一个数组的大小
main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}输出:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5原创 2011-08-26 10:16:08 · 2104 阅读 · 1 评论 -
编程题--Mystring类的编写
对于下面的类Mystring,要求重载运算符后可以计算表达式 a=b+c(a,b,c都是类Mystring的对象),请重载相应的运算符并别写程序测试 // 运算符重载.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#in原创 2011-09-16 18:12:38 · 3538 阅读 · 0 评论 -
各种排序算法时间复杂度比较
各种排序算法时间复杂度比较:以上图片来维基百科,http://en.wikipedia.org/wiki/Algorithms原创 2011-08-21 13:38:52 · 1175 阅读 · 0 评论 -
写一个函数,将其中的 都转换成4 个空格。
写一个函数,将其中的\t 都转换成4 个空格。个题目看似很简单,其实里面潜藏着陷阱!关键的问题就在于'\t'是一个字符,而一个空格为一个字符,这样就不能简单地将'\t'换成4个空格了,一个‘\t’直接换的话也只能换成一个空格,所以要达到换成4个空格的目的,还得将后面的字符逐个原创 2011-08-15 09:17:53 · 3107 阅读 · 1 评论 -
下列程序运行时会崩溃,请找出错误并改正,并且说明原因
下列程序运行时会崩溃,请找出错误并改正,并且说明原因。#include stdio.h> #include malloc.h> typedef struct{ TNode* left; TNode* right; int原创 2011-08-15 20:53:29 · 5058 阅读 · 0 评论 -
编程实现字符串中各单词的翻转
编写函数,将"i am from henan "倒置为"henan from am i"即将句子中的单词位置倒置,而不改变单词内部的机构 编程实现字符串中各单词的翻转第一种方法: #include "stdafx.h"#include using name原创 2011-09-13 11:33:03 · 3121 阅读 · 0 评论 -
写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数
//返回 -1 表示未找到匹配位置 //其他值为子串在字符串中的第一个位置#include int Search(char *Str,char *Sum){ int l1=strlen(Str); int l2=strlen(Sum); if (l1-l2原创 2011-08-10 20:57:28 · 7341 阅读 · 6 评论 -
解决动态内存传递不能传递的3种方法
// 动态内存传递.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;/*动态内存传递1 在C中,使用指向指针的指针解决这个问题2 在C++中,使用传递指针的原创 2011-09-10 21:01:00 · 1342 阅读 · 0 评论 -
指针数组和数组指针的使用
指针数组:指针的数组,表示一个数组,并且数组的每一个元素都是指针类型。数组指针:数组的指针,表示一个指针,并且是指向数组的指针。不运行程序,问下面代码的输出是什么?1#include2 using namespace std;3 int main()原创 2011-09-10 14:59:15 · 18360 阅读 · 0 评论 -
交换两个字符串
// 引用.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;//交换两个字符串--指针引用//由于swap函数是指针引用,因此传入函数的就是实参,而原创 2011-09-10 09:20:45 · 11648 阅读 · 4 评论 -
自我实现strcpy,memcpy函数
// 字符串处理函数.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;//编程实现strcpychar* strcpy(char* strDest,const原创 2011-09-11 17:55:09 · 876 阅读 · 0 评论 -
不使用库函数将整数转换为字符串或将字符串转换为整数
不使用库函数将整数转换为字符串// 字符串处理函数.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;//不使用库函数将整数转换为字符串void int2st原创 2011-09-11 15:00:57 · 3692 阅读 · 0 评论