C语言从头学63—学习头文件stdlib.h(二)

news2024/9/25 13:12:14

6、随机数函数rand()
     功能:产生0~RAND_MAX 之间的随机整数。
     使用格式:rand(); //无参
     返回值:返回随机整数
     说明:
      a.RAND_MAX是一个定义在stdlib.h里面的宏,表示可以产生的最大随机整数;
      b.如需要获得整数 a 到 b 之间的随机数(包括a、b),可以使用下面的公式:
         int r = rand()%(b-a+1)+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.要调用的函数必须是无参、无返回值的。
       以上函数的实验程序如下:

#include<stdio.h>
#include<time.h> //随机数种子函数
#include<stdlib.h>
#include<signal.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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2163624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内衣洗衣机哪个牌子好用?五款业内口碑爆棚产品汇总

内衣裤洗衣机是一种非常实用的洗衣机&#xff0c;可以有效地保护内衣和贴身衣物的质量和卫生&#xff0c;相比于普通的家用大型洗衣机&#xff0c;内衣裤洗衣机在容量、洗涤方式、控制方式和价格等方面有很大的不同之处&#xff0c;如果您经常需要清洗内衣和贴身衣物&#xff0…

无人机蜂群作战会成为未来战争的主要形式吗,该如何反制呢?

无人机蜂群作战在未来战争中确实有可能成为一种重要的作战形式&#xff0c;但是否会成为“主要形式”则取决于多种因素&#xff0c;包括技术发展、战术创新、战略需求以及国际政治和军事格局的变化等。以下是对无人机蜂群作战及其反制措施的详细分析&#xff1a; 一、无人机蜂…

图神经网络(GNN)简单介绍

参考文章:A Gentle Introduction to Graph Neural Networks 仅作为自己学习的笔记 GNN应用领域&#xff1a; 芯片设计 场景分析与问题分析 推荐系统&#xff08;类似抖音&#xff09; 欺诈检测&#xff0c;风控相关 知识图谱 道路交通&#xff0c;动态流量预测 自动驾驶&…

程序员的得力助手:Kimi AI的实战体验引言

引言 作为一名程序员&#xff0c;我们经常需要处理大量信息&#xff0c;从代码调试到文档编写&#xff0c;再到团队协作&#xff0c;每一项任务都需要我们保持高度的专注和效率。在这个过程中&#xff0c;一个得力的助手可以极大地提升我们的工作效率。今天&#xff0c;我想和…

洛谷P2571.传送带

洛谷P2571.传送带 三分模板题 用于单峰函数求极值 一定可以将答案路径分成三段即AE - EF - FD (E和A可能重复&#xff0c;F和D可能重合) E在线段AB上&#xff0c;F在线段CD上 因为有两个不定点EF&#xff0c;因此假设E为参数&#xff0c;三分求F的位置再外层三分求E的位置 …

PMP--三模--解题--1-10

文章目录 9.资源管理1、 [单选] 项目已经准备好开工&#xff0c;资源已经配置好。开发经理随后通知项目经理&#xff0c;由于家庭紧急情况&#xff0c;关键资源不再可用。开发经理表示&#xff0c;所有其他开发人员都被分配到其他项目&#xff0c;任何开发人员都没有能力承担额…

Windows内核编程基础(1)

在前面的文章中&#xff0c;介绍了如何配置开发环境以及如何进行调试。 接下来的几篇文章&#xff0c;将会重点介绍内核编程中所需要了解的一些理论基础。 我写这个系列文章的主要目的是方便以后自己查阅&#xff0c;同时也给正在学习内核开发的小伙伴一些参考&#xff0c;所…

在线PDF转图片怎么转?4种简单转换的方法分享

在线PDF转图片怎么转&#xff1f;在线PDF转图片不仅简化了文档处理流程&#xff0c;还极大地提升了工作效率。无论是教师准备教学材料、学生整理笔记&#xff0c;还是职场人士分享报告&#xff0c;都能通过这一功能轻松实现PDF到图片的转换&#xff0c;确保内容的高清展示与便捷…

OLED(3)字库篇

文章目录 1 显示图片1.1 图片取模 2 字符集与编码2.1 字符编码2.2 ASCII2.3 中文编码2.3.1 GB2312 标准2.3.2 GBK 编码2.3.3 GB18030 2.4 Unicode 字符集和编码2.4.1 UTF-322.4.2 UTF-162.4.3 UTF-8 3 字库 DIY3.1 生成字库3.2 烧录到 W25Qxx 1 显示图片 1.1 图片取模 1&#…

【完整梳理验证】企业微信第三方应用接入全流程java版

企业微信第三方应用接入全流程java版 1. 概念与流程1.1 概念1、企业内部应用2、`第三方应用`3、代开发自建应用1.2 流程1.2.1 全局流程1.2.2 应用配置1.2.3 数据流程2. 核心文档2.1 理解第三方应用开发流程和概念2.1.1 应用开发阶段2.1.2 应用推广阶段2.1.3 基本流程1)前期应用…

【VUE_ruoyi-vue】基于ruoyi-vue框架实现简单的系统通用文件模块

基于ruoyi-vue框架&#xff0c;新增一个简单的系统通用文件模块&#xff0c;服务与各个模块涉及到文件上传信息的记录和相关展示 运行sql,创建数据库表 DROP TABLE IF EXISTS sys_file_info; CREATE TABLE sys_file_info (id int(11) NOT NULL AUTO_INCREMENT COMMENT id,lin…

怎样才能远程了解在iPhone、iPad上看了什么网站、用了什么APP?

有不少家长在网上吐槽&#xff1a; ——自家小孩每天抱着手机看&#xff0c;一看就两三个小时&#xff0c;到底在看什么&#xff1f; ——没有不允许小孩玩手机&#xff0c;但他一玩就一整天&#xff0c;用什么户外活动、家庭活动都吸引不回来。 ——每次问小孩在手机上看什…

【C++掌中宝】用最少的话让你全方位理解内联函数

文章目录 引言1. 什么是内联函数2. 工作原理3. 内联函数的编程风格4. 使用限制5. 内联函数与宏的比较6. 优缺点7. 何时使用内联函数8. 补充9. 总结结语 引言 在C编程中&#xff0c;函数的调用开销是程序运行效率的一个重要影响因素。为了解决频繁调用函数时的性能问题&#xf…

8080时序

通过RS来区分是命令还是数据 在WR高电平时&#xff0c;将数据放入D[0:15]数据线上 在WR上升沿&#xff0c;读取D[0:15]数据线上的数据 //提前把默认信号设置为对应电平 static inline void LcdSendCmd(uint16_t cmdVal) {LCD_CS_RESET();//cs输出低电平&#xff0c;表示片选…

【Diffusion分割】MedSegDiff-v2:Diffusion模型进行医学图像分割

MedSegDiff-V2: Diffusion-Based Medical Image Segmentation with Transformer 摘要&#xff1a; 最近的研究揭示了 DPM 在医学图像分析领域的实用性&#xff0c;医学图像分割模型在各种任务中表现出的出色性能就证明了这一点。尽管这些模型最初是以 UNet 架构为基础的&…

低代码BPA(业务流程自动化)技术探讨

一、BPA流程设计平台的特点 可视化设计工具 大多数BPA流程设计平台提供直观的拖拽式界面&#xff0c;用户可以通过图形化方式设计、修改及优化业务流程。这种可视化的方式不仅降低了门槛&#xff0c;还便于非技术人员理解和参与流程设计。集成能力 现代BPA平台通常具备与其他系…

My_String完善

#include "my_string_ok.h" My_string_Ok::My_string_Ok():size(20) { len 0; ptr new char[size]; ptr[len] \0; } My_string_Ok::My_string_Ok(int num,char c) { cout<<"有参构造"<<endl; ptr new char [20] ; len 0; for…

K8s安装部署(v1.28)--超详细(cri-docker作为运行时)

1、准备环境 ip角色系统主机名cpumem192.168.40.129mastercentos7.9k8smaster48192.168.40.130node1centos7.9k8snode148192.168.40.131node2centos7.9k8snode248192.168.40.132node3centos7.9k8snode348 2、系统配置&#xff08;所有节点&#xff09; 重要&#xff1a;首先…

怎么更换自己的ip地址?多种方法可实现

在当今的数字化时代&#xff0c;IP地址作为我们在网络世界中的“身份证”&#xff0c;扮演着举足轻重的角色。然而&#xff0c;有时候出于隐私保护、网络安全或是访问特定服务等需求&#xff0c;我们可能需要更换自己的IP地址。那么&#xff0c;如何实现这一目标呢&#xff1f;…

2024年10月2-4日(星期三-星期五)骑行(石林-老圭山)

2024年10月2-4日 (星期六&#xff09;骑行&#xff08;石林-大草坪---长坪---石头寨---海邑镇---老圭山&#xff09;&#xff0c;早8:30到9:00&#xff0c;新螺蛳湾客运站正门&#xff0c;地铁二号线南部客运站站出口集合&#xff0c;9:30装车&#xff0c;10:00出发。偶遇地点:…