【2025春季】计算机程序设计(混合式教学)

赵秀岩 王美航 房媛 康丽 邵利

目录

  • 1 程序设计概述
    • 1.1 开课前期准备工作(上课前看)
      • 1.1.1 教你VC++编程入门(上课前看)
    • 1.2 计算机语言
    • 1.3 算法
    • 1.4 C程序基本结构
  • 2 数据类型
    • 2.1 数据类型概述与标识符
    • 2.2 常量
    • 2.3 变量
    • 2.4 整型数据类型
    • 2.5 实型数据类型
    • 2.6 字符型数据类型
  • 3 运算符与表达式
    • 3.1 运算符概述与算术运算符
    • 3.2 自加自减运算符
    • 3.3 关系运算符
    • 3.4 逻辑运算符
    • 3.5 赋值运算符
    • 3.6 条件运算符
    • 3.7 逗号运算符
    • 3.8 sizeof运算符
    • 3.9 类型转换运算符
    • 3.10 位运算符
  • 4 顺序结构与输入输出
    • 4.1 基本输入输出函数
    • 4.2 字符输入输出函数
    • 4.3 顺序结构程序设计
  • 5 选择结构程序设计
    • 5.1 if语句
    • 5.2 switch语句
    • 5.3 选择结构的嵌套使用
  • 6 循环结构程序设计
    • 6.1 循环结构概述
    • 6.2 实现循环结构问题的语句
    • 6.3 循环语句的嵌套
    • 6.4 break和continue
    • 6.5 循环部分-高阶应用案例
      • 6.5.1 习题1-九九乘法表
      • 6.5.2 习题2-斐波那契数列
      • 6.5.3 习题3-大赛评分计算
      • 6.5.4 习题4-黑洞数验证
  • 7 数组
    • 7.1 一维数组
    • 7.2 二维数组
    • 7.3 字符数组与字符串
    • 7.4 数组与数据存储
  • 8 函数
    • 8.1 函数的基本概念定义与声明
    • 8.2 函数的参数
    • 8.3 函数的返回值
    • 8.4 函数的嵌套调用
    • 8.5 函数的递归调用
    • 8.6 变量的作用域与生存期
  • 9 指针
    • 9.1 指针与地址
    • 9.2 指针变量与指针运算
    • 9.3 指针与数组
    • 9.4 指针与字符串
    • 9.5 指针与函数
    • 9.6 指针数组
    • 9.7 数组指针
    • 9.8 指针的指针
  • 10 其他构造数据类型
    • 10.1 结构体
    • 10.2 共用体
    • 10.3 枚举
    • 10.4 结构体与链表
  • 11 编译预处理与宏定义
    • 11.1 编译预处理
    • 11.2 宏
  • 12 文件
    • 12.1 文件的定义与文件指针
    • 12.2 文件的打开和关闭
    • 12.3 文件的常用操作
  • 13 〔学生〕优秀案例分享
    • 13.1 小老鼠喝毒水
      • 13.1.1 智能212-邓钰林〔循环实现〕
      • 13.1.2 生工215-王景邦〔函数实现〕
      • 13.1.3 智能212-邓钰林〔函数实现〕
    • 13.2 歌手大赛评分系统
      • 13.2.1 生工215-王景邦
    • 13.3 中英对译查字典
      • 13.3.1 生工215-王景邦
      • 13.3.2 智能212-阎露云
    • 13.4 歌德巴赫猜想
    • 13.5 学生〔原创设计〕案例
      • 13.5.1 〔小马上楼〕智能212-王国旭
一维数组

 



一、数组概述

  数组主要解决的是若干相同数据类型数据的存储和计算问题。

                     图7.1 知识金字塔

二、一维数组

1、一维数组定义
定义一维数组的通用方式如下: 
  存储类型  数据类型 数组名[数值常量表达式];
例如,int a[10]; float b[3+5]; char add_stu[200];等。 
说明: 
  ①数组名遵循标示符命名规则; 
  ②数组元素个数,可以用整型常量或常量表达式来表示,不能是变量; 
  ③在C语言中,存储类型若是自动类型auto可以省略,静态类型为static;数据类型为int,float,double,char等。数组名字遵循标识符命名规则。

2、一维数组引用 
  数组必须先定义后使用,对数组元素的使用又称之为引用。一维数组与元素的引用形式如下: 
  数组名[下标]
例如,a[3/2],b[0],add_stu[150+2]都是正确的引用形式。 
说明: 
  ①数组下标可以是整型常量或者是整型表达式 
  ②数组的下标是从0开始的,到其长度减1结束,不能引用超过范围的数组元素。
3、一维数组的初始化 
  数组的初始化就是在定义的时对数组元素进行赋值的操作。变量定义时,并没有对其值进行指定,所以变量空间里的值是不确定的值。初始化的目的是将要处理和计算的数据存储到变量空间。 
int n[3];              //不进行初始化 
int a[5]={1,3,5,7,9};    //对全部元素初始化 
int b[5]={2,4,6};       //对部分元素初始化 
int c[]={2,4,6};        //不指定数组长度,只进行初始化 
int d[3]={1,1,1};       //对所有元素指定为某个值 
数组元素的初始化有四种形式,分别是 
  ①所有元素初始化,例如上例中的数组a; 
  ②部分元素初始化,例如上例中的数组b,未被初始化的元素自动赋值为0; 
  ③不指定数组长度,直接进行初始化,例如上例中的数组c,此时数组c的长度是由初始化的元素个数决定的; 
  ④对所有元素指定为某个值,例如上例中的数组d。其中,又根据初始化形式②中的描述,对全部元素都初始化为0的话,则可以有int d[3]={0}; 或者int d[3]={0,0,0};两种写法。
4、一维数组的输入输出 
void main()
{  
int a[5];       
int i;
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);      
for(i=0;i<5;i++)
printf("%d, ",a[i]);
}
  ①不管是数组元素的输入,还是数组元素的输出,其实都是把数组元素等同于普通变量来处理的。值得注意的是:数组元素输出的时候,只要“提供”数组元素的“名字”作为printf的参数;数组元素输入的时候,需要“提供”数组元素的“地址”作为scanf的参数; 
  ②不管数组元素有多少个,我们只要遍历数组元素的下标,就可以逐一的处理它们。