




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、全国计算机等级考试二级c程序设计(2009版),学C语言,就是学思考问题的过程和解决问题的能力。,二级C语言考试介绍,考核内容:二级定位为程序员,考核内容包括公共基础知识和程序设计。所有科目对基础知识作统一要求,使用统一的公共基础知识考试大纲和教程。二级公共基础知识在各科笔试中的分值比重为30%(30分)。程序设计部分的比重为70%(70分),主要考查考生对程序设计语言使用和编程调试等基本能力。,学C语言,就是学思考问题的过程和解决问题的能力。,二级C语言考试介绍,考试形式:二级所有科目的考试包括笔试和上机考试两部分。二级C笔试时间为90分钟,上机时间改为90分钟。 二级C上机应用软件为 Vi
2、sual C+6.0,学C语言,就是学思考问题的过程和解决问题的能力。,二级C语言考试介绍,考试成绩划分为优秀、良好、及格和不及格四个等第成绩,笔试或上机考试成绩只有一门及格的,下次考试及格的一门可以免考,两部分考试均及格者,由教育部考试中心颁发统一印制的合格证书。,学C语言,就是学思考问题的过程和解决问题的能力。,二级C语言培训介绍,实实在在学知识 顺顺利利过考试,学C语言,就是学思考问题的过程和解决问题的能力。,如何学二级C语言,多看书 多实践验证 多读(背)程序,学C语言,就是学思考问题的过程和解决问题的能力。,第一章 程序设计基本概念,什么是C程序? 高级语言 机器语言 源程序 目标程
3、序,编译程序,学C语言,就是学思考问题的过程和解决问题的能力。,第一章 程序设计基本概念,C语言编译“三部曲” C源程序 目标文件 可执行文件 .C .obj .exe,编译,连接,学C语言,就是学思考问题的过程和解决问题的能力。,第一章 程序设计基本概念,程序设计过程 确定数据结构(输入输出) 确定算法(解决问题的方法和步骤) 编码。(算法代码化) 调试程序。(改错和修正) 整理和写文档。,学C语言,就是学思考问题的过程和解决问题的能力。,第一章 程序设计基本概念,结构化程序的三种结构 顺序结构(先后顺序执行) 选择结构(执行不同分支的语句) 循环结构(重复执行多次或一次不执行),学C语言,
4、就是学思考问题的过程和解决问题的能力。,第一章 程序设计基本概念,模块化结构 由一个个功能模块构成的程序结构为模块化结构。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C语言示例一 输出一行信息:Wellcome to Sinree! 程序名为sinree_c1.c。 #include /*命令行,表示文件包含*/ main()/*主函数*/ printf(“Wellcome to Sinree!n); /*输出信息*/ 程序输出结果,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C语言示例二 输入两个整数,输出它们的和。
5、程序名为sinree_c2.c。 #include /*文件包含*/ main()/*主函数*/ int a,b,c;/*声明定义变量a,b和c*/ scanf(%d%d,/*输出变量c的值*/ 运行程序输入: 90 7 程序结果: C=97,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C语言示例三 输入两个整数,通过调用函数计算它们的和,然后输出和值。 程序名为sinree_c3.c。 #include stdio.h/*文件包含*/ int sum(int x,int y)/*定义sum函数*/ int z;/*声明定义变量z*/ z=x+y;/*计算z
6、等于x与y的和值*/ return (z);/*将z的值返回,通过sum带回调用处*/ main()/*主函数*/ int a,b,c;/*声明定义变量a,b和c*/ scanf(%d%d,/*输出变量c的值*/ 运行程序输入: 90 7 程序结果 C=97,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,VC+ 6.0 编辑环境,编辑区,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,VC+ 6.0 编辑环境 启动Visual C+ 6.0环境 编辑源程序文件 编译 连接 执行,学C语言,就是学思考问题的过程和解决问题的能力。,
7、第二章 C程序设计的初步知识,VC+ 6.0 编辑环境,编译 CtrlF7,连接 F7,运行 Ctrl+F5,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序的构成和格式,任何函数(包括主函数main())都是由函数说明和函数体两部分组成。 其一般结构如下: 函数类型 函数名(函数参数表) /*函数说明部分*/ 说明语句部分; /*函数体部分*/ 执行语句部分; ,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序的构成和格式 C语言是由函数组成的 一个C源程序可由一个main函数和若干个其他函数组成,其中必须有一个且只
8、能有一个main函数。 C程序总是从main函数开始执行。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序的构成和格式 C程序语句和数据定义必须以分号“;”结束。 C语言中,分号是程序语句的结束标志,也是C语句的必要组成部分。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序的构成和格式 C语言严格区分大小写。 如变量a和变量A系统认定为两个不同的变量。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序的构成和格式 C语言数据输入和输出是由库函数实现的。 C语言本身没有输入输出语
9、句。输入和输入操作是由库函数scanf和printf等函数来实现的。 所以一般C程序都要使用命令行语句 #include 注意:命令行以#开头,行尾不能加 ; 号,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序的构成和格式 C语言用/*注释内容*/形式进行程序注释 在“/*”和“*/”之间的所有字符都为注释符,C系统不对注释符进行编译。(另外可以用/用于单行注释) 注意:注释不能嵌套使用。如/* /*/*/,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序书写格式建议 1. C程序书写格式自由。 对于短语句可以多条语
10、句书写在同一行,也可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,也不能将双引号引起来的字符串分开。我们提倡一行一条语句的风格。 2.C程序书写采用缩进格式。根据语句的从属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,便于阅读和理解。 3.程序中适当使用注释信息。在书写程序时,适当地加入注释同样可增加程序的可读性。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序标识符 C语言中 ,符号的命名必须遵守一定的规则,按此规则命名的符号称为标识符。合
11、法的标识符命名规则为: 标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。提醒:c语言标识符中大写字母和小写字母被认为是两个不同的字符,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序标识符分类 关键字(由C语言预先规定的,见附录4) 预定义标识符(预先定义且具有特殊含义) 用户标识符(见名知义),学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,C程序常量和变量 关于常量、变量及数据类型说明的程序实例,程序名为sinree_c3.c。 #include main() int a=3;/*定义整型变量a并赋
12、予常量值3 */ short r=6; /*定义短整型变量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); /*输出各变量占内存的字节数 */ printf(a=
13、%d,r=%d,c=%c,pi=%f,s=%lfn,a,r,c,pi,s); /*输出各变量的值 */ ,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,常量 :在程序运行过程中,其值不能改变的量。 根据数据类型可以分为数值型(有正、负之分)【 整型常量(不带小数点)、实型常量(必须用小数点)】、字符常量(如a、d)和字符串(“ncre”、”beijing”)常量。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,符号常量 #include main() double r,s,l; r=5.0; s=3.14*r*r; l=2*3
14、.14*r; printf(s=%f,l=%fn,s,l); ,符号常量 #include #define PI 3.14 main() double r,s,l; r=5.0; s=PI*r*r; l=2*PI*r; printf(s=%f,l=%fn,s,l); ,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,符号常量 用#define命令行(不是语句,所以后面不能加分号)定义一个字符(通常用大写字母)代表一个常量 。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,变量: 在程序运行过程中值可以改变的量。 变量实质上代表了
15、内存中的某个存储单元。 变量必须先定义后使用。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,整型变量 十进制: 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 x,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,整型常量 #include main () int a=12; printf(a=%d,a=%o,a=%#o,a=%x,a=%#xn,a,a,a,a,a); ,
16、学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,整型变量 基本型: 用int关键字进行定义 int k; 一个定义语句用一个;结束 多个变量用,隔开 int k,m,n; (仅开辟存储单元,不存放初值,此时变量值无意义) 变量初始化:int m=1,n=2,k=3;,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,整型数据分类 短整型:short int 长整型:int 或 long int 无符号型:unsigned 在 vc 6.0中整型常量后面加一个字母l或L 在无符号整数常量后加u或U 若长整型无符号可以加lu或LU,学C
17、语言,就是学思考问题的过程和解决问题的能力。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,整数在内存中的存储形式 一个字节中的最右边一位称为最低位; 一个字节中的最左边一位称为最高位; 对于一个有符号整数,最高位用来存放整数的符号,称为符号位。若是正整数,最高位放置0,若是负整数,最高位放置1。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,整数在内存中的存储形式 正整数: 原码表示。 负整数: 补码表示。(取反加1) 二进制转十进制 为 取反减1,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知
18、识,实型数据 小数形式:由数字和小数点组成的一种实数表示形式。(必须有小数点) 指数形式:以“e”或“E”跟一个整数来表示以10为底的幂, “e”或“E”之前必须有数字,且“e”或“E”后面的指数必须为整数。( “e”或“E” 的前后以及数字之间无空格),学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,实型数据 单精度 float 4个字节 双精度 double 8个字节,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,算术表达式 基本算术表达式: +、-、*、/、%(%运算对象为整型) 注意: +、-可以看做单目,也可看做双目运
19、算符号。 双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。如:1.0/2.0=0.5 =0; 若不一致,自动进行类型转换,转换的原则为“就大” 所有实型数运算都以双精度方式进行。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,运算符的优先级 单目运算符“+”和“-”的结合性是从右到左。 在算术表达式中,可以使用多层圆括号,但左右括号必须配对。 若包含不同优先级的运算符,则按运算符的优先级由高到低进行,若相同,则按结合方向进行。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,强制类型转换表达式 (类型名)(表
20、达式) 如 (int)3.234,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,赋值表达式 “=”赋值运算符,赋值运算的功能是先求出右边表达式的值,然后把此值赋给 赋值号左边的变量。 注意: 赋值运算符优先级别仅高于逗号运算符;且结合性为自右向左;赋值表达式的值为最左边变量所得的新值。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,复合赋值表达式 += n+=2 n=n+2 -= n-=2 n=n-2 *= n*=2 n=n*2 /= n/=2 n=n/2 %= n%=2 n=n%2,学C语言,就是学思考问题的过程和解决问题的
21、能力。,第二章 C程序设计的初步知识,复合运算中的类型转换 两侧不一致 ,把右侧数值按左侧变量类型进行转换。也可用强类型转换的方式人为的转换。,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,自加、自减、逗号运算符 自加 + 使运算对象值加1 自减 - 使运算对象值减1 +i i+ + i ; i+ ; i的 值都加1 前缀加1,后缀不加1 - i i - - i ; i -; i的 值都减1 前缀减1,后缀不减1,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,#include main() int i=1,j=1,m=1,n=
22、1,k=1; printf(i=%dn,i); m=i+; printf(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); ,学C语言,就是学思考问题的过程和解决问题的能力。,第二章 C程序设计的初步知识,逗号运算符和逗号表达式 表达式1,表达式2, 表达式n 结合性:从左到右,最后一个表达式的值就是此逗号表达式的值。逗号运算符的优
23、先级最低。,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,顺序结构:在程序中按语句出现的顺序逐条执行。 赋值语句:在赋值表达式的尾部加上一个“;”号。应出现在函数的可执行部分。,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,数据输出:把数据从计算机内部送到计算机外部设备上的操作。 在VC 6.0环境下,在调用输入和输出的库函数之前要求在源程序中出现包含头文件stdio.h的命令行。,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,printf函数 printf(格式控制,输出项1,输出项2,) 格式控制是字符串形式,作用是将要输出
24、的数据按照指定的格式输出和提供需要原样输出的文字或字符。 如:d%、f%、e%,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,格式字符 %c %d %o (%#o) %x (%#x) %u %f %e %s %p % 长度修饰符 在 %和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。长整%ld 短整 %hd,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,宽度说明: %和格式字符之间插入一个整数常数来指定输出的宽度n 对于float和double的实数,可以用n1.n2的形式来输出,或者用.n2输出。 在 %d 和宽度之间加“-”实
25、现数据左对齐 加“+”在每一个数字前面带正负号。,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,注意事项 一般在多个输出数之间留逗号、空格或者回车。 要输出%符号,在格式控制符中用% printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,scanf函数 scanf(格式控制,输入项1,输入项2,) 主要作用是指定输入时的数据转换格式 ,输入项之间用逗号隔开,对于int,float,double类型变量,在变量之前必须加 ,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺
26、序结构,空语句 只有一个分号的语句。,学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,例题3.1,A B,提问: 若A和B桶都装了水(不一定是装满),请问如何将A和B桶中的水调换?(A,B的容积不受限制),学C语言,就是学思考问题的过程和解决问题的能力。,第三章 顺序结构,例题3.2 注意: 十进制小数点移位是通过10的n次方的乘除来实现. 四舍五入在c语言中的操作:可以通过将小数点移动到舍入数位前,加0.5,然后取整来实现,最后再将小数点移回. 强类型转换前要加括号. double类型在使用scanf输入变量时,使用%lf格式控制符.,学C语言,就是学思考问题的过程和解决
27、问题的能力。,第四章 选择结构,选择结构:根据判断的结果(逻辑值)决定程序的不同流程. 逻辑值:关系运算和逻辑运算都会得到一个逻辑值, C语言中,0代表逻辑值“假”,非0(正数或者负数)代表“真”.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,关系运算:比较运算,进行两个数的比较,判断比较的结果是否符合指定的条件. 关系运算符: = =!= 小于 小与等于 大于 大于等于 等于不等于,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,注意: 两个字符之间不允许有空格 关系运算符是双目运算符,具有从左至右的结合性 、=优先级相同,但高于优先级相同的=、!
28、=如a=b关系运算符优先级赋值运算符优先级 如 a=b=c+d*e=f,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,关系表达式:由关系运算符构成的表达式。 关系表达式的值:整数或 关系运算符两边值的类型不一致时,自动进行类型转换。浮点数由于存放有误差,x=y为。,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,逻辑运算符 a=b; b=t; ,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句 if(表达式) 语句 语句只能为一条语句,可以把多条语句组合成复合语句. 执行过程:计算表达式中的值,如果为真,执行if子句,然后
29、执行if语句后的一个语句;否则,跳过if子句,直接执行if语句后的一个语句;,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句 if(表达式) 语句 语句只能为一条语句,可以把多条语句组合成复合语句. 执行过程:计算表达式中的值,如果为真,执行if子句,然后执行if语句后的一个语句;否则,跳过if子句,直接执行if语句后的一个语句;,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句 if(表达式) 语句1 else 语句2 执行过程:计算表达式的值,如果表达式的值为真,执行if子句,然后跳过else子句,去执行if语句之后的下一条语句
30、;如果表示式的值为假,跳过if子句,执行else子句,然后去执行if语句之后的下一条语句.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句 if(表达式) 语句1 else 语句2 执行过程:计算表达式的值,如果表达式的值为真,执行if子句,然后跳过else子句,去执行if语句之后的下一条语句;如果表示式的值为假,跳过if子句,执行else子句,然后去执行if语句之后的下一条语句.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句的嵌套(一) if (表达式1) if(表达式2) 语句1 else 语句2 else 语句3,学C语言
31、,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句的嵌套(二) if (表达式1) if (表达式2) 语句1 else 语句2 注意:else子句总与前面最近不带else的if相结合.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句的嵌套(三) if (表达式1) 语句1 else if (表达式2) 语句2 else 语句3,if (表达式1) 语句1 else if (表达式2) 语句2 else 语句3,等价,尽量将内嵌的if语句放在else子句中.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句的嵌套
32、(四) if (表达式1) 语句1 else if (表达式2) 语句2,if (表达式1) 语句1 else if (表达式2) 语句2,等价,尽量将内嵌的if语句放在else子句中.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,if 语句的多层嵌套 if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else 语句n,if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else 语句n,等价,逐一对if后的表达式进行检测,只执行其中的一个表达式为真的子句,若所有表
33、达式为0,执行最后的else子句;若无最后的else子句,不执行任何的子句.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,条件表达式构成的选择结构 条件运算符: ? : 条件表达式: 表达式1?表达式2:表达式3 运算功能:如果表达式1为真,求表达式2的值,此时表达式2的值就是整个条件表达式的值; 如果表达式1为假,求表达式3的值,此时表达式3的值就是整个条件表达式的值;,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,条件表达式构成的选择结构 条件表达式的优先级别 低于关系运算符和算术运算符,但高于赋值运算符. 如: y=x10?100:200 x
34、0?(-1)*x:x,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,switch表达式构成的选择结构 switch (表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default :语句n ,通常和break语句联合使用,当执行到break时,立即跳出switch语句.,学C语言,就是学思考问题的过程和解决问题的能力。,第四章 选择结构,语句标号和goto语句 goto stop; stop:printf(“endn”);,学C语言,就是学思考问题的过程和解决问题的能力。,第五章 循环结构,while语句和用wh
35、ile语句构成的循环 while(表达式) 循环体 例如: k=0; while (k10) printf(“*”); k+; ,学C语言,就是学思考问题的过程和解决问题的能力。,第五章 循环结构,do-while语句及其循环 do 循环体 while(表达式); 例如: do i+;s+=i; While(i10);,学C语言,就是学思考问题的过程和解决问题的能力。,第五章 循环结构,for语句及其循环 for(表达式1;表达式2;表达式3) 循环体 例如: for(k=0;k10;k+) printf(“*”);,表达式1; While(表达式2) 循环体; 表达式3; ,等价形式,学C语
36、言,就是学思考问题的过程和解决问题的能力。,第五章 循环结构,break语句和continue语句 Break在循环结构中终止本层循环体; Continue跳过本次循环体中余下尚为执行的语句,立刻进行下一次的循环条件判定,可以理解为仅结束本次循环.,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,字符型常量 C语言中,一个字符常量代表ASCII字符集(见附录七)中的一个字符,用单引号把一个字符括起来作为字符常量. 例如:a为标识符,a为字符型常量.,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,字符型常量 注意: 大写字母和小写字母的ASCII值不
37、同,因而代表不同的字符常量. 单引号中的空格也是一个字符常量. 字符常量只能包含一个字符. 字符常量只能用单引号括起来,不能用双括号. 字符常量在内存中占一个字节,存放的是字符的ASCII代码值.,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,字符型常量 转义字符常量 特定字符 n 回车 反斜杠 单引号 “ 双引号 ddd 三位八进制代表的一个ASCII字符 xhh 二位十六进制代表的一个ASCII字符 注意:转义字符常量只代表一个字符.,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,字符串常量 字符串常量是由双引号括起来的一串字符.在c语言中,
38、系统在每个字符串的最后自动加入一个字符0作为字符串的结束标志. 注意:“”称为空串,也是一个字符串常量,占用一个字节的存储空间.,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,字符量的运算 在C程序中,字符量可参与任何整数运算. 大小写字母的转换:大写字母ASCII值=小写字母ASCII值-32 可以将数字字符转换成整数值,也可以将整数值转换成数字字符. 字符量可以进行关系运算.,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,字符变量 用关键字char进行定义 char ch1=a; 字符变量可以参与整型变量允许的运算,有可以使用与字符处理相关的
39、库函数.,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,字符的输入和输出 printf输出字符时使用格式说明符%c,也可以在c前加入整数来指定输出字符时所占的宽度. 用scanf输入字符时也用格式说明符%c,当%c一个接一个时,字符之间不应有间隔符号(如回车,空格).,学C语言,就是学思考问题的过程和解决问题的能力。,第六章 字符型数据,putchar和getchar输入和输出函数 putchar输出字符 putchar(ch); getchar输入字符 ch=getchar(); 注意:只有在用户敲入enter键时,读入才开始执行.,学C语言,就是学思考问题的过程和解
40、决问题的能力。,第七章 函数,一个实用的c语言源程序总是由许多函数组成. 这些函数中可以调用c提供的库函数,也可以调用由用户或他人编写的函数. c源程序在正常情况下总是从main函数开始执行,main()结束.,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,熟悉c语言提供的丰富库函数,应正确调用. 调用c语言标准库函数要求使用include命令行. include命令行必须以#开头,系统提供的头文件以.h为文件的后缀,文件名用一对双引号“”或一对尖括号括起来. 标准库函数的调用形式:出现在表达式中或者作为独立的语句完成某种操作。,学C语言,就是学思考问题的过程和解决问题的能力
41、。,第七章 函数,函数的定义与返回值 函数定义的语法 函数返回值的类型名 函数名(类型名 形式参数1,类型名 形式参数2,) 说明部分 语句部分 注意:不能在函数的内部定义函数 。,函数名和形式参数都是用户命名的标识符,同一程序中,函数名必须唯一,形式参数名只要在同一函数中唯一即可。,若在函数的首部省略了函数返回值的类型名,则默认函数返回值的类型为int类型。除了返回值类型为 int类型的函数外,函数必须先定义(或说明)后调用。若函数只是用于完成某些操作,没有函数值返回,则必须把函数定义成void类型。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,函数的定义与返回值 如:
42、double add (double a,double b) double s; s=a+b; return s; ,函数体中,除形参外,用到的其他变量必须在说明部分进行定义,这些变量(包括形参 ),只在函数被调用时才临时开辟存储单元,当退出函数时,这些临时开辟的存储单元全部被释放掉,因此这种变量只在函数体内部起作用,与其他函数体中的变量互不相干,它们可以和其他函数中的变量同名。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,函数的定义与返回值 如: double add (double a,double b) double s; s=a+b; return s; ,函数的值
43、通过return 语句返回,return语句的形式如下: return 表达式; 或 return(表达式); return语句中表达式的值就是所求的函数值,此表达式值的类型必须与函数首部所说明的类型一致。若类型不一致,则以函数值的类型为准,由系统自动进行转换。 当程序执行到return语句时,程序的流程就返回到调用该函数的地方,并带回函数值。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,函数的定义与返回值 如: double add (double a,double b) double s; s=a+b; return s; ,在同一个函数中,可以根据需要在多处出现ret
44、urn语句,在函数体的不同部位退出函数,但return只可能执行一次 return语句中也可以不含表达式,这时必须定义函数为void类型 函数体内可以没有return语句,这时必须定义函数为void类型,程序的流程就一直执行到函数末尾的“”,然后返回调用函数,也没有确定的函数值带回。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,函数的两种调用方式 函数的一般调用形式为: 函数名(实参表) 若函数无形参,调用形式为 函数名() 一般情况下,可用两种方式调用函数: 当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方。 当函数仅进行某些操作而不返
45、回函数值,这时函数的调用可作为一条独立的语句。,当实参个数多于一个时,各实参之间用逗号隔开。 实参的个数必须与所调函数中的形参相同, 类型一一对应匹配。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,函数调用的语法要求 调用函数时,函数名必须与所调用的函数名字完全一致。 实参的个数必须与形参的个数一致。实参可以是表达式,在类型上应按位置与形参一一对应。 函数必须先定义后调用(函数的返回值类型为int或char时除外). 函数可以直接或间接的自己调用自己,称为递归调用。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,函数说明的形式 函数说明的一般形式 类型名
46、函数名(参数类型1,参数类型2,) 也可以采用下面的形式 类型名 函数名(参数类型1 参数1,参数类型2 参数2,) 函数说明可以是一条独立的说明语句,也可以与普通变量一起出现。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,函数说明的形式 对函数进行说明能使c语言的编译程序在编译时进行有效的类型检查。 当在所有函数的外部、被调用之前说明函数时,在对函数进行说明的语句后面所有位置都可以对函数进行调用。 函数说明也可以放在调用函数内的说明部分。,学C语言,就是学思考问题的过程和解决问题的能力。,第七章 函数,调用函数和被调用函数之间的数据传递 三种方式: 1、实参和形参之间进行
47、数据传递 2、通过 return语句把函数值返回。 3、通过全局变量。 在C语言中,数据只能从实参单向传递给形参,称为“按值”传递,也即是说,当简单变量作为实参时,用户不可能在函数中改变对应实参的值。,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,变量的地址和指针 a b 1012 1013 1201 1202 1203 1204 一个变量实质上是代表了“内存中的某个存储单元”,若在程序中定义了一个变量,c编译系统就会根据定义中变量的类型,为其分配一定字节数的内存空间。 每个变量的地址是指该变量所占存储单元的第一个字节的地址。 直接存取:直接按变量的地址存取变量值的方式
48、。,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,变量的地址和指针 p p a 2002 2002 1012 1013 存放地址的变量称为“指针变量”。 间接存取:通过指针变量间接存取变量值的的方式。 “指针变量p指向了变量a”就是指针变量p中存放了变量a的地址。 在c语言中,指针被广泛运用,它和数组、字符串、函数间数据的传递等有着密不可分的联系。,1012,1012,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,指针变量的定义和指针变量的基类型 定义指针变量的一般形式如下: 类型名 *指针变量名1,*指针变量名2,.; 如 int *pi,*p
49、j; double *pd; 我们称int、 double是指针变量的基类型。,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,指针变量的定义和指针变量的基类型 如: int *p,*s,k=20; s= 对于基类型不同的指针变量,其内容(地址值)增1、减1所跨越的字节数是不同的,因为指针移动的最小单位。,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,给指针变量赋地址值 通过求地址运算符 通过标准函数获得地址值,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,给指针变量赋“空”值 p=NULL; NULL是在stdio.h头文
50、件中定义的预定义符,因此在使用NULL时,应该在程序的前面出现预定义行 #include ,NULL的代码值为0,因此以上代码等价于 p=0;或p=0;,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,对指针变量的操作 通过指针来引用一个存储单元 当变量中存放了一个确切的地址值时,可以用“间接访问运算符”*通过指针来引用该地址的存储单元。 如 int *p,j=10,m; p=,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,对指针变量的操作 间接访问运算符*是一个单目运算符,必须出现在运算对象的左边,其运算对象是存储地址的指针变量或者是地址。 注意
51、: +和*具有相同优先级,结合性为从右到左 +*p *p+=1 (*p)+ *p+=1 *p+ p+=1,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,对指针变量的操作 移动指针:对指针变量加上或减去一个整数,或通过赋值运算,使指针变量指向相邻的存储单元。 在对指针进行加、减运算时,数字“1”不再代表十进制整数“1”,而是指1个存储单元长度。1个单元长度的字节数,根据指针的基类型而定。,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,对指针变量的操作 指针比较 在关系表达式中可以对两个指针进行比较, 如: int *p,*q; if(pq) pri
52、ntf(“p points to lower memory”); if(p=0) printf(“p points to NUll”);,学C语言,就是学思考问题的过程和解决问题的能力。,第八章 地址和指针,函数之间地址值的传递 形参为指针变量时实参和形参之间的数据传递 通过传送地址值在被调用函数中直接改变调用函数中的变量的值。 函数返回地址值。,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,数组 一组具有同一类型的变量 在内存中占有连续的存储单元 在c语言中,可以用a0、a1、a2、这种形式来表示数组中连续的存储单元,我们把它们称为“带下标的变量”或数组元素。,学C语言,就
53、是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组的定义 一维数组:数组中每个元素只带有一个下标 形式: 类型名 数组名整型常量(表达式) 如: int a8;,a0 a1 a2 a3 a4 a5 a6 a7,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组的定义 如: int a8;,a0 a1 a2 a3 a4 a5 a6 a7,定义了一个名为a的一维数组。 方括号的8规定了a数组含有8个元素,它们是a0、a1、a7 类型名int规定a数组中每个元素都是整型,只能存放整型数。 每个元素一个下标,c语言规定每个数组第一个元素的下标总是0(下标的下界),最后一
54、个元素的下标应该是7(下标的上界)。 可以用存储单元的名字a0、a1、a7直接引用各存储单元。,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组的定义 多个数组说明符 double w22,v100,u5; 和普通变量名一起说明 char c1,c2,carr81;,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组元素的引用 引用形式 数组名下标表达式 如:double x8; 则x0、aj、am+n都是对数组元素的合法引用。 注意:一个数组元素实质上就是一个变量名,代表内存中的一个存储单元,一个数组占有一串连续的存储单元。另外,在c语言中,一个
55、数组不能被整体引用,例如x数组,不能用x代表x0到x7这8个元素。,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组的初始化 在定义语句中为所定义数组的各元素赋初值 int a8=0,1,2,3,4,5,6,7; 当所赋值初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0 如 int a3=1; 相当于 int a3=1,0,0 当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,通过赋初值定义数组的大小 int a=0,1,2,3 相当于 int a4=0,1,2,3 数组说明符的一
56、对方括号中可以不指定数组的大小,可以根据赋初值来隐性定义数组元素的个数。,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组的定义和数组元素的引用举例 定义 for (j=0;j=0;j-) printf(“%d”,aj) /*倒序输出*/ for(j=0;jM;j+) printf(“%d”,aM-1-j) /*倒序输出*/ 控制换行符 正序 (j+1)%n=0 每输出n个元素可以换行 逆序 j%n=0 每输出n个元素可以换行,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组和指针 一维数组和数组元素的地址 c语言中,在函数体中或在函数外部定义的
57、数组名可以认为是一个存放地址值的指针变量名,其中的地址值是数组第一个元素的地址,也就是数组所占一串连续存储单元的起始地址,定义数组时的类型就是此指针变量的基类型。注意:这个指针变量的地址值不可改变,即不可给数组名重新赋值,可以认为数组名是一个地址常量。,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组和指针 一维数组和数组元素的地址 float a10,*p,x; int k; for(k=0;k10;k+) p=a+k; for(k=0;k10;k+) scanf(“%d”,a+k); 语句p=都是合法的,功能相同,都使p指向了数组的首部地址。,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组和指针 一维数组和数组元素的地址 for(p=a,k=0;k10;k+) scanf(“%d”,p); p+; for(p=a,k=0;k10;k+) scanf(“%d”,p+); for(p=a;p-a10;p+) scanf(“%d”,p);,学C语言,就是学思考问题的过程和解决问题的能力。,第九章 数组,一维数组和指针 通过数组的首地址引用数组元素 int a10; a是数组元素的首地址,a的值等于 p=a; 可以通过指针变量p来表示数组元素 a0 *p a1 *(p+1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025庆铃集团校园招聘笔试参考题库附带答案详解
- 广东省廉江市实验学校高中政治6.1人的认识从何而来教案必修4
- 四年级数学下册二可能性9认识可能性同步练习浙教版
- 山西专版2024年中考数学复习第二单元方程组与不等式组课时训练06分式方程及其应用
- 高中语文情感美文今生愿为了你……
- 质量控制培训提升员工质量意识
- 跨平台营销自动化的挑战与机遇
- 部编四年级下册《道德与法治》全册教案-教学设计
- 湖南2025年01月长沙市望城区公开引进博士笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年绍兴市柯桥区利民公路养护有限公司招聘笔试考点考试题库答案
- 2025年广西职业院校技能大赛高职组(商务数据分析赛项)参考试题库资料及答案
- 2025年黑龙江农垦职业学院单招职业倾向性测试题库带答案
- 四年级下册 道德与法治 全册教案
- 个人租房房屋合同范本
- MSA测量系统培训
- 冷库安全培训
- 线上教育平台教师教学行为规范与责任书
- 2025年内蒙古法院系统招聘用制书记员2988人过渡高频重点模拟试卷提升(共500题附带答案详解)
- 中央2025年全国妇联所属在京事业单位招聘93人笔试历年参考题库附带答案详解
- 《环境污染对生态系统的影响》课件
- 2024年保安员证资格考试题库及答案
评论
0/150
提交评论