![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++面试题
C__Monkey
这个作者很懒,什么都没留下…
展开
-
SQL语句
1. 找出表ppp里面最小的数,可以使用min函数select *from ppp where num=(select Min(num) from ppp)2.选择表ppp2中num重复的记录select * from ppp2 where num in(select num from ppp2 group by num having (count(num) >原创 2012-10-17 07:04:59 · 346 阅读 · 0 评论 -
求一个字符串中连续出现次数最多的子串
//求一个字符串中连续出现次数最多的子串#include #include #include using namespace std;pair fun(const string &str){vector substrs;int maxcount=1,count =1;string substr;int i,len=str.length原创 2012-10-17 07:09:11 · 345 阅读 · 0 评论 -
怎么样将整数转化为字符串数,并且不用函数itoa
//怎么样将整数转化为字符串数,并且不用函数itoa//解决方法:可以采用+'0',再逆序的办法,整数加'0'就会隐形转化为char 类型的数#include #include int main(){int num=12345,j=0,i=0;char temp[7],str[7];//itoa[number,string,10];原创 2012-10-17 07:11:48 · 403 阅读 · 0 评论 -
冒泡排序
/*冒泡排序 评价时间复杂度O(n^2) *///输入10个整数,输出10个整数,输出排序结果#include #include void maopao(int *list){int i,j,temp;for (i=0; i {for (j=0; j {if (list[j] >list[j+1]){t原创 2012-10-17 07:13:00 · 280 阅读 · 0 评论 -
快速排序
/*快速排序 平均时间复杂度O(n*lgn/lg2) 最差O(n^2) 它是对冒泡算法的一种改进,不仅仅是相邻间的位置进行,比较次数和移动次数比较少 快速排序也称为分区交换排序:初始化基准,然后右侧开始扫描,左侧再扫描,然后递归重复执行; *///快速排序算法QuickSortvoid QuickSort(SeqList R,int l原创 2012-10-17 07:13:45 · 290 阅读 · 0 评论 -
函数指针当做参数传递给另外一个函数
#include //比较函数int jug(int x,int y){if (x >=0)return x;else if (y==0)return x;elsereturn x/y;}//求和函数int sub(int x, int y){return (x+y);}//求差函数int minus(int x,原创 2012-10-17 07:24:47 · 777 阅读 · 0 评论 -
把普通函数修改成泛型函数
在一个数组里面寻找一个相同的元素把普通函数修改成泛型函数const int *find1(const int* array,int n, int x){const int *p = array;for (int i=0; i {if (*p == x){return p;}++p;}return 0;}//////原创 2012-10-17 07:25:31 · 740 阅读 · 0 评论 -
析构函数的用法
要注意,vector对象指针能够自动析构,所以不需要再调用 delete ,否则会造成两次析构对象#include #include using namespace std;int i=0;int j=0;class CDemo{public:CDemo():str(NULL){cout }CDemo(const CDem原创 2012-10-17 07:27:29 · 393 阅读 · 0 评论 -
找出水仙花数
#include #include using namespace std;int main(){int g_iMax =0;cout cin>> g_iMax;try {if (g_iMax throw g_iMax;}//依次检查从0到输入的数据for (int l_iLoop=0; l_iLoop {int l_iTm原创 2012-10-17 07:28:36 · 678 阅读 · 0 评论 -
第一行第一列递增,其余等于上面的数字和左边的数字的和
f(m,n) = {n (m=1)m (n=1)f(m-1,n)+f(m,n-1) (上面一行和左边一行之和) }递归方法:#include using namespace std;int f (int m ,int n){if (1==m){return n;}if (1==n){return原创 2012-10-17 07:31:03 · 851 阅读 · 0 评论 -
写一个标准宏输入两个参数返回较小的一个
#define MIN(A,B) ((A)<=(B)?(A):(B))原创 2012-10-17 07:32:20 · 1144 阅读 · 0 评论 -
输入一行子串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
//输入一行子串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置#include #include using namespace std;int main(){string str,tep;cout cin>>str;for (int i=str.length()-1; i>1; i--){for (int j=0; j原创 2012-10-17 07:08:17 · 1037 阅读 · 0 评论 -
栈
//编程实现栈的入栈#include #include #include #include using namespace std;typedef struct student{int data;struct student *next;}node;typedef struct stackqueue{node *zhandi,*t原创 2012-10-17 07:18:12 · 247 阅读 · 0 评论 -
循环队列解决约瑟夫环问题
/*循环队列解决约瑟夫环问题将一个链表的尾指针指向队列首元素 解决问题的核心步骤: 1.建立一个具有n个链接点、无头结点的循环链表 2.确定第1个报数人的位置 3.不断从链表中删除链接点,直到链表为空*/#include #include #include #define ERROR 0typedef struct LN原创 2012-10-17 07:19:10 · 4434 阅读 · 0 评论 -
单链表
#include #include #include #include using namespace std;typedef struct student{int data;struct student *next;}node;//编程实现一个单链表的建立node *creat(){node *head,*p,*s;原创 2012-10-17 07:21:12 · 310 阅读 · 0 评论 -
删除元素导致迭代器问题
#include #include using namespace std;void print(vector);int main(){vector array;array.push_back(1);array.push_back(6);array.push_back(6);array.push_back(3);//删除array数组中所原创 2012-10-17 07:26:25 · 408 阅读 · 0 评论 -
打印矩阵N,按顺序增加
矩阵如下:1 2 34 516 17 1819 615 24 2520 714 23 2221 813 12 1110 9#include using namespace std;int a[10][10];void Fun(int n){int m=1,i,j;for (i=0; i{原创 2012-10-17 07:27:57 · 808 阅读 · 0 评论 -
查找A数组中某值与B中某值等值
#include using namespace std;void matching(int a[],int b[],int k){int i=0;while (i {int j=0;while ( j {if (a[i] == b[j]){cout break;}j++;}i++;}cout原创 2012-10-17 07:30:23 · 885 阅读 · 0 评论 -
循环队列
循环队列的类型定义 #define QueueSize 100 //应根据具体情况定义该值 typedef char DataType; //DataType的类型依赖于具体的应用 typedef struct{ int front; //头指针,队非空时指向队头元素 int rear; //尾指针,队非空时指向队尾元素的下一位置原创 2012-10-17 08:15:29 · 512 阅读 · 0 评论 -
编写函数,要求输入年月日时分秒,输出该时间的下一秒
#include #include using namespace std;void ResetTheTime(int *year,int *month,int *date,int *hour,int *minute,int *second){int dayofMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};i原创 2012-10-17 07:34:54 · 1772 阅读 · 0 评论 -
转换字符串格式为原来字符串里的字符加上该字符连续出现的个数
//转换字符串格式为:原来字符串里的字符+该字符连续出现的个数//用sprintf函数,可以把整数打印进字符串里面//sprint在大多数场合可以替代itoa函数#include #include using namespace std;int main(){cout string str;char reschar[50];res原创 2012-10-17 07:05:50 · 453 阅读 · 0 评论 -
模拟一个C++的函数strstr()函数:该函数的返回值是主串中字符串子串的位置以后的所有字符
//模拟一个C++的函数strstr()函数:该函数的返回值是主串中字符串子串的位置以后的所有字符//例如主串是12345678,子串是234,那么函数返回值是2345678#include using namespace std;const char* strstr1(const char* string ,const char* strCharSet)原创 2012-10-17 07:07:39 · 1364 阅读 · 0 评论 -
编写一个函数,作用是把一个char组成的字符串循环右移n个
//编写一个函数,作用是把一个char组成的字符串循环右移n个。//比如原来是"abcdefg",如果n=2,移位后应该是"hiabcdefg"//考察strcpy,memcpy,memset函数的使用void LoopMove(char *pStr,int steps){int n=strlen(pStr)-steps; //先求出不用循环的个数char原创 2012-10-17 07:09:44 · 1539 阅读 · 0 评论 -
编程实现字符串转化为整数的办法
//编程实现字符串转化为整数的办法//解决方法:字符串转化为整数,可以采用减去'0'再乘以10累加的办法;#include #include int main(){int num=12345,j=0,i=0,sum=0;char temp[7]={'1','2','3','4','5','\0'},str[7];while (temp原创 2012-10-17 07:11:04 · 436 阅读 · 0 评论 -
队列
//编程实现队列的入队#include #include #include #include using namespace std;typedef struct student{int data;struct student *next;}node;typedef struct linkqueue{node *first原创 2012-10-17 07:14:52 · 312 阅读 · 0 评论 -
模板类的友元重载,用C++代码实现
#include using namespace std;templateclass Test;templateostream& operator &obj);template class Test{private:int num;public:Test(int n=0){num=n;}friend ostre原创 2012-10-17 07:22:15 · 677 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
已知类String 的原型为:class String{public:String(const char *str = NULL);//普通构造函数String(const String &other);//拷贝构造函数~String(void);//析构函数String & operator = (const String &other);//赋值原创 2012-10-17 07:23:19 · 279 阅读 · 0 评论 -
用宏定义FIND求一个结构体里某个变量相对于sturct的偏移量
如:struct student{int a;char b[20];double ccc;}则:FIND(student,a)//等于0 FIND(student,b)//等于4#define FIND(sturct,e) (size_t)&(((struct*)0)->e)因为该结构体首地址就是为0,所以其实就是得到成员e的偏移量原创 2012-10-17 07:33:13 · 558 阅读 · 0 评论 -
一个五位数ABCDE乘与4为EDCBA五个数还不重复
#include using namespace std;int main(){for (int i=10000; i{int j=0;int t=i;while (t!=0){j=j*10 + t%10;t /=10;}if ((i {cout break;}}}原创 2012-10-17 07:33:57 · 1118 阅读 · 0 评论 -
二叉树的遍历以及搜索
#include #include #define ElemType char#define MaxQsize 20#define TRUE 1#define FALSE 0using namespace std;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*r原创 2012-10-17 08:47:45 · 401 阅读 · 0 评论 -
将一句话里的单词进行倒置
//将一句话里的单词进行倒置,标点符号不倒换//解决方法:第一步全盘置换,第二部进行部分翻转,如果不是空格,则开始翻转单词#include #include int main(){int num=-12345,j=0,i=0,flag=0,begin,end;char str[] = "i come from tianjin.",temp;原创 2012-10-17 07:06:30 · 511 阅读 · 0 评论 -
strcpy函数的原型
//strcpy函数的原型char *strcpy(char *strDest, const char *strSrc){ASSERT((strDest !=NULL) && (strSrc !=NULL));char *address = strDest;while((*strDest++ = *strSrc++) != '\0');return addres原创 2012-10-17 07:10:30 · 515 阅读 · 0 评论 -
希尔排序
/*希尔排序,是对直接插入排序(摸扑克一样)的一种改进, 选择增量,来进行分组直接插入排序,知道所有的都在同一组中,即增量为1最后;*///要求输入10个整数,输出排序结果,要用shell排序#include #include void ShellSort(int *data, int len){int d=len;wh原创 2012-10-17 07:12:34 · 227 阅读 · 0 评论 -
用两个栈实现一个队列的功能
/*用两个栈实现一个队列的功能,请用C++实现 思路如下: 假设两个栈A和B,且都为空; 可以认为栈A提供入队列的功能,栈B提供出队列的功能 入队列:入栈A 出队列:1.如果栈B不为空,直接弹出栈B的数据; 2,如果栈B为空,则依次弹出栈A的数据,放入栈B中,再弹出栈B的数据;*/#inc原创 2012-10-17 07:14:25 · 335 阅读 · 0 评论 -
双链表
//编程实现双链表的建立#include #include #include#include using namespace std;typedef struct student{int data;struct student *next;struct student *pre;}dnode;//建立双链表dnode * crea原创 2012-10-17 07:19:35 · 523 阅读 · 0 评论 -
试用多态实现线性表
/*队列、串、堆栈都可以实现push,pop 测长等操作,现在要求用多态去实现,就要建立一个线性表的共性模板;*/#include using namespace std;templatestruct tcontainer{virtual void push(const t&) =0;virtual void pop() =0;virtual原创 2012-10-17 07:24:16 · 411 阅读 · 0 评论 -
直接访问固定内存地址并赋值,编译器是会报错的
直接访问固定内存地址并赋值,编译器是会报错的。注意的转换为长整型long *p;p=(long*)0x12456789*p=0;原创 2012-10-17 07:31:49 · 526 阅读 · 0 评论 -
C++去掉注释
#include #include #include #include #include /***** *功能:移除C/C++程序代码中的注释 * *输入:指向C/C++程序代码的指针 */void remove_comment(char *buf,size_t size){char *p,*end,c;//单引号,双引号原创 2012-10-17 07:34:30 · 1113 阅读 · 0 评论