C语言辅导班第2章.ppt_第1页
C语言辅导班第2章.ppt_第2页
C语言辅导班第2章.ppt_第3页
C语言辅导班第2章.ppt_第4页
C语言辅导班第2章.ppt_第5页
已阅读5页,还剩45页未读, 继续免费阅读

下载本文档

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

文档简介

1、全国计算机等级考试二级C语言,第2章 C程序设计的初步知识,第2章 C程序设计的初步知识,2.1 简单C语言程序的构成和格式 求矩形的面积 #include main() double a,b,area; a=1.2;/*将矩形的两条边长赋给a和b*/ b=3.6; area=a*b;/*计算矩形的面积并存储到变 量area中*/ printf(“a=%f,b=%f,area=%fn”,a,b,area); /*输出矩形的两条边长和面积*/ ,补充以下几点:,(1)任何一个C程序都必须包含以下格式: main() (2)C语言的函数体可以分为两大部分:定义部分和执行部分,定义部分必须在执行部分

2、之前。 (3)C程序中用到的变量都必须先定义后使用,定义变量必须放在程序的定义部分。 (4)C程序无论是定义语句还是执行语句,每一个语句最后都必须有一个分号,即使是程序的最后一个语句也不例外。分号是结束的标志。 (5)C程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。,4,函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过被主函数直接或间接调用得以执行。 程序语句 C程序由语句组成 用“;”作为语句终止符,5,例: /*输出/*矩形的两条边长*/和面积*/,注释 注释部分部分只是给程序设计者阅读

3、,对程序的实际运行不起任何作用 /* */为注释,不能嵌套,6,优秀程序员的素质: 使用TAB缩进 对齐 有足够的注释 有合适的空行,main( ) . . . . . . . ,main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); ,2.2 标识符,在C语言中用于给各种对象起名字的有效字符序列称为标识符。 标识符可以用作常量名、变量名、函数名和后面要学到的指针名、数组名等。 C语言中的标识符的命名规则如下: (1)标识符只能由字母、数字和下划线组成。 (2)

4、标识符的第一个字符必须是字母或下划线。 (3)标识符中的大小写字母是有区别的,如abc与Abc是两个完全不同的标识符。,合法的标识符: a x sum spels program ab1 _to file_5 a1b2c3 _2 B3 非法的标识符: yes? (含有不合法的字符“?”) 234a (第一个字符不能为数字) yes no (空格不是合法的标识符字符) yes/no (含有不合法的字符“/”) r (“”不是字母,为不合法标识符字符),C语言的标识符分为如下三类,关键字:关键字具有特定含义的、专门用来说明C语言特定成分的一类标识符,不能另作他用。如int就是关键字,用来定义整型变

5、量的标识符。 预定义标识符:在C语言中预先定义并具有特定的含义的标识符,可以另作他用,但建议尽量不要修改其含义。如库函数名字 printf , scanf和编译预处理命令define ,include等。,10,auto break case char constcontinue default do double elseenum extern float for gotoif int long register return short signed sizeof static structswitch typedef unsigned union voidvolatile while,3

6、2个关键字,C语言的标识符分为如下三类,用户标识符:由用户根据需要定义的标识符。用户标识符一般用来给变量、函数、数组或者指针等命名。命名时,标识符的选择由用户自定,但是不能与关键字相同。 用户可以把预定义标识符重新定义做他用,但这将使这些预定义标识符失去预先定义的意义。 例如 int printf=3;printf就是合法的用户标识符,常量,定义:所谓常量就是在程序的运行过程中,其 值不能改变的量。 常量分为整型常量、实型常量、字符常量和字符串常量等。常量的类型从字面形式上是可以区分的。 C语言中,用一个符号名来代表一个常量(符合标识符命名规则),称为符号常量。,例:计算圆面积的C语言程序,#

7、include “stdio.h” #define PI 3.14159 /*定义符号名PI为3.14159*/ main() float r, area; r=12.5; area=PI*r*r; printf(“area=%fn”,area); 在程序进行编译的时候,所有出现PI的地方,都用3.14159 来替换,变量,定义:变量就是在程序的运行过程中其值可以改变的量。它们是由用户定义的,变量的命名必须遵循标识符的命名规则。 先定义,后使用;先赋值,后运算。 重点:一个变量实质上是代表了内存中的某个存储单元,对变量的操作实际上是对存储单元的操作,给变量赋值实际上是将值存储到变量所代表的存储

8、单元中。,变量,例子: 变量的应用 #include “stdio.h” main() int a=10,b=20,c; a=30; b=40; c=a+b; printf(“c=%dn”,c); ,逗号,分隔一条语句中的并列成分,分号,用于语句结束后,分隔相邻语句,空格,用于相邻关键字、标识符之间,不可用其他分隔符时,2.3 整型数据,在十进制中,采用09这十个代码组成。 在二进制中,采用0和1这两个代码组成。 在八进制中,采用07这八个代码组成,用数字0开头。 在十六进制中,数字由十六个代码组成,分别是09 AF(或者是af)这16个代码,用数字0和字母x(或大写字母X)开头。,二.整型常

9、量,在C语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。 注意,在C语言中没有直接的二进制的整型常量。 (1)十进制整型常量由一串连续的09数字组成,如0、120、365、1250等。 (2)八进制整型常量以数字0开头,其中的数字为07,如0112,0113,077等。 (3)十六进制整型常量以0 x(数字0和字母x)或0X开头,其中的数字可以是09、af或AF中的数字或英文字母,如0 x11,0 xa5等。 注意:在C语言中,只有十进制可以是负数,八进制和十六进制只能是正数;,二.整型常量,在整常量后加字母l或L,认为它是long int 型常量 十进制整数

10、:12、-91、-12L、93U、123Lu、902LU 八进制整数: 012、-071、-016L、072U、 016LU、072lu、 十六进制整数: 0XA2、-0X9C3、-0X16L、0 x1AU、0X2fLu,例2.1 以下选项可作为C语言合法整数的是_ A) 10110B B) 0368 C) 0Xffa D) x2a2 例2.2 以下程序运行后的输出结果是_ main() int x = 0210; printf(“%Xn”,x); ,三、整型变量,整型变量是用于存放整型值的变量。 定义基本整型变量用关键字int,形式如下: int i; 当同时定义多个整型变量时,用逗号分隔:

11、 int a,b,c; 对变量赋值: i = 6; 在变量定义时可以同时赋值: int a=1,b=2,c=3;,例2.3 以下选项中不属于C语言类型的是_ A) Signed short int B) unsigned long int C) Unsigned int D) long short,2.4 实型数据,一.实型常量 在C语言中,实型常量有两种表示形式:小数形式和指数形式。 (1)小数形式。其中表现形式是包含一个小数点的十进制数字串,小数点的前面或后面可以没有数字,但不能同时没有数字。 如:3.14159 0.158 12. .36 0.0 -18.0,2.4 实型数据,(2)指数

12、形式。其格式由两部分组成:e前面前部分是十进制小数形式或十进制整数, e后面一部分为指数部分。指数部分是在e或者E后跟整数。 比如:1e5 1.25E+4 2.0E-3 口诀:e前e后必有数,e后必定是整数,例2.5 以下选项中合法的实型常数是_。 A) 5E2.0 B) E-3 C) .2E0 D) 1.3E 例2.6 以下选项中,不能作为合法常量的是 _。 A) 1.234e04 B)1.234e0.4 C)1.234e+4 D) 1.234e0,真题,(14) 以下选项中可用作C程序合法实数的是 A) .1e0 B) 3.0e0.2 C) E9 D) 9.12E,二.实型变量,C语言中,

13、实型变量分为单精度实型(float)与双精度实型(double)两种。它们定义的形式分别如下: float x,y,z; /* 定义单精度实型变量x,y,z */ double a,b,c; /* 定义双精度实型变量a,b,c */ 单精度占4个字节的存储单元,双精度占8个字节的 存储单元。 注意:实型变量只能存放实型值,不能用整型变量存放实型值,也不能用实型变量存放整型值。,学习运算符应注意: 运算符功能 与运算量关系 要求运算量个数(单目、双目、三目) 要求运算量类型(取余和位运算) 运算符优先级别(单目、双目、三目、赋值) 结合方向(从左向右、从右向左) 结果的类型,2.5 算术表达式,

14、一.算术运算符与算术表达式 五个基本的算术运算符: +,-,*,/和%,依次表示为加,减,乘,除,求 余运算。将运算符分为单目运算、双目运算和三目 运算符等类型。上述五个基本的运算符都为双目运 算符。 注意:求余运算符%的运算对象只能是整型。,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),说明:,(1)算术运算符两边的运算对象类型必须一致,运算结果的类型与运算对象的类型一致。 (2)如果算术运算符两边的运算对象类型不一致,系统 会按照低类型(数据占用较少的存储字节数)向高类型(数据占用较多的存储节数)

15、的转换规则将两个运算对象的类型变为一致,然后再运算。 (3)在C语言中,所有实型数的运算都是以双精度方式进行的。若是单精度数,则使之转换为双精度。,二. 运算符的优先级、结合性和算术表达式,(1)优先级 优先级由高到低: ()、+ 、-、*、/、%、+、-,(2)算术运算符和圆括号的结合性 单目运算符“+”和“-”的结合性是从右到左的,其余运算符的结合性是从左到右。 例(5+1)/2 =3 5+1/2 =5 5*-2 =-10 5*(-2) =-10 原因:单目运算符“-”的优先级高于乘号。,(3)算术表达式 运算规则: 1. 在算术表达式中,可使用多层圆括号, 但左右括号必须匹配。 2. 在

16、算术表达式中,若包含不同优先级的 运算符,则按运算符的优先级由高到低 进行;若表达式运算符的优先级相同, 则按运算符的结合方向进行。,三.强制类型转换,在进行算术运算时,如果希望将某一运算量转 换成指定的类型,则可以利用强制转换符。强制转 换表达示如下: (类型名)表达式 其中,“(类型名)”是强制类型转换符,它将右边 表达示的类型转换为括号中的类型。 注意:将类型名括起来的一对圆括号是不能省略的。,显式转换(强制转换) 一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6,例 main() float x; int i; x

17、=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,精度损失问题,真题,(6) 以下程序运行后的输出结果是 【6】 。 #include main() int a; a=(int) (double) (3/2) +0.5+(int) 1.99*2) ; printf(%dn,a) ; ,2.6 赋值表达式,一.赋值运算符和赋值表达式 由赋值运算符“=”组成的表达示称为赋值表达式。它的一般格式如下: 变量名=表达式 它的含义是将赋值运算右边的表达式的运算结 果保存到左边的变量空间。因此,赋值号左边必须是一个代表某一存储单元的变量名

18、,赋值号右边是C语言任意合法的表达式。,例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2),例 int i; i=2.56; /结果i=2;,注意:,赋值运算符左边必须是变量,而不能是表达式。如x+1=3就是错误的。 赋值运算的作用是将赋值运算符右边的值赋值给左边的变量,运算后左边变量的值被右边表达式的值代替,而右边的值不会改变。如 y=10;x=y; 则x=10;y=10; 赋值表达式的值是赋值号左边变量被赋值后的值。如x=(y=10); 赋值运算不同于数学上的“等号”。 如果赋值号两边的运算对象不一致,则系统会自动进行类型转换

19、。如int a=4.9 结果为4。,二. 复合赋值表达式,在C语言中,可以将算术运算符与赋值运算符组合在一起组成复合赋值运算符。它们是:+=、-=、*=、/=、%=。 表达式n+=1等价于n=n+1。 表达式n*=m+3等价于n=n*(m+3),例2.7 已有变量a,其值为9,计算表 达式a+=a-=a+a。,(1)先计算a+a=18。 (2)计算a-=18等价于a=a-18,结果为a=-9。 (3)最后就是a+=-9等价于a=a-9,结果为 -18。,例: int a=2; a%=4-1; a+=a*=a-=a*=3;,真题,(15) 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是 A) a=(b=4) =3; B) a=b=c+1; C) a=(b=4) +c; D) a=1+(b=c=4),真题old,(16)表达式a+=a-=a=9的值是A)9B)-9C)18D)0,三. 赋值运算中的类型转换,转换规

温馨提示

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

最新文档

评论

0/150

提交评论