一、跳转语句
goto 可以在函数内任意跳转
它可能会破幻已经设计号的分支、循环语句,因此绝大多数公司禁止使用
但是它在驱动编程时特别适合用于处理异常
标签名:
...
goto 标签名;
练习1: 不使用循环语句计算N的阶乘
5
1*2*3*4*5 = 120
break
1、配合switch使用,关键执行开关
2、跳出循环,只能跳一层
continue
结束本次循环,直接进入下一次循环
return
1、返回一个数据给函数的调用者
2、立即结束函数的执行
练习2:不使用循环语句,计算N项的斐波那契数列
1 1 2 3 5 8 13 21 34...
二、数组
什么是数组:变量的组合,是一种批量定义变量的方式
定义:类型 数组名[数量];
int arr[5];
使用:数组名[下标];
下标:从零开始 范围:0~数量-1
遍历:与for循环配合,使用循环变量i当做数组的下标
int num1,num2,num3,num4,num5;
初始化:类型 数组名[数量] = {1,2,3,4...};
1、数组与普通变量一样默认值是随机的,为了安全要对数组进行初始化
2、这种初始化语法只能在定义数组时使用,并且只能逐个赋值,不能整体赋值
3、初始化数据过多,编译器会产生警告并丢弃
4、初始化数据不足,编译器会自动补0
5、初始化数据可以省略,只写大括号,相当于给所有成员赋0
6、初始化数组时,长度可以省略,编译器会自动统计数据的个数然后告诉数组
数组的长度 = sizeof(arr)/sizeof(arr[0])
练习3:定义一个长度为10的数组并初始化,计算出该数组的最大值、最小值、平均值。
练习4:定义一个长度为10的数组并初始化,进行升序排序
数组越界:为了程序的运行效率是不会检查数组的下标
数组越界的后果:
1、一切正常
2、段错误
3、脏数据
练习5:定义一个长度为10的数组并初始化,找出数组中第二大的值。不允许排序
1、打印9*9乘法表
2、编程解决百钱白鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
3、计算出100~10000指间的所有素数
4、输入一个日期(yyyy-mm-dd),计算该日期距离公元1年1月1日过了多少天
2021-7-12
time(NULL)
5、显示以下图形,printf一次只能输出一个字符
***********
***********
***********
***********
***********
***********
***********
***********
***********