ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:35.95KB ,
资源ID:18847585      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18847585.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++常见面试题Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++常见面试题Word文档下载推荐.docx

1、 unionV structX unsignedchars1:s2:s3: x; unsignedc; v; v.c=100; printf(%d,v.x.s3); 结果:3。100的2进制是1100100,去掉后面5位余11放入x.s3中,所以结果是3。(4) 对于空的类进行评测。 class A ; sizeof(A) = 1; 默认空类是有一个占位符的。 对于虚函数,下面的代码中,sizeof(A)=4;sizeof(B) =4; 任何含有虚函数的类都拥有一个vptr指针,用来指向虚函数表vtable。sizeof(vptr) = 4。 class A virtual test(); c

2、lass B: public A; class Astatic int a; 对于静态成员变量是分配在全局存储区的,所以A还是相当于空类。 class C:public virtual A ; sizeof(C)=4; 对于虚拟继承的类拥有虚函数表,所以空类C含有vptr.(5) 设有以下说明和定义: typedef union long i; int k5; char c; DATE; / sizeof(int)*5 = 20 struct data int cat; DATE cow; double dog; too; /4+20+8 = 32 DATE max; 则语句 printf(,

3、sizeof(struct date)+sizeof(max);的执行结果是:52 对于union联合来说,取其中最大元素长度来做为联合大小。(6) 使用malloc或者new 分配内存,void *ppmalloc(10); sizeof(p) = 4; 跟指针一样,sizeof 只能测出静态数组的长度,无法检测动态分配的或外部数组大小(7) 下面函数输出结果:对于char str100或者char str参数都退化为char* str,这样的函数即使传入char s10 也是可以的 void Func(char str100) printf(%dn, sizeof(str); char s

4、10; /函数对数组长度并没有检验 Func(s);sizeof( char* ) = 4; 如何强制str为100位数组?可以如此声明 char ( &str )100; 理解顺序:第一、str声明为一个引用;第二、引用一个100元素数组;第三、数组元素每个为int大小。 void Func(char (&str)100) char s100;/这里必须给定100位长度char数组100*sizeof(char) = 100CONST 常见题目(1) const 与 #define有什么不同? 第一、 const 常量有数据类型,而宏没有数据类型。编译器可以对const 常量 进行类型检查,

5、而对宏只进行字符替换没有类型检查;第二、有些编译器可以对const常量进行调试,但不能对宏常量进行调试; 第三、const 可以用来修饰函数参数、函数返回值;在C+里还可以用来修饰函数,定义内中某个成员函数为常量函数。(2) 写一个标准宏MIN,这个宏输入两个参数并返回较小的一个 #define MIN(A,B) ( ( A ) val ) r = m; m = (m+l)/2; else if(am val) l = m; m = (m+r)/2; else return m; return -1; /没有找到2 常见字符串面试题写出在母串中查找子串出现次数的代码 /* 在母串中查找子串出现

6、次数的代码。*str:母字符串;*s:子字符串*/int count(char* str,char* s) char* s1; char* s2; int count = 0; while( *str != 0 ) s1 = str; s2 = s; while( ( *s2 = *s1 ) & ( *s2 ! ) & ( *s1 ! ) ) s2+; s1+; if( *s2 = count+; str+; return count;查找第一个匹配子串位置,如果返回的是s1长度len1表示没有找到。size_t find(char* s1,char* s2) size_t len1 = st

7、rlen(s1); size_t len2 = strlen(s2); if( len1 - len2 0 ) return len1; for( size_t i=0; ilen1-len2; i+ ) size_t m = i; for( size_t j=0; j len2; j+ ) if( s1m != s2j ) break; m+; if( j = len2 ) break; return ( i *strSec ) / 找到第一个不等的字符,strFir的靠后 return 1; else if( *strFir = *strSec) / 两个字符串相等 return 0; r

8、eturn -1; / 找到第一个不等的字符,strFir的靠前实现字符串翻转void myreverse(char* str) assert(str != NULL); char * p1 = str; char * p2 = str-1; while( *+p2 ) /一般要求不能使用strlen p2 -= 1; while(p1p2) char c = *p1; *p1+ = *p2; *p2- = c;用指针的方法,将字符串“ABCD1234efgh”前后对调显示/不能用strlen求字符串长度,否则就没分了 char strSrc = ABCD1234efgh char * p1

9、= strSrc; char * p2 = strSrc - 1; while( *+p2 ) NULL; p2 -= 1; while( p1 p2 ) char c = *p1; *p1+ = *p2; *p2- = c;给定字符串A和B,输出A和B中的最大公共子串。比如A=aocdfe B=pmcdfa 则输出cdf#include stdafx.h#include#include using namespace std;char *commanstring(char shortstring, char longstring) int i, j; char *substring = (c

10、har *)malloc(256); if( strstr( longstring, shortstring ) != NULL) /如果,那么返回shortstring return shortstring; for( i = strlen( shortstring ) - 1; i 0; i- ) /否则,开始循环计算 for( j=0;= strlen( shortstring ) - i; memcpy( substring, &shortstringj, i ); / memcpy:从&shortstringj里 / 拷贝i字节到substring里 substringi = if(

11、 strstr( longstring, substring ) != NULL ) return substring; return NULL;int main() char *str1 = (char *)malloc(256); char *str2 = (char *)malloc(256); char *comman = NULL; gets( str1 ); gets( str2 ); if( strlen( str1 ) strlen( str2 ) ) /将短的字符串放前面 comman = commanstring( str2, str1 ); else comman = c

12、ommanstring( str1, str2 ); printf(the longest comman string is: %sn, comman); return 0;判断一个字符串是不是回文int IsReverseStr(char *str) int found = 1; if( str = NULL ) return -1; / 空字串,返回-1 char* p = str - 1; while( *+p !) p -= 1; while( ( *str = *p ) & ( strp ) ) str+,p-; / 可以写while语句里:while( ( *str+ = *p-

13、) &p ) ) ; if( str src ) /考虑覆盖情况 d = (char *)dst + len - 1; s = (char *)src + len - 1; while ( len = 4 ) / 循环展开,提高执行效率 *d- = *s-; len -= 4; while ( len- ) else if ( dst 47 & *in 58 ; in+ ) count+; else in+; if( maxlen count ) maxlen = count; count = 0; final = temp; for(int i = 0; i 0 ( *p i ? cnt :

14、 i ); return cnt;编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。char * search(char *cpSource, char ch) char *cpTemp=NULL, *cpDest=NULL; int iTemp, iCount=0; while(*cpSource) if(*cpSource = ch ) iTemp = 0; cpTemp = cpSource; while(*cpSource = ch) +iTemp, +cpSource; if(iTemp iCount) iCount = iTemp, c

15、pDest = cpTemp; if(!*cpSource) break; +cpSource; return cpDest;3 排序算法写出快速排序或者某种排序算法代码(1) 快速排序int partition(int* a,int l,int r) int i=l-1,j=r,v=ar; while(1) while(a+iv) if(j=j) swap(ai,aj); swap(ai,ar); return i;void qsort(int* a,int l,int r) if(rl) int i = partition(a,l,r); qsort(a,l,i-1); qsort(a,i+1,r);有兴趣可以看看下面2个。一般面试不会要求的改进1: while(lr) /防止过多递归 l = i+1;改进2: if(r-l32) /防止分割恶化 insertsort(a+l,r-l+1); /后面的插入排序 return; int i = partition(a,l

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1