C语言程序与设计题型(共40页).docx
精选优质文档-倾情为你奉上C语言程序与设计理论,方法与实践第一章 程序设计概述1.1程序设计语言 机器语言 二进制语言,唯一能被计算机硬件直接识别,直接执行的程序设计语言。 汇编语言 比较直观,容易记忆,但和机器语言一样,通用性很差 高级语言 接近自然语言,有很强的描述能力,能方便的按照处理问题的逻辑编写计算机程序 面向过程的程序设计语言 Pascal basic C 面向对象的程序设计语言 Visual Basic Visual C+ Java举个例子用C 编写的一个将1 到100 累加的程序(见文件夹C语言学习)1.2算法 (程序=数据结构+算法)12.1算法的概念与算法描述1. 算法概念算法是逐步求解问题的方法,是在有限步骤内求解某一问题所使用的一组定义明确的规则,是计算机处理问题所需要的具体步骤算法的最终实现是计算机程序,程序设计人员只有将算法转变为计算机程序,才能利用计算机解决问题。算法的描述自然语言专门的算法表达工具(流程图,N-S图,PAD图,伪代码)1) 用自然语言描述(将数字1到100相加)2)用流程图描述(符号,数字,文字)3)伪代码描述算法1.2.2 算法的逻辑结构 顺序结构 分支结构 循环结构1.2.3 算法的特性1. 有穷性 2. 确定性3. 有效性4. 输入和输出特性1.2.4 算法评价1.3 程序设计与实现1.3.1 程序设计的基本过程问题分析 (建立数学模型) 算法设计 编写程序 调试运行程序1.3.2 使用visual C+ 6.0 实现C语言程序建立源程序文件 编译源程序 构建可执行文件 运行可执行文件1.3.3程序设计实例(见文件夹)QQ.c1.4 C语言程序的基本结构1.4.1 程序的函数化结构 1. 简单的C 语言程序结构主函数main() 简单例子见文件夹简单C语言程序的基本结构 # include <stdio.h>Int main (void) 函数体函数体前一部分为说明语句,用于对变量定义说明(定义数据结构)后一部分是实现算法的执行语句,完成具体操作一般情况下,主题函数的最后一个语句为return 0;2 结构上不仅要有main()函数,还包括其他独立函数,一个函数可以在另一个函数中被使用。例子见文件夹一个C语言源程序可分为若干个源文件,每个源文件可以有多个不同的函数,但一个源程序只能有一个主函数。C语言程序的基本特点(1) 由函数构成,每个程序可以有多个函数,C语言程序的函数化结构使得C语言程序易于实现模块化,便于分解较大的问题,同时对程序的阅读维护提供方便。(2) 个C语言源程序可分为若干个源文件,每个源文件可以有多个不同的函数,但一个源程序只能有一个主函数(3) Main()是执行C语言程序的入口1.4.2 程序中的常量与变量 数据 常量数据 变量数据1. 常量 直接常量(就是具体的数据,有整数,实数,字符,字符串)2. 变量 变量用变量名标识,计算机按照一定规则为变量分配储存空间,变量的值储存在变量所在的储存空间中(C语言的每个变量在使用之前必须进行变量定义,为变量指定数据类型和变量名)整型(int) 实型(float) 字符型(char)1.4.3 程序中的基本语句 1.数据定义语句 对数据中使用的变量名称,数据类型进行说明 2.数据处理语句 对程序中的数据进行运算,输入,输出 3.流程控制语句 对程序的执行流程进行控制 分支控制 循环控制1.4.4 标识符与保留字 标识符 变量名和函数名等统称为标识符,(标识符只能是由字母 数字 下划线构成的字符串,其他符号不能出现在标识符中,并且标识符的第一个字母必须是字母或下划线) 两字母相同,但大小写不同,C语言认为是两个不同的标识符 标识符虽然可以有程序员按规则定义,但标识符是标识某个量的符号,命名应尽量有相应含义 C语言标识符长度受各种版本和编译系统限制 保留字用于定义变量类型,命令字等具有特定意义的标识符保留字有一定的使用规则程序中定义的标识符不能与系统的保留字同名1.4.5 程序风格第二章 简单的程序设计2.1 用printf()函数输出数据2.1.1 固定数值的加法程序1. 程序见文件夹2. 程序解析2.1.2 printf()函数是C语言的格式化输出函数一般格式 printf (“格式控制字符串”表达式表)(1) “表达式表”是要输出一系列表达式,个表达式间用“,”分隔(2) “表格控制字符串”用于说明输出信息的格式,包括两部分内容,一部分是以“%”开始的格式控制符,它规定输出数据的类型及格式 另一部分“n”是普通字符或转义字符,普通字符按原样输出,转义字符输出的是它转义后的结果常用Printf ()函数的格式控制符及其功能%d int %u 十进制无符号整数%f float %e 一个指数形式的浮点数 %c char %x 十六进制的无符号整数 %ld long int %O 八进制无符号整数%s 字符串 %g 自动选择%f 或 %e格式中输出宽度较短的一种形式常用的printf()转义字符及其功能n 换行,将当前位置移到下一行开头程序格式控制举例,见文件夹可以在格式控制符的“%”和其他符号之间插入数字,表示输出项的最大域宽(对输出项的宽度进行限定,用屏幕输出时,域宽的单位是屏幕的显示列)例如%3d 表示输出一个整数,域宽为3,当输出整数不足3位时,按右对齐显示输出格式控制举例2,见文件夹(1) 如果字符串的长度或整型数位超过说明域宽,将按其实际长度输出(2) 输出实数时,若整数部分数位超过说明的整数位宽度,将按照实际的整数位输出。(3) 当小数部分分位数超过了小数位宽度,则按照说明的宽度四舍五入输出(4) 当需要在输出的数据之前补零时,则需在格式控制信息的域宽之前加0。(5) 可以控制输出的左对齐或右对齐。在“%”之后加一个“”号,控制输出为左对齐,否则为右对齐输出格式举例3 ,见文件夹(6) 字符型数据既可以使用“%c”格式符输出,也可以使用“%d”格式符输出。当使用“%c”格式符时输出字符本身,当使用“%d”格式符时输出输出字符对应的ASCII码。字符型变量举例,见文件夹(字符型变量可以与整数进行算数运算)输出字符及其对应的ASCII码举例如下,见文件夹2.2 用scanf()函数输入数据使用scanf()函数实现数据输入是C语言最基本的数据输入方式,也是C语言程序设计的最忌本内容。2.2.1 任意数值的加法程序1. 程序 见文件夹2. 程序解析 该程序的数据输入功能由“scanf(“%d,%d”,&a,&b);”语句实现执行该语句后,计算机进入等该状态,当键盘输入数据后,在执行程序。 程序中scanf()函数的参数由“%d,%d”和&a &b 两部分构成:“%d,%d”规定输入数据的格式,表示输入两个整数,它们之间用“,”分隔;“&a &b ”指定接收数据的变量分别是a b 2.2.2 scanf () 函数Scanf()是格式化输入函数,他从标准输入设备(键盘)为变量输入数据。一般格式如下 Scanf (“格式控制字符串”,变量地址表)说明:(1) 格式控制字符串用于说明输入数据的类型和数据格式,所有的格式控制符与printf()函数相同。(2) 变量地址表是接收数据的变量地址,它们之间用“,”分隔,当接收数据的变量是简单变量时,变量地址的表示形式如下:&简单变量名其中&是去变量地址运算符,当需要键盘为变量输入数据时,必须使用它的地址形式。例如 Int m; Scanf (“%d”,&m);其中,“&m”是变量m的地址形式在scanf()函数中,使用变量的地址形式为变量输入数据是C语言规定的格式。如果在scanf()函数中直接使用简单变量名,将无法为指定的变量输入数据。 (3)“格式控制字符串”中格式控制符的个数必须与变量地址的个数一致例如 输入学生两门课的成绩,计算其平均成绩。见文件夹Printf ()函数 与 scanf() 函数中,变量的使用方式有何不同(4) 格式控制字符串中的格式控制符之间常用逗号“,”分隔,也可以不使用任何分隔符号,当使用“,”分隔时,输入数据时各个数据之间也要使用“,”分隔,当不使用任何分隔符时,也可以使用回车符分隔。拓展知识可以在格式控制字符串中的“%”和格式控制符之间加入一个整数,表示任何读操作中的最大位数3个例子见文件夹2.3 输入输出字符数据1. 用getchar()函数输入字符Getchar()函数的功能是从键盘输入的字符串中读入一个字符,其调用格式如下,Getchar()2. 用putchar()函数输出字符 Putchar()函数的功能是向标准输出设备输出一个字符,其调用格式如下:Putchar()说明 ch 为一个字符变量名或一个常量,putchar(ch)函数执行后,将常数的值显示在屏幕上实例见文件夹2.4 语言知识补遗2.4.1 数据类型在C语言程序中,当需要用变量储存数据时,首先要对变量储存的数据类型进行说明。C语言共有九种数据类型,分别是 整型 字符型 实型(浮点型) 枚举型 数组类型 指针类型 结构体类型 共用体类型 空类型数据类型可分为基本类型 整型 字符型 实型(浮点型) 单精度型 双精度型 枚举型构造类型 数组类型 结构体类型 共用体类型指针类型空类型2.4.2 常量详解1. 整型常量 C语言中的整数可以使用三种数制 十进制 八进制 十六进制八进制的整数用0引导 十六进制的整数用0x或0X 引导,十进制数不能以0作为开始数字在整型数字后添加“L”或“l”,表示该数为长整型数2. 实型常量实型常量即实数,它只有十进制这一种数制,但有两种表示形式1) 一般形式一般形式的实数由数字 小数点 以及必要时的正负号组成2) 指数形式实数的指数形式是将如a* 的数值表示为一下形式aeb或aEb3. 字符常量字符常量使用两个英文单引号限定的一个字符,如 a另外,C语言中引入了一种特殊形式的字符常量,用以进行一些的特定表示,这就是以“”开头的转义字符常量4. 字符串常量字符串常量是用英文双引号限定的一个字符序列。例如“HELLO WORLD”字符串中字符个数称为字符串长度。不包括任何字符的字符串称为空字符串,其中,长度为零每个字符串储存时都占用一段连续储存单元,每个字符占一个字节,系统自动在每个字符串的尾部加一个结束标志符0,所以字符串的储存长度是字符串的长度加一5. 符号常量在程序设计中,有时需要多次用到某些常量,或者有些常量在程序中特别关键,就可以将这些常量定义为符号常量。C语言的符号常量需在函数体之外进行定义,也只有定义之后才能使用,定义符号常量一般格式如下:# define 符号常量名 常量例如: # define MAX 200该命令定义了符号常量 MAX , 它表示常数 2002.4.3 简单变量详解1. 简单变量的分类C语言中简单变量是指数据类型是整型(int) 实型(float) 字符型(char) 的基本变量内容扩展 可以使用 sizeof()函数,求得指定类型的数据占用储存空间的大小,其格式如下:Sizeof (数据类型名)实例见文件夹2. 简单变量的定义C语言的每个变量在使用钱必须先定义,指明它的数据类型3. 简单变量的赋值一是在定义变量时为变量赋值 二是先定义变量在为变量赋值例如:Float x = 1;或者 int x;X = 1;变量赋值的一般格式如下:变量名 = 表达式例如:Y = x + 5;“=”不表示两边相等,而是表示计算和赋值两个过程说明:C语言默认实型常量的数据类型为double型,所以,在一个程序中用一个实数为float型变量赋值时,编译系统会给出一个警告信息,提示数位丢失2.4.4 算术运算1. 算术运算符包括 加法(+) 减法(-) 乘法(*) 除法(/) 求余运算(%)求余运算只适用于整型数据,运算结果是两个整数相除的余数2. 算术表达式 算术运算符 加 运算对象圆括号()允许出现在任何表达式中 单一的常量或变量是表达式的特例其中 sin() 和 sqrt() 是C语言提供的两个库函数在程序中使用数学函数时,必须使用#include<math.h>命令开头文件,以包含math.h 头文件3. 算术运算符的优先级和结合性优先顺序 负号 乘法 除法 求余 加法 减法有括号时(),括号的优先级最高2.4.5 赋值运算1. 赋值运算符简单赋值运算 =复合赋值运算 “+=” “ -=” “*=” “/=” “%=”复合加赋值 “+=” a+=b 即为 a=a+b复合减赋值 “-=” a-=b 即为 a=a-b复合乘赋值 复合除赋值 复合模赋值 同上复合赋值运算符两边是两个整体2. 赋值运算符的优先级和结合性(1) 赋值运算符的优先级高于逗号运算符而低于其他所有运算符(2) 赋值运算符的结合性是右结合的3. 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子(1) 计算赋值运算符右侧的“表达式”的值,并赋值给左侧的变量(2) 赋值表达式的值是最后被赋值的变量的值具有自右而左的特性2.4.6 宏命令程序中常用的命令有两个,级include命令和define命令1. Include命令功能:把指定的文件插入到该命令行位置取代该命令行,从而把指定的文件和当前的源程序连接成一个源文件C语言提供库函数 如:printf()scanf()getchar()putchar()等输入输出函数的说明信息在头文件stdio.h 中,sin()sqrt()等数学函数的说明信息在头文件math.hC语言规定要使用这些函数要先说明说明方法是使用include 命令包含相关头文件Include命令的一般使用形式如下:# include <文件名>或者# include “ 文件名 ”双引号表示首先在当前源文件目录中查找要包含的文件,若未找到该文件,则到包含文件目录中查找;使用尖括号表示在包含文件目录中查找,而不再源文件目录中查找例题 计算表达式的值 见文件夹例题 创建源文件 userdef.h 并在程序e2-14.c中使用它见文件夹2. Define命令 编译预处理的宏定义命令,“宏”并不是一个陌生的概念,前面介绍的符号常量就是宏,它用一个标识符代表一个数值,这是宏的一个基本形式。宏分为代参数的宏和不带参数的宏,符号常量代表不带参数的宏。1不带参数的宏 是用一个标识符代替一个字符串,一般形式为:# define 宏名 宏体 说明:(1) “#”是预处理命令开始符,不能省略。(2) “define”为宏定义命令字,表示宏定义命令。(3) “宏名”是一个标识符,“宏体”可以是一个字符串,也可以是一个数值,还可以是一个表达式等。使用宏定义后,在编译预处理阶段,系统就把程序中的宏名替换为宏体,这一替换过程称为“宏替换”宏替换是对宏体字符串的原样照搬。例题,使用常量的程序,2-15,件文件夹(1) 由于在C语言中习惯使用小写形式的变量名,为有所区别,宏名一般使用大写形式,但须明确,使用大写形式的宏名只是一种习惯。(2) 宏定义是用宏名表示的一个字符串,在宏替换时又以该字符串取代宏名,这只是一种简单的代换,预处理程序对它不做任何检查。如有错误,只能在编译宏替换后的源程序时发现。(3) 宏定义不是C语句,后面不能有分号,如果加入分号,则加入的分号将作为宏体的一部分。例如:# define PI 3.;area = PI*r*r;在宏替换后成为:area = 3.;*r*r;显然这样的结果在编译时会报出语法错误,(4) 通常把# define命令放在一个文件的开头使用。2 带参数的宏与不带参数的宏相比,带参数的宏形式上要复杂一些,宏替换时也复杂一些。它在宏替换时不仅要进行字符串替换,而且要进行相应的参数替换,一般形式如下:# define 宏名(参数表)字符串说明:(1) 宏名后的参数可以表示是一个参数,也可以是多个参数,当有多个参数时,各个参数之间用“,”分隔。(2) 作为宏体的字符串部分,要包括参数表中的参数。带参数的宏在程序中取代一些表达式。例如: # define _m(x)_x*x*x*x该宏命令定义了带参数的宏m,x是它的参数。在程序中使用 m(x)可以取代形式如x的表达式。例子见文件夹2-16注意事项:(1) 带参数的宏定义中,宏的参数不分配内存单元,也不存在内存定义问题。而宏调用中的实参有具体的值,要用他们去替换宏的参数,因此必须进行类型说明。(2) 带参数的宏定义中宏名和形参表中之间不能有空格出现,一旦出现了空格,就变成了不带参数的宏命令拓展阅读如下是带参数的宏更复杂的一种应用事例。见文件夹2-17程序设计举例一般过程(1) 问题分析(2) 算法设计(3) 实现程序 小知识:sqrt 表示开方 英文字母是用ASCII码的方式储存的,同一个字母的大,小写形式有不同的ASCII码值,对应关系如下:小写字母ASCII码值 = 大写字母ASCII码值 + 32设输入量为 ch ,则输出量为 ch + 32.表达式中数据类型的自动转换Typedef 命名数据类型%d十进制输出%o八进制输出%x十六进制输出n 换行第三章 分支结构程序设计3.1 简单条件的分支程序3.1.1 判断优等生程序 见文件夹 3-13.1.2 关系表达式 由关系运算符连接的若干个关系表达式 1. 关系运算符 > < = >= <=2. 关系表达式的值 关系表达式的值反应比较的结果,即正确或错误,成立或不成立,是或非,真或假等,显然它是一个逻辑值。C语言用非零值表示真,用“0”表示假。当一个非零值由系统产生时,用“1”表示。3. 优先级及结和性3.1.3 if语句If语句的一般形式:If(表达式) 语句组1else语句组2例计算下面分段函数的值。 见文件夹 3-2If语句的简单形式If(表达式) 语句组【例】输入一个整数x,若是偶数,则输出它。见文件夹 3-4【例】输入量整数,输出其中最大的数见文件夹 3-53. If语句的嵌套结构 即if语句的语句组中使用了if语句,就形成了if语句的嵌套结构,这种结构用于多重条件的判断情况。【例】见文件夹 3-64. If-else if 结构该结构属于if-else 结构的嵌套形式,一般结构如下:If(表达式1)语句组1Else if(表达式2).Else 【例3-7】计算下面分段函数的值 5X + 8 (X>0) Y = 36 (X=0)1.5X - 26(X<0)见文件夹3.2 复合条件的分支程序逻辑运算符!非 &&且 |或 (优先级从前到后依次减小)将关系表达式用逻辑运算符连接起来构成的式子称为逻辑表达式单独一个关系表达式也是逻辑表达式逻辑表达式的值:逻辑表达式的值是一个逻辑值,即“真”或“假”,真用“1”表示,假用“0”表示逻辑运算的特点:由于&&和|运算的左结合性,若&&表达式前段为0,则对其后端不在运算,其值必然为零,3.3 用switch语句实现分支控制Switch语句是专门用于多路分支选择的控制语句,适用于if-else if式结构,而且更清晰。Switch语句的一般格式如下:Switch(表达式) Case 常量1: 语句组1 Case 常量2: 语句组2.Case 常量n: 语句组nDefault: 语句组n+1使用switch语句时,允许缺失“default:”及其语句组(1) 任何一个case语句组允许为空(2) Switch表达式通常为整型值或字符型值,case中常量的类型应与之对应(3) Case中的“常量”位置允许是常量表达式,但不允许是变量表达式(4) Switch语句允许嵌套,即在case语句中允许再使用switch语句3.4 goto语句 是一种无条件转移语句,主要用于控制程序的执行方向,也可以利用它实现循环控制。其用法比较简单,一般格式如下:Goto语句标号;语句标号是一个标识符,它和语句之间以“:”分隔,可以单独占一个程序行,也可以和程序语句处在一行上。执行goto语句后,程序将跳转到该标号处,并执行其后的语句。【例3-15】见文件夹3.5 条件运算条件运算是C语言中唯一一个三目运算,运算符由“?”和“:”组成,它是根据条件从两个表达式中选择一个进行计算取值的操作。条件运算的优先级高于赋值运算,而低于算术运算和关系运算。【例3-16】用条件运算计算下面分段函数的值 见文件夹【例3-17】见文件夹注意:程序从左到右执行,有的和数学一样的表达式并不会是同样的结果。3.6 分支结构应用举例【例3-18】闰年问题见文件夹 【例3-19】判断等边三角形见文件夹【例3-20】求解一元二次方程组见文件夹【例3-21】学生成绩分等显示见文件夹第四章 循环结构程序设计4.1 while循环结构程序4.1.1 while循环程序示例【例4-1】计算1到n的自然数的累加和见文件夹4.1.2 while语句While语句的一般格式如下:While(表达式) 语句组其中,“表达式是循环条件”,“语句组”是while语句的循环体。 While 语句执行过程如下:(1) 计算表达式的值,当值为真时,执行循环体语句。(2) 重复过程(1),知道表达式的值为假时结束while语句。【例4-2】输入一批自然数,求它们的累加和,当输入值为-1是,结束求和过程。见文件夹【例4-3】编写程序,计算10!见文件夹4.1.3 自增自减运算简略【例4-4】检验i+与+i的区别见文件夹4.2 do-while循环结构程序4.2.1 do-while循环程序示例【4-5】处理不定数目的自然数累加和见文件夹do-while语句一般形式 Do 循环语句组 While(表达式)4.3 for循环结构程序【例4-6】计算n!的程序见文件夹For语句分一般形式如下:for(表达式1;表达式2;表达式3) 循环语句组为了增强循环控制程序的灵活性,C语言设置了两个控制命令break和continue。【例4-7】不定数目的自然数累加程序见文件夹只有在switch 及循环结构时使用break命令只有在for while do-while 的循环体中,使用continue命令,跳过循环体中的剩余语句,而进行下一次循环。【例4-8】把100200范围内不能被3整除的数输出见文件夹4.5.1多重循环程序示例【例4-9】输出如下“&”三角图案。该图案共10行,“&”的数目逐行加1.见文件夹在使用多重循环结构时,要注意内循环和外循环在结构上不能出现交叉。【例4-10】从键盘输入一个字符串,统计其中小写字母个数见文件夹【例4-11】比赛评分 去掉最高分和最低分,然后求平均分见文件夹【例4-12】学生成绩分等统计见文件夹【例4-13】最大公约数见文件夹【例4-14】计算 Fibonacci 数列的前20项,并以每行5个数的形式输出。该数列 【例4-15】乘法口诀表见文件夹【例4-16】搬砖问题见文件夹printf()函数中的格式串格式为:标志输出最小宽度.精度类型。 其中:方括号中的项为可选项。1) 类型类型字符用以表示输出数据的类型d 以十进制形式输出带符号整数(正数不输出符号)o 以八进制形式输出(不输出前缀0)x,X 以十六进制形式输出(不输出前缀Ox)u 以十进制形式输出f 以小数形式输出单、双精度实数e,E 以指数形式输出单、双精度实数g,G 以%f或%e中较短的输出宽度输出单、双精度实数c 输出单个字符s 输出字符串 2)标志标志字符为 -、+、#- 结果左对齐,右边填空格+ 输出符号(正号或负号)#对o类,在输出时加前缀o; 对x类,在输出时加前缀0x; 3) 输出最小宽度用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(当最小宽度数值以0开头时)。4) 精度精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。综合以上,可以看出,%04x 表示按16进制输出数据,最小输出宽度为4个字符,右对齐,如果输出的数据小于4个字符,前补0,如:printf("%04x", 100 ); /输出0064 100的16进制数是64 第五章 数组程序设计5.1 一维数组程序设计5.1.1 逆序输出数据程序【例5-1】逆序输出/ program e5-1 从键盘输入10个整数,然后按照与输入相反的顺序依次将它们输出# include <stdio.h>int main(void)int i;int a10; / 定义a数组 printf("Input data:");for (i=0; i<10; i+) scanf("%d", &ai); / 输入数据 printf("Output data:");for (i=9; i>=0; i-) printf("%d", ai); / 逆序输出 return 0; 程序解析: 程序中定义了一维数组a,用ai表示数组a的一个元素,当i等于0时,即为ao,scanf("%d", &ai)语句执行了10次,i依次取值0到9,故依次为a0到a9输入数据, printf("%d", ai)也执行了10次,i依次取值9到0,故依次输出a9到a0的值。5.1.2 一维数组的定义数组在使用之前必须先定义,一般格式如下:数据类型 数组名数组长度例如:Int a10该语句定义了名为a的整型数组,该数组有10个元素,能储存10个整数值。char name20该语句定义了名为name的字符型数组,该数组有20个元素,能储存20个字符。说明:(1) 数组的数据类型就是数组元素的数据类型,它可以是C语言允许的任何数据类型。(2) 数组长度是数组能够包含的数组元素的个数,通常用一个整数值表示,也可以是常量表达式。(3) C语言规定只能逐个使用数组元素,而不能一次使用整个数组。数组元素的一般表示形式如下:数组名下标下标可以是一个整型常量,也可以是整型表达式。C语言规定,数组元素的下标从0开始,当数组长度为n时,最末元素的下标是n-1.5.1.3 数值型一维数组的输入和输出数值型数组的输入和输出是通过每一个数组元素的输入和输出实现的。数值型一维数组的元素都是一些简单变量,输入和输出按照简单变量的方法进行。例如,对上述数组,输入a5的值使用如下语句: scanf (“%d”, &a5);输出a5的值时,输入a5的值时使用如下语句:printf(“%d”,a5);【例5-2】相邻元素比较交换法见文件夹专心-专注-专业