上海龙凤1314 shlf

卫士通A卷笔试题

时间:2018-12-31 12:00:00 资料大全 我要投稿

卫士通A卷笔试题

  声明:题目是记忆的,大致意思相同,具体说法有差异,答案是搜索的,仅为参考,

卫士通A卷笔试题

卫士通A卷笔试题

上海龙凤1314 shlf   一、简答题

  1.c c++内存分配。

  代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store)。

上海龙凤1314 shlf   2.数组和链表的区别。

  (1) 从逻辑结构角度来看

  a, 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。

上海龙凤1314 shlf   b,链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)

  (2)从内存存储角度来看

  a,(静态)数组从栈中分配空间, 对于程序员方便快速,但自由度小。

  b, 链表从堆中分配空间, 自由度大但申请管理比较麻烦.

  数组静态分配内存,链表动态分配内存;

上海龙凤1314 shlf   数组在内存中连续,链表不连续;

  数组元素在栈区,链表元素在堆区;

  数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);

  数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。

  3.什么是野指针,如何避免?

上海龙凤1314 shlf   野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。

  “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的'成因主要有两种:

上海龙凤1314 shlf   (1)、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。

  (2)、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。别看free和delete的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。通常会用语句if (p != NULL)进行防错处理。很遗憾,此时if语句起不到防错作用,因为即便p不是NULL指针,它也不指向合法的内存块。例:

  char *p = (char *) malloc(100);

上海龙凤1314 shlf   strcpy(p, “hello”);

上海龙凤1314 shlf   free(p); // p 所指的内存被释放,但是p所指的地址仍然不变

上海龙凤1314 shlf   if(p != NULL) // 没有起到防错作用

  strcpy(p, “world”); // 出错

  4.指针常量和常量指针的区别?

上海龙凤1314 shlf   int const *p1 = &b;//const 在前,定义为常量指针,const修饰指向的对象,b可变,b指向的对象不可变

  int *const p2 = &c;//*在前,定义为指针常量 ,const修饰指针c,c不可变,c指向的对象可变

  5.全局变量是否可以定义在一个文件中,这个头文件被多个.c文件包含?

  不可以,因为每个.c文件引用该.h文件时,会对.h中的函数重新定义一次,

资料共享平台

卫士通A卷笔试题》(http://gdyhdog.com上海龙凤1314 shlf)。 如果全局变量被定义在可被多个.c文件包含的头文件中时,就会出现重复定义。 所以,应该是在某个.c文件里面定义,在.h中用extern进行声明

  二、找错误

上海龙凤1314 shlf   1.字符处理的问题,将"abc"变成"cba"。

  具体代码忘记了,主要是strlen问题。

  2.

  1. int main()

  2. {

上海龙凤1314 shlf   3. int a[100];

上海龙凤1314 shlf   4. int **p;

上海龙凤1314 shlf   5. p = &a;

上海龙凤1314 shlf   6. return 0;

  7. }

  找错

  3.忘记了

  三、编程题

  1.比较字符串大小,如果字符串1大于字符串2,返回1,相等返回0,小于则返回-1;

上海龙凤1314 shlf   1. int strcmp(const char* str1, const char* str2)

  2. {

上海龙凤1314 shlf   3. int ret = 0;

  4. while(!(ret=*(unsigned char*)str1-*(unsigned char*)str2) && *str1)

  5. {

上海龙凤1314 shlf   6. str1++;

上海龙凤1314 shlf   7. str2++

  8. }

  9.

  10.

  11. if (ret < 0)

  12. {

上海龙凤1314 shlf   13. return -1;

  14. }

上海龙凤1314 shlf   15. else if (ret > 0)

  16. {

上海龙凤1314 shlf   17. return 1;

  18. }

  19. return 0;

  20. }

【卫士通A卷笔试题】相关文章:

1.营销卷笔经

2.亿阳信通笔经

3.360笔试题目

4.360笔试题目

5.笔美国国家仪器试题目

6.高通笔试题

7.广本09年笔试题目

8.yahoo非技术笔试题B卷