C C++ OC iOS面试重点问题(一)

时间:2023-03-08 16:07:52
1、字符串常量需要加\0

2、逻辑运算 位操作(经典:实现两个数的交换)

3、关键字

4、引用和指针的区别和联系

5、如何引用一个已经定义过的全局变量?   

答:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变变量,假定你将那个变量写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

5、extern关键字的用法?

答:extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。

6、语句for( ;1 ;)有什么问题?它是什么意思?  

答:和while(1)相同都是死循环。

7、请写出下列代码的输出内容   

#include <stdio.h>   main()   {    int a,b,c,d;    a=10;    b=a++;    c=++a;    d=10*a++; 
   printf( "b,c,d,a:%d,%d,%d ",b,c,d, a);    return 0; 
  }     答:10,12,120 ,13

6、bool在C中没有C++中才有?

答:C语言里面没有bool(布尔)类型
C++里面才引入bool类型
C语言里面用数值0表示假,非0整数表示真(一般是1)

7、转义字符

9、全局变量和局部变量可以同名吗?

答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: " 。局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量

10、循环 死循环

11、函数传值,在函数内部改变值是用指针的指针或者引用

12、数据越界

13、算法:字符串拼接、拷贝、等等 两个数变换,冒泡排序,快速排序

14、链表,链表的数据在物理上不一定相邻但是逻辑上面是相邻的。

二叉树,前序 中序 后序

1、大量随机访问数据用数组,大量插入删除就用链表。链表的插入删除的操作?二叉树?

2、队列的特点,先进先出?

3、const的用法有哪几种?

4、static的用法?静态全局 静态局部 初始化一次?如果在一个函数的中间定义一个静态变量

OC iOS

1、函数的签名:即函数名  函数有好多形参的时候怎么办?

2、自动释放池的作用?

3、垃圾回收和引用计数的区别?引用计数为0了才释放

4、C++中有多重和多层,OC中是?

5、宏和常量的区别?内联函数  面试题:写一个宏   区别大体为: inline做类型判断,类型部队回报错或者做类型转换,但是宏不会做类型判断,容易出错,++

6、QQ是怎样实现的下拉列表?

7、层和UIView的区别是什么?

答:两者最大的区别是,图层不会直接渲染到屏幕上,UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView本身更像是一个CALayer的管理器。一个UIView上可以有n个CALayer,每个layer显示一种东西,增强UIView的展现能力。

8、委托的作用?委托也是一个设计模式有一个专门的模块完成一个功能可以让另一个模块异步完成另外一个功能,如果完成了可以通过回调函数来进行下面的操作

最好可以自己写一个委托。

9、为了让项目经理看懂你的代码可以把你的思路写出来。1 2 3 列出来写在纸上。如果让在纸上写代码,除了写代码以外可以把机器的执行步骤模拟出来。