大学二级C语言程序设计及同步训练-涂玉芬-课件PPT
收藏
资源目录
压缩包内文档预览:(预览前20页/共30页)
编号:21836173
类型:共享资源
大小:11.93MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学
二级
语言程序设计
同步
训练
涂玉芬
课件
ppt
- 资源描述:
-
大学二级C语言程序设计及同步训练-涂玉芬-课件PPT,大学,二级,语言程序设计,同步,训练,涂玉芬,课件,ppt
- 内容简介:
-
二级C语言程序设计及同步训练,涂玉芬 主编 中国水利水电出版社,第1章 C语言及程序设计基本知识,1.1 程序设计基本概念,程序:,是以计算机能执行的指令形式出现的、能完成具体工作任务的详细步骤。,程序设计:,是用户根据具体的工作任务编写出能让计算机高效地完成该任务的程序的过程。,第1章 C语言及程序设计基本知识,1.1 程序设计基本概念,简单的程序设计一般包含以下几个部分: (1)确定数据结构。分析具体任务,确定输入数据和输出数据,确定数据的逻辑结构和存储结构。 (2)确定算法。根据确定的数据结构确定解决问题的方法,即完成任务的一步一步的步骤。 (3)编写程序。根据确定的数据结构和算法,使用选定的计算机语言编写程序代码。简称“编程”。 (4)调试程序。将编写好的程序输入到计算机内存中,对程序进行测试并修正,直到程序符合任务要求。 (5)整理文档资料。根据数据结构和程序整理编写相关的文档资料。,第1章 C语言及程序设计基本知识,1.1 程序设计基本概念,程序设计语言:,是用户与计算机交流时需要使用计算机能理解的语言。,分为如下三大类: (1)机器语言。所有的指令都由二进制数字0或1编码组成。 (2)汇编语言。采用人们容易记忆的符号和标记来表示机器语言指令,使程序具有一定的可读性。 (3)高级语言。由人们容易理解的自然语言和数学语言中一些简单的符号和单词组成,语句功能强大、可读性好、编程效率最高。,第1章 C语言及程序设计基本知识,1.2 算法,为解决某一特殊问题而采取的确定而有限的操作步骤,称为算法。,一个算法应具备以下五个基本特征: (1)确定性。 (2)可行性。 (3)有穷性。 (4)有零个或多个输入。 (5)有一个或多个输出。,第1章 C语言及程序设计基本知识,1.2 算法,算法有多种表示方法,常用的有自然语言、流程图和伪码。,下面是构成传统流程图的几种基本符号:,起止框,输入输出框,处理框,判断框,流程线,连接点,第1章 C语言及程序设计基本知识,1.3 结构化程序,由三种基本结构构成的程序称为结构化程序。,程序的三种基本结构:,(1)顺序结构。顺序结构中的语句是按书写顺序执行的,即语句的执行顺序与书写顺序一致。顺序结构可用流程图表示为:,第1章 C语言及程序设计基本知识,1.3 结构化程序,由三种基本结构构成的程序称为结构化程序。,程序的三种基本结构:,(2)选择结构。基本选择结构是指当程序执行到某一条语句时要根据给定的条件进行判断,根据条件是否满足从两种路径中选择一条路径执行。基本选择结构可用流程图表示为:,真,假,第1章 C语言及程序设计基本知识,1.3 结构化程序,由三种基本结构构成的程序称为结构化程序。,程序的三种基本结构:,(3)循环结构。循环结构是根据条件是否满足,使一组语句重复执行多次或一次也不执行。循环结构可用流程图表示为:,真,假,真,假,第1章 C语言及程序设计基本知识,1.3 结构化程序,模块化结构:,当计算机处理复杂任务时,所编写的程序经常很长,对一个程序设计者来说,工作量很大,程序结构也显得复杂。这时常常把这个复杂的较大的任务分解为若干个子任务,每个子任务再继续分解,直到每个小的子任务只完成一项简单的功能。程序设计时,用一个个小的模块来完成,程序设计人员分别完成其中的一个或多个小模块,由若干程序设计人员共同完成程序设计。这种程序设计的方法称为“模块化程序设计”,由一个个小的功能模块构成的程序结构称为模块化结构。,第1章 C语言及程序设计基本知识,1.4 C语言的发展及特点,C语言由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来。,C语言特点: (1)C语言功能齐全。 (2)C语言是结构化程序设计语言。 (3)C语言是中级语言。 (4)C语言适用范围广、通用性强。,第1章 C语言及程序设计基本知识,1.5 C语言程序的构成及格式,例1.1 计算长为a,宽为b的长方形面积s的C程序。 #include main() /*主函数*/ int a,b,s; /*定义a,b,s三个整型变量*/ printf(“a,b=?“); scanf(“%d,%d“, /*输出面积s的值*/ ,第1章 C语言及程序设计基本知识,1.5 C语言程序的构成及格式,例1.2 求两个整数中最大数的C程序。 #include main() /*主函数*/ int a,b,c; /*定义a,b,c三个整型变量*/ printf(“a,b=?“); scanf(“%d,%d“, /*返回z的值*/ ,第1章 C语言及程序设计基本知识,1.5 C语言程序的构成及格式,C语言程序具有以下结构: (1)C程序由函数构成。 (2)函数包括函数首部和函数体。 (3)每个函数体必须用一对花括号“和”括起来,包括声明部分和执行部分。 (4)声明部分用来对函数中使用的变量和函数作说明。 (5)执行部分由基本语句组成,确定完成函数功能的操作。,第1章 C语言及程序设计基本知识,1.5 C语言程序的构成及格式,C语言程序格式说明: (1)每个基本语句的结尾必须要用“;”作为终止符。 (2)每个程序必须有一个而且只能有一个称为主函数的main()函数。 (3)main()函数没有固定的位置。 (4)程序一般用小写字母书写。 (5)注释部分包含在“/*”和“*/”之间,可以出现在程序的任何地方,在编译时忽略。,第1章 C语言及程序设计基本知识,1.6 C语言程序的编辑与运行,C语言源程序的上机运行一般包括编辑、编译、连接和执行四个步骤。 (1)编辑。在Turbo C环境下,将C语言源程序通过键盘输入到计算机中,修改源程序,以文件形式存盘,源程序的扩展名为.C。 (2)编译。通过编辑将源程序输入到计算机后,经过C语言编译器将其生成目标程序,得到的目标文件以.OBJ为文件扩展名。 (3)连接。将经过编译后生成的目标文件和库函数或其他目标程序连接成可执行的目标程序,其扩展名是.EXE。 (4)执行。连接后源程序的目标程序就是可执行文件了。在DOS系统下,只要键入可执行文件名,按回车键即可。即最后执行的是连接后生成的.EXE文件。,第1章 C语言及程序设计基本知识,1.7 本章考点,算法的特征。 程序的三种基本结构。 C语言程序的构成及格式。 C语言程序的编辑与运行。,第1章 C语言及程序设计基本知识,1.8 典型试题详解,1以下叙述正确的是_。 A)构成C程序的基本单位是函数 B)可以在函数中定义另一个函数 C)main()函数必须放在其他函数之前 D)所有被调用的函数一定要在调用之前进行定义 正确答案:A(知识点:C语言程序的构成及格式) 试题分析:构成C程序的基本单位是函数,一个C程序中有且只有一个main函数,main函数在程序中没有固定的位置。,第1章 C语言及程序设计基本知识,1.8 典型试题详解,2一个C程序中_。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 正确答案:B(知识点:C语言程序的构成及格式) 试题分析:构成C程序的基本单位是函数,一个C程序中有且只有一个main函数,main函数在程序中没有固定的位置。,第1章 C语言及程序设计基本知识,1.8 典型试题详解,3C语言中用于结构化程序设计的三种基本结构是_。 A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue 正确答案:A(知识点:程序的三种基本结构) 试题分析:结构化程序设计的三种基本结构是顺序结构、选择结构、循环结构。,第1章 C语言及程序设计基本知识,1.8 典型试题详解,4以下叙述中正确的是_。 A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英国国家的自然语言和数学语言为语言的表达形式 D)C语言出现最晚,具有其他语言的一切优点 正确答案:C(知识点:程序设计语言) 试题分析:C语言是高级语言中的一种。高级语言由人们容易理解的自然语言(英语)和数学语言中一些简单的符号和单词组成。计算机不能直接识别高级语言,需要经过专用软件转换为机器语言程序才能在计算机上运行。转换方式分解释方式和编译方式两类,C语言采用编译方式。,第1章 C语言及程序设计基本知识,1.8 典型试题详解,5算法具有五个特性,以下选项中不属于算法特性的是_。 A)有穷性 B)简洁性 C)可行性 D)确定性 正确答案:B(知识点:算法的特征) 试题分析:算法具有有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出五个特性。,二级C语言程序设计及同步训练涂玉芬 主编中国水利水电出版社第1章 C语言及程序设计基本知识1.1 程序设计基本概念 程序: 是以计算机能执行的指令形式出现的、能完成具体工作任务的详细步骤。 程序设计: 是用户根据具体的工作任务编写出能让计算机高效地完成该任务的程序的过程。第1章 C语言及程序设计基本知识1.1 程序设计基本概念 简单的程序设计一般包含以下几个部分:(1)确定数据结构。分析具体任务,确定输入数据和输出数据,确定数据的逻辑结构和存储结构。(2)确定算法。根据确定的数据结构确定解决问题的方法,即完成任务的一步一步的步骤。(3)编写程序。根据确定的数据结构和算法,使用选定的计算机语言编写程序代码。简称“编程”。(4)调试程序。将编写好的程序输入到计算机内存中,对程序进行测试并修正,直到程序符合任务要求。(5)整理文档资料。根据数据结构和程序整理编写相关的文档资料。第1章 C语言及程序设计基本知识1.1 程序设计基本概念 程序设计语言: 是用户与计算机交流时需要使用计算机能理解的语言。 分为如下三大类:(1)机器语言。所有的指令都由二进制数字0或1编码组成。(2)汇编语言。采用人们容易记忆的符号和标记来表示机器语言指令,使程序具有一定的可读性。(3)高级语言。由人们容易理解的自然语言和数学语言中一些简单的符号和单词组成,语句功能强大、可读性好、编程效率最高。第1章 C语言及程序设计基本知识1.2 算法为解决某一特殊问题而采取的确定而有限的操作步骤,称为算法。一个算法应具备以下五个基本特征:(1)确定性。(2)可行性。(3)有穷性。(4)有零个或多个输入。(5)有一个或多个输出。第1章 C语言及程序设计基本知识1.2 算法算法有多种表示方法,常用的有自然语言、流程图和伪码。下面是构成传统流程图的几种基本符号:起止框输入输出框处理框判断框流程线连接点第1章 C语言及程序设计基本知识1.3 结构化程序 由三种基本结构构成的程序称为结构化程序。程序的三种基本结构: (1)顺序结构。顺序结构中的语句是按书写顺序执行的,即语句的执行顺序与书写顺序一致。顺序结构可用流程图表示为:第1章 C语言及程序设计基本知识1.3 结构化程序 由三种基本结构构成的程序称为结构化程序。程序的三种基本结构: (2)选择结构。基本选择结构是指当程序执行到某一条语句时要根据给定的条件进行判断,根据条件是否满足从两种路径中选择一条路径执行。基本选择结构可用流程图表示为:真假第1章 C语言及程序设计基本知识1.3 结构化程序 由三种基本结构构成的程序称为结构化程序。程序的三种基本结构: (3)循环结构。循环结构是根据条件是否满足,使一组语句重复执行多次或一次也不执行。循环结构可用流程图表示为:真假真假第1章 C语言及程序设计基本知识1.3 结构化程序 模块化结构: 当计算机处理复杂任务时,所编写的程序经常很长,对一个程序设计者来说,工作量很大,程序结构也显得复杂。这时常常把这个复杂的较大的任务分解为若干个子任务,每个子任务再继续分解,直到每个小的子任务只完成一项简单的功能。程序设计时,用一个个小的模块来完成,程序设计人员分别完成其中的一个或多个小模块,由若干程序设计人员共同完成程序设计。这种程序设计的方法称为“模块化程序设计”,由一个个小的功能模块构成的程序结构称为模块化结构。第1章 C语言及程序设计基本知识1.4 C语言的发展及特点 C语言由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来。 C语言特点: (1)C语言功能齐全。(2)C语言是结构化程序设计语言。(3)C语言是中级语言。(4)C语言适用范围广、通用性强。第1章 C语言及程序设计基本知识1.5 C语言程序的构成及格式例1.1 计算长为a,宽为b的长方形面积s的C程序。#includemain() /*主函数*/ int a,b,s; /*定义a,b,s三个整型变量*/ printf(a,b=?); scanf(%d,%d,&a,&b); /*读入两个整数,存入变量a和b中*/ s=a*b; /*计算长方形的面积s的值*/ printf(s=%dn,s); /*输出面积s的值*/第1章 C语言及程序设计基本知识1.5 C语言程序的构成及格式例1.2 求两个整数中最大数的C程序。#includemain() /*主函数*/ int a,b,c; /*定义a,b,c三个整型变量*/ printf(a,b=?); scanf(%d,%d,&a,&b);/*读入两个整数,存入变量a和b中*/ c=max(a,b); /*调用max函数求a,b两个数中的最大数*/ printf(c=%dn,c); /*输出最大数c的值*/int max(int x,int y) /*定义max 函数*/int z; /*定义整型变量z*/ if(xy) z=x; else z=y;/* 求x,y两个数中的最大数z*/ return(z); /*返回z的值*/第1章 C语言及程序设计基本知识1.5 C语言程序的构成及格式C语言程序具有以下结构:(1)C程序由函数构成。(2)函数包括函数首部和函数体。(3)每个函数体必须用一对花括号“和”括起来,包括声明部分和执行部分。(4)声明部分用来对函数中使用的变量和函数作说明。(5)执行部分由基本语句组成,确定完成函数功能的操作。第1章 C语言及程序设计基本知识1.5 C语言程序的构成及格式C语言程序格式说明:(1)每个基本语句的结尾必须要用“;”作为终止符。(2)每个程序必须有一个而且只能有一个称为主函数的main()函数。(3)main()函数没有固定的位置。(4)程序一般用小写字母书写。(5)注释部分包含在“/*”和“*/”之间,可以出现在程序的任何地方,在编译时忽略。第1章 C语言及程序设计基本知识1.6 C语言程序的编辑与运行C语言源程序的上机运行一般包括编辑、编译、连接和执行四个步骤。(1)编辑。在Turbo C环境下,将C语言源程序通过键盘输入到计算机中,修改源程序,以文件形式存盘,源程序的扩展名为.C。(2)编译。通过编辑将源程序输入到计算机后,经过C语言编译器将其生成目标程序,得到的目标文件以.OBJ为文件扩展名。(3)连接。将经过编译后生成的目标文件和库函数或其他目标程序连接成可执行的目标程序,其扩展名是.EXE。(4)执行。连接后源程序的目标程序就是可执行文件了。在DOS系统下,只要键入可执行文件名,按回车键即可。即最后执行的是连接后生成的.EXE文件。第1章 C语言及程序设计基本知识1.7 本章考点算法的特征。程序的三种基本结构。C语言程序的构成及格式。C语言程序的编辑与运行。第1章 C语言及程序设计基本知识1.8 典型试题详解1以下叙述正确的是_。A)构成C程序的基本单位是函数B)可以在函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义正确答案:A(知识点:C语言程序的构成及格式)试题分析:构成C程序的基本单位是函数,一个C程序中有且只有一个main函数,main函数在程序中没有固定的位置。第1章 C语言及程序设计基本知识1.8 典型试题详解2一个C程序中_。A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置正确答案:B(知识点:C语言程序的构成及格式)试题分析:构成C程序的基本单位是函数,一个C程序中有且只有一个main函数,main函数在程序中没有固定的位置。第1章 C语言及程序设计基本知识1.8 典型试题详解3C语言中用于结构化程序设计的三种基本结构是_。A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue正确答案:A(知识点:程序的三种基本结构)试题分析:结构化程序设计的三种基本结构是顺序结构、选择结构、循环结构。第1章 C语言及程序设计基本知识1.8 典型试题详解4以下叙述中正确的是_。A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英国国家的自然语言和数学语言为语言的表达形式D)C语言出现最晚,具有其他语言的一切优点正确答案:C(知识点:程序设计语言)试题分析:C语言是高级语言中的一种。高级语言由人们容易理解的自然语言(英语)和数学语言中一些简单的符号和单词组成。计算机不能直接识别高级语言,需要经过专用软件转换为机器语言程序才能在计算机上运行。转换方式分解释方式和编译方式两类,C语言采用编译方式。第1章 C语言及程序设计基本知识1.8 典型试题详解5算法具有五个特性,以下选项中不属于算法特性的是_。A)有穷性B)简洁性C)可行性D)确定性正确答案:B(知识点:算法的特征)试题分析:算法具有有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出五个特性。第七章 数 组 数组是内存中的一种数据集合,用于存贮较大量的相同类型的数据元素,在程序中数组有一个名字,并通过下标访问数组的某个元素。 7.1 一维数组 一、一维数组的定义 语法格式:元素类型名 数组名元素个数; 如:int a5,b8;double y15,c20; #define N 10 long posN;int cN+1;/*正确*/ 例如:int n=10,an;/*错误*/,只能是整型常量表达式,二、一维数组元素的引用 语法格式:数组名下标表达式 如:若有定义 int a4; 则元素a0,a1,a2,a3是数组的有效元素。a4并非有效元素,属于下标超范围。下标超范围会引起死机或程序错误,但C语言不自动检查下标是否超范围,故必须在设计阶段从程序逻辑上保证下标不超范围。,必须是整型表达式,数组下标固定从0开始编号,7.1 一维数组,一维数组的元素在内存中是连续存放的。 例如:若有int a10;,则a数组中包含的10个元素在内存中的存储情况如下:,三、一维数组存贮空间分析:,如: double a5; 该数组共5个元素,存贮5个double型实数,共占用40字节存贮空间。,7.1 一维数组,四、一维数组的初始化,在定义数组时,允许对静态(数组定义前加有static保留字)数组、外部数组(定义于所有函数以及复合语句之外)及main()定义的auto型数组进行初始化。,7.1 一维数组,初始化格式:,static 类型说明符 数组名=常量列表;,例: static int a4=1,2,3,4;,(1)static与外部数组不初始化,初值自动为0 (2)初始化时,可以不指定元素个数 static int a=1,2,3,4; 则数组a自动为4个元素, 与上面的定义形式完全等价。 (3)可以只对前部分元素进行初始化,余下的元 素初值自动为0。(main()中的auto型也是这样) 如: static int a5=1,2,3;则 a3与a4自动为0。,说明:,四、一维数组的初始化,例7.1 将数值5,3,4,5,3,6,6,4,3,2,9赋予数组a并求其和。 程序:,#include int a=5,3,4,5,3,6,6,4,3,2,9; main() int sum,i; sum=0; for (i=0;i=10;i+) sum+=ai; printf(“sum=%dn“,sum); ,7.1.3 一维数组应用举例,例7.2 编写一程序,求全班40个学生计算机的平均成绩。 其算法可用如图7.1所示的流程图表示。 程序:(要求学生自己写出),7.1.3 一维数组应用举例,基本思想:每一趟在n-i+1(i=1,2,n-1)个记录中(第i趟)选取关键字最小的记录作为有序序列中第i个记录。 方法:n个数,比较n-1趟 第i趟(i=1,2,n-1) 比较n-i次,选择一个最小的记录交换一次。,选择排序总共要进行(n-1)+(n-2)+1=n(n-1)/2比较,最多n-1次交换。,例7.3 使用选择法对输入的10个整型数据进行从小到大排序。,选择排序法,for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(ajak) k=j; if(k!=i) t=ai;ai=ak;ak=t; ,要求学生写出完整程序,语言描述:,/*k指示当前比较的最小值下标*/,练习:写出该程序,选择排序法,一、二维数组的定义 语法格式: 元素类型名 数组名下标1维数下标2维数; 如:int a58; /*5行8列整型数组*/ 又如:#define N 6 long mNN; /*N行N列长整型数组*/,行数,列数,7.2 二维数组,二、二维数组元素的引用 语法格式: 数组名行下标列下标 其中,下标表达式必须是整型表达式;下标固定从0开始编号。 如: 若有定义int a34; 则左上角元素下标为a00, 右下角元素下标为a23。 C语言不自动检查下标是否超范围,故必须在设计阶段从程序逻辑上保证下标不超范围。,例如,若有int a23;,则a数组中包含的二行三列共6个元素在内存中的存储情况如下:,三、二维数组存贮空间分析:,也只能对static或外部数组、main()中的auto型数组进行初始化。 初始化方法: 标准形式 static int a23=1,2,3,4,5,6; 注意:用内层表示行,每行可视作一个一维 数组,并按行初始化。 2.对所有元素初始化可以缺省行数和内层 如:上述初始化可写为 static int a3=1,2,3,4,5,6或 static int a3=1,2,3,4,5,6; 或 static int a23=1,2,3,4,5,6;,7.2.2、二维数组的初始化,(3)static与外部数组不初始化,初值自动为0 (4)每行可以只对前几列元素进行初始化,余下的元素初值自动为0。 如: static int a3=1,2,3;则 矩阵元素初值如下:,(5)指定行数时,可以只初始化前面几行,余下各行元素初值自动为0. 如: static int a43=1,2,3,4,5,6; 则矩阵初值如下:,1 0 0 2 3 0,1 0 0 2 3 4 5 6 0 0 0 0,7.2.2、二维数组的初始化,例7.4 将下表存入数组a,按行求元素之和并显示。 25 13 32 10 54 53,7.2.3 应用举例,程序: #include main() int a24,i; a00=25;a01=13;a02=32; a10=10;a11=54;a12=53; for (i=0;i=1;i+) ai3=ai0+ai1+ai2; for (i=0;i=1;i+) printf(“%d %d %d %d n“,ai0,ai1,ai2,ai3); ,例7.5:输入一个三行四列的矩阵A,计算其转 置矩阵B,输出矩阵B。,bji=aij,7.2.3 应用举例,7.2.3 应用举例,#include main() int a23=1,2,3,4,5,6; int b32,i,j; printf(“array a:n“); for (i=0;i=1;i+) for (j=0;j=2;j+) printf(“%5d“,aij); bji=aij; printf(“n“); printf(“array b:n“); for (i=0;i=2;i+) for (j=0;j=1;j+) printf(“%5d“,bij); printf(“n“); ,程序:,例7.6 编写一程序,求全班40个学生每个学生三门功课的平均成绩。,1.定义数据结构 40个学生3门功课的存放:int a4030; 每个学生三门功课的平均成绩存放:int v40; 2.输入学生成绩 3.求每个学生平均成绩: vi= (ai0+ai1+ai2)/3, 4.输出结果.,分析:,7.2.3 应用举例,程序: #include main() int a403,s,i,j,v40; for(i=0;i40;i+) for(j=0;j3;j+) scanf(“%d“, ,例7.7 在N行M列的二维数组x中,找出数组的最大值以及此最大值所在的行、列下标。,分析:1.定义二维数组:int xNM; 定义变量 max:存放最大值 line:存放最大值行号 col:存放最大值列号 2.找最大值:max初始值= x00, line及col的初始值为0, 再将二维数组x中的元素逐个与max进行比较,确定新的max和line及col的值,直到二维数组x中的元素全部处理完。 3.输出数据,7.2.3 应用举例,程序运行结果如下: input array numbers: 12 31 40 20 67 80 max=80 line=1 col=2,程序: #define N 2 #define M 3 #include “stdio.h“ main() int i,j,xNM,max,line,col; printf(“input array numbers:n“); for(i=0;iN;i+) for(j=0;jM;j+) scanf(“%d“, ,7.3.1 字符数组的定义、引用与初始化 1字符数组的定义 一维字符数组的定义形式如下: char 数组名常量表达式; 例如: char a10; 二维字符数组的定义形式如下: char 数组名常量表达式1常量表达式2; 例如: char a34;,7.3 字符数组,7.3 字符数组,2字符数组元素的引用 一维字符数组元素的引用形式如下: 数组名下标 例如: a2 a1+1 二维字符数组的元素的引用形式如下: 数组名行下标列下标 例如: a10 a03-2,7.3 字符数组,3字符数组的初始化 一维字符数组的初始化形式如下: static 类型说明符 数组名=字符常量列表; 例如: char a10=H,e,l,l,o,! 二维字符数组的初始化形式如下: static 类型说明符 数组名=字符常量列表,; 例如:char a23=A,B,C,D,7.3 字符数组,说明: (1)如果花括号中提供的字符个数大于数组长度,则作语法错误处理。 (2)如果花括号中提供的字符个数小于数组长度,则只将这些字符赋给数组中的前面那些元素,其余元素自动定为空字符(即0)。 (3)如果花括号中提供的字符个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。,7.3.2 字符串与字符数组,1字符串和字符串结束标志 C语言约定用0作为字符串的结束标志,它占内存空间,但不计入串的长度。0的代码值为0。 字符型一维数组来存储一个字符串,用字符型二维数组来存储多个字符串。,7.3.2 字符串与字符数组,2用字符串常量给数组赋初值(初始化)。 例如,如果有:char c6=“china”; 或char c6= “china”; 或char c = “china”; 则数组c在内存中的存储情况如下:,3字符数组与字符串的输入输出 (1)用格式符“%c”逐个字符输入输出:,7.3.2 字符串与字符数组,#include main() char a10; int i; for(i=0;i10;i+) scanf(“%c“, ,(2)用格式符“%s”整个字符串输入输出:,#include main() char a10; scanf(“%s“,a); printf(“n“); printf(“%s“,a); ,7.3.2 字符串与字符数组,注意: (1)用%s格式输出字符数组时,遇0结束输出,且输出字符中不包含0。 (2)若数组中包含一个以上的0,则遇第一个0时结束输出。 (3)用%s格式输入或输出字符数组时,函数scanf的地址项、函数printf的输出项都是字符数组名。这时数组名前不能再加”为字符数组s输入数据时,遇空格键或回车键时结束输入,但所读入的字符串中不包含空格键或回车键,而是在字符串末尾添加0。 (5)用一个scanf函数输入多个字符串,输入时应以空格键或回车键作为字符串间的分隔。,7.3.2 字符串与字符数组,使用字符串函数时应在程序前包含头文件: #include (1)puts(字符串):字符串输出函数。 功能:将一个字符串输出到终端。输出的字符串包含转义字符。 示例:char str =“chinanbeijing“; puts(str); 输出: china beijing,7.3.3 字符串函数,7.3.3 字符串函数,(2)gets(字符数组):字符串数组输入函数。 功能:从终端输入一个字符串到字符数组,该函数返回值是字符数组的起始地址。 示例:char str10 ;gets(str); 如果键盘输入:China 则数组str在内存中的存储情况如下:,注意:用puts和gets函数只能输入或输出一个字符串。,7.3.3 字符串函数,(3)strcat(字符数组1,字符数组2):连接两个字符串函数。 功能:连接两个字符串中的字符,把字符串2接到字符串1的后面,结果放在字符串1中,函数调用后得到一个函数值字符串1的地址。 示例:如果有:char str110 =“Ch“; char str2 =“ina“; strcat(str1,str2); 则:字符数组str1中存储的字符串为“Ch ina”。,说明: (1)字符数组1必须足够大,以便能容纳连接后的新字符串。 (2)连接前两个字符串后面都有一个0,连接时将字符串1后面的0取消,只在新串的最后保留一个0。,7.3.3 字符串函数,(4)strcpy(字符数组,字符串):字符串复制函数。 功能:将字符串拷贝到字符数组中去。 示例:如果有:char str110,str2 = “china“; strcpy (str1,str2); 则:字符数组str1中存储的字符串为“Ch ina”。 示例:下面的用法是不合法的: str1=“china“; str1=str2; 如果用赋值语句,则只能将字符逐个赋给一字符数组元素。 示例:char a6; a0=c;a1=h;a2=i;a3=n;a4=a;a5= 0,7.3.3 字符串函数,(5)strcmp(字符串1,字符串2):字符串比较函数。 功能:按ASCII码值大小比较,将两个字符串自左至右逐个字符相比较,直到出现不同的字符或到0为止。如果全部字符相同,则认为相等;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。比较的结果由函数值带回。 (1)字符串1=字符串2,函数值为0。 (2)字符串1字符串2,函数值为正整数。 (3)字符串1字符串2,函数值为负整数。,7.3.3 字符串函数,示例:如果有:char str110 =“Chinese“, str2 =“China“; int a; a=strcmp(str1,str2); 则:a的值为一正整数。 注意:对两个字符比较,不能用以下形式: if(str1= =str2)printf(“yes“); 而只能用:if(strcmp(str1,str2)= =0)printf(“yes“); 。,7.3.3 字符串函数,(6)strlen(字符数组):求字符串长度函数。 功能:求字符串长度。函数值为字符串的实际长度,不包括0在内。 示例:如果有:char str10=“china“; printf(“%d“,strlen(str); 则输出结果为: 5,7.3.3 字符串函数,(7)strlwr(字符串):字符串小写函数。 功能:将字符串中的大写字母转换成小写字母。 (8)strupr(字符串):字符串大写函数。 功能:将字符串中的小写字母转换成大写字母。,7.3.3 字符串函数,例7.8 用户从键盘输入一个字符串(字符串中不包含空格),当输入回车时认为输入结束,统计输入字符串中的小写英文字母、大写英文字母、数字字符、其他字符的个数。 分析: 字符串放在字符数组s 用普通的整型变量m,n,x,y分别存储统计得到的输入字符串中的小写英文字母、大写英文字母、数字字符、其他字符的个数。 用一个单循环控制,对字符数组s中的元素逐个进行判断,根据不同情况(元素值是否为小写英文字母、大写英文字母、数字字符、其他字符)对相应计数变量计数。 循环控制条件是当前所处理的字符串中的字符不是字符串结束标志0,即一个字符串的所有字符还没有处理完毕。,程序: #include main() int i,m,n,x,y; char s80; printf(“input a string:n“); scanf(“%s“,s); m=n=x=y=0; i=0; while(si!=0) if(si=a ,7.3.3 字符串函数,例7.9 将字符串s1从第m个字符开始剩余的所有字符送入字符数组s2中。 分析: 该程序用一个单循环控制,将字符数组s1中的元素从第m个字符开始剩余的所有字符依次逐个送入字符数组s2中。 程序中用两个整型变量i、j分别标识元素在原字符数组s1中的下标和在目标数组s2中的下标,每循环一次,即传送一个字符后,i、j的值增1。 循环控制条件是当前所处理的原字符数组s1中的元素不是字符串结束标志0,即原字符数组s1中从第m个字符开始剩余的所有字符还没有处理完毕。,程序: #include main() int i,j,m; char s180,s280; printf(“input a string:n“); gets(s1); printf(“input start point:n“); scanf(“%d“, ,7.4 本章考点,一维数组的定义、引用及初始化。 二维数组的定义、引用及初始化。 字符串和字符数组。 字符串处理函数。,7.5 典型试题详解,1以下能正确定义一维数组的选项是_。 A)int num; B)#define N 100; int numN; C)int num0100 D)int N=100; int numN; 正确答案:B(知识点:一维数组的定义),7.5 典型试题详解,2假设int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占的字节数是_。 A)3 B)6 C)10 D)20 正确答案:D(知识点:一维数组的定义),7.5 典型试题详解,3以下程序运行后的输出结果是_。 main() int i,n=0,0,0,0,0; for(i=1;i=4;i+) ni=ni-1*2+1; printf(“%d “,ni); 正确答案:1 3 7 15(知识点:一维数组的定义与引用),7.5 典型试题详解,4以下数组定义中不正确的是_。 A)int a23; B)int b3=0,1,2,3; C)int c100100=0; D)int3= 1,2,1,2,3,1,2,3,4; 正确答案:D(知识点:二维数组的初始化) 试题分析:二维数组初始化时,对数组第一维的长度可以不指定,但第二维的长度不能省略。,7.5 典型试题详解,5有以下程序: main () int aa44= 1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; int i,s=0; for(i=0;i4;i+) s+=aail printf(“%dn“,s) 执行后的输出结果是_。 A)11 B)19 C)13 D)20 正确答案:B(知识点:二维数组的定义、引用及初始化) 试题分析:该程序是求aa0l、aa1l、aa2l、aa3l之和并输出。,7.5 典型试题详解,6以下不能正确进行字符串赋初值的语句是_。 A)char str5=“good!“; B)char str =“good!“; C)char str6=“goo
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。