在C语言中exit函数和return有相同的执行效果,都是退出当前的函数(错)
解析:
1)return是语言级别的,它表示了调用堆栈的返回;return( )是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时。如果有时要检测上个进程是否正常退出。就要用到上个进程的返回值,依次类推。而exit是系统调用级别的,它表示了一个进程的结束。
2)exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。
3)和机器和操作系统有关的一般是: 0为正常退出,非0为非正常退出;
递归函数除了需要有明确的结束条件外,还需要考虑理论递归的层次不易过多()
解析
递归函数的两个基本要求是:要有递归终止条件且递归要向终止条件发展,所以不用考虑过多的递归层次
为了增加产品的可维护性,正式软件产品中可以保留断言()
解析
使用断言来发现软件问题,提高代码可测性,降低产品可维护性,可维护性应删除标记和断言。
说明:断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。
在头文件 foo1.h 中有定义
#undef a
#define a 1
在头文件foo2.h 中有定义
#undef a
#define a 2
那么在文件 foo.c中有
#include "foo1.h"
#include "foo2.h"
输出结果是(2 )
解析
预处理时,程序是从上向下进行的,所以第一个define被取消了
#define 的用法是非常多功能的,它不止能实现常量宏定义,开关,还能实现函数
#undef 是取消宏定义 在undef后面要加上你要取消的宏定义 不想取消在后面可以瞎写但是不能为空
下列程序执行后的输出结果是:(A )
#define MA(x) ((1+a+b)*(1+a+b-1)) 4*3
#define GA(y) y*y
main()
{
int a = 1, b = 2;
printf("%d \n", GA(12)+ GA(a+b));
}
A. 149 B. 153 C. 69 D. 73
解析
哎,自己看宏定义把
以1路和2路公交车都将在10分钟内均匀随机地到达同一车站,则它们相隔4分钟内到达该站的概率为【 64% 】
解析
我也不会求大神解析
大小端问题
