7.3.2 while
while
语句构成循环
循环条件:
1.
变量初值
2.
终止条件
3.
变量变化
如何使用
go to
来完成
1
-
100
的求和
int
main
()
{
int
i
=
1
,
sum
=
0
;
loop
:
if
(
i
<=
100
)
{
sum
=
sum
+
i
;
i
++
;
goto
loop
;
}
printf
(
"%d \n"
,
sum
);
return
0
;
}
基本形式:
while
(
表达式
)
{
statements
;
}
例子:
1-100
的求和:
7.3.3 do-while
do-while
构成循环
基本形式
7.3.4 for
一般形式
执行过程
1.
先求解表达式
1
,初始值。
2.
求解表达式
2
,若为真,则执行循环体,然后执行步骤三,若为假则执行步骤
5
3.
求解表达式
3
4.
转回执行步骤
2
5.
执行
for
下面的语句
for
语句构成循环
表达式
1
可以省略,但循环之前应要给循环变量赋值
表达式
2
可以省略,将陷入死循环
表达式
3
可以省略,但在循环体中增加循环使变量的值改变的语句
题目:打印九九乘法表
![](https://img-blog.csdnimg.cn/direct/7e32ed8a11de4af39e0906ee85f92fd6.png)
7.4
辅助控制语句
7.4.1 break
用于从循环体内跳出一层循环体,即提前结束循环
break
只能用在循环语句和
switch
语句中。
![](https://img-blog.csdnimg.cn/direct/dd611185d1304629bf22efb8566a60f0.png)
7.4.2 continue
结束本次循环,接着判定下一次是否执行循环
注意
break
和
continue
的区别
continue
直结束本次循环,而
break
终止本层循环
![](https://img-blog.csdnimg.cn/direct/407c376e6d364c77920a1abc940f8b65.png)
八
.
数组
8.1
一维数组
构造数据类型之一
数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素
数组中各元素的数据类型要求相同,用数组名和下标确定,数组可以是一维的,也可
以是多维的。
8.1.1
一维数组的定义
1.
所谓一维数组是指只有一个下标的数组,它在计算机的内存中是连续存储的。
2. C
语言中,一维数组的说明一般形式如下:
<
存储类型
> <
数据类型
> <
数组名
>[<
表达式
>]
;
![](https://img-blog.csdnimg.cn/direct/5c1c829ff8194dd599049db6d39f529c.png)
8.1.2
一维数组的引用
数组必须先定义,再使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式:
数组名
[
下标
]
其中,下标可以是常量或者 整形表达式
8.1.3
一维数组的初始化
1.
初始化方式:在定义数组的时候,为数组元素赋初值
int a[5] = {1,2,3,4,5};
2.
说明
1.
数组不初始化,其元素值为随机数
2.
对
static
数组元素不赋初值,系统会自动赋以
0
3.
只给部分数组元素赋初值
题目:冒泡排序
它重复的走访过要排序的数列,一次比较两个元素,如果顺序错误就交换。走访数列的工
作是重复的进行直到没有再需要交换
,
也就是说数列已经排序完成
![](https://img-blog.csdnimg.cn/direct/0da71a3a96154facb7610f4789bd3a7d.png)
8.2
二维数组
8.2.1
二维数组的定义
定义方式:(声明时列数不能省略,行数可以)
元素个数
=
行数
*
列数
8.2.2
二维数组的存放顺序
原因:内存是一维的
二维数组:按行序优先
二维数组
a
是由 三个元素组成
a[0]
、
a[1]
、
a[2]
每个元素
a[i]
由包含
2
个元素的一维数组组成
8.2.3
二维数组的引用
数据类型
数组名
[
常量表达式
][
常量表达式
]
;
例如:
int a[3][4];
float b[2][5];
int c [2][3][4];
8.3
多维数组
具有两个或者两个以上下标的数组称为多维数组。
九
.
字符数组和字符串
9.1
字符数组
字符数组是元素的数据类型为字符类型的数组
字符数组的初始化
逐个字符赋值
char ch[5] = { 'H','e','l','l','o' };
char ch[5] = {'a','b','c'};
形式:
数组名
[
下标
][
下标
]
二维数组元素的初始化
1.
分行初始化
2.
按元素排列顺序初始化
例如:
int
a
[
2
][
3
]
=
{{
1
,
2
,
3
},{
4
,
5
,
6
}};
a
[
0
][
0
]
、
a
[
0
][
1
]
、
a
[
0
][
2
]
、
a
[
1
][
0
]
、
a
[
1
][
1
]
、
a
[
1
][
2
]
例如:
int
a
[][
3
]
=
{{
1
},{
4
,
5
}};
//
一维数组的长度省略
九
.
字符数组和字符串
9.1
字符数组
字符数组是元素的数据类型为字符类型的数组
字符数组的初始化
逐个字符赋值
char ch[5] = { 'H','e','l','l','o' };
char ch[5] = {'a','b','c'};
9.2
字符串数组
C
语言中没有字符串常量,用字符数组处理字符串,字符串结束表示:
‘\0’
题目:输入一个字符串,将字符串逆序输出。
char
fruit
[][
7
]
=
{
"apple"
,
"grape"
,
"pear"
,
"orange"
,
"peach"
};
![](https://img-blog.csdnimg.cn/direct/3d13bf7cbd4a4bc9b5230d97c9937c5d.png)
![](https://img-blog.csdnimg.cn/direct/ad6d2139b23b481093e5c145421a6f36.png)
9.3
字符串函数
C
语言库中实现了很多字符串处理的函数
几个常见的字符串处理函数
1. strlen ,
求字符串长度函数
2. strcpy,
字符串拷贝函数
3. strcat,
字符串连接函数
4. strcmp,
字符串比较函数
#include <string.h>
9.3.1 strlen
字符串长度函数
strlen
格式:
strlen(
字符数组
)
功能:计算字符串长度
返回值:返回字符串实际长度,不包括
'\0'
在内
\xhh
表示十六进制数代表的符号
\ddd
表示八进制的
![](https://img-blog.csdnimg.cn/direct/1432cbac8cfd4ea8a5afc6d055beeb47.png)
9.3.2 strcpy
字符串拷贝函数
strcpy
格式:
strcpy(
字符串
1
,字符串
2)
;
功能
:
将字符串
2
拷贝到字符串
1
中
返回值:返回字符数组
1
的首地址
说明:
1.
字符数组
1
必须足够大
2.
拷贝时
‘\0’
一同拷贝
9.3.3 strcat
字符串连接函数
strcat
格式:
stracat(
字符数组
1
,字符数组
2)
功能:把字符数组
2
连接到字符数组
1
后面
返回值:返回字符数组
1
的首地址
说明:
字符数组
1
必须足够大
连接前,两串均以
'\0'
结束,连接后,串
1
的
'\0'
取消,新串最后加
‘\0’
9.3.4 strcmp
字符串比较函数
strcmp
格式:
strcmp(
字符串
1
,字符串
2)
功能:比较两个字符串
比较规则:对两串从左向右逐个字符比较
(ASCII),
直到遇到不同字符或
'\0'
为止
返回值:返回
int
型整数
1.
若字符串
1 <
字符串
2
,返回负整数
2.
若字符串
1 >
字符串
2
,返回正整数
3.
若字符串
1 =
字符串
2
,返回零
9.3.5
字符串扩展用法
strncpy(p,p1,n) ,复制指定长度字符串
strncat(p,p1,n),附加指定长度字符串
strcasecmp(p.p1), 忽略大小写比较字符串
strncmp(p,p1,n),比较指定长度字符串
strchr(p,c),
在字符串中查找指定字符
strstr(p,p1)
查找字符串 、
1. isalpha()
检查是否为字母字符
2. isupper()
检查是否为大写字母字符
3. islower()
检查是否为小写字母字符
4. isdigit()
检查是否为数字
#include <ctype.h>
![](https://img-blog.csdnimg.cn/direct/f40012dac6ef492593497f1d8d0303d9.png)