【C语言复习】DAY2 循环+条件判断+函数递归(未完待续后续更新 汉诺塔题目一些经典递归题目

学习目标:

  • 复习循环语句
  • 复习条件语句
  • 复习函数
  • 备注:C++库函数说明:cplusplus.com
               C官网:cpppreference.com
               程序员知乎:stackoverflow.com

学习内容:

  1. 掌握while,for ,dowhile()使用方法 ,完成相应题目
  2. 掌握if,switch 使用方法 ,完成相应题目
  3. 掌握函数递归 迭代,完成相应题目
  4. 额外补充知识 getchar,putchar,scanf 以及输入缓冲区

学习时间:

  • 2022/5/28

学习产出:

  • CSDN 技术博客 1 

具体内容:

一.循环案列

1.打印1-100的奇数

short i;
for(i=0;i<100;i++)
{
    if(1 == i%2)
    {
        printf("%d\n",i);
    }

}

2. 使用嵌套循环将“hehe”打印一百次,请判断打印结果,并解释

int i=0;
int j=0;
for(;i<10;i++)
{
    for(;j<10;j++)
    {
        printf("hehe\n");
    }
}

          结果只打印10个hehe,因为外循环第一次进入时 i=0,外循环第二次进入时i=1,此时内循环中的j 已经在上次循环中自增到10,所以只打印10个hehe

3. 第二题的变种,解释结果

int x, y;
for (x = 0, y = 0; x < 2 && y < 5; ++x,y++)
{
	printf("hehe\n");
}
		

 打印两次hehe,因为for 进行一次时 已经 开始一圈 自增 和x++没有区别

4.面试题 请问下面循环了多少次

int i = 0;
int j = 0;
for (i = 0, j = 0; i = 0; i++, j++)
{
	i++;
}

   0次,i=0 ,即将0传入for的条件判断语句,条件为假 跳出循环

5.n的阶乘

int i=0;
int n=0;
int sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
    sum=i*sum;
   
}
 printf("%d的阶乘为:",sum);

6.计算1!+2!+3!...+10!

int i;
int temp=1;
int sum=0;

for (i = 1; i <= 10; i++)
{
	temp *= i;
	sum +=temp;

}
printf("%d\n", sum);

7.输入周几 判断是工作日还是休息日

int day;
scanf("%d",&day);
switch(day)
{
    case1:
    case2:
    case3:
    case4:
    case5:
        printf(“今天是工作日”);break;
    case6:
    case7:
        printf(“今天是休息日”);break;
}

二.函数案例

        1.学会查找库函数的使用说明

                     //C++库函数说明:cplusplus.com
                    // C官网:cppreference.com
                    // 程序员知乎:stackoverflow.com

                参考使用说明 使用strcpy

                 1.1strcpy函数

char arr []="MUJI";
char arr2[]="########";
strcpy(arr2,arr1);
//说明:arr2是目标,arr1是源头,将源头 拷贝到 arr2。形参是char指针类型,而数组名就是数组第一个元素的地址,所以不用加入&取地址
printf("%s\n",arr2);

    2.函数的调用 

                分为传值调用,传址调用            

//传值调用
swap1(int a,int b)//函数将a和b交换
{
    int temp=0;
    temp=a;
    a=b;
    b=temp;

}
int main()
{
    int a=1;
    int b=2;
    swap1(a,b);
    printf("a:%d\n,b:%d\n",a,b);

    return 0;
}

   发现 a和b并没有交换,是因为 在main里使用swap1 传入实参时,会开辟新的内存空间 给swap1使用,swap1里的空间 的ab会在 调用完函数后销毁,并不会干扰到main里面的 ab空间存放的值; 而传址就很好的解决这个问题,使用指针指向存放ab的地址.

//传址调用
swap2(int *a, int *b);
{
    int temp=0;
    temp=*a;
    *a=*b;
    *b=*a;
}
int main()
{
    int a=1;
    int b=2;
    swap2(&a,&b);
    printf("a:%d,b:%d\n",a,b);
}

3.函数的递归

        3.1理论:程序自身调用自身, 函数的递归 作为一种算法,极大减少了代码量

         3.2递归常见的错误

              无条件递归或者栈区对放不下时 就会导致栈溢出,所以一定要加入 递归后越来向 结束递归的条件接近,且不能存放的递归数据过大;

                 //栈区被消耗干,会跳出错误,stack overflow,即栈溢出

                //栈区:存放局部变量,函数形参,由编译器自动分配释放

                //堆区:动态开辟的内存,一般由程序员释放

                //静态区:存放全局变量 static修饰的变量,程序结束后系统自动释放

                //文字常量区:常量字符,程序结束后系统自动释放

                //程序代码区:存放函数体的二进制代码

4.递归练习

        4.1接受一个无符号整型值,按照顺序打印每一位,如输入1234,输出 1 2 3 4

        

int print(int num)
{

    if(num>9)
    {
       print(num/10);
    }
    printf("%d",num%10);//%10是留下最后一位
    

}

int main()
{
    unsigned int num=0;
    scanf("%d",&num);
    print(num);


}

    4.2 编写函数来计算 字符串长度,不允许使用编写临时变量

         

my_lenstr(char *str)
{
    if(*str!='\0')
    {
       return 1+my_lenstr(str+1);
        
    }
    else
    {
        return 0;
    }

}


int main()
{    
    char arr[]='bit';
    
    
    printf("%d",my_lenstr(arr));
    
    return 0;
}

    //

内容概要:本文档围绕水声网络(UAN)仿真中的信道建模展开,提供了基于Matlab的代码实现方案,旨在帮助科研人员构建和理解水声通信系统的仿真环境。文档不仅聚焦于信道建模的核心技术,还系统性地整合了智能优化算法、机器学习、图像处理、路径规划、无人机应用、信号处理、电力系统管理等多个前沿科研方向的技术方法与实际案例。涵盖的具体算法包括遗传算法、粒子群优化(PSO)、神经网络、卡尔曼滤波、支持向量机、极限学习机、卷积神经网络等,并深入探讨其在通信系统仿真中的应用。文档强调“借力”科研理念,倡导利用成熟的算法工具与仿真平台提升研究效率,并提供了丰富的配套资源,包括百度网盘链接和微信公众号入口,便于读者获取完整的代码、仿真模型及相关论文资料,全面支持科研复现与创新。; 适合人群:具备一定Matlab编程基础,从事通信工程、信号与信息处理、水声工程、自动化控制、电子信息、电力系统、无人机技术等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习并复现水声网络信道建模的Matlab仿真流程;② 探索智能优化算法、机器学习、路径规划等技术在通信与多学科交叉系统仿真中的集成应用;③ 获取可用于科研项目的高质量算法代码、仿真案例与复现资源,加速课题研究进程,提升科研创新能力与论文发表水平。; 阅读建议:建议读者按照文档推荐的主题顺序逐步学习,优先聚焦自身研究方向的相关内容,并结合网盘提供的完整资源进行代码实践、仿真调试与结果验证,以实现理论理解与动手能力的双重提升,充分发挥本资源在科研攻关中的支撑作用。
代码下载链接: https://pan.quark.cn/s/b27638adc362 在工业自动化监控领域中,WinCC 被视为一种常用的可视化软件,其功能在于构建人机界面(HMI)以及SCADA系统。本资料将阐释在WinCC环境下如何构建一个展现管道中流体流动的动态效果,此功能主要通过C动作脚本来完成。在此过程中,我们需要构建两个矩形,分别标记为 rec1 和 rec2。这两个矩形的高度相等,但 rec1 的宽度要小于 rec2。在具体实施时,rec1 将作为展示流体运动的可见单元,而 rec2 则作为辅助元素,尽管其“显示”属性被设为关闭,但在程序执行期间,其属性参数对流体动画的表现起着决定性作用,因为 rec2 与 rec1 的宽度差将决定流体每次移动的长度。 随后,我们需要将 rec1 和 rec2 整合为一个自定义对象。在自定义对象的属性配置中,应包含 rec1.Left、rec1.Width、rec1.Visible 和 rec2.Width 这些核心属性。这些属性将有助于在C脚本中精确控制对象的位置和可见状态,以达成流体运动的视觉效果。同时,用户可根据实际需求增加其他属性,以增强自定义对象的功能性。 在自定义对象的C脚本部分,我们设定了一个周期为“250ms”的触发器。该脚本的核心职责是计算并更新流体块的位置。借助 GetPropBOOL、GetPropWord 和 GetLeft 函数,我们可以获取对象的当前状态,涵盖其可见性、位置及宽度等参数。在循环操作中,流体块(rec1)将向右移动 rec2 - rec1 的距离,一旦流体块移出显示范围(即 rec1 的右边界达到或超过 rec2 的左边界),它将重新回到起始位置,从而形成流体持续流动的模...
内容概要:本文围绕同步电机与构网型变流器在低惯量电力系统中的频率稳定特性及多时间尺度动态交互机理展开深入研究,基于IEEE9节点混合拓扑结构,采用Simulink平台构建电磁暂态仿真模型,系统复现并对比了下垂控制、虚拟同步机控制(VSM)、匹配控制以及可调度虚拟振荡器控制(dVOC)等多种构网型变流器控制策略的动态响应特性与频率支撑能力。研究重点剖析了不同类型电源在系统扰动下的频率响应行为,揭示了同步机与变流器在惯性、阻尼及调节响应等不同时间尺度上的耦合机制与相互作用规律,旨在深化对高比例电力电子化电力系统稳定机理的理解,为新型电力系统的稳定分析、控制策略设计与运行优化提供坚实的理论依据与技术支撑。; 适合人群:具备电力系统分析、自动控制理论基础,熟悉Simulink仿真环境,从事新能源并网、微电网、构网型控制、电力系统稳定性研究的研究生、高校科研人员及电力行业工程技术人员。; 使用场景及目标:① 掌握基于IEEE9节点系统的低惯量电力系统建模与电磁暂态仿真方法;② 深入理解并对比主流构网型变流器控制策略的核心原理、实现方式及其对系统频率稳定的贡献差异;③ 分析同步电机与构网型变流器在故障扰动下的多时间尺度动态交互过程;④ 服务于相关领域的科研课题复现、高水平学术论文撰写、科技项目申报与技术方案论证。; 阅读建议:建议读者结合文中所述控制策略,亲手在Simulink中搭建或复现仿真模型,重点关注系统在负荷突变或短路故障等扰动工况下的频率响应曲线、功率动态过程及控制器内部变量变化,同时配合阅读相关领域的权威文献,以深刻理解控制机理与系统稳定性判据,从而有效提升科研实践与创新能力。
标题SpringBoot学生成绩信息管理系统安全设计与实现AI更换标题第1章引言介绍学生成绩信息管理系统安全设计的研究背景、意义、现状及论文方法与创新点。1.1研究背景与意义阐述学生成绩信息管理系统安全设计的重要性与必要性。1.2国内外研究现状分析国内外学生成绩信息管理系统安全设计的研究进展。1.3研究方法以及创新点概述本文的研究方法及在安全设计方面的创新点。第2章相关理论总结和评述学生成绩信息管理系统安全设计的相关理论。2.1信息安全基础理论阐述信息安全的基本概念、原则及重要性。2.2Web应用安全理论介绍Web应用安全漏洞、攻击手段及防御策略。2.3SpringBoot安全机制概述SpringBoot框架提供的安全机制及配置方法。第3章系统安全需求分析详细分析学生成绩信息管理系统的安全需求。3.1用户身份认证需求分析系统对用户身份认证的需求及安全要求。3.2数据传输安全需求阐述数据传输过程中的安全需求及加密技术。3.3数据存储安全需求介绍数据存储的安全需求及数据库安全策略。第4章系统安全设计详细介绍学生成绩信息管理系统的安全设计方案。4.1系统架构安全设计设计系统的整体架构,确保架构层面的安全性。4.2身份认证与授权设计设计用户身份认证和授权机制,确保用户合法访问。4.3数据传输与存储安全设计设计数据传输和存储的安全方案,保障数据安全性。第5章系统安全实现阐述学生成绩信息管理系统安全设计的具体实现过程。5.1开发环境与工具选择介绍系统开发所使用的环境和工具。5.2安全功能模块实现详细描述各安全功能模块的实现代码和逻辑。5.3系统测试与优化对系统进行安全测试,发现并修复潜在的安全漏洞。第6章研究结果呈现系统安全设计实现后的实验分析结果。6.1系统安全性能测试结果展示系统在不同安全测试场景下的性能表现。6.2安全漏洞修复情况介绍系统安全测试中发现并修复的安全漏洞情况。6.3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值