欢迎来到天天文库
浏览记录
ID:15248484
大小:134.00 KB
页数:26页
时间:2018-08-02
《2014软件类面试技术题精心汇集(清风浅醉整理)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件岗面试2014年汇集常考题(清风浅醉-亮)2014年本人找工作期间精心总结的嵌入式软件开发方向的面试笔试常考题目,现在发布希望对后来者有帮助。废话不多说,直接上题目。面试最喜欢面试源代码以及这些基本的数据结构编程题,希望应聘者多看看,我这里总结的都是精挑细选的源码,数据结构编程题也是我面试了几十家公司的总结,能力有限只拿了7-8个offer,这里都是大公司常考的东西,希望对你们有用。 assert宏能测试传入表达式的真假值,当表达式为真(true),则不会有任何反应;当表达式为假(false),则
2、函数将输出错误信息,并中断程序的执行。 功能: assert宏可以用来判断某表达式的真假值,并在程序执行的过程中实时响应错误信息,因此在程序开发的过程中,常常被用来作程序纠错的工具,当程序开发完成,只需要在加载头文件前面,利用#define指令定义NDEBUG这个关键字,则所有assert都会失效,源程序不需做任何修改。 当传入的表达式为真,则assert不会有任何响应;当表达式为假时,assert函数会显示出发生错误的表达式、源代码文件名以及发生错误的程序代码行数,并调用abort函数,结束
3、程序执行1、Strcat函数原型如下:char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数{ char * address = strDest; //该语句若放在assert之后,编译出错 assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非0断言 while(*strDest) //这是
4、必须的,把strDest中指针移位到到数据末端,实现连接 { //若使用while(*strDest++),则会出错,因为++是不受循环 strDest++; //约束的。所以要在循环体内++;因为要是*strDest最后指 } //向该字符串的结束标志’ ’。 while(*strDest++ = *strScr++)
5、//是while((*strDest++ = *strScr++)!=’ ’)的简化形式 { NULL; //该循环条件内可以用++, } //此处可以加语句*strDest=’ ’;有无必要?return address; //为了实现链式操作,将目的地址返回}注:一般用此函数连接两个子串的话,需要注意:当目的字串给出的是字符的十六进制(0
6、x00)时,里面的零很容易被忽视(字符串的结束符‘/0’的asii码值是0x00)。所以这种情况的话可以考虑用内存拷贝函数memcpy,若一定要用此函数需做一些小处理。=============================================================2、Strcpy函数原型如下:char *strcpy(char *strDest, const char *strScr){ char *address=strDest; assert((st
7、rDest != NULL) && (strScr != NULL)); while(*strScr) //是while(*strScr != ’ ’)的简化形式; { *strDest++ = *strScr++;//复制指向的数据 } *strDest = ' '; //当strScr字符串长度小于原strDest字符串长度 ret
8、urn address; //时,如果没有改语句,就会出错了。}=============================================================3、Strcmp函数原型如下:功能:比较字符串s1和s2。说明:当s1s2时,返回正数即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同
此文档下载收益归作者所有