全国计算机等级考试二级语言培训_第1页
全国计算机等级考试二级语言培训_第2页
全国计算机等级考试二级语言培训_第3页
全国计算机等级考试二级语言培训_第4页
全国计算机等级考试二级语言培训_第5页
已阅读5页,还剩263页未读 继续免费阅读

下载本文档

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

文档简介

1、全国计算机等级考试二级c程序设计(2012版) 学C语言,就是学思考问题的过程和解决问题的能力。二级C语言考试介绍考核内容:二级定位为程序员,考核内容包括公共基础知识和程序设计。所有科目对基础知识作统一要求,使用统一的公共基础知识考试大纲和教程。二级公共基础知识在各科笔试中的分值比重为30%(30分)。程序设计部分的比重为70%(70分),主要考查考生对程序设计语言使用和编程调试等基本能力。 学C语言,就是学思考问题的过程和解决问题的能力。二级C语言考试介绍考试形式:二级所有科目的考试包括笔试和上机考试两部分。二级C笔试时间为90分钟,上机时间改为90分钟。 二级C上机应用软件为 Visual

2、 C+6.0 学C语言,就是学思考问题的过程和解决问题的能力。二级C语言考试介绍 考试成绩划分为优秀、良好、及格和不及格四个等第成绩,笔试或上机考试成绩只有一门及格的,下次考试及格的一门可以免考,两部分考试均及格者,由教育部考试中心颁发统一印制的合格证书。 学C语言,就是学思考问题的过程和解决问题的能力。二级C语言培训介绍 实实在在学知识 顺顺利利过考试 学C语言,就是学思考问题的过程和解决问题的能力。如何学二级C语言 多看书 多实践验证 多读(背)程序 学C语言,就是学思考问题的过程和解决问题的能力。第一章 程序设计基本概念 什么是C程序?高级语言 机器语言源程序 目标程序 编译程序 学C语

3、言,就是学思考问题的过程和解决问题的能力。第一章 程序设计基本概念 C语言编译“三部曲”C源程序 目标文件 可执行文件 .C .obj .exe编译连接 学C语言,就是学思考问题的过程和解决问题的能力。第一章 程序设计基本概念 程序设计过程确定数据结构(输入输出)确定算法(解决问题的方法和步骤)编码。(算法代码化)调试程序。(改错和修正)整理和写文档。 学C语言,就是学思考问题的过程和解决问题的能力。第一章 程序设计基本概念 结构化程序的三种结构顺序结构(先后顺序执行)选择结构(执行不同分支的语句)循环结构(重复执行多次或一次不执行) 学C语言,就是学思考问题的过程和解决问题的能力。第一章 程

4、序设计基本概念模块化结构由一个个功能模块构成的程序结构为模块化结构。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 C语言示例一输出一行信息: e to Sinree!程序名为sinree_c1.c。#include /*命令行,表示文件包含*/main()/*主函数*/ printf(“ e to Sinree!n); /*输出信息*/程序输出结果 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 C语言示例二输入两个整数,输出它们的和。程序名为sinree_c2.c。#include /*文件包含*/main()/*主函数*/ i

5、nt a,b,c;/*声明定义变量a,b和c*/ scanf(%d%d,&a,&b); /*输入变量a和b的值*/ c=a+b;/*计算c等于a与b的和值*/ printf(c=%dn,c);/*输出变量c的值*/运行程序输入:907 程序结果: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,&a,&b);/*输入变量a和b的值*/ c=sum(a,b);/*调用sum函数,将得到的值赋给c*/ printf(c=%dn,c);/*输出变量c的值*/运行程序输入:90 7 程序结果 C=97 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识VC+ 6.0 编辑环境编辑区 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识VC+ 6.0 编辑环境

7、启动Visual C+ 6.0环境编辑源程序文件编译连接执行 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识VC+ 6.0 编辑环境编译CtrlF7连接F7运行Ctrl+F5 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序的构成和格式 任何函数(包括主函数main())都是由函数说明和函数体两部分组成。 其一般结构如下: 函数类型 函数名(函数参数表) /*函数说明部分*/ 说明语句部分; /*函数体部分*/ 执行语句部分; 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序的构成和格式 C语言是

8、由函数组成的 一个C源程序可由一个main函数和若干个其他函数组成,其中必须有一个且只能有一个main函数。 C程序总是从main函数开始执行。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序的构成和格式 C程序语句和数据定义必须以分号“;”结束。 C语言中,分号是程序语句的结束标志,也是C语句的必要组成部分。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序的构成和格式C语言严格区分大小写。如变量a和变量A系统认定为两个不同的变量。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序的构成和

9、格式C语言数据输入和输出是由库函数实现的。 C语言本身没有输入输出语句。输入和输入操作是由库函数scanf和printf等函数来实现的。 所以一般C程序都要使用命令行语句 #include 注意:命令行以#开头,行尾不能加 ; 号 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序的构成和格式C语言用/*注释内容*/形式进行程序注释在“/*”和“*/”之间的所有字符都为注释符,C系统不对注释符进行编译。(另外可以用/用于单行注释)注意:注释不能嵌套使用。如/* /*/*/ 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序书写格式

10、建议1. C程序书写格式自由。 对于短语句可以多条语句书写在同一行,也可以将长语句分写在多行。但需要注意,分行时不能将一个单词分开,也不能将双引号引起来的字符串分开。我们提倡一行一条语句的风格。2.C程序书写采用缩进格式。根据语句的从属关系,程序书写时采用缩进格式,使程序语句的层次结构清晰,提高程序的可读性。同一层次语句要左对齐,不同层次的语句要缩进若干个字符,这样程序层次清楚,便于阅读和理解。 3.程序中适当使用注释信息。在书写程序时,适当地加入注释同样可增加程序的可读性。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序标识符 C语言中 ,符号的命名必须遵

11、守一定的规则,按此规则命名的符号称为标识符。合法的标识符命名规则为: 标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。提醒:c语言标识符中大写字母和小写字母被认为是两个不同的字符 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序标识符分类 关键字(由C语言预先规定的,见附录4)预定义标识符(预先定义且具有特殊含义) 用户标识符(见名知义) 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识C程序常量和变量 关于常量、变量及数据类型说明的程序实例,程序名为sinree_c3.c。 #include main() i

12、nt a=3;/*定义整型变量a并赋予常量值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); /*输出各变量占内

13、存的字节数 */ printf(a=%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*

14、r;l=2*3.14*r;printf(s=%f,l=%fn,s,l);符号常量 #include #define PI 3.14main()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); 学C语言,就是学思考问题的过程

16、和解决问题的能力。第二章 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、能力。数据类型名说明Visual C+ 6.0环境Turbo C2.0环境字节取值范围字节取值范围short int短整型2-32768327672-3276832767signed short int带符号短整型2-32768327672-3276832767unsigned short int无符号短整型20655352065535int整型4-214748364821474836472-3276832767signed int带符号整型4-214748364821474836472-3276832767unsigned int无符号整型40 2065535long int长整型4-214

18、748364821474836474-21474836482147483647signed long int带符号长整型4-214748364821474836474-21474836482147483647unsigned long int无符号长整型40 40 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 整数在内存中的存储形式 一个字节中的最右边一位称为最低位; 一个字节中的最左边一位称为最高位; 对于一个有符号整数,最高位用来存放整数的符号,称为符号位。若是正整数,最高位放置0,若是负整数,最高位放置1。 学C语言,就是学思考问题的过程和解决问题的能力。

19、第二章 C程序设计的初步知识 整数在内存中的存储形式 正整数: 原码表示。 负整数: 补码表示。(取反加1) 二进制转十进制 为 取反减1 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 实型数据 小数形式:由数字和小数点组成的一种实数表示形式。(必须有小数点) 指数形式:以“e”或“E”跟一个整数来表示以10为底的幂, “e”或“E”之前必须有数字,且“e”或“E”后面的指数必须为整数。( “e”或“E” 的前后以及数字之间无空格) 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 实型数据 单精度 float 4个字节 双精度 do

20、uble 8个字节 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 算术表达式 基本算术表达式: +、-、*、/、%(%运算对象为整型) 注意:+、-可以看做单目,也可看做双目运算符号。 双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。如:1.0/2.0=0.5 =0; 若不一致,自动进行类型转换,转换的原则为“就大” 所有实型数运算都以双精度方式进行。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 运算符的优先级 单目运算符“+”和“-”的结合性是从右到左。在算术表达式中,可以使用多层圆括号,但左右括号必须配对

21、。 若包含不同优先级的运算符,则按运算符的优先级由高到低进行,若相同,则按结合方向进行。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 强制类型转换表达式 (类型名)(表达式) 如 (int)3.234 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 赋值表达式 “=”赋值运算符,赋值运算的功能是先求出右边表达式的值,然后把此值赋给 赋值号左边的变量。注意: 赋值运算符优先级别仅高于逗号运算符;且结合性为自右向左;赋值表达式的值为最左边变量所得的新值。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 复

22、合赋值表达式 += 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语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 复合运算中的类型转换 两侧不一致 ,把右侧数值按左侧变量类型进行转换。也可用强类型转换的方式人为的转换。 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识 自加、自减、逗号运算符 自加 + 使运算对象值加1 自减 - 使运算对象值减1 +i i+ + i ; i+ ; i的 值都加1 前缀加1,后缀不加1 - i i - - i ; i

23、-; i的 值都减1 前缀减1,后缀不减1 学C语言,就是学思考问题的过程和解决问题的能力。第二章 C程序设计的初步知识#include main()int i=1,j=1,m=1,n=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语言,就是学思考问题的过程和解决问题的能力。

24、第二章 C程序设计的初步知识 逗号运算符和逗号表达式 表达式1,表达式2, 表达式n 结合性:从左到右,最后一个表达式的值就是此逗号表达式的值。逗号运算符的优先级最低。 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构顺序结构:在程序中按语句出现的顺序逐条执行。 赋值语句:在赋值表达式的尾部加上一个“;”号。应出现在函数的可执行部分。 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 数据输出:把数据从计算机内部送到计算机外部设备上的操作。 在VC 6.0环境下,在调用输入和输出的库函数之前要求在源程序中出现包含头文件stdio.h的命令行。 学C语言,就是学思

25、考问题的过程和解决问题的能力。第三章 顺序结构 printf函数 printf(格式控制,输出项1,输出项2,) 格式控制是字符串形式,作用是将要输出的数据按照指定的格式输出和提供需要原样输出的文字或字符。 如:d%、f%、e% 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 格式字符 %c %d %o (%#o) %x (%#x) %u %f %e %s %p % 长度修饰符 在 %和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。长整%ld 短整 %hd 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 宽度说明: %和格式字符之间插入一

26、个整数常数来指定输出的宽度n 对于float和double的实数,可以用n1.n2的形式来输出,或者用.n2输出。 在 %d 和宽度之间加“-”实现数据左对齐 加“+”在每一个数字前面带正负号。 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 注意事项 一般在多个输出数之间留逗号、空格或者回车。 要输出%符号,在格式控制符中用% printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 scanf函数 scanf(格式控制,输入项1,输入项2,) 主要作用是指定输入时的数据转换格式 ,输入项

27、之间用逗号隔开,对于int,float,double类型变量,在变量之前必须加&符号作为输入项。 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 格式字符 %c %d %i %o %x %u %f %e %s 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构输入整数或者实数这类数值型数据时,输入的数据之间必须用空格、回车符号等间隔符号隔开。 可以指定输入数据所指定的宽度 一般在使用输入函数前使用输出函数对输入数据进行说明,且尽量不要使用通配符。 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构复合语句和空语句 语句1; 语句2; 语句n; 学C

28、语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 空语句 只有一个分号的语句。 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 例题3.1 A B 提问: 若A和B桶都装了水(不一定是装满),请问如何将A和B桶中的水调换?(A,B的容积不受限制) 学C语言,就是学思考问题的过程和解决问题的能力。第三章 顺序结构 例题3.2注意: 十进制小数点移位是通过10的n次方的乘除来实现.四舍五入在c语言中的操作:可以通过将小数点移动到舍入数位前,加0.5,然后取整来实现,最后再将小数点移回. 强类型转换前要加括号. double类型在使用scanf输入变量时,使用%lf格式

29、控制符. 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构选择结构:根据判断的结果(逻辑值)决定程序的不同流程.逻辑值:关系运算和逻辑运算都会得到一个逻辑值, C语言中,0代表逻辑值“假”,非0(正数或者负数)代表“真”. 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构关系运算:比较运算,进行两个数的比较,判断比较的结果是否符合指定的条件.关系运算符: = =!=小于 小与等于 大于 大于等于 等于不等于 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构注意:两个字符之间不允许有空格关系运算符是双目运算符,具有从左至右的结合性、=优先级相同,但

30、高于优先级相同的=、!=如a=b关系运算符优先级赋值运算符优先级 如 a=b&| 如 b|c&!d 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构优先级比较 !算术关系&|赋值如: f=a|b=!c+d&e 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构逻辑运算规则 非运算!0为1 !1为0是否 与运算1&1为1同时满足条件 0&1 1&0 0&0 为0 或运算 0|0为0不满足任何一个条件 0|1 1|0 1|1为 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构逻辑运算规则 非运算!0为1 !1为0是否 与运算1&1为1同时满足条件 0&

31、1 1&0 0&0 为0 或运算 0|0为0不满足任何一个条件 0|1 1|0 1|1为 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构逻辑运算规则 关系式 0 x10在c语言中的表达 0 x&x10 &或|逻辑表达式“短路”现象 当A为0时,不需计算B,可知A&B 为0 当A为1时,不需计算B,可知A|B为1 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构 if 语句 if(表达式) 语句 if(表达式) 语句1 else 语句2 学C语言,就是学思考问题的过程和解决问题的能力。第四章 选择结构 if 语句 if(表达式) 语句 如 if (a10?100

32、:200 x0?(-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

33、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语言,就是学思考问

34、题的过程和解决问题的能力。第五章 循环结构 break语句和continue语句Break在循环结构中终止本层循环体;Continue跳过本次循环体中余下尚为执行的语句,立刻进行下一次的循环条件判定,可以理解为仅结束本次循环. 学C语言,就是学思考问题的过程和解决问题的能力。第六章 字符型数据 字符型常量 C语言中,一个字符常量代表ASCII字符集(见附录七)中的一个字符,用单引号把一个字符括起来作为字符常量. 例如:a为标识符,a为字符型常量. 学C语言,就是学思考问题的过程和解决问题的能力。第六章 字符型数据 字符型常量 注意: 大写字母和小写字母的ASCII值不同,因而代表不同的字符常量

35、. 单引号中的空格也是一个字符常量. 字符常量只能包含一个字符. 字符常量只能用单引号括起来,不能用双括号. 字符常量在内存中占一个字节,存放的是字符的ASCII代码值. 学C语言,就是学思考问题的过程和解决问题的能力。第六章 字符型数据 字符型常量 转义字符常量 特定字符n 回车 反斜杠 单引号 “ 双引号ddd 三位八进制代表的一个ASCII字符xhh 二位十六进制代表的一个ASCII字符注意:转义字符常量只代表一个字符. 学C语言,就是学思考问题的过程和解决问题的能力。第六章 字符型数据 字符串常量 字符串常量是由双引号括起来的一串字符.在c语言中,系统在每个字符串的最后自动加入一个字符

36、0作为字符串的结束标志. 注意:“”称为空串,也是一个字符串常量,占用一个字节的存储空间. 学C语言,就是学思考问题的过程和解决问题的能力。第六章 字符型数据 字符量的运算 在C程序中,字符量可参与任何整数运算. 大小写字母的转换:大写字母ASCII值=小写字母ASCII值-32 可以将数字字符转换成整数值,也可以将整数值转换成数字字符. 字符量可以进行关系运算. 学C语言,就是学思考问题的过程和解决问题的能力。第六章 字符型数据 字符变量 用关键字char进行定义 char ch1=a; 字符变量可以参与整型变量允许的运算,有可以使用与字符处理相关的库函数. 学C语言,就是学思考问题的过程和

37、解决问题的能力。第六章 字符型数据 字符的输入和输出 printf输出字符时使用格式说明符%c,也可以在c前加入整数来指定输出字符时所占的宽度. 用scanf输入字符时也用格式说明符%c,当%c一个接一个时,字符之间不应有间隔符号(如回车,空格). 学C语言,就是学思考问题的过程和解决问题的能力。第六章 字符型数据 putchar和getchar输入和输出函数 putchar输出字符 putchar(ch); getchar输入字符 ch=getchar(); 注意:只有在用户敲入enter键时,读入才开始执行. 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 一个实用的c语言源

38、程序总是由许多函数组成. 这些函数中可以调用c提供的库函数,也可以调用由用户或他人编写的函数. c源程序在正常情况下总是从main函数开始执行,main()结束. 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数熟悉c语言提供的丰富库函数,应正确调用.调用c语言标准库函数要求使用include命令行. include命令行必须以#开头,系统提供的头文件以.h为文件的后缀,文件名用一对双引号“”或一对尖括号括起来. 标准库函数的调用形式:出现在表达式中或者作为独立的语句完成某种操作。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数的定义与返回值 函数定义的语法 函

39、数返回值的类型名 函数名(类型名 形式参数1,类型名 形式参数2,) 说明部分 语句部分 注意:不能在函数的内部定义函数 。 函数名和形式参数都是用户命名的标识符,同一程序中,函数名必须唯一,形式参数名只要在同一函数中唯一即可。若在函数的首部省略了函数返回值的类型名,则默认函数返回值的类型为int类型。除了返回值类型为 int类型的函数外,函数必须先定义(或说明)后调用。若函数只是用于完成某些操作,没有函数值返回,则必须把函数定义成void类型。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数的定义与返回值 如: double add (double a,double b)

40、 double s; s=a+b; return s; 函数体中,除形参外,用到的其他变量必须在说明部分进行定义,这些变量(包括形参 ),只在函数被调用时才临时开辟存储单元,当退出函数时,这些临时开辟的存储单元全部被释放掉,因此这种变量只在函数体内部起作用,与其他函数体中的变量互不相干,它们可以和其他函数中的变量同名。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数的定义与返回值 如: double add (double a,double b) double s; s=a+b; return s; 函数的值通过return 语句返回,return语句的形式如下:retur

41、n 表达式; 或 return(表达式);return语句中表达式的值就是所求的函数值,此表达式值的类型必须与函数首部所说明的类型一致。若类型不一致,则以函数值的类型为准,由系统自动进行转换。 当程序执行到return语句时,程序的流程就返回到调用该函数的地方,并带回函数值。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数的定义与返回值 如: double add (double a,double b) double s; s=a+b; return s; 在同一个函数中,可以根据需要在多处出现return语句,在函数体的不同部位退出函数,但return只可能执行一次ret

42、urn语句中也可以不含表达式,这时必须定义函数为void类型函数体内可以没有return语句,这时必须定义函数为void类型,程序的流程就一直执行到函数末尾的“”,然后返回调用函数,也没有确定的函数值带回。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数的两种调用方式函数的一般调用形式为: 函数名(实参表) 若函数无形参,调用形式为 函数名()一般情况下,可用两种方式调用函数: 当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方。 当函数仅进行某些操作而不返回函数值,这时函数的调用可作为一条独立的语句。 当实参个数多于一个时,各实参之间用逗

43、号隔开。实参的个数必须与所调函数中的形参相同,类型一一对应匹配。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数调用的语法要求 调用函数时,函数名必须与所调用的函数名字完全一致。 实参的个数必须与形参的个数一致。实参可以是表达式,在类型上应按位置与形参一一对应。 函数必须先定义后调用(函数的返回值类型为int或char时除外). 函数可以直接或间接的自己调用自己,称为递归调用。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数说明的形式 函数说明的一般形式 类型名 函数名(参数类型1,参数类型2,) 也可以采用下面的形式 类型名 函数名(参数类型1 参数1

44、,参数类型2 参数2,) 函数说明可以是一条独立的说明语句,也可以与普通变量一起出现。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数 函数说明的形式 对函数进行说明能使c语言的编译程序在编译时进行有效的类型检查。 当在所有函数的外部、被调用之前说明函数时,在对函数进行说明的语句后面所有位置都可以对函数进行调用。 函数说明也可以放在调用函数内的说明部分。 学C语言,就是学思考问题的过程和解决问题的能力。第七章 函数调用函数和被调用函数之间的数据传递 三种方式: 1、实参和形参之间进行数据传递 2、通过 return语句把函数值返回。 3、通过全局变量。 在C语言中,数据只能从实参

45、单向传递给形参,称为“按值”传递,也即是说,当简单变量作为实参时,用户不可能在函数中改变对应实参的值。 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针变量的地址和指针 a b 1012 1013 1201 1202 1203 1204一个变量实质上是代表了“内存中的某个存储单元”,若在程序中定义了一个变量,c编译系统就会根据定义中变量的类型,为其分配一定字节数的内存空间。 每个变量的地址是指该变量所占存储单元的第一个字节的地址。 直接存取:直接按变量的地址存取变量值的方式。 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针变量的地址和指针 p p a 20

46、02 2002 1012 1013存放地址的变量称为“指针变量”。间接存取:通过指针变量间接存取变量值的的方式。“指针变量p指向了变量a”就是指针变量p中存放了变量a的地址。 在c语言中,指针被广泛运用,它和数组、字符串、函数间数据的传递等有着密不可分的联系。 10121012 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针指针变量的定义和指针变量的基类型 定义指针变量的一般形式如下: 类型名 *指针变量名1,*指针变量名2,.; 如 int *pi,*pj; double *pd; 我们称int、 double是指针变量的基类型。 学C语言,就是学思考问题的过程和解决问题

47、的能力。第八章 地址和指针指针变量的定义和指针变量的基类型 如: int *p,*s,k=20; s=&k; p=&s;对于基类型不同的指针变量,其内容(地址值)增1、减1所跨越的字节数是不同的,因为指针移动的最小单位。 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针给指针变量赋地址值通过求地址运算符&获得地址值 int k=1,*p,*q; q=&k;通过指针变量获得地址值 p=q;通过标准函数获得地址值 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针给指针变量赋“空”值 p=NULL;NULL是在stdio.h头文件中定义的预定义符,因此在使用NUL

48、L时,应该在程序的前面出现预定义行 #include ,NULL的代码值为0,因此以上代码等价于 p=0;或p=0; 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针 对指针变量的操作 通过指针来引用一个存储单元 当变量中存放了一个确切的地址值时,可以用“间接访问运算符”*通过指针来引用该地址的存储单元。 如 int *p,j=10,m; p=&j; m=*p; 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针 对指针变量的操作 间接访问运算符*是一个单目运算符,必须出现在运算对象的左边,其运算对象是存储地址的指针变量或者是地址。注意: +和*具有相同优先级

49、,结合性为从右到左 +*p *p+=1 (*p)+ *p+=1 *p+ p+=1 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针 对指针变量的操作 移动指针:对指针变量加上或减去一个整数,或通过赋值运算,使指针变量指向相邻的存储单元。 在对指针进行加、减运算时,数字“1”不再代表十进制整数“1”,而是指1个存储单元长度。1个单元长度的字节数,根据指针的基类型而定。 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针 对指针变量的操作 指针比较 在关系表达式中可以对两个指针进行比较, 如: int *p,*q; if(pq) printf(“p points

50、to lower memory”); if(p=0) printf(“p points to NUll”); 学C语言,就是学思考问题的过程和解决问题的能力。第八章 地址和指针 函数之间地址值的传递 形参为指针变量时实参和形参之间的数据传递 通过传送地址值在被调用函数中直接改变调用函数中的变量的值。 函数返回地址值。 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 数组 一组具有同一类型的变量 在内存中占有连续的存储单元 在c语言中,可以用a0、a1、a2、这种形式来表示数组中连续的存储单元,我们把它们称为“带下标的变量”或数组元素。 学C语言,就是学思考问题的过程和解决问题的能

51、力。第九章 数组 一维数组的定义 一维数组:数组中每个元素只带有一个下标 形式: 类型名 数组名整型常量(表达式) 如: 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(下标的下界),最后一个元素的下标应该是7(下标的上界)。 可以

52、用存储单元的名字a0、a1、a7直接引用各存储单元。 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 一维数组的定义 多个数组说明符 double w22,v100,u5; 和普通变量名一起说明 char c1,c2,carr81; 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 一维数组元素的引用 引用形式 数组名下标表达式 如:double x8; 则x0、aj、am+n都是对数组元素的合法引用。 注意:一个数组元素实质上就是一个变量名,代表内存中的一个存储单元,一个数组占有一串连续的存储单元。另外,在c语言中,一个数组不能被整体引用,例如x数组,不能用x代表x

53、0到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 数组说明符的一对方括号中可以不指定数组的大小,可以根据赋初值来隐

54、性定义数组元素的个数。 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 一维数组的定义和数组元素的引用举例 定义 for (j=0;jM;j+) aj=j; /*依次赋值*/ 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语言中,在函数体中或在函数外部

55、定义的数组名可以认为是一个存放地址值的指针变量名,其中的地址值是数组第一个元素的地址,也就是数组所占一串连续存储单元的起始地址,定义数组时的类型就是此指针变量的基类型。注意:这个指针变量的地址值不可改变,即不可给数组名重新赋值,可以认为数组名是一个地址常量。 学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=&a0;和p=a;都是合法的,功能相同,都使p指向了数组的首部地址。

56、学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的值等于&a0,a+1的值为&a1 a0 等于 *&a0, 即*(a+0),*a a1 等于 *&a1,即*(a+1) 学C语言,

57、就是学思考问题的过程和解决问题的能力。第九章 数组 通过指针引用一维数组元素 float a10,*p,k; p=a; 可以通过指针变量p来表示数组元素 a0 *p a1 *(p+1) 如 for(p=a;p-a10;p+) printf(“%4d”,*p); 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 通过指针引用一维数组元素 float s10,*p,k; p=s; 可以用&sk,s+k,p+k来表示sk的地址 可以用sk,*(s+k),*(p+k),pk来表示sk的值 但注意:s是不变的,而p中的地址值是可以改变的 学C语言,就是学思考问题的过程和解决问题的能力。第九章

58、 数组 函数之间对一维数组和数组元素的引用 数组元素作实参 数组名作实参 形参形式 int arrin(int *a) int arrin(int a) int arrin(int aM) 注意:当数组名为实参时,在被调用函数中,并没有为与数组名对应的形参另外开辟一串连续的存储单元,而只是开辟了一个指针变量的存储单元。 数组元素地址作为实参 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 二维数组 二维数组:数组元素带有两个下标。逻辑上把二维数组看成一个具有行和列的表格。定义形式: 类型名 数组名常量表达式1常量表达式2,;如: int a34 学C语言,就是学思考问题的过程和解

59、决问题的能力。第九章 数组 二维数组 int a34的逻辑结构int a34的实际存储结构第0列第1列第2列第3列第0行a00a01a02a03第1行a10a11a12a13第2行a20a21a22a23a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 按行存放 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 二维数组 在c语言中,可以把一个二维数组看成一个一维数组,每个数组元素又是包含有若干个元素的一维数组。例如:int a34这个a数组可以看成是由a0、a1、a2三个元素组成的一维数组。其中每个元素又是由四个元素组成的一维数组。

60、学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 二维数组元素的引用 数组名下标表达式1下标表达式2二维数组的初始化 int a43=1,2,3,4,5,6,7,8,9,10,11,12; int a43=1,2,4,5,7,10; int a43=1,2,4,5; int a43=1,2,3,4,5; 学C语言,就是学思考问题的过程和解决问题的能力。第九章 数组 通过赋初值定义二维数组的大小 int a3=1,2,3,4,5,6,8; 第一维大小由行数来决定。 int a3=1,2,3,4,5; 第一维大小由以下规则决定: a、当初值的个数能被第二维的常量表达式的值整除时,所得商

温馨提示

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

评论

0/150

提交评论