全国计算机等级考试二级C程序基础培训(ppt 268页)_第1页
全国计算机等级考试二级C程序基础培训(ppt 268页)_第2页
全国计算机等级考试二级C程序基础培训(ppt 268页)_第3页
全国计算机等级考试二级C程序基础培训(ppt 268页)_第4页
全国计算机等级考试二级C程序基础培训(ppt 268页)_第5页
已阅读5页,还剩263页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1全国计算机等级考试全国计算机等级考试二级二级C程序基础培训(程序基础培训(2011版)版)2二级二级C语言考试介绍语言考试介绍n考核内容:二级定位为程序员,考核内考核内容:二级定位为程序员,考核内容包括公共基础知识和程序设计。所有容包括公共基础知识和程序设计。所有科目对基础知识作统一要求,使用统一科目对基础知识作统一要求,使用统一的公共基础知识考试大纲和教程。二级的公共基础知识考试大纲和教程。二级公共基础知识在各科笔试中的分值比重公共基础知识在各科笔试中的分值比重为为30%(30分)。程序设计部分的比重分)。程序设计部分的比重为为70%(70分),主要考查考生对程序分),主要考查考生对程序设

2、计语言使用和编程调试等基本能力。设计语言使用和编程调试等基本能力。3二级二级C语言考试介绍语言考试介绍考试形式:二级所有科目的考试包括笔考试形式:二级所有科目的考试包括笔试和上机考试两部分。二级试和上机考试两部分。二级C笔试时间为笔试时间为90分钟,上机时间改为分钟,上机时间改为90分钟。分钟。 二级二级C上机应用软件为上机应用软件为 Visual C+6.04二级二级C语言考试介绍语言考试介绍 考试成绩划分为优秀、良好、及格和不及考试成绩划分为优秀、良好、及格和不及格四个等第成绩,笔试或上机考试成绩格四个等第成绩,笔试或上机考试成绩只有一门及格的,下次考试及格的一门只有一门及格的,下次考试及

3、格的一门可以免考,两部分考试均及格者,由教可以免考,两部分考试均及格者,由教育部考试中心颁发统一印制的合格证书。育部考试中心颁发统一印制的合格证书。5二级二级C语言培训介绍语言培训介绍 实实在在学知识实实在在学知识 顺顺利利过考试顺顺利利过考试6如何学二级如何学二级C语言语言n 多看书多看书 n 多实践验证多实践验证n 多读(背)程序多读(背)程序7第一章第一章 程序设计基本概念程序设计基本概念n 什么是什么是C程序?程序?高级语言高级语言 机器语言机器语言源程序源程序 目标程序目标程序 编译程序8第一章第一章 程序设计基本概念程序设计基本概念n C语言编译语言编译“三部曲三部曲”C源程序源程

4、序 目标文件目标文件 可执行文件可执行文件 .C .obj .exe编译连接9第一章第一章 程序设计基本概念程序设计基本概念n 程序设计过程程序设计过程n确定数据结构(输入输出)确定数据结构(输入输出)n确定算法(解决问题的方法和步骤)确定算法(解决问题的方法和步骤)n编码。(算法代码化)编码。(算法代码化)n调试程序。(改错和修正)调试程序。(改错和修正)1.整理和写文档。整理和写文档。10第一章第一章 程序设计基本概念程序设计基本概念n 结构化程序的三种结构结构化程序的三种结构n顺序结构(先后顺序执行)顺序结构(先后顺序执行)n选择结构(执行不同分支的语句)选择结构(执行不同分支的语句)n

5、循环结构(重复执行多次或一次不执循环结构(重复执行多次或一次不执行行)11第一章第一章 程序设计基本概念程序设计基本概念n模块化结构模块化结构由一个个功能模块构成的程序结由一个个功能模块构成的程序结构为模块化结构。构为模块化结构。12第二章第二章 C程序设计的初步知识程序设计的初步知识n C语言示例一语言示例一输出一行信息:输出一行信息:Wellcome to Sinree!程序名为程序名为sinree_c1.c。#include /*命令行,表示文件包含命令行,表示文件包含*/main()/*主函数主函数*/ printf(“Wellcome to Sinree!n); /*输出信息输出信息

6、*/程序输出结果程序输出结果13第二章第二章 C程序设计的初步知识程序设计的初步知识n C语言示例二语言示例二输入两个整数,输出它们的和输入两个整数,输出它们的和。程序名为程序名为sinree_c2.c。#include /*文件包含文件包含*/main()/*主函数主函数*/ int a,b,c;/*声明定义变量声明定义变量a,b和和c*/ scanf(%d%d,&a,&b); /*输入变量输入变量a和和b的值的值*/ c=a+b;/*计算计算c等于等于a与与b的和值的和值*/ printf(c=%dn,c);/*输出变量输出变量c的值的值*/运行程序输入:运行程序输入:90

7、7 程序结果:程序结果:14第二章第二章 C程序设计的初步知识程序设计的初步知识nC语言示例三语言示例三输入两个整数,通过调用函数计算它们的和,然后输出和值输入两个整数,通过调用函数计算它们的和,然后输出和值。程序名为程序名为sinree_c3.c。#include stdio.h/*文件包含文件包含*/int sum(int x,int y)/*定义定义sum函数函数*/ int z;/*声明定义变量声明定义变量z*/ z=x+y;/*计算计算z等于等于x与与y的和值的和值*/ return (z);/*将将z的值返回,通过的值返回,通过sum带回调用处带回调用处*/main()/*主函数主

8、函数*/ int a,b,c;/*声明定义变量声明定义变量a,b和和c*/ scanf(%d%d,&a,&b);/*输入变量输入变量a和和b的值的值*/ c=sum(a,b);/*调用调用sum函数,将得到的值赋给函数,将得到的值赋给c*/ printf(c=%dn,c);/*输出变量输出变量c的值的值*/运行程序输入:运行程序输入:90 7 程序结果程序结果 C=9715第二章第二章 C程序设计的初步知识程序设计的初步知识nVC+ 6.0 编辑环境编辑环境编辑区16第二章第二章 C程序设计的初步知识程序设计的初步知识nVC+ 6.0 编辑环境编辑环境n启动启动Visual C

9、+ 6.0Visual C+ 6.0环境环境n编辑源程序文件编辑源程序文件n编译编译n连接连接1.1. 执行执行17第二章第二章 C程序设计的初步知识程序设计的初步知识nVC+ 6.0 编辑环境编辑环境编译CtrlF7连接F7运行Ctrl+F518第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序的构成和格式程序的构成和格式 任何函数(包括主函数main())都是由函数说明和函数体两部分组成。其一般结构如下: 函数类型 函数名(函数参数表) /*函数说明部分*/ 说明语句部分; /*函数体部分*/ 执行语句部分; 19第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序的构成

10、和格式程序的构成和格式n C C语言是由函数组成的语言是由函数组成的 一个一个C C源程序可由一个源程序可由一个mainmain函数和若干个函数和若干个其他函数组成,其中必须其他函数组成,其中必须有一个且只能有有一个且只能有一个一个mainmain函数函数。 C C程序总是从程序总是从mainmain函数开函数开始执行。始执行。 20第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序的构成和格式程序的构成和格式n C C程序语句和数据定义必须以程序语句和数据定义必须以分号分号“;”“;”结束结束。 C C语言中,分号是程序语句的结束标志,语言中,分号是程序语句的结束标志,也是也是C

11、C语句的必要组成部分。语句的必要组成部分。 21第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序的构成和格式程序的构成和格式nC C语言严格区分大小写。语言严格区分大小写。如变量如变量a a和变量和变量A A系统认定为两个不同的变量。系统认定为两个不同的变量。22第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序的构成和格式程序的构成和格式nC C语言数据输入和输出是由语言数据输入和输出是由库函数库函数实现的。实现的。 C语言本身没有输入输出语句。输入和输语言本身没有输入输出语句。输入和输入操作是由库函数入操作是由库函数scanf和和printf等函数来等函数来实现的。实

12、现的。 所以一般所以一般C程序都要使用命令行程序都要使用命令行语句语句 #include 注意:命令行以注意:命令行以# #开头,行尾不能加开头,行尾不能加 ; ; 号号23第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序的构成和格式程序的构成和格式nC C语言用语言用/ /* *注释内容注释内容* */ /形式进行程序注释形式进行程序注释在在“/*”和和“*/”之间的所有字符都为注释符,之间的所有字符都为注释符,C系统不对注释符进行编译。(另外可以系统不对注释符进行编译。(另外可以用用/用于单行注释)用于单行注释)注意:注释不能嵌套使用。如注意:注释不能嵌套使用。如/ /* *

13、/ /* * */ /* */ /24第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序书写格式建议程序书写格式建议1. 1. C C程序书写格式自由。程序书写格式自由。 对于短语句可以多条语句书写在同一行,也对于短语句可以多条语句书写在同一行,也可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,也不能将双引号引起来的字符串分开。我们提倡也不能将双引号引起来的字符串分开。我们提倡一行一条语句一行一条语句的风格。的风格。2.2.C C程序书写采用缩进格式。程序书写采用缩进格式。根据语句的从属关系,程序书写时采用根

14、据语句的从属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,便于阅读和理解。便于阅读和理解。 3.3.程序中适当使用注释信息。程序中适当使用注释信息。在书写程序时,适当地加入注释同样可在书写程序时,适当地加入注释同样可增加程序的可读性。增加程序的可读性。 25第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序标识符程序标识符 C语言中语言中 ,符号的命名必须遵守一

15、定的规则,符号的命名必须遵守一定的规则,按此规则命名的符号称为标识符。合法的标按此规则命名的符号称为标识符。合法的标识符命名规则为:识符命名规则为: 标识符可以由字母、数字标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母和下划线组成,并且第一个字符必须为字母或下划线。或下划线。提醒:提醒:c语言标识符中大写字母语言标识符中大写字母和小写字母被认为是两个和小写字母被认为是两个不同不同的字符的字符26第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序程序标识符分类标识符分类 n 关键字关键字(由(由C语言预先规定的,见附录语言预先规定的,见附录4)n如:如:int,doubl

16、en 预定义标识符预定义标识符(预先定义且具有特殊含义)(预先定义且具有特殊含义)n如如printf,definen 用户标识符用户标识符 (见名知义)(见名知义)n用来给变量、函数、数组等命名。用来给变量、函数、数组等命名。 27第二章第二章 C程序设计的初步知识程序设计的初步知识nC程序常量和变量程序常量和变量 关于常量、变量及数据类型说明的程序实例关于常量、变量及数据类型说明的程序实例,程序名为程序名为sinree_c3.c。 #include main() int a=3;/*定义整型变量定义整型变量a并赋予常量值并赋予常量值3 */ short r=6; /*定义短整型变量定义短整型

17、变量r并赋予常量值并赋予常量值6*/ char c=a; /*定义字符变量定义字符变量c并赋予字符常量值并赋予字符常量值a */ float pi=3.14; /*定义单精度实型变量定义单精度实型变量pi并赋予实型常量值并赋予实型常量值3.14 */ double s; /*定义双精度实型变量定义双精度实型变量s */ s=pi*r*r; /*将将pi*r*r值赋给值赋给s */ printf(int:%d,short:%d,char:%d,float:%d,double:%dn,sizeof(a), sizeof(r),sizeof(c),sizeof(pi),sizeof(s); /*输出

18、各变量占内存的字节数输出各变量占内存的字节数 */ printf(a=%d,r=%d,c=%c,pi=%f,s=%lfn,a,r,c,pi,s);/*输出各变量的值输出各变量的值 */ 28第二章第二章 C程序设计的初步知识程序设计的初步知识n常量常量 :在程序运行过程中,其值不能改变的量。:在程序运行过程中,其值不能改变的量。n根据数据类型可以分为根据数据类型可以分为n数值型数值型(有正、负之分)(有正、负之分)n【 整型常量整型常量(不带小数点)、(不带小数点)、实型常量实型常量(必须用小数(必须用小数点)】、点)】、n字符常量字符常量(如如a、d)和和字符串字符串(“ncre”、”bei

19、jing”)常量。常量。29第二章第二章 C程序设计的初步知识程序设计的初步知识30第二章第二章 C程序设计的初步知识程序设计的初步知识n符号常量符号常量 用用#define命令行(命令行(不是语句不是语句,所以后面不,所以后面不能加分号)定义一个字符(通常用大写字母)能加分号)定义一个字符(通常用大写字母)代表一个常量代表一个常量 。31第二章第二章 C程序设计的初步知识程序设计的初步知识n变量:变量: 在程序运行过程中在程序运行过程中值可以改变的量值可以改变的量。n 变量实质上代表了内存中的某个存储单元。变量实质上代表了内存中的某个存储单元。n 变量必须先定义后使用。变量必须先定义后使用。

20、32第二章第二章 C程序设计的初步知识程序设计的初步知识n整型数整型数 十进制:十进制: 0 1 2 3 4 5 6 7 8 9 八进制:八进制: 0 1 2 3 4 5 6 7 c程序中八进制开头程序中八进制开头加加0 十六进制:十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f c程序中十六进制开头程序中十六进制开头加加 0 x33第二章第二章 C程序设计的初步知识程序设计的初步知识n整型常量整型常量#include main ()int a=12;printf(a=%d,a=%o,a=%#o,a=%x,a=%#xn,a,a,a,a,a);34第二章第二章 C程序设计

21、的初步知识程序设计的初步知识n整型变量整型变量 基本型:基本型: 用用int关键字进行定义关键字进行定义 int k; 一个定义语句用一个;结束一个定义语句用一个;结束 多个变量用,隔开多个变量用,隔开 int k,m,n;(仅开辟存储单元,不存放初值,此时变量值无意义)仅开辟存储单元,不存放初值,此时变量值无意义) 变量初始化:变量初始化:int m=1,n=2,k=3; 35第二章第二章 C程序设计的初步知识程序设计的初步知识n 整型数据分类整型数据分类 短整型:短整型:short int 长整型:长整型:int 或或 long int 无符号型:无符号型:unsigned 在在 vc 6

22、.0中整型常量后面加一个字母中整型常量后面加一个字母l或或L 在无符号整数常量后加在无符号整数常量后加u或或U 若长整型无符号可以加若长整型无符号可以加lu或或LU 36数据类型名说明Visual C+ 6.0环境Turbo C2.0环境字节取值范围字节取值范围short int短整型2-32768327672-3276832767signed short int带符号短整型2-32768327672-3276832767unsigned short int 无符号短整型20655352065535int整型4-214748364821474836472-3276832767signed in

23、t带符号整型4-214748364821474836472-3276832767unsigned int无符号整型4042949672952065535long int长整型4-214748364821474836474-21474836482147483647signed long int带符号长整型4-214748364821474836474-21474836482147483647unsigned long int无符号长整型40429496729540429496729537第二章第二章 C程序设计的初步知识程序设计的初步知识n 整数在内存中的存储形式整数在内存中的存储形式 一个字节

24、中的最右边一位称为最低位;一个字节中的最右边一位称为最低位; 一个字节中的最左边一位称为最高位;一个字节中的最左边一位称为最高位; 对于一个有符号整数,最高位用来存放整数对于一个有符号整数,最高位用来存放整数的符号,称为符号位。若是正整数,最高位的符号,称为符号位。若是正整数,最高位放置放置0,若是负整数,最高位放置,若是负整数,最高位放置1。 38第二章第二章 C程序设计的初步知识程序设计的初步知识n 整数在内存中的存储形式整数在内存中的存储形式 正整数:正整数: 原码表示。原码表示。 负整数:负整数: 补码表示。(取反加补码表示。(取反加1) 二进制转十进制二进制转十进制 为为 取反减取反

25、减1正整数正整数5在内存中的二进制码为:在内存中的二进制码为: 00101(原码)(原码)最大正整数最大正整数111115 的二进制的二进制 ,其反,其反码:,补码:码:,补码:39第二章第二章 C程序设计的初步知识程序设计的初步知识n 实型数据实型数据 小数形式:由数字和小数点组成的一种实小数形式:由数字和小数点组成的一种实数表示形式。(必须有小数点)数表示形式。(必须有小数点) 指数形式:以指数形式:以“e”或或“E”跟一个整数来跟一个整数来表示以表示以10为底的幂,为底的幂, “e”或或“E”之前之前必须有数字,且必须有数字,且“e”或或“E”后面的指数后面的指数必须为整数。(必须为整数

26、。( “e”或或“E” 的前后以的前后以及数字之间无空格)及数字之间无空格) 40第二章第二章 C程序设计的初步知识程序设计的初步知识n 实型数据实型数据 单精度单精度 float 4个字节个字节 双精度双精度 double 8个字节个字节 41第二章第二章 C程序设计的初步知识程序设计的初步知识n 算术表达式算术表达式 基本算术表达式:基本算术表达式: +、-、*、/、%(%运算对象为整型)运算对象为整型) 注意:注意:n+、-可以看做单目,也可看做双目运算符号。可以看做单目,也可看做双目运算符号。n 双目运算符两边运算数的类型一致,则所得结果的双目运算符两边运算数的类型一致,则所得结果的类

27、型与运算数的类型一致。如:类型与运算数的类型一致。如:1.0/2.0=0.5 =0;n 若不一致,自动进行类型转换,转换的原则为若不一致,自动进行类型转换,转换的原则为“就就大大”n 所有实型数运算都以双精度方式进行。所有实型数运算都以双精度方式进行。 42第二章第二章 C程序设计的初步知识程序设计的初步知识n 运算符的优先级运算符的优先级n 单目运算符单目运算符“+”和和“-”的结合性是从的结合性是从右到左。右到左。n在算术表达式中,可以使用多层圆括号,在算术表达式中,可以使用多层圆括号,但左右括号必须配对。但左右括号必须配对。n 若包含不同优先级的运算符,则按运算若包含不同优先级的运算符,

28、则按运算符的优先级由高到低进行,若相同,则符的优先级由高到低进行,若相同,则按结合方向进行。按结合方向进行。 43第二章第二章 C程序设计的初步知识程序设计的初步知识n 强制类型转换表达式强制类型转换表达式 (类型名)(表达式)(类型名)(表达式) 如如 (int)3.23444第二章第二章 C程序设计的初步知识程序设计的初步知识n 赋值表达式赋值表达式 “=”赋值运算符,赋值运算的功能是先求出右赋值运算符,赋值运算的功能是先求出右边表达式的值,然后把此值赋给边表达式的值,然后把此值赋给 赋值号左边赋值号左边的变量。的变量。注意:注意: 赋值运算符优先级别仅高于逗号运算符;赋值运算符优先级别仅

29、高于逗号运算符;且结合性为自右向左;赋值表达式的值为最且结合性为自右向左;赋值表达式的值为最左边变量所得的新值。左边变量所得的新值。45第二章第二章 C程序设计的初步知识程序设计的初步知识n 复合赋值表达式复合赋值表达式 += n+=2 n=n+2 -= n-=2 n=n-2 *= n*=2 n=n*2 /= n/=2 n=n/2 %= n%=2 n=n%246第二章第二章 C程序设计的初步知识程序设计的初步知识n 复合运算中的类型转换复合运算中的类型转换 两侧不一致两侧不一致 ,把右侧数值按左侧变,把右侧数值按左侧变量类型进行转换。也可用强类型转量类型进行转换。也可用强类型转换的方式人为的转

30、换。换的方式人为的转换。 47第二章第二章 C程序设计的初步知识程序设计的初步知识n 自加、自减、逗号运算符自加、自减、逗号运算符 自加自加 + 使运算对象值加使运算对象值加1 自减自减 - 使运算对象值减使运算对象值减1 +i i+ + i ; i+ ; i的的 值都加值都加1 前缀加前缀加1,后缀不加,后缀不加1 - i i - - i ; i -; i的的 值都减值都减1 前缀减前缀减1,后缀不减,后缀不减1 48第二章第二章 C程序设计的初步知识程序设计的初步知识#include main()int i=1,j=1,m=1,n=1,k=1;printf(i=%dn,i);m=i+;pr

31、intf(i=%d,m=%dn,i,m);printf(j=%dn,j);m=+j;printf(j=%d,m=%dn,j,m);printf(n=%dn,n);m=n-;printf(n=%d,m=%dn,n,m);printf(k=%dn,k);m=-k;printf(k=%d,m=%dn,k,m);49第二章第二章 C程序设计的初步知识程序设计的初步知识n 逗号运算符和逗号表达式逗号运算符和逗号表达式 表达式表达式1,表达式,表达式2, 表达式表达式n 结合性:从左到右,最后一个表达式结合性:从左到右,最后一个表达式的值就是此逗号表达式的值。逗号的值就是此逗号表达式的值。逗号运算符的优先

32、级最低。运算符的优先级最低。 50第三章第三章 顺序结构顺序结构n顺序结构:在程序中按语句出现的顺序结构:在程序中按语句出现的顺序逐条执行。顺序逐条执行。 n赋值语句:在赋值表达式的尾部加赋值语句:在赋值表达式的尾部加上一个上一个“;”号。应出现在函数的号。应出现在函数的可执行部分。可执行部分。 51第三章第三章 顺序结构顺序结构n 数据输出:把数据从计算机内部送数据输出:把数据从计算机内部送到计算机外部设备上的操作。到计算机外部设备上的操作。n 在在VC 6.0环境下,在调用输入和输环境下,在调用输入和输出的库函数之前要求在源程序中出出的库函数之前要求在源程序中出现包含头文件现包含头文件st

33、dio.h的命令行。的命令行。 52第三章第三章 顺序结构顺序结构n printf函数函数 printf(格式控制,输出项格式控制,输出项1,输出项,输出项2,) 格式控制是字符串形式,作用是将要输格式控制是字符串形式,作用是将要输出的数据按照指定的格式输出和提供需出的数据按照指定的格式输出和提供需要原样输出的文字或字符。要原样输出的文字或字符。 如:如:d%、f%、e% 53第三章第三章 顺序结构顺序结构n 格式字符格式字符 %c %d %o (%#o) %x (%#x) %u %f %e %s %p %n 长度修饰符长度修饰符 在在 %和格式字符之间,可以加入长度修和格式字符之间,可以加入

34、长度修饰符,以保证数据输出格式的正确和对饰符,以保证数据输出格式的正确和对齐。长整齐。长整%ld 短整短整 %hd54第三章第三章 顺序结构顺序结构n 宽度说明:宽度说明: %和格式字符之间插入一个整数常数和格式字符之间插入一个整数常数来指定输出的宽度来指定输出的宽度n 对于对于float和和double的实数,可以用的实数,可以用n1.n2的形式来输出,或者用的形式来输出,或者用.n2输出。输出。 在在 %d 和宽度之间加和宽度之间加“-”实现数据左实现数据左对齐对齐 加加“+”在每一个数字前面带正负号。在每一个数字前面带正负号。 55第三章第三章 顺序结构顺序结构n 注意事项注意事项 一般

35、在多个输出数之间留逗号、空格或者回一般在多个输出数之间留逗号、空格或者回车。车。 要输出要输出%符号,在格式控制符中用符号,在格式控制符中用% printf函数有返回值,返回值是本次调用输出函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。字符的个数,包括回车等控制符。 56第三章第三章 顺序结构顺序结构n scanf函数函数 scanf(格式控制,输入项格式控制,输入项1,输入项,输入项2,) 主要作用是指定输入时的数据转换格式主要作用是指定输入时的数据转换格式 ,输入项之间用逗号隔开,对于输入项之间用逗号隔开,对于int,float,double类型变量,在变量之前必须加类型

36、变量,在变量之前必须加&符号作为输入项。符号作为输入项。 57第三章第三章 顺序结构顺序结构n 格式字符格式字符 %c %d %i %o %x %u %f %e %s 58第三章第三章 顺序结构顺序结构n输入整数或者实数这类数值型数据时,输入整数或者实数这类数值型数据时,输入的数据之间必须用空格、回车符号输入的数据之间必须用空格、回车符号等间隔符号隔开。等间隔符号隔开。n 可以指定输入数据所指定的宽度可以指定输入数据所指定的宽度n 一般在使用输入函数前使用输出函数对一般在使用输入函数前使用输出函数对输入数据进行说明,且尽量不要使用通输入数据进行说明,且尽量不要使用通配符。配符。 59第

37、三章第三章 顺序结构顺序结构n复合语句和空语句复合语句和空语句 语句语句1; 语句语句2; 语句语句n; 60第三章第三章 顺序结构顺序结构n 空语句空语句 只有一个分号的语句。只有一个分号的语句。 61第三章第三章 顺序结构顺序结构n 例题例题3.1 A B 提问: 若A和B桶都装了水(不一定是装满),请问如何将A和B桶中的水调换?(A,B的容积不受限制)62第三章第三章 顺序结构顺序结构n 例题例题3.2n注意注意: n 十进制小数点移位是通过十进制小数点移位是通过10的的n次方的乘除来实现次方的乘除来实现.n四舍五入在四舍五入在c语言中的操作语言中的操作:可以通过将小数点移动可以通过将小

38、数点移动到舍入数位前到舍入数位前,加加0.5,然后取整来实现然后取整来实现,最后再将小数最后再将小数点移回点移回.n 强类型转换前要加括号强类型转换前要加括号.n double类型在使用类型在使用scanf输入变量时输入变量时,使用使用%lf格式格式控制符控制符. 63第四章第四章 选择结构选择结构n选择结构选择结构:根据判断的结果根据判断的结果(逻辑值逻辑值)决定程序的不同流程决定程序的不同流程.n逻辑值逻辑值:关系运算和逻辑运算都会得关系运算和逻辑运算都会得到一个逻辑值到一个逻辑值, C语言中语言中,0代表逻辑代表逻辑值值“假假”,非非0(正数或者负数正数或者负数)代表代表“真真”. 64

39、第四章第四章 选择结构选择结构n关系运算关系运算:比较运算比较运算,进行两个数的比较进行两个数的比较,判断比较的结果是否符合指定的条件判断比较的结果是否符合指定的条件.n关系运算符关系运算符: = =!=小于小于 小与等于小与等于 大于大于 大于等于大于等于 等于不等于等于不等于 65第四章第四章 选择结构选择结构n注意:注意:n两个字符之间不允许有空格两个字符之间不允许有空格n关系运算符是双目运算符,具有从左至右的关系运算符是双目运算符,具有从左至右的结合性结合性n、=优先级相同,但高于优先级相同,但高于优先级相同的优先级相同的=、!=如如a=b关系运算符优先级关系运算符优先级赋赋值运算符优

40、先级值运算符优先级 如如 a=b&| 如如 b|c&!d68第四章第四章 选择结构选择结构n优先级比较优先级比较 !算术算术关系关系&|赋值赋值如如: f=a|b=!c+d&e 69第四章第四章 选择结构选择结构n逻辑运算规则逻辑运算规则 非运算非运算!0为为1 !1为为0是否是否 与运算与运算1&1为为1同时满足条件同时满足条件 0&1 1&0 0&0 为为0 或运算或运算 0|0为为0不满足任何一个条件不满足任何一个条件 0|1 1|0 1|1为为70第四章第四章 选择结构选择结构n逻辑运算规则逻辑运算规则 非运算非运算!0为

41、为1 !1为为0是否是否 与运算与运算1&1为为1同时满足条件同时满足条件 0&1 1&0 0&0 为为0 或运算或运算 0|0为为0不满足任何一个条件不满足任何一个条件 0|1 1|0 1|1为为71第四章第四章 选择结构选择结构n逻辑运算规则逻辑运算规则 关系式关系式 0 x10在在c语言中的表达语言中的表达 0 x&x10 &或或|逻辑表达式逻辑表达式“短路短路”现象现象 当当A为为0时时,不需计算不需计算B,可知可知A&B 为为0 当当A为为1时时,不需计算不需计算B,可知可知A|B为为1 72第四章第四章 选择结构选择结构n i

42、f 语句语句n if(表达式表达式) 语句语句1. if(表达式表达式) 语句语句1 else 语句语句273第四章第四章 选择结构选择结构n if 语句语句n if(表达式表达式) 语句语句 如如 if (a10?100:200 x0?(-1)*x:x 85第四章第四章 选择结构选择结构nswitch表达式构成的选择结构表达式构成的选择结构 switch (表达式表达式) case 常量表达式常量表达式1:语句语句1 case 常量表达式常量表达式2:语句语句2 case 常量表达式常量表达式n:语句语句n default :语句语句n 通常和break语句联合使用,当执行到break时,立

43、即跳出switch语句.86第四章第四章 选择结构选择结构n语句标号和语句标号和goto语句语句 goto stop; stop:printf(“endn”); 87第五章第五章 循环结构循环结构n while语句和用语句和用while语句构成的循环语句构成的循环 while(表达式表达式) 循环体循环体 例如例如: k=0; while (k10) printf(“*”); k+; 88第五章第五章 循环结构循环结构n do-while语句及其循环语句及其循环 do 循环体循环体 while(表达式表达式); 例如例如: do i+;s+=i; While(i10); 89第五章第五章 循环

44、结构循环结构n for语句及其循环语句及其循环 for(表达式表达式1;表达式表达式2;表达式表达式3) 循环体循环体 例如例如: for(k=0;k10;k+) printf(“*”); 表达式1;While(表达式2)循环体;表达式3;等价形式90第五章第五章 循环结构循环结构n break语句和语句和continue语句语句Break在循环结构中终止本层循环体在循环结构中终止本层循环体;Continue跳过本次循环体中余下尚为执跳过本次循环体中余下尚为执行的语句行的语句,立刻进行下一次的循环条件立刻进行下一次的循环条件判定判定,可以理解为仅结束本次循环可以理解为仅结束本次循环. 91第六

45、章第六章 字符型数据字符型数据n 字符型常量字符型常量 C语言中语言中,一个字符常量代表一个字符常量代表ASCII字符字符集集(见附录七见附录七)中的一个字符中的一个字符,用单引号用单引号把一个字符括起来作为字符常量把一个字符括起来作为字符常量. 例如例如:a为标识符为标识符,a为字符型常量为字符型常量. 92第六章第六章 字符型数据字符型数据n 字符型常量字符型常量 注意注意:n 大写字母和小写字母的大写字母和小写字母的ASCII值不同值不同,因而代表不因而代表不同的字符常量同的字符常量.n 单引号中的空格也是一个字符常量单引号中的空格也是一个字符常量.n 字符常量只能包含一个字符字符常量只

46、能包含一个字符.n 字符常量只能用单引号括起来字符常量只能用单引号括起来,不能用双括号不能用双括号.n 字符常量在内存中占一个字节字符常量在内存中占一个字节,存放的是字符的存放的是字符的ASCII代码值代码值. 93第六章第六章 字符型数据字符型数据n 字符型常量字符型常量 转义字符常量转义字符常量 特定字符特定字符n 回车回车 反斜杠反斜杠 单引号单引号 “ 双双引号引号ddd 三位八进制代表的一个三位八进制代表的一个ASCII字符字符xhh 二位十六进制代表的一个二位十六进制代表的一个ASCII字字符符注意注意:转义字符常量只代表一个字符转义字符常量只代表一个字符. 94第六章第六章 字符

47、型数据字符型数据n 字符串常量字符串常量 字符串常量是由双引号括起来的一串字符串常量是由双引号括起来的一串字符字符.在在c语言中语言中,系统在每个字符串的最后自系统在每个字符串的最后自动加入一个字符动加入一个字符0作为字符串的作为字符串的结束标志结束标志. 注意注意:“”“”称为空串称为空串,也是一个字符串常量也是一个字符串常量,占用一个字节的存储空间占用一个字节的存储空间. 95第六章第六章 字符型数据字符型数据n 字符量的运算字符量的运算 在在C程序中程序中,字符量可参与任何整数运算字符量可参与任何整数运算.n 大小写字母的转换大小写字母的转换:大写字母大写字母ASCII值值=小写字母小写

48、字母ASCII值值-32n 可以将数字字符转换成整数值可以将数字字符转换成整数值,也可以也可以将整数值转换成数字字符将整数值转换成数字字符. n 字符量可以进行关系运算字符量可以进行关系运算. 96第六章第六章 字符型数据字符型数据n 字符变量字符变量 用关键字用关键字char进行定义进行定义 char ch1=a; 字符变量可以参与整型变量允许的运算字符变量可以参与整型变量允许的运算,有可以使用与字符处理相关的库函数有可以使用与字符处理相关的库函数. 97第六章第六章 字符型数据字符型数据n 字符的输入和输出字符的输入和输出 printf输出字符时使用格式说明符输出字符时使用格式说明符%c,

49、也可以也可以在在c前加入整数来指定输出字符时所占的宽度前加入整数来指定输出字符时所占的宽度. 用用scanf输入字符时也用格式说明符输入字符时也用格式说明符%c,当当%c一个接一个时一个接一个时,字符之间不应有间隔符号字符之间不应有间隔符号(如回如回车车,空格空格). 98第六章第六章 字符型数据字符型数据n putchar和和getchar输入和输出函数输入和输出函数 putchar输出字符输出字符 putchar(ch); getchar输入字符输入字符 ch=getchar(); 注意注意:只有在用户敲入只有在用户敲入enter键时键时,读入才读入才开始执行开始执行. 99第七章第七章

50、函数函数n 一个实用的一个实用的c语言源程序总是由许多函语言源程序总是由许多函数组成数组成.n 这些函数中可以调用这些函数中可以调用c提供的库函数提供的库函数,也也可以调用由用户或他人编写的函数可以调用由用户或他人编写的函数.n c源程序在正常情况下总是从源程序在正常情况下总是从main函数函数开始执行开始执行,main()结束结束. 100第七章第七章 函数函数n熟悉熟悉c语言提供的丰富库函数语言提供的丰富库函数,应正确调用应正确调用.n调用调用c语言标准库函数要求使用语言标准库函数要求使用include命令命令行行.n include命令行必须以命令行必须以#开头开头,系统提供的头系统提供

51、的头文件以文件以.h为文件的后缀为文件的后缀,文件名用一对双引号文件名用一对双引号“”“”或一对尖括号或一对尖括号括起来括起来.n 标准库函数的调用形式标准库函数的调用形式:出现在表达式中或者出现在表达式中或者作为独立的语句完成某种操作。作为独立的语句完成某种操作。 101第七章第七章 函数函数n 函数的定义与返回值函数的定义与返回值 n 函数定义的语法函数定义的语法 函数返回值的类型名函数返回值的类型名 函数名(类型名函数名(类型名 形式参数形式参数1,类型名,类型名 形式形式参数参数2,) 说明部分说明部分 语句部分语句部分 注意:不能在函数的内部定义函数注意:不能在函数的内部定义函数 。

52、 函数名和形式参数都是用户命名的标识符,同一程序中,函数名必须唯一,形式参数名只要在同一函数中唯一即可。若在函数的首部省略了函数返回值的类型名,则默认函数返回值的类型为int类型。除了返回值类型为 int类型的函数外,函数必须先定义(或说明)后调用。若函数只是用于完成某些操作,没有函数值返回,则必须把函数定义成void类型。102第七章第七章 函数函数n 函数的定义与返回值函数的定义与返回值 n 如:如: double add (double a,double b) double s; s=a+b; return s; 函数体中,除形参外,用到的其他变量必须在说明部分进行定义,这些变量(包括形

53、参 ),只在函数被调用时才临时开辟存储单元,当退出函数时,这些临时开辟的存储单元全部被释放掉,因此这种变量只在函数体内部起作用,与其他函数体中的变量互不相干,它们可以和其他函数中的变量同名。103第七章第七章 函数函数n 函数的定义与返回值函数的定义与返回值 n 如:如: double add (double a,double b) double s; s=a+b; return s; 函数的值通过return 语句返回,return语句的形式如下:return 表达式; 或 return(表达式);return语句中表达式的值就是所求的函数值,此表达式值的类型必须与函数首部所说明的类型一致。

54、若类型不一致,则以函数值的类型为准,由系统自动进行转换。 当程序执行到return语句时,程序的流程就返回到调用该函数的地方,并带回函数值。104第七章第七章 函数函数n 函数的定义与返回值函数的定义与返回值 n 如:如: double add (double a,double b) double s; s=a+b; return s; 在同一个函数中,可以根据需要在多处出现return语句,在函数体的不同部位退出函数,但return只可能执行一次return语句中也可以不含表达式,这时必须定义函数为void类型函数体内可以没有return语句,这时必须定义函数为void类型,程序的流程就一直

55、执行到函数末尾的“”,然后返回调用函数,也没有确定的函数值带回。105第七章第七章 函数函数n 函数的两种调用方式函数的两种调用方式n函数的一般调用形式为:函数的一般调用形式为: 函数名(实参表)函数名(实参表) 若函数无形参,调用形式为若函数无形参,调用形式为 函数名函数名()一般情况下,可用两种方式调用函数:一般情况下,可用两种方式调用函数: 当所调用的函数用于求出某个值时,函数的调用可作为表达当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方。式出现在允许表达式出现的任何地方。 当函数仅进行某些操作而不返回函数值,这时函数的调用可当函数仅进行某些操作而不

56、返回函数值,这时函数的调用可作为一条独立的语句。作为一条独立的语句。 当实参个数多于一个时,各实参之间用逗号隔开。实参的个数必须与所调函数中的形参相同,类型一一对应匹配。106第七章第七章 函数函数n 函数调用的语法要求函数调用的语法要求n 调用函数时,函数名必须与所调用的函数名字完调用函数时,函数名必须与所调用的函数名字完全一致。全一致。n 实参的个数必须与形参的个数一致。实参可以是实参的个数必须与形参的个数一致。实参可以是表达式,在类型上应按位置与形参一一对应。表达式,在类型上应按位置与形参一一对应。n 函数必须先定义后调用(函数的返回值类型为函数必须先定义后调用(函数的返回值类型为int

57、或或char时除外)时除外).n 函数可以直接或间接的自己调用自己,称为递归函数可以直接或间接的自己调用自己,称为递归调用。调用。 107第七章第七章 函数函数n 函数说明的形式函数说明的形式 函数说明的一般形式函数说明的一般形式 类型名类型名 函数名(参数类型函数名(参数类型1,参数类型,参数类型2,) 也可以采用下面的形式也可以采用下面的形式 类型名类型名 函数名函数名(参数类型参数类型1 参数参数1,参数类型,参数类型2 参参数数2,) 函数说明可以是一条独立的说明语句,也可以与函数说明可以是一条独立的说明语句,也可以与普通变量一起出现。普通变量一起出现。 108第七章第七章 函数函数n

58、 函数说明的形式函数说明的形式 对函数进行说明能使对函数进行说明能使c语言的编译程序语言的编译程序在编译时进行有效的类型检查。在编译时进行有效的类型检查。 当在所有函数的外部、被调用之前说当在所有函数的外部、被调用之前说明函数时,在对函数进行说明的语句明函数时,在对函数进行说明的语句后面所有位置都可以对函数进行调用。后面所有位置都可以对函数进行调用。 函数说明也可以放在调用函数内的说函数说明也可以放在调用函数内的说明部分。明部分。 109第七章第七章 函数函数n调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递 三种方式:三种方式: 1、实参和形参之间进行数据传递、实参和形参

59、之间进行数据传递 2、通过、通过 return语句把函数值返回。语句把函数值返回。 3、通过全局变量。、通过全局变量。 在在C语言中,数据只能从实参单向传递给形参,语言中,数据只能从实参单向传递给形参,称为称为“按值按值”传递,也即是说,当简单变量传递,也即是说,当简单变量作为实参时,用户不可能在函数中改变对应作为实参时,用户不可能在函数中改变对应实参的值。实参的值。 110第八章第八章 地址和指针地址和指针n变量的地址和指针变量的地址和指针 a b 1012 1013 1201 1202 1203 1204n一个变量实质上是代表了一个变量实质上是代表了“内存中的某个存储单元内存中的某个存储单

60、元”,若在,若在程序中定义了一个变量,程序中定义了一个变量,c编译系统就会根据定义中变量的类编译系统就会根据定义中变量的类型,为其分配一定字节数的内存空间。型,为其分配一定字节数的内存空间。n 每个变量的地址是指该变量所占存储单元的第一个字节的地每个变量的地址是指该变量所占存储单元的第一个字节的地址。址。n 直接存取:直接按变量的地址存取变量值的方式。直接存取:直接按变量的地址存取变量值的方式。 111第八章第八章 地址和指针地址和指针n变量的地址和指针变量的地址和指针 p p a 2002 2002 1012 1013n存放地址的变量称为存放地址的变量称为“指针变量指针变量”。n间接存取:通过指针变量间接存取变量值的的方式。间接存取:通过指针变量间接存取变量值的的方式。n“指针变量指针变量p指向了变量指向了变量a”就是指针变量就是指针变量p中存放了变量中存放了变量a的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论