好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

全国计算机等级考试实用应试教程二级C语言C程序设计初步知识ppt课件.ppt

39页
  • 卖家[上传人]:cl****1
  • 文档编号:592791125
  • 上传时间:2024-09-22
  • 文档格式:PPT
  • 文档大小:426KB
  • / 39 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第2章章 C程序程序设计初步知初步知识本章要点本章要点:2.1 简单C言言语程序的构成和格式程序的构成和格式2.2 常量、常量、变量和量和标识符符2.3 整型数据整型数据2.4 实型数据型数据2.5 算算术表达式表达式 2.5 算算术表达式表达式2.6 赋值表达式表达式 2.7 自加、自减运算符和逗号运算符自加、自减运算符和逗号运算符 2.1 简单C言语程序的构成和格式以下是一个简单求解两数之和的C程序, 程序如下:#include “stdio.h〞main(){ int a, b, sum; a=12; b=2; /*给求和的两个数赋值*/ sum=a+b; /*求两数之和放入变量sum*/ printf (“a=%d, b=%d, sum=%d\n〞, a, b, sum); /*输出两数以及它们的和*/}以上程序运转结果如下:a=12, b=2, sum=14 从以上程序中,可以看到C程序有以下构造特征:1.main是主函数名,C言语规定必需用main作为主函数名其后的“〔〕〞中间可以是空的,但“〔〕〞不能省略。

      一个C程序可以包含恣意多个不同名的函数,但必需有且只需一个主函数,C程序总是从主函数开场执行2.在函数的起始行后面是函数体,由一对大括号“{}〞括起来的语句集合函数体中普通包含变量定义语句和执行语句且执行语句必需放在定义语句之后3.每个语句和变量定义的最后必需求有一个分号〔即使是程序的最后一个语句也应包含分号〕分号是C语句的必要组成部分 4.C言语用“/*……*/对程序进展注释留意“/〞和“*〞之间不能有空格注释可以出如今程序中恣意适宜的地方,必需成对出现,它对程序的运转不起作用,但在注释中可以阐明变量的含义、程度段的功能等一个好的C程序应有必要的注释,以便阅读5.“ #include “stdio.h〞〞通常称为命令行,必需用“#〞号开头,最后不能加“;〞,由于它不是C程序中的语句stdio〞是系统提供的文件名,该文件中包含着有关输入输出函数的信息,调用不同的库函数,该当包含不同的头文件  ※重点提示: main是主函数名,C言语规定必需用main作为主函数名每个语句和变量定义的最后必需求有一个分号,分号是C语句的必要组成部分 “#include “stdio.h〞〞是命令行,必需用“#〞号开头,最后不能加“;〞,由于它不是C程序中的语句。

      2.2 常量、变量和标识符2.2.1 标识符  和其他高级言语一样,用来标识常量名、变量名、函数名、数组名、类型名、文件名等对象的有效字符序列称为标识符简单的说,标识符就是一个名字1.标识符的命名规那么〔1〕C言语规定标识符只能由字母〔大小写均可〕、数字和下划线3种字符组成〔2〕第1个字符必需为字母或下划线 2.本卷须知〔1〕标识符的命名是区分大小写的,例如NAME、name及Name为3个不同的标识符习惯上变量名用小写字母表示,符号常量普通运用大写英文字母〔2〕C言语中的关键字是一类特殊的标识符,它们具有特定的含义,已被C言语本身运用,不能用作变量名、常量名、函数名等〔3〕C言语中提供了大量的库函数与头文件,这些库函数名和头文件中定义的一些标识符都统称为预定义标识符用户定义标识符时应留意防止和预定义标识符重名 3.标识符的分类〔1〕关键字  关键字在程序中代表着固定的含义,不能另作他用如用来阐明变量类型的标识符char、float以及for、if等都已有专门的用途,它们不能用作变量名或函数名〔2〕预定义标识符  预定义标识符在C 言语中也有特定的含义,如库函数的名字和预编译处置命令等。

      C言语语法允许用户把这类标识符另作他用,但是失去了在系统中规定的原意为了防止误解,建议用户不要把这些预定义标识符另作它用 〔3〕用户标识符  由用户根据需求定义的标识符称为用户标识符普通用来给变量、函数、数组或文件等命名  假设用户标识符与关键字一样,程序会给出出错信息;假设与预定义标识符一样,那么预定义标识符将失去原来的含义  ※重点提示:标识符的命名规那么:〔1〕C言语规定标识符只能由字母〔大小写均可,但区分大小写〕、数字和下划线3种字符组成〔2〕第1个字符必需为字母或下划线〔3〕已被C言语本身运用,不能用作变量名、常量名、函数名等 2.2.2 常量  在程序运转过程中,其值不能被改动的量称为常量C言语中有4种根本常量:整型常量、实型常量、字符常量和字符串常量此外,C言语中还经常运用两种表现方式不同的常量:本义字符常量和符号常量1.整型常量整型常量也称整数,包括正整数、负整数和零2.实型常量实型常量即实数,又称为浮点数 3.字符常量  字符常量运用一对单引号括起来的一个字符如‘a’、‘B’、‘?’等以下是关于字符常量的几点阐明〔1〕单引号只是作为定界符运用,并不是字符常量的组成部分。

      〔2〕单引号内的字符不允许是单引号或反斜杠〔3〕字符常量具有数值,这个值就是该字符在规定的字符集中的ASCII代码值〔4〕字符常量在机器内以整型常量的方式存放,因此字符常量与整型常量等价 4.字符串常量  字符串常量是由一对双引号括起来的字符序列,如“hello〞、“how are you〞等C言语中没有专门存放字符串的字符串变量,因此存放时需求放在一个字符型数组中5.本义字符常量   本义字符常量是以一个“\〞开头的字符序列每个本义字符都有其特定的含义和功能详细含义将在后面的章节中详细引见 6.符号常量  C言语中,允许用一个标识符来代表一个常量,即常量可以用“符号〞来替代,替代常量的符号就称为符号常量以下是几点阐明:〔1〕符号常量在运用之前必需先定义,定义方法为用宏交换“#define〞使一个标识符与某个常量相对应,其普通方式为:#define 标识符 常量表达式<或字符串>〔2〕一个#define只能定义一个符号常量〔3〕符号常量定义式的行尾没有分号 2.2.3 变量  变量是指在程序运转期间其值可以发生变化的量一个变量在内存中占据一定的存储单元,在程序中从变量中取值,实践上是经过变量名找到相应的内存地址,从其存储单元中读取数据。

        变量如常量一样,也分为整型变量,实型变量,字符型变量等在定义变量的同时要阐明该变量的类型,系统编译时根据变量及其类型为它分配相应数量的存储空间  ※重点提示:C言语中的根本数据类型有:整型、实型和字符型 2.3 整型数据2.3.1 整型常量1.整型常量的表示方式 C言语中整型常量有如下三种表示方式:〔1〕十进制用一串延续的数字来表示,如32768,-768,0等〔2〕八进制用数字0开头,各位用0~7这8个数之一表示,如010,011等在C程序中不能在一个十进制整数前面加前导零〔3〕十六进制用0x或0X开头,各位用0~9以及A~F〔或a~f〕这16个数之一表示,如0x24B,0X34a等整型常量又有短整型〔short int〕、根本类型〔 long int〕和无符号型〔unsigned〕的区分 2.3.2 整型变量整型变量是指值为整数的变量其命名与标识符的规那么一样变量一经阐明,在编译时就能为其分配相应的存储单元整型变量可分为根本型、短整型、长整型和无符号型四种根本型的整型变量用类型名关键字int进展定义,如  int a; 或 int a, b, c;根本型整型变量在普通微机中占用2个字节的存储单元,该变量中允许存放的数值范围是:-32768~32767。

      在程序中定义变量时,编译程序会为相应的变量开辟内存单元,但并没有在该单元中存放任何初值,这时变量中的值是无意义的,即称为变量值“无定义〞C言语规定,可以在定义变量的同时给变量赋初值,即变量的初始化如:main() { int a=1, b=4, i=8; ……} 2.3.3 整型数据的分类整型常量与变量有短整型〔short int〕、根本整型〔int〕、长整型〔long int〕和无符号型〔unsigned〕,以及有符号型的区分不同的计算机系统对这几类整型数所占用的字节数和数值范围有不同规定,表2.1列出了微型机中这些类型的整型数所占用的字节数和数值范围在表示一个长整型常量时,应该在其后面加一字母后缀L〔或l〕,如123L,345l等 根本型:以根本型:以 int int 表示表示 短整型:以短整型:以 short int short int 或或 short short 表示表示 1. 1.类型类型 长整型:以长整型:以 long int long int 或或 long long 表示表示 (123l (123l、、 123L 123L〕〕 无符号根本型无符号根本型(unsigned int)(unsigned int) 无符号型无符号型 无符号短整型无符号短整型(unsigned short)(unsigned short) 无符号长整型无符号长整型(unsigned long)(unsigned long)一个无符号整型变量中可以存放的正数的范围比普通整型变一个无符号整型变量中可以存放的正数的范围比普通整型变量中正数的范围扩展一倍。

      量中正数的范围扩展一倍int i; /* int i; /* 变量变量i i 的数值范围:的数值范围: - -32768~32768 */32768~32768 */unsigned int j; /* unsigned int j; /* 变量变量j j的数值范围:的数值范围:0~65535 */0~65535 */ 2.3.4 整数在内存中的存储方式  计算机中最小的存储单位是“位〔bite〕〞,8个二进制位组成一个“字节〔byte〕〞,假设干个字节组成一个“字〔word〕〞C言语中,一个int整数通常用两个字节存放,其中最高位〔最左边一位〕用来存放整数的符号,正整数时最高位为0,负整数时最高位为11.正整数  C言语中,正整数以原码方式存放如整数5在内存中的二进制码为:0000000000000101 2.负整数  C言语中,负整数在内存中是以整数的“补码〞方式存放求某个二进制码的补码,步骤如下:〔1〕求原码的反码,即将0→1,1→0〔2〕将所得的反码加1,即得原码的补码。

      3.无符号整数  无符号整数的最高位不再用来存放整型的符号,因此无符号数不能够是负数  对于无符号整数,最高位〔最左边一位〕不再用来存储整数的符号,全部用来存放整数  ※重点提示:在C言语中,对于有符号整数,用最高位〔最左边一位〕用来存储整数的符号,假设是正整数,最高位为0,假设是负数,最高位放置1对于正整数用“原码〞方式存放,对于负整数用“补码〞方式存放 2.4 实型数据2.4.1 实型常量1.实型常量的表示方式  实型常量又称实数在C言语中可以有两种表示方式:〔1〕小数方式由整数部分、小数点和小数部分组成格式如下:  ±整数部分.小数部分,小数点不能省略如0.78,﹣.897,0.0都是合法实数表示〔2〕指数方式由尾数部分、字母E或e和指数部分组成,其格式如下:  ±尾数部分E〔或e〕±指数部分,指数部分只能是整数,且三个组成部分均不能省略如12.34E+9, ﹣5.453e﹣10是合法的实数表示,假设写成e2、.6E3.5、.e2、e、E等都是不合法的指数方式留意,在字母E〔或e〕的前后以及数字之间不得插入空格  ※重点提示:±尾数部分E〔或e〕±指数部分,指数部分只能是整数,且三个组成部分均不能省略。

      2.4.2 实型变量1.实型变量是指值为实数的变量其命名与标识符的规那么一样2.实型变量分为两种类型:〔1〕单精度型〔float〕,分配4个字节的存储单元,数值范围约为﹣1038~1038,并提供7位有效位;小于1038的数被处置成零值〔2〕双精度型〔double〕,分配8个字节的存储单元,数值范围约为﹣10308~10308,并提供15~16位的有效位;小于10308的数被处置成零值  在计算机内存中,实数一概是以指数方式存放的,而不是小数的方式 例如: float a; double b; a=123456.789e5 ; b=123456.789 ; 2.5.1 根本的算术运算符 C言语中根本的运算符是: +、-、*、/、%这些运算符需求两个运算对象,称为双目运算符除求余运算符外,运算对象可以是整型也可以是实型阐明:〔1〕乘号“*〞不能省略,也不能写成代数式中的“×〞或“.〞 〔2〕假设双目运算符两边的类型不一致,那么系统将自动按照类型转换规那么使两边类型一致后再进展运算。

      如一边是实型数,一边是整型数时,系统将自动把整型转换为实型数再进展运算〔3〕求余运算符“%〞要求参与运算的量必需为整数,且求余的结果符号与被除数一样如14%-3的结果为2,-21%4的结果为-1〔4〕在C言语中,一切实型数的运算均以双精度方式进展假设是单精度数,那么在尾数部分补0,使之转化为双精度数 2.5.2 运算符的优先级、综合性和算术表达式在C言语中,常量、变量、函数调用以及按C言语语法规那么用运算符把运算数连起来的式子都是合法的表达式表达式都有一个值,即运算结果1.算术运算符和圆括号的优先级次序如下:〔由高→低〕〔 〕、 ﹢ 、﹣、* 、/ 、% 、+ 、- 2.算术运算符和圆括号的结合性  以上所列的运算符,只需单目运算符“+〞和“-〞的结合性是从右到左,其他运算符的结合性都是从左到右  如,表达式(4+3)*5/2的运算结果是17,圆括号的优先级要高于乘号和除号;而表达式4+3*5/2的运算结果是11,乘号和除号的优先级要高于加号;表达式3*-4与3*(-4)是等价的,由于单目运算符〞-“的优先级高于乘号 3.算术表达式  用算术运算符和括号将运算对象衔接起来的、符合C语法规那么的式子,称C算术表达式。

      运算对象可以是常量、变量、函数等 关于算术表达式的几点阐明:〔1〕在表达式中可以运用多层圆括号,但左右括号必需配对运算时从内层开场,由内向外依次计算表达式的值〔2〕在求解表达式的值时,假设包含不同优先级的运算符,那么按运算符的优先级别由高到低运转,假设表达式中运算符的级别一样,那么按运算符的结合方向进展如表达式a+b-c,由于加号和减号的优先级一样,它们的结合性为从左到右,因此先计算a+b,然后把所得的结果减去c 2.5.3 强迫类型转换表达式 强迫类型转换表达式的方式: 〔类型名〕〔表达式〕 其中〔类型名〕称为强迫类型转换运算符,例如:〔float〕〔x〕 将x转换成浮点型〔double〕〔8%3〕将8%3转换成双精度型  ※重点提示:在求解表达式的值时,假设包含不同优先级的运算符,那么按运算符的优先级别由高到低运转,假设表达式中运算符的级别一样,那么按运算符的结合方向进展 2.6 赋值表达式2.6.1 赋值运算符和赋值表达式1.赋值运算符  赋值符号“=〞称为简单运算符,其作用是将一个数据或运算表达式的值赋给另一个变量例如:a=5的作用是把5赋给变量a,即把5存入变量a对应的存储单元。

       关于简单的赋值运算,要留意以下2点:〔1〕赋值符“=〞左边必需是变量,右边既可以是常量,变量,也可以是函数调用或表达式如 z=sqrt(3)+2*c〔2〕赋值符“=〞与数学中的等号“=〞外观一样,但含义、作用不同,如i=i+1,在数学中是不成立的,但在C言语中是正确的它的含义是将i当前值加1再赋给变量i 2.赋值表达式  用一个赋值运算符“=〞将一个变量和一个表达式衔接起来的式子称为赋值表达式其普通方式为:  变量=表达式  赋值号的左边必需是一个代表某一存储单元的变量名,或代表某存储单元的表达式,赋值运算的功能是先求出右边表达式的值,然后把该值赋给等号左边的变量,即是把数据放入以该变量为标识的存储单元中去如  a=1 b=a /* 是将常量1赋给变量a,再把a中的值赋给变量b,但a中的值不变 */   程序中可以多次给一个变量赋值,相应的存储单元当前的数据就是最后一次所赋的那个数据 以下是几点阐明:〔1〕赋值表达式右边的“表达式〞,也可以是一个赋值表达式,即出现多个赋值符号的情况例如:a=(b=3),它相当于b=3〔2〕赋值表达式中还可以包含复合的赋值运算符,例如:x+=y*=3 也是一个赋值表达式,假设x的初值是5,y的初值是2,那么该赋值表达式运算顺序为:先进展y*=3的运算,再进展x+=6的运算,相当于x=x+6=5+6,因此最后结果是11。

      〔3〕假设在赋值表达式最后加一个分号就构成了语句〔4〕在C言语中规定最左边变量所得到的新值就是赋值表达式的值,如a=18,那么阐明该表达式的值为18〔5〕赋值运算符的左边只能是变量,不能是常量或表达式如a+b=c是不合法的赋值表达式2.6.2 复合的赋值表达式 2.6.2 复合的赋值表达式1.复合的赋值运算符  在赋值符“=〞之前加上其他运算符,可以构成复合的赋值运算符例如在“=〞前加上“+〞运算符,就成了复合运算符“+=〞例如有:x+=4 它相当于表达式:x=x+4 即先使x加4,再赋给x   采用这种复合运算符,一是为了简化程序,二是为了提高编译效率,C言语规定可以运用以下10种复合赋值运算符,如下:+=、 ﹣=、 *=、 %=、 <<=、 >>=、 &=、 ^=、 \=、 |=  其中后五种是有关位运算方面的,将在后续章节中引见  留意:复合赋值运算符的优先级与赋值运算符的优先级一样 2.复合的赋值表达式  如已有变量a,值为3,计算表达式a+=a-=a+a的值由于赋值运算符与复合的赋值运算符的优先级一样,且运算方向自右向左,所以计算步骤为:〔1〕先计算a+a,该表达式值为6。

      〔2〕再计算a-=6,即a=a-6,此时a的值仍为3,所以表达式值为-3〔3〕最后计算a+=-3,即a=a+(-3),此时a的值曾经改动为-3,所以表达式的值为-6  即表达式a+=a-=a+a最终的值为-6,而a最终的值也是-6 2.6.3 赋值运算中的类型转换  假设赋值运算符两侧的类型不同,在赋值时系统要自动进展类型转换,转换原那么是不论赋值号两侧类型级别高低如何,一概将赋值号右边的类型转换成左边变量的类型,然后再赋值,详细规定如下:1.将实数赋给整型变量时,舍弃实数的小数部分〔不是四舍五入〕例如i是整型变量,那么i=2.99;结果i的值为2,在内存中以整数方式存储2.将整数赋给单、双精度变量时,数值不变,但将整数转换成浮点数方式存放到左边的变量中例如:float x,x=2,结果是将2转换成2.000000赋给变量x 3.将字符型赋给整型时,由于字符型为1个字节,而整型是2个字节,故将字符的ASCII码值放到整型量的低8位中,高8位为04.将整型赋给字符型时,只把低8位赋给字符量  ※重点提示:赋值运算符的左边只能是变量,不能是常量或表达式计算表达式的值时,参与运算的各个数据类型都转换成数据长度最长的数据类型,然后再计算,计算的结果是数据长度最长的数据类型。

      2.7 自加、自减运算符和逗号运算符2.7.1 自加运算符和自减运算符  自增运算符〔++〕是使运算量添加1,自减运算符〔--〕是使运算量减1,它们有以下几种方式: ++a a值先添加1后再参与其他运算 a++ 先参与其他运算再使a值添加1 --a a值先减少1后再参与其他运算 a-- 先参与其他运算再使a值减少1 关于自增和自减运算,要留意以下几点:〔1〕++a和a++的区别〔2〕自增和自减运算符只能用于变量,不能用于常量或表达式,如2++是不合法的〔3〕但自增、自减运算符和其他运算符混合运用时,应留意其结合性为“自右向左〞,如-a++,即相当于-(a++)2.7.2 逗号运算符和逗号表达式  “,〞是C言语提供的一种特殊运算符,用逗号将表达式衔接起来的式子称为逗号表达式其普通方式为: 表达式1,表达式2,……,表达式n 阐明:1.逗号运算符的结合性为从左到右,先计算表达式1,最后计算表达式n,最后一个表达式的值就是该逗号表达式的值2.逗号运算符再一切运算符中优先级最低3.表达式可以嵌套,即表达式1和表达式2本身也可以是逗号表达式,如(x=2*5,x-3),x*4,整个表达式的值应为40。

      4.并非一切出现逗号的地方就可以作为逗号表达式,如printf(“%d,%d〞,a,b)  ※重点提示:自增和自减运算符只能用于变量,不能用于常量或表达式逗号运算符的结合性为从左到右,最后一个表达式的值就是该逗号表达式的值。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.