中国建设建设工程造价管理协会网站,怎样套用wordpress模板,wordpress主页音乐,著名设计师网站6、随机数函数rand() 功能#xff1a;产生0~RAND_MAX 之间的随机整数。 使用格式#xff1a;rand(); //无参 返回值#xff1a;返回随机整数 说明#xff1a; a.RAND_MAX是一个定义在stdlib.h里面的宏#xff0c;表示可以产生的最大随机整数产生0~RAND_MAX 之间的随机整数。 使用格式rand(); //无参 返回值返回随机整数 说明 a.RAND_MAX是一个定义在stdlib.h里面的宏表示可以产生的最大随机整数 b.如需要获得整数 a 到 b 之间的随机数包括a、b可以使用下面的公式 int r rand()%(b-a1)a;。 c.使用rand()函数还要配套使用随机数种子函数下面介绍否则每次输出的随机数顺序都会相同失去了随机数的意义。 7、随机数种子函数srand() 功能重置随机数种子值 使用格式srand(参1); 参1使用无符号整数作为种子值为增加随机性一般使用随时变化的time(NULL)函数返回的秒数做为种子值 返回值无 说明种子函数srand要在随机数函数rand()前面调用才会发生作用。 8、终止程序函数abort() 功能触发SIGABRT信号终止程序 使用格式abort(); //无参 返回值无 说明abort函数触发信号SIGABRT后有两种情况如无自定义信号处理程序则调用默认信号处理程序然后结束程序如有自定义信号处理程序则在执行默认信号处理程序后会进入自定义信号处理程序然后再结束程序。总之不会再返回主程序这一点与raise()函数发出信号的结果不同。 9、退出当前执行程序函数 exit()、quick_exit()、_Exit() 功能退出当前正在执行的程序 使用格式 exit(参1); quick_exit(参1); _Exit(参1); 参1程序的退出状态0正常退出非零发生错误退出也可使用宏EXIT_SUCCESS和EXIT_FAILURE当作参数 说明 a. 上面三个退出程序函数的区别exit()是正常退出系统会做完整的清理quick_exit() 是快速退出清理工作少一些_Exit() 是立即退出不做清理工作。 b. 退出程序函数退出的是整个程序不是某一个具体函数无论在程序的任何地方遇到上面三个函数程序都会立即结束。 10、退出前处理函数 atexit()、at_quick_exit() 功能程序退出前需要执行的一些函数通过这两个函数进行登记以便程序退出前予以调用。 使用格式atexit(参1); at_quick_exit(参1); 参1要执行的函数地址(函数名)。 返回值调用成功时返回0 调用失败时返回非零值 说明 a.在函数atexit()中登记的函数只有调用exit()退出或main()退出时才会执行同样在函数at_quick_exit()中登记的函数只有在调用quick_exit()退出时才会执行也就是说atexit与exit、at_quick_exit与quick_exit要成对使用。 b.这些函数要在exit或quick_exit前使用而且可以多次使用多次使用时执行顺序是挨着exit()近的先执行。 c.要调用的函数必须是无参、无返回值的。 以上函数的实验程序如下
#includestdio.h
#includetime.h //随机数种子函数
#includestdlib.h
#includesignal.h
void handle(int x)
{printf(按回车键lllll继续...\n);getchar();
}
void myPrint()
{printf(myPrint函数被调用了。。。\n);getchar();exit(EXIT_SUCCESS);
}
void myAtexit()
{printf(myAtexit函数被执行了\n);getchar();
}
int main(void)
{
//生成10个0-100间的随机整数srand(time(0));for (int i 0; i 10; i){int r rand() % (100 - 0 1) 0;//生成0-100之间的10个随机整数printf(%d - %d ,i,r);}//运行结果0 - 92 1 - 55 2 - 26 3 - 41 4 - 17 5 - 32 6 - 80 7 - 69 8 - 1 9 - 93
//实验abort()函数signal(SIGABRT, handle);//abort(); //注释掉否则后面的代码无法运行
//实验exit() //myPrint(); //这个函数中有exit()的调用printf(这里是主程序...\n);
//实验atexit()函数atexit(myAtexit);exit(EXIT_FAILURE); //如果仅注释掉这一行myAtexit仍会被调用main函数正常退出也调用atexit函数getchar();return 0;
}