60.解释局部变量、全局变量和静态变量的含义。
局部变量,作用域在指定的函数范围内,超出作用域自动释放。如果与全局变量同名,则在局部范围内以局部变量为主。 全局变量,有效范围从定义变量的位置开始到本源文件结束, 静态变量,生存周期与全局变量一样长,有效范围仅限于声明的位置,如果声明的位置是函数内部,则在函数内部可见,如果是文件范围声明,则在当前文件(声明变量之后)有效。 |
61.论述含参数的宏与函数的优缺点。
含参数宏具有宏的特性(原文替换宏定义部分的代码),代码执行效率高,但无法对参数进行限制,特别是执行指针,如以*p++作为参数时,会出现执行含参数宏后,参数发生变化的bug,要慎用。
函数,封装一定逻辑的操作,提高代码的复用性,同时能够使用const关键字,限制参数在函数内部改变等安全机制,使用起来更加安全,但效率上需要执行函数的调用与参数入栈的过程,有时间开销。
|
61.Windows程序的入口是哪里?写出Windows消息机制的流程。
Widnows程序入口:WinMain() 消息机制流程:
1.Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。
2.Windows为当前执行的每个Windows程序维护一个「消息队列」。在发生输入事件之后,Windows将事件转换为一个「消息」并将消息放入程序的消息队列中。程序通过执行一块称之为「消息循环」的程序代码从消息队列中取出消息:
相关链接:http://www.cnblogs.com/blosaa/archive/2013/05/31/3109586.html http://blog.youkuaiyun.com/tigernana/article/details/8079675 |
62.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。
63.软件开发五个主要step是什么?
你在开发软件的时候,这5个step分别占用的时间百分比是多少?
64.static有什么用途?(请至少说明两种)
答 、
1.限制变量的作用域(文件级的)。
2.设置变量的存储域(全局数据区)。
65.引用与指针有什么区别?
答 、
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
66.描述实时系统的基本特性
答 、在特定时间内完成特定的任务,实时性与可靠性。
67.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
答 、全局变量储存在静态数据区,局部变量在堆栈中。
68.什么是平衡二叉树?
答 、左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。
69.堆栈溢出一般是由什么原因导致的?
答 、1.没有回收垃圾资源
2.层次太深的递归调用
编译器默认有一个堆栈大小限制,所有函数调用及函数内部申请的局部变量都是在栈内分配内存,每次调用函数时都会把当前函数的状态入栈,调用参数入栈,然后开始执行调用函数,当函数执行完毕后,通过出栈操作还原上一级函数的调用状态,当调用层数过多,或者申请局部变量过大,总内存大小超过默认栈大小,就会出现溢出的情况。
70.什么函数不能声明为虚函数?
答 、constructor
Deconstructor 可以声明为虚函数。
系统为一个空类创建的成员函数有那些。
71.冒泡排序算法的时间复杂度是什么?
答 、O(n^2)
72.写出float x 与“零值”比较的if语句。
答 、if(x>0.000001&&x<-0.000001)
float由于精度误差的缘故无法与0做等值比较判断,只能在高精度的极小数值进行范围判断,确定是不是等于0。 |
73.Internet采用哪种网络协议?该协议的主要层次结构?
答 、tcp/ip 应用层/传输层/网络层/数据链路层/物理层
74.Internet物理地址和IP地址转换采用什么协议?
答 、ARP (Address Resolution Protocol)(地址解析协议)
75.IP地址的编码分为哪俩部分?
答 、IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与之后才能区分哪些是网络位哪些是主机位。
76.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。
答 、循环链表,用取余操作做
77.不能做switch()的参数类型是:
答 、switch的参数不能为实型,字符串。
78.局部变量能否和全局变量重名?
答、能,局部会屏蔽全局。要用全局变量,需要使用"::"
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
79.如何引用一个已经定义过的全局变量?
答 、可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
80.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
答 、可以,在不同的C文件中以static形式来声明同名全局变量。
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错