1、程序设计基础 C语言,学习目标,理解数组对程序设计的重要性 能够声明和运用简单数组 理解数据在内存中如何存储 学会对数组进行静态初始化 知道将数组作为函数参数传递的过程和简单变量的传递过程不同(地址传递与值传递),数组回顾,数组特征: 顺序:元素有序存放,可以按顺序访问 同质:所有元素具有相同的数据类型 数组使用: 声明数组;初始化数组元素访问数组元素,字符数组,定义: 专用于存放字符数据的数组 一个元素存放一个字符,说明: 若所提供初值个数大于数组长度,则语法错误 定义时可以省略数组长度,系统自动确定 若所提供初值个数小于数组指定长度,则将初值按序赋给前面元素,剩余元素自动设为0,字符数组初
2、始化方法2,字符数组初始化方法3,方法3的使用说明: 这种方法获得的字符数组,长度比字符数多1原因:系统为字符串常量自动添加0结束符,,字符数组初始化方法3,字符串常量,C语言中字符串常量的存储 利用字符数组存储: 系统为字符串常量(如“I am happy“)自动添加结束标志0 字符串的实际长度(字符串长字符数组长度) 遇到字符0之前的字符数组元素个数,字符数组的输入输出方法2,串输出 以字符串“%s“格式符输出:不输出结束符0 输出项为字符数组名,字符串输入输出函数,字符串处理函数(*),strcat(字符数组1,字符数组2) 作用:连接两个字符数组中的字符串,把字符串2接到字符串1后面,
3、结果放在字符数组1中 注意: 字符数组1必须足够大,以便容纳连接后的新字符串。 连接前两个字符串的后面都有一个0,连接时将字符串1后面的0取消,只在新串结束后保留一个0,字符串处理函数(*),字符串处理函数(*),strcpy(字符数组1,字符串2) 作用:复制字符串2到字符数组1中去 注意: 字符数组1必须足够大,不应小于字符串2的长度。 “字符数组1”必须写成数组名形式 “字符串2”可以是字符数组名,也可以是字符串常量 复制时连同字符串后面的0也一起复制到字符数组1中 不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组,字符串处理函数(*),字符串处理函数(*),strcmp(字符
4、串1,字符串2) 作用:比较字符串1和字符串2 规则: 逐字符比较对应字符的ASCII码值,直到遇到不同字符或遇到0为止 若全部字符相同,则两个字符串相等,返回0 若出现不相同字符,则以第一个不相同字符的比较结果为准,返回不相同字符的ASCII码差值 注意: 值差,字符串处理函数(*),字符串处理函数(*),strlen(字符数组) 作用:测试字符串实际长度(不包括0) strlwr(字符串) 作用:将字符串中大写字母转换成小写字母 strupr(字符串) 作用:将字符串中小写字母转换成为大写字母,二维数组的声明,声明方式:例如:float a 34, b510; 数组元素排放顺序: 二维数组可以看作是一种特殊的一维数组 按行存放 每行元素可看成为一维数组,二维数组元素的初始化,分行赋值: 例如 int a34=1,2,3,4,5,6,7,8,9,10,11,12; 平展赋值(全部赋值,可缺省第一维长度) 例如 int a34=1,2,3,4,5,6,7,8,9,10,11,12; 例如 int a 4=1,2,3,4,5,6,7,8,9,10,11,12; 部分元素显式赋值 例如 int a34=1,5,9;其余自动赋为0,二维数组程序示例,求转置矩阵,寻找矩阵中最大值,