目录

  • 1 计算机概述
    • 1.1 计算机简介
    • 1.2 计算机系统
    • 1.3 数值在计算机中的表示
  • 2 C语言概述
    • 2.1 C语言发展及特点
    • 2.2 C语言程序的运行步骤和开发环境
    • 2.3 简单的C语言程序
  • 3 C语言基础
    • 3.1 变量、常量及数据类型
    • 3.2 运算符和表达式
    • 3.3 输入、输出
  • 4 选择结构
    • 4.1 计算机编程和算法
    • 4.2 if语句
    • 4.3 if嵌套和if多分支
    • 4.4 switch语句
  • 5 循环结构
    • 5.1 while语句和do...while语句
    • 5.2 for语句
    • 5.3 break语句和continue语句
    • 5.4 goto语句构成的循环
    • 5.5 嵌套循环结构
    • 5.6 程序设计举例
  • 6 函数
    • 6.1 函数的定义与调用
    • 6.2 函数的嵌套调用和递归调用
    • 6.3 作用域和生命周期
    • 6.4 章节小结与测试
  • 7 数组
    • 7.1 一维数组及应用
    • 7.2 二维数组及应用
    • 7.3 字符数组
    • 7.4 数组作为函数参数
    • 7.5 章节小结与测试
  • 8 指针
    • 8.1 指针变量
    • 8.2 指针与数组
    • 8.3 指针的多种形态
  • 9 字符串
    • 9.1 字符串概念及输入输出
    • 9.2 字符串函数
    • 9.3 指针与字符串
    • 9.4 章节小结与测试
  • 10 编译预处理
    • 10.1 宏定义
    • 10.2 文件包含
    • 10.3 条件编译
  • 11 结构体、共用体和用户定义类型
    • 11.1 结构体类型变量
    • 11.2 结构体类型数组与指针
    • 11.3 结构体与函数
    • 11.4 用指针处理链表
    • 11.5 共用体
  • 12 位运算
    • 12.1 位运算的概念和运算规则
  • 13 文件
    • 13.1 C文件概述
    • 13.2 文件的打开与关闭
    • 13.3 文件读写
    • 13.4 位置指针的定位
一维数组及应用


学习目标:

    掌握数组的概念

    掌握一维数组的定义和引用

    掌握一维数组的应用

重点:

    数组的概念、定义

    数组的遍历方法

    求最大值(打擂台算法)

难点:

    数组概念的理解

    打擂台算法


引言:

C语言数据类型有基本类型、构造类型、指针类型等

基本类型前面章节已介绍过,其中有整型、浮点型、字符型。

构造类型是由基本类型按一定规则组成的类型,其中有数组类型、结构体类型、共用体类型。

 

一、数组的概念

数组:

1)是一组有序数据的集合,数据的类型相同。

2)这个集合用一个数组名来表示。

3)数组中的每一个的元素序号用一个下标值来表示。

如:名为a的整型数组中有四个整型数组元素,分别是a[0] ,a[1] , a[2] , a[3]。

注意:

a)数组名后使用"方括号";下标从0开始。

b)下标值——可以是常量表达式

c)数组按照维度分为:一维、二维等,维度主要由下标的个数来确定。

如a[10]为一维数组,b[3][4]为二维数组。

 

二、一维数组

1.定义

格式:类型说明符 数组名[常量表达式]

1)类型说明符:表示数组的类型

int, short , long ,unsigned , float , double , char等

2)数组名:表示各数组元素的统一名字,定义方法与定义变量名相同

3)常量表达式:表示数组的长度

常量表达式:包括常量和符号常量(用#define定义的),但不能包含变量。

C语言不允许数组进行动态定义。

即:int  n ;

scarf(“%d”,&n);

nt x[n]; //如此定义数组错误

 

2.数组元素的初始化

数组在定义的同时可对数组元素进行初始化

格式: int a[10]={0,1,2,3,4,5,6,7,8,9}

说明:

1)赋初值为0,系统会对所有数组元素自动赋以0值。

即: int  a[10]={0};

等价于: int a[10]={0,0,0,0,0,0,0,0,0,0};

2)对全部数组元素赋初值,可以不指定数组长度。

即: int a[ ]={0,1,2,3,4,5};

等价于: int  a[6]={0,1,2,3,4,5} ;

3)可以部分赋初值,没有赋值的元素值为0

即: int a[5]={1,3};

等价于: int a[5]={1,3,0,0,0}

 

3.数组元素的引用

1)只能逐个引用数组元素,而不能一次引用整个数组。

即:一个5个元素的数组,引用数组元素为a[0],a[1],a[2],a[3],a[4]

2)C语言不提供数组下标越界的保护,设计时要注意引用越界错误。

即:int a[5]={11,12,13,14,15};

printf(“%d”,a[2]);//输出结果为13

printf(“%d”,a[5]);//如此引用错误,越界

 

三、一维数组应用举例

1.例7.1:一维数组的遍历输入输出。定义一个数组a[10],分别输入1~10,然后输出。


2.例7.2:随机生成10个两位数存入一个数组中,输出其中的最大值。

讨论题:

1)在例7.1中代码中没有第6行代码,结果会显示什么?如果没有第7行代码,结果会显示什么?

2)在例7.2中代码中两段For循环代码可以合并吗?