C/C++
文章平均质量分 63
sunmeng_Alex
精通Linux C,云计算,数据挖掘
展开
-
笔试题
填空题 有STL库由哪部分组成,简答题:1.冒泡排序和快速排序的优缺点 2.进程和线程共同使用的技术(好像是这么说的) 3.指针和引用的区别 4.析构函数和普通成员函数的区别编程题(c,c++,java都可以,但不能用库函数) 1.识别一个字节中按位置1的个数,尽量用高效率的原创 2013-05-03 19:43:54 · 1107 阅读 · 0 评论 -
函数sun(int a [],int n)的返回值是数组a[]的前几个元素之和
函数sun(int a [],int n)的返回值是数组a[]的前几个元素之和。请使用递归的非递归两种方式实现。#includeint sun(int *a,int n){/* int i,sum = 0; for(i = 0;i < n;i++) sum += a[i]; return sum;*/ static int sum = 0; if(n-- > 0)原创 2012-12-11 13:15:20 · 2616 阅读 · 0 评论 -
判断一个字符串是否是回文,如果是,返回字符串“yes”,如果不是,返回字符串“no”
判断一个字符串是否是回文,如果是,返回字符串“yes”,如果不是,返回字符串“no”。#include#includevoid func(const char *str,int len){ int i = 0,j = len - 1; while(i < j) { if(str[i] == str[j]) { i++; j--; } else {原创 2012-12-11 13:00:55 · 4925 阅读 · 0 评论 -
有一个16位的整数,求其二进制上每4位的数字之和
有一个16位的整数,求其二进制上每4位的数字之和。例如:int a=1111 1111 1111 1111;(这是2进制) Int sum=1111 +1111 +1111 +1111.(这是10进制的1111)#includeint main(int argc,char *argv[]){ unsigned short a = 0x5; unsigne原创 2012-12-11 12:51:52 · 2991 阅读 · 0 评论 -
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的原创 2012-12-10 21:40:05 · 824 阅读 · 0 评论 -
C++之多态和虚函数
• 多态性是面向对象程序设计的重要特征之一,多态性机制:• 增加了面向对象软件系统的灵活性• 减少了冗余信息• 提高了软件的可重用性和可扩充性多态性是面向对象的一个重要特征。什么是多态性?以下为结构化编程中的一个例子:void fuite_eat(int objFruit){switch(objFruit)case 0: //appleapple_eat()原创 2012-12-09 20:58:19 · 1016 阅读 · 0 评论 -
C++之const 类型
1 常引用在说明引用时加上const修饰,则被说明的引用为常引用。格式:const 类型说明符& 引用名例如:int a=5;const int& b=a;其中,b即是一个常引用,它所引用的对象不允许更改。语句b=12是非法的2常对象说明对象时用const修饰,则被说明的对象为常对象。常对象的说明形式如下:类名 const 对象名[(参数表)];或者原创 2012-12-09 15:43:15 · 932 阅读 · 0 评论 -
C++之友元
1 友元函数1 定义友元函数是一种特殊的函数,它不是类的成员函数,但允许它访问类的私有类型数据和保护类型数据。2 声明方式class 类名称//相关的类{type vars ;......public:friend 函数类型 函数名称( ) ;......//声明友元}friend 函数类型 函数名称( ){......}3 特点原创 2012-12-09 14:30:32 · 702 阅读 · 0 评论 -
进程与线程的区别?
进程与线程的区别?线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统原创 2012-12-10 21:39:36 · 728 阅读 · 0 评论 -
Linux 的 进程/线程 通信方式总结
linux系统中的进程通信方式主要以下几种:PIPE(FIFO)消息队列信号量(Semaphore)共享存储SOCKET同一主机上的进程通信方式 * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) * System V进程通信方式:包括信号量(Sem原创 2012-11-13 10:45:36 · 1504 阅读 · 0 评论 -
C++之对象成员
如果一个类的对象是另一个类的数据成员,则称这样的数据成员为对象成员。例如:class A{//...};class B{A a;//类A的对象a为类B的对象成员public://...};使用对象成员着重要注意的问题是对象成员的初始化问题,即类B的构造函数如何定义?例如有以下的类:class X{类名1对象成员名1;类名2对象原创 2012-12-09 14:55:35 · 836 阅读 · 0 评论 -
从C到C++
1 C++概述C++与C语言的关系:C语言是C++的一个子集,C++包含了C语言的全部内容。1、C++保持与C语言的兼容,现有的许多C代码不经修改就可以为C++所用。2、C++对C语言作了很多改进:①增加了一些新的运算符,使得C++应用起来更加方便。②改进了类型系统,增加了安全性。③引进了“引用”概念,使用引用作函数参数带来了很大方便。④允许函数重载,允许设置缺原创 2012-12-08 20:37:42 · 964 阅读 · 0 评论 -
2013蓝色星际笔试题
为什么这么久都没写文章了,自己工作都找不下真的没脸写,虽说今年形式确实不好,但好学生终究是有人要的。郁闷了好多天,今日重新提笔,人不能一直颓废,人只能不断提高自己而不能抱怨别人。祝大家跟自己都找到理想的工作吧。原创 2012-11-12 22:45:51 · 2625 阅读 · 2 评论 -
全排列(百度迅雷笔试题)
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str), 打印出转载 2012-10-03 00:40:22 · 1270 阅读 · 0 评论 -
用栈来实现括号匹配之优酷笔试题
用栈来实现括号匹配,每个栈有一个theArray和topOfStack,对于空栈其值为-1(这也就是空栈的初始化)。为了将某个元素压入到栈中,将topOfStack加1,然后置theArray[topOfStack]=x。为了弹出栈元素,置pop函数的返回值为theArray[topOfStack],然后将topOfStack减1。#includeint isMatch(const原创 2012-10-16 14:19:32 · 873 阅读 · 0 评论 -
比较两个字符串str1和str2的大小
写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2返回1,若str1小于str2返回-1,不调用C++/C的字符串的字符库函数,请编写函数strcmp,函数定义为:intstrcmp(const char*src,const char*dst)#includeint strcmp(const char *src,const char *dst){ i原创 2012-12-11 13:13:21 · 10542 阅读 · 1 评论 -
如何使一个exe只运行一个实例
方法一:/*创建全局互斥体,然后在进程启动时检查该互斥体是否已被创建只需要在InitInstance()中加入*/::CreateMutex(NULL, FALSE, "MyAPP"); /*创建一个互斥体*/if(ERROR_ALREADY_EXISTS == GetLastError()) { AfxMessageBox("Already run!");原创 2012-12-12 22:39:03 · 1799 阅读 · 0 评论 -
实现strcpy函数
已知strcpy函数的原型是char*strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。不调用C++/C的字符串库函数,请编写函数 strcpy#include#define N 100char *strcpy(char *dest,char *src){ if(dest =原创 2012-12-12 20:32:27 · 893 阅读 · 0 评论 -
FTP客户端实现断点续传
FTP客户端是自己做的的第一个C项目,大二暑假做的。现在拿出来看看,当时只是初学者,暑假在学校一个人做了1个多星期。当代码成功运行时,瞬间感到C的强大与编程的乐趣。不懂的朋友可以问我。connect.c#include #include #include #include #include #include #include #define SERV_IP原创 2013-05-19 10:58:31 · 3016 阅读 · 2 评论 -
设计一个类,该类不能被继承,且只能实例化3次
#includeclass finalclass{public: static int count;public: static finalclass *getinstance() { if(count <= 0) return NULL; count--; return new finalclass; } static void se原创 2013-05-03 19:53:20 · 1877 阅读 · 0 评论 -
非常好的BASH脚本编写教程
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、ke原创 2013-05-04 18:28:30 · 1333 阅读 · 0 评论 -
感受GSAT,挑战Samsung
一大早赶去天大东门,听说韩国人比较注重时间,说是8点半到,没想到三星班车迟到了。大概过了10几分钟,三星班车来了,果然是大公司,班车上LOGO很是不错,还有三星电视的广告。我们大概20多人坐车,人一上车,立马关门,开车就走,根本不停。可见三星办事迅速。人很少,有很多空座。50分钟后,到了三星电子公司,公司硬件一流,跟生产车间在一起。招待我们的MM也很好,边吃口香糖边招待我们,但她办事效率还是很快的原创 2013-04-07 13:57:56 · 2508 阅读 · 0 评论 -
strstr的实现
此题相对简单,跟字符串匹配相差不多,改了个返回值类型而已。#include#includechar *search(char *src,int slen,char *patn,int plen){ int i = 0,j = 0; while(i<slen && j<plen) { if(src[i] == patn[j]) { i++; j++; }原创 2012-09-26 01:25:02 · 687 阅读 · 0 评论 -
对象指针
指向对象的指针在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。指向对象成员的指针对象有地址,存放对象初始地址的指针变量就是指 向对象的指针变量。对象中的成员也有地址,存放 对象成员地址的指针变量就是指向对象成员的指针 变量。1. 指向对象数据成员的指针2原创 2013-03-12 17:38:15 · 1163 阅读 · 0 评论 -
成员函数 构造函数
这就证明了一个对象所占的空间大小只取决于该对象中数据成员所占的空间,而与成员函数无关。函数代码是存储在对象空间之外的。如果对同一个类定义了10个对象,这些对象的成员函数对应的是同一个函数代码段,而不是10个不同的函数代码段。需要注意的是:虽然调用不同对象的成员函数时都是执行同一段函数代码,但是执行结果一般是不相同的。不同的对象使用的是同一个函数代码段,它怎么能够分别对不同对象中的数据进行操原创 2013-03-09 09:36:06 · 1378 阅读 · 0 评论 -
一个应届计算机毕业生的2012求职之路
1、简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。首先说说我拿到的offer情况:微软,3面->终面,搞定百度,3面->终面,口头offer搜狗,2面,悲剧腾讯,1面,悲剧布丁移动,3面,搞定涂鸦游戏,3面,搞定友盟,3面->CEO面,搞定雅虎,4面->终面,搞定微策略,2面,悲剧人民搜索,3面->终面,转载 2013-02-26 11:28:53 · 1506 阅读 · 0 评论 -
C++
#include#includeusing namespace std;int main(int argc,char *argv[]){ float a,b,c,disc; cout<<"Please input a,b,c:"; cin>>a>>b>>c; if(a == 0) cerr<<"a is equal to zero,error!"<<endl; else原创 2013-02-23 11:36:20 · 812 阅读 · 0 评论 -
union
1. 共用体声明和共用体变量定义共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义共用体(有些人也叫"联合")声明和共用体变量定义与结构体十分相似。其形式为:union 共用体名{数据类型 成员名;数据类型 成员名;...} 变量名;共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同原创 2013-03-08 09:38:11 · 996 阅读 · 0 评论 -
程序员面试求职100题(1-10)
本帖题目均选自 何海涛剑指offer一书,欢迎大家与我一起做、讨论这些题目,共同享受编程和思考的乐趣,何乐而不为呢? 1、在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。答案 杨氏矩阵的查找,可以分治,但一个比较好的解法是从第一行最后一列开始查找,决定往左还原创 2013-02-08 12:49:53 · 2448 阅读 · 2 评论 -
程序员面试求职100题(11-20)
以下10题也选择何海涛面试题 11 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。12 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。13 数组中有一个数原创 2013-02-09 12:54:47 · 1863 阅读 · 3 评论 -
求两个字符串的最长公共子串(LCS)
最长公共子串(LCS),有三种情况:1.公共子串的元素必须相邻. 2.公共子串的元素可以不相邻联单3. 求多个字符串而不是两个字符串的最长公共子串1.公共子串的元素必须相邻: LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长匹配子串的位置.原创 2012-10-23 13:00:44 · 2513 阅读 · 2 评论 -
定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
1.将IPV4转换成整数,要求高效。2.定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);3.数组a[n]里存有1到n的所有数,除了一个数removed,找出这个missing的数。4.找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);第一题答案:#includeint change(char *a){ uns原创 2012-10-23 20:22:02 · 3784 阅读 · 1 评论 -
根据前序和中序遍历构造二叉树
#includetypedef struct btnode{ char value; struct btnode *left; struct btnode *right;}btnode;int get_root_idx(char *preorder, char *inorder, int n)//返回根节点的序号{ int i; char ch;原创 2012-10-21 14:06:10 · 4508 阅读 · 1 评论 -
二叉树的递归建立以及深度优先遍历
根据访问结点操作发生位置命名: ① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问根结点的操作发生在遍历其左右子树之前。 ② LNR:中序遍历(InorderTraversal) ——访问根结点的操作发生在遍历其左右子树之中(间)。 ③ LRN:后序遍历(PostorderTraversal) ——访问根结点的操作发生在遍历其左右子树之后。原创 2012-09-27 11:48:10 · 1386 阅读 · 0 评论 -
fgets函数之我见
char * fgets(char * s,int size,FILE * stream);fgets()从文件每次读取一行内容,直到出现换行符、读到文件尾或是已读了size-1个字节。fgets()最多可以读取size-1个字节,末尾定会加上'\0'做结束标志。当从键盘输入数据时,如果输入的字符数等于size-1,则'\n'被转化成'\0';如果字符数小于size-1,则保存'\原创 2012-09-29 18:43:17 · 847 阅读 · 0 评论 -
求在一个字符串中第一次出现一次的字符
比如在字符串“aabccdeff”中第一次出现一次的字符是‘b’此题是Google面试题,要在短时间内想到时间复杂度是N的解法不简单,本人提供一种相对犀利的解法:#include#includechar first(char *str){ int a[255]; char *p = str; memset(a,0,255*sizeof(int)); while(*p原创 2012-09-25 23:08:12 · 903 阅读 · 0 评论 -
选择排序之我见
选择排序比冒泡排序难度稍微大一点点。请看代码#include#define N 10int a[N] = {10,9,8,7,6,5,4,3,1,2};void xuanze(int *a,int n){ int i,j,min,temp; for(i=0;i<n-1;i++) { min = i; //初始最小元素下标 for(j=i+1;j<n;j++)原创 2012-09-25 16:54:57 · 526 阅读 · 0 评论 -
归并排序之我见
插入排序算法采取增量式(Incremental)的策略解决问题,每次添一个元素到已排序的子序列中,逐渐将整个数组排序完毕,它的时间复杂度是O(n2)。下面介绍另一种典型的排序算法--归并排序,它采取分而治之(Divide-and-Conquer)的策略,时间复杂度是Θ(nlgn)。归并排序的步骤如下:Divide: 把长度为n的输入序列分成两个长度为n/2的子序列。Conq原创 2012-09-26 01:16:26 · 661 阅读 · 0 评论 -
输入一个整数字符串,将该字符串转换成整数并输出
此题难度一般,不多说,有问题请在评论里留言#include#includeint main(int argc,char *argv[]){ char *p = "123456"; int num = 0; printf("%s\n",p); while(*p != '\0') { if(*p > '0' && *p < '9') { num = num *原创 2012-09-25 23:22:27 · 3394 阅读 · 0 评论 -
生成互不相同的N个随机数
#include#include#define NUM 100int main(int argc,char *argv[]){ int a[NUM] = {0}; //数组a[NUM]存放标志位,0表示还没有生成,1表示已经存在。 int i = 0,n; srand(time(NULL)); //随机种子,不加这句每次生成的随机数都一样。 while(1) {原创 2012-09-25 17:51:48 · 2393 阅读 · 0 评论