第01章C语言概述.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第01章C语言概述.pdf》由会员分享,可在线阅读,更多相关《第01章C语言概述.pdf(115页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、信息学奥赛c 语言辅导资料本章重点:用 Turbo C 开发环境调试 C 程序的过程 C 语言的结构和书写规则第一章 C语言概述 1.1 c 语言的发展历史一、早期阶段在 C 语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。c 语言就是在这种情况下应运而生的。C 语言是一种“中级语言”,它具有高级语言的易学易用性,可读性和可移植性都很好,又具有汇编语言的一些特点。二、标准 C 阶段(ANSIC)C语言产生之后,
2、又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),在各种版本的基础上,制定了 ANSI C 标准。在此期间,C 语言已成为了一种受程序员喜爱,且广为使用的语言。C 语言既可用来开发系统软件(如操作系统,数据库管理系统等),又可用来开发应用软件(如文字处理软件,游戏软件等)。三、C+阶段随着计算机技术的发展,在 C 语言的基础上有产生了 C+语言,C+是面向对象的语言。C+比 C 语言具有更高的编程效率,且编写的程序易于重用和维护。从 C 到 C+是 C 语言的一次“革命”。1信息学奥赛c 语言辅导资料四、VC+阶段在 C+之后出现了 VC+,VC+功能更加强大。C 语
3、言是学习C+和 VC+的基础,尽管现在很少用标准 C 来开发程序,但学不好标准C,根本无法学习C+和 VC+。目前使用的JAVA语言和C#语言也是以 C 和 C+语言为基础的。1.2 C语言的特点一、功能强大C 语言能实现许多只有用汇编语言才能实现的功能,既可用来开发系统软件,又可用来开发应用软件。二、语言简洁,使用方便、灵活C 语言编写程序时非常简洁,且用 C 语言编写的程序结构清晰。C 语言对语法的限制和要求不高,使程序员编写程序时,有着很大的自由度,方便、灵活。三、生成的目标代码质量高,程序执行效率高。用 C 语编写的程序生成的目标代码较其他高级语言的质量要高。1.3 简 单 C 语言介
4、绍一、简 单 的 C 程序介绍 例 1输出字符串程序main()(printf(HoVv are you n );)程序运行结果:How are you2信息学奥赛c 语言辅导资料 例 2求两个数和的程序/*这是 定 义 变 量*/main()(int a,b,s;a=3;b=6;s=a+b;printf(s=%dn ,sum);程序的运行结果:s=9 例 3稍复杂点的一个C 程序main()(int a,m;a=3;m=pf(a)printf(m=%d n,m);)pf(int x)(int t;t=x*x;return t;程序的运行结果:s=9 1.4C 程序的结构和书写规则、c程序是由
5、函数构成的每个程序由一个或多个函数组成,其中必须有且仅有一个主函数main()。3信息学奥赛c 语言辅导资料二、总是从 main函数开始执行一个可执行的C 语言程序总是从 main函数开始执行,而不论其在整个程序中的位置如何。当主函数执行完毕时,亦即程序执行完毕。习惯上,将主函数 main。放在最前头。main()(int a,b,s;/*变量定义部分*/a=3;b=6;/*可执行语句部分*/s=a+b;printf(n,sum);三、每条语句后必须有一个分号C 程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。四.区分大小写在 C 语言中,大小写字母是有区别的。(C 语言习
6、惯用小写字母)五、注释语句可用/*,*/对 C 程序中的任何部分作注释,注释可以写在程序的任何位置上,“/*”与“*/”也可不在同一行上。六、大括号相 当 于 Pascal中的一对 Begin,End本章重点:数据类型 算术运算符和算术表达式 赋值运算符和赋值表达式 逗号运算符和逗号表达式4信息学奥赛c 语言辅导资料第 三 章 数 据 类 型、运算符和表达式C 语言有四种常用数据类型:字符、整型、单精度实型、双精度实型。类 型范 围c h a r(字符型)0-2 5 5i nt(整型)-3 2 7 6 8-3 2 7 6 7flo a t(单精度型)约精确到6 位数d o u b le (双精
7、度型)约 精 确 到 1 2 位数除此之外,C 语言还提供了几种其他类型,包括数组、指针、结构体、共用 体(联合)、位域和枚举等。这些复杂类型在以后的章节中讨论。3.1 常 量和变量一、常量1.常量的概念在程序运行过程中,其值不能被改变的量称之为常量。2.常量的分类整 型 常 量 实 型 常 量 字 符 常 量 符 号 常 量。二、变量1.变量的概念在程序运行过程中,其值可以被改变的量称之为变量。2.变量名每个变量的名字即变量名,变量命名遵循标识符命名规则。3.标识符和命名规则有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。有效长度:随系统而异,但至少前8 个字符有效。如果超长,
8、则超长部分被舍弃。在TC V2.0中,变量名(标识符)的有效长度为1 3 2个字符,缺信息学奥赛c 语言辅导资料省值为3 2 oC 语言的关键字不能用作变量名。*特别注意C 语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。习惯上,变量名和函数名中的英文字母用小写,以增加可读性。4.变量的定义与初始化在C语言中,要求对所有用到的变量,必须先定义、后使用;且在定义变量的同时可以赋初值(初始化)。变量定义的一般格式 存储类型 数据类型 变量名,变 量 名 2,;例如:inta,b,c;变量初始化的一般格式 存储类型 数据类型 变 量 仁 值 1 ,变 量 2=值 2,;例如:i
9、nt a=3,b=4,c=5;3.2整 型数据一、整型变量1.分类根据占用内存字节数的不同,整型变量又分为4 类:(1)基本整型(类型关键字为 int)。(2)短整型(类型关键字为 short int)。(3)长整型(类型关键字为 long int)。(4)无符号整型。分为三种,只能用来存储无符号整数。(unsigned int)(unsigned short)(unsigned long)2.占用内存字节数与值域基本无符号整型无符号短整型无符号长整型6信 息 学 奥 赛c语言辅导资料上述各类型整型变量占用的内存字节数,随系统而异。ANSI标准中的数据类型类 型长 度范 围int16-3276
10、8 32767short int16-32768 32767long int32-21474836482147483649unsigned int160 65535unsigned short80-255unsigned long320 42949672963.举例main()(int a;short b;long c=2345678;unsigned u;a=-12;b=24;u=10;printf(%d,%d,%d,%d n,a,b,c,u);4.说明上述各类型整型变量占用的内存字节数,随系统而异。在赋值和运算时可能溢出,导致不可确定结果。二、整型常量1.三种表示形式整型常量即整常数,在C
11、语言中可用三种形式表示:(1)十进制。例 如10、36o信息学奥赛c 语言辅导资料(2)八进制(以数字0开 头)。例 如 012o(3)十六进制(以数字0+小 写 字 母 x 开头)。例 如 0 x36main()(int a=123;int b=010+10;int c=0 xffff;intd=10+010+0 x10;printf(%d,%d,%d,%d n,a,b,c,d);)2.分类(1)基本整型。其数据范围与 i n t 型变量一样。(2)长整型(在数值后面加“L/I”)。对数值很大的整型常量,可使用长整型常量表示,其取值范围可达-231-231-1 o 例如:1231、315L等
12、。3.说明(1)一个整型常量,可以赋给能容纳下其值的整型变量。例如,其值在-2 1 5-(2 1 5 -1 )的整型常量,可以赋给 in t 型变量和 long i n t 型变量;其值在-2 3 1 -(2 3 1 -1 )的整型常量,就只能赋给long int 型变量。(2)常量 无 unsigned型。但一个非负整型常量,只要它的值不超过相应变量的值域(即取值范围),也可以赋给unsigned型变量。3.3实型数据一、实型变量1.分类根据占用内存字节数的不同,整型变量又分为 3 类:(1)单精度型。类型关键字为 float o(2)双精度型。类型关键字为 double。8信息学奥赛c 语
13、言辅导资料(3)长双精度型。类型关键字为 long double。(用的很少)类 型比特数有效数字范 围float326-7-3838-3.4*10 a 4*10double641 5-16-1.7*10-3081 7*10 308long double1281 8-19J 2*10-49321 2*10 49322.举例main()(float a;double b;long double c=-24345345678.1234565433;a=-12.324234;b=23244.4543345;printf(%d,%d,%d n,a,b,c);二、实型常量1.表示形式实型常量即实数,在C
14、语言中又称浮点数,其值有两种表达形式:(1)十进制形式。例如 3.14、9.8。(2)指数形式:尾数 E(e)整型指数 。例 如 3.0 E+5等。2.说明实型常量不分flo a t型 和 double型。一个实型常量,可以赋给一个实型变 量(flo a t型 或 double型)。3.4 字符型数据一、字符常量1.定义用一对单引号括起来的单个字符,称为字符常量。信息学奥赛c语言辅导资料例如,A、1 、!等。2.转义字符C语言还允许使用一种特殊形式的字符常量,就是以反斜杠“”开头的转义字符。注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:ddd 任总字符二位八进制 xhh 任意字符
15、二位十六进制字符含义ASCII字符含义ASCII形式代码形式代码n换仃1Ut水平制表9b退格9r回车13t换贝12反斜机92?单引号字符39双引号字符343.举例main()printf(ab ct derftgnprintf(*htibbj k);”printf(“x4F x4B x21 nprintf(“x15 xAB n 执行结果:f gdeh j k0 K!?二、字符变量1.变量的定义和存储字符变量的类型关键字为 char,占 用1字节内存单元。10信息学奥赛c 语言辅导资料字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的 ASCII码值(无符号整数)存
16、储到内存单元中。char ch1,ch2;/*定义两个字符变量:ch1,ch2*/ch1=a;ch2=b;/*给字符变量赋值*2.说明(1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。(2)允许对字符数据进行算术运算,此时就是对它们的 ASCII码值进行算术运算3.举例 例 1main()(char ch1,ch2;ch1=a;ch2=b;printf(ch1=%c,ch2=%cn,ch1,ch2);printf(ch1=%d,ch2=%dn,ch1,ch2);程序运行结果:ch1=a,ch2=bch1=97,ch2=98 例 2main()(char ch1,ch2;ch1=a;
17、ch2=B;/*字母的大小写转换7printf(ch1=%c,ch2=%cn”,ch1-32,ch2+32);11信 息 学 奥 赛 c 语言辅导资料程序运行结果:ch1=A,ch2=b4.总结关于数据存储输出的总结不同类型数据的存储长度不同,能表示数的有效范围也不同不同类型数据赋值时应赋有效值不同类型数据输出时应用相应输出格式符字 符 型(char)整型(int)实型(float)S000 0000S000 00000000 0000S000 00000000 00000000 0000 0000 0000 例 1main()char c=128;printf(“c”,c);printf(“
18、d”,c);c=256;printf(“c”,c);printf(“d”,c);例 2main()(int x=3.5;int y=0 x7fff;printf(%d”,x);printf(%d”,y);y=0 x8000;12信息学奥赛c 语言辅导资料printf(d”,y);y=0 x10000;printf(%d”,y);y=0 x10001;printf(%d”,y);三、字符串常量1.字符串常量的概念字符串常量是指用一对双引号括起来的一串字符。双引号只起定界作用。例如:China,C program,YES,33312-2341,A 等。2.字符串的存储和长度C 语言中,字符串常量在
19、内存中存储时,系统自动在字符串的末尾加一个“串结束标志,即 ASCII码 值 为 0 的 字 符 NULL,常用 0 表示。因此在程序中,长 度 为 n个字符的字符串常量,在内存中占有 n+1个字节的存储空间。例如,字 符 串 China有 5 个字符,作为字符串常量C h in a 存储于内存中时,共 占 6 个字节,系统自动在后面加上 NULL字符,其存储形式为:China03.说明要特别注意字符串与字符串常量的区别,除了表示形式不同外,其存储性质也不相同,字 符 A 只 占 1 个字节,而字符串常量 A 占 2 个字节。9 9 9 3.5各 类数值型数据见的混合运算先看下面例子,理解什么
20、是数值数据的混合运算 例 1main()13信息学奥赛c 语言辅导资料int x=3;long y=100float z;z=x+y;x=y+23;y=z+x;printf(%d,%d,%d”,x,y,z);不同类型数值数据混合运算时应注意:简单类型赋值给复杂类型可以,反之则有问题 3.6 算术运算符和算术表达式一、算术运算符和算术表达式1.基本算术运算符+3+5-4-6*3*5/5/2%7%4 例main()(int x;folat y;x=5/2;y=5/2;printf(x=-5/2;a+bx-y3.14*s5.0/2-5/3(整数求余运算)d,%f,x,y);14信息学奥赛c 语言辅导
21、资料y=5.0/2;printf(d,%f,x,y);)2.自增、自减运算符作用是使变量的值增1或 减 1+i+i+ix=i+I-1相当于 x=i;i=i+1;x=+i 例相当于 i=i+1;x=i;main()(int i=10,j=10;intx,y;x=i+;printf(%d,%d”,x,i);x=+jprintf(%d,%d”,x,j);y=x-;printf(%d,%d”,y,x);x=100y=-x;printf(%d,%d”,y,x);例main()(int i=5,j=10;i+;printf(%d”,i);15信 息 学 奥 赛 c 语言辅导资料printf(d”,i+);
22、printf(“d”,+i)printf(%d,%d,j+,j+);)3.说明不要写有二义性的语句或晦涩语句,应写成多个简单语句。如 x=y+zprintf(%d,%d”,j+,j+)应写为多句,或用括号说明先计算哪部分3+(错误)二、算术运算符的优先级和结合性1.优先级先乘除余,后加减3+5%4-2*52.结合性左结合性 3*6/2*5右结合行 a=b=3 3.7赋值运算符和赋值表达式一、赋值运算符和赋值表达式1.赋值运算符c 中“=”称为赋值运算符,它的作用是将一个表达式的值赋给一个变量。赋值运算符的一般形式为:变 量=赋值表达式例如,x=5 y=(float)5/2如果表达式值类型与被赋
23、值变量的类型不一致,系统将会把表达式的值转16信息学奥赛c 语言辅导资料换成被赋值变量的数据类型,然后再赋值给变量。2.赋值表达式由赋值运算符,将一个变量和一个表达式连接起来的表达式,称为赋值表达式。(1)一般格式变 量=表达式如:a=5+2(2)赋值表达式的值任何一个表达式都有一个值,赋值表达式也不例外。被赋值变量的值,就是赋值表达式的值。例如,z 执 行 a=5+2”这个赋值表达式时,先把 7 的值赋给变量a,然后再让整个表达式的值等于 a 的值3.举例 例main()(int a,b;int x,y,z;a=5;b=a+2;x=y=b*10-5;printf(d,%d,a,b);prin
24、tf(%d,%d”,x,y);printf(%d,z=a+b);二、复合赋值运算符C 语言还有以下的复合赋值运算符:+=,-=,*=,/=,%=它们的具体含义如下:17信息学奥赛c 语言辅导资料x+=3 等价于x=x+3y*=x+6 等价于 y=y*(x+6),而不是 y=y*x+6 例main()(int a,b;intx,y,z;a=5;b+=a;c-=b+5;x=10;y/=2;z%=yprintf(%d,%d,a,b);printf(%d,%d,x,y);3.8逗号运算符和逗号表达式C语言提供一种用逗号运算符“,”连接起来的式子,称为逗号表达式。逗号运算符又称顺序求值运算符。1.一般形
25、式表达式1 ,表达式2,表 达 式 n2.求解过程自左至右,依次计算各表达式的值,“表 达 式 n”的值即为整个逗号表达式的值。例如,逗号表达式“a=3*5,a*4 的 值 是 60:先求解a=3*5,得 a=15;再 求 a*4=60,所以逗号表达式的值=60。又例如,逗号表达式“(a=3*5,a*4),a+5”的值=20:先 求 解 a=3*5,得 a=15;再 求 a*4=60;最 后 求 解 a+5=20,所以逗号表达式的值18信 息 学 奥 赛C语言辅导资料=20o注意:并不是任何地方出现的逗号,都是逗号运算符。很多情况下,逗号仅用作分隔符。3.举例main()(int a,b;a=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 语言 概述
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内