当前位置:七七学习网文档大全求职指南求职笔试面试面试问题UT斯达康笔试面试经验» 正文

UT斯达康笔试面试经验

[10-10 21:18:33]   来源:http://www.77xue.com  面试问题   阅读:8238
概要:一篇来自网友的UT斯达康笔试面试经验,看完后受益良多…… 7月17号去的UTS软件部门面试,至今已半月,很想把心得写出来大家共享,今天终于抽出空来了。 一.compile和link哪个先哪个后,生成文件的格式分别是什么?.二.字符串比较是哪个函数,两个串比较后大于和小于的返回值分别是什么? 原型:extern int strcmp(char *s1,char * s2); 用法:#include <string.h> 功能:比较字符串s1和s2。 说明: 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 举例: // strcmp.c #include <syslib.h> #include <string.h> main() { char *s1="Hello, Programmers!"; char *s2=&q
UT斯达康笔试面试经验,标签:面试问题汇总,英语面试问题及答案,http://www.77xue.com
一篇来自网友的UT斯达康笔试面试经验,看完后受益良多……
   7月17号去的UTS软件部门面试,至今已半月,很想把心得写出来大家共享,今天终于抽出空来了。
一.compile和link哪个先哪个后,生成文件的格式分别是什么?.
二.字符串比较是哪个函数,两个串比较后大于和小于的返回值分别是什么?
原型:extern int strcmp(char *s1,char * s2);
用法:#include <string.h> 功能:比较字符串s1和s2。
说明: 当s1<s2时,返回值<0
       当s1=s2时,返回值=0
       当s1>s2时,返回值>0
举例: // strcmp.c
#include <syslib.h>
#include <string.h>
main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
getchar();
return 0;
}
三.在用VC编译时debug和release两种编译指令有啥区别?
    relese版和debug不同在于:
    debug版使用于调试的,它关闭了大多数代码优化,并回自动初始化开辟出来的内存(置为0xcc),并携带调试信息,但是执行起来比较慢。
    release版是最终给客户的,开启了代码优化,不会自动初始化内存,一般不携带调试信息执行比较快。
    debug和release还有一个区别,呵呵,编译成的exe,dll,lib文件的大小差太多了。
    如果debug下正确,release版本出错,原因可能很多,毕竟debug多做了很多事。建议你用写log到文件的方法除错。
    常见问题:
1.变量未初始化。
下面的程序在debug中运行的很好。
thing *search(thing , *something)
{
BOOL found;
for(int i = 0; i < whatever.GetSize(); i++)
{
if(whatever->field == something->field)
{ /* found it */
found = TRUE;
break;
} /* found it */
}
if(found)
return whatever;
else
return NULL;
}
而在release中却不行,因为debug中会自动给变量初始化found=FALSE,而在release版中则不会。所以尽可能的给变量、类或结构初始化。
2. 数据溢出的问题
如:char buffer[10];
int counter;
lstrcpy(buffer, "abcdefghik");
    在debug版中buffer的NULL覆盖了counter的高位,但是除非counter>16M,什么问题也没有。但是在release版中,counter可能被放在寄存器中,这样NULL就覆盖了buffer下面的空间,可能就是函数的返回地址,这将导致ACCESS ERROR。
3. DEBUG版和RELEASE版的内存分配方式是不同的。
    如果你在DEBUG版中申请 ele为 6*sizeof(DWORD)=24bytes,实际上分配给你的是32bytes(debug版以32bytes为单位分配),而在release版,分配给你的就是24bytes(release版以8bytes为单位),所以在debug版中如果你写ele[6],可能不会有什么问题,而在release版中,就有ACCESS VIOLATE。
四.野指针的问题:
    在指针P用完后执行了一句free(p);为什么还要加一句 p=null; ?
    “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种:
    1、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。

[1] [2] [3]  下一页


Tag:面试问题面试问题汇总,英语面试问题及答案求职指南 - 求职笔试面试 - 面试问题

《UT斯达康笔试面试经验》相关文章

联系我们 | 网站地图 | 范文大全 | 管理知识 | 教学教育 | 作文大全 | 语句好词
Copyright http://www.77xue.com--(七七学习网) All Right Reserved.
1 2 3 4 5 6 7 8 9 10