【文档说明】C语言第2章C程序设计的初步知识课件.ppt,共(49)页,358.366 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44549.html
以下为本文档部分文字说明:
第二章本章要点掌握C程序的构成与格式(main函数等)标识的定义规则数据类型的定义方法与存储算术运算符的运算规则掌握赋值表达式和复合赋值表达式掌握自加、自减运算符和逗号运算符的运算2.1简单
C语言程序的构成及格式例2.1计算长为a,宽为b的长方形面积s的C程序。#include<stdio.h>main()/*主函数*/{inta,b,s;/*定义a,b,s三个整型变量*/printf(
"a,b=?");scanf("%d,%d",&a,&b);/*读入两个整数,存入变量a和b中*/s=a*b;/*计算长方形的面积s的值*/printf("s=%d\n",s);/*输出面积s的值*/}第2章程序设计的初步知识例2.2求两个整数中最大数的C程序。#include<stdio
.h>main()/*主函数*/{inta,b,c;/*定义a,b,c三个整型变量*/printf("a,b=?");scanf("%d,%d",&a,&b);/*读入两个整数,存入变量a和b中*/c=max(a,b);/*调用max函数求a,b两个数中的最大数printf("c=%d
\n",c);/*输出最大数c的值*/}intmax(intx,inty)/*定义max函数*/{intz;/*定义整型变量z*/if(x>y)z=x;elsez=y;/*求x,y两个数中的最大数z*/return(z);/*返回z的值*/}第2章程序
设计的初步知识2.1简单C语言程序的构成及格式C语言程序具有以下结构:(1)C程序由函数构成。(2)函数包括函数首部和函数体。(3)每个函数体必须用一对花括号“{“和”}”括起来,包括声明部分和执行部分。(4)声明部分用来对函数中使用的变量和函数作说明。(5)执行部分由基本语句组成,确定完成
函数功能的操作。第2章程序设计的初步知识2.1简单C语言程序的构成及格式C语言程序格式说明:(1)每个基本语句的结尾必须要用“;”作为终止符。(2)每个程序必须有一个而且只能有一个称为主函数的main()函数。(3)main()函数没有固定的位置。(4)程序一般用小写字母书写。(5)注释部分包
含在“/*”和“*/”之间,可以出现在程序的任何地方,在编译时忽略。第2章程序设计的初步知识2.1简单C语言程序的构成及格式2.2标识符、常量与变量常量:是在程序运行过程中其值不能发生改变的量。例如256、3.45、'a'等。变
量:是在程序运行过程中其值可以发生改变的量。变量在内存中占据一定的存储单元。在该存储单元中存放变量的值。变量的标识通过给变量取名实现,所以一个变量应该有一个名字。标识符:用来标识变量名、符号常量名、函数名、数组名、类型
名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字。第2章程序设计的初步知识C语言规定标识符必须满足以下规则:(1)所有标识符必须由一个字母(a~z,A~Z)或下划线(_)开头。(2)标识符的其他部分可以用字
母、下划线或数字(0~9)组成。(3)大小写字母表示不同意义,即代表不同的标识符。(4)标识符只有前32个字符有效。(5)标识符应当尽量遵循“简洁明了”和“见名知义”的原则。(6)标识符不能使用C语言
的关键字。第2章程序设计的初步知识2.2标识符、常量与变量所谓关键字就是已被TurboC2.0本身使用、不能作其他用途使用的字。TurboC2.0有以下关键字:TurboC2.0扩展的共11个:asm_cs_ds_es_sscdeclfarnear
hugeinterruptpascal由ANSI标准定义的共32个:autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsigne
dcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilestatic第2章程序设计的初步知识2.2标识符、常量与变量C语言规定变量在使用前必须先定义。变
量定义的一般形式为:类型说明符变量标识符,变量标识符,„;示例:inta,b,c;floate,f;charx,y;以上int,float,char为类型说明符,a,b,c,e,f,x,y为变量标识符
。第2章程序设计的初步知识2.2标识符、常量与变量2.3数据类型数据的组织形式称为数据结构。C语言中的数据结构表现为数据类型。第2章程序设计的初步知识数据类型构造类型指针类型空类型(无值类型)void枚举类型enum数组类型结构类型struct联合类型union基本类型整型int字符型
char实型(浮点型)单精度实型float双精度实型double2.3数据类型1.整型变量(TC下的分配)数据类型类型说明符位(字节数)数的范围基本整型int16(2)-32768~32767-215~(215-1)短整型short16(2)-32768~3
2767-215~(215-1)长整型longint32(4)-2147483648~2147483647-231~(231-1)无符号基本整型unsignedint16(2)0~655350~(216-1)无符号短整型unsignedshort16(2)0~655350
~(216-1)无符号长整型unsignedlong32(4)0~42949672950~(232-1)2.3.1整型数据第2章程序设计的初步知识整型变量的定义:整型类型说明符变量标识符,变量标识符,„;示例
:inta,b,c;/*定义a,b,c为基本整型变量*/longd,e;/*定义d,e为长整型变量*/unsignedx,y;/*定义x,y为无符号基本整型变量*/在书写变量说明时,应注意以下几点:(1)允许在一个类型说明符后
说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。(2)最后一个变量名之后必须以“;”号结尾。(3)变量说明必须放在变量使用之前,一般放在函数体的开头部分。1.整型变量第2章程序设计的初步知识2.3
数据类型2.3.1整型数据2.整型常量整型常量即整常数。按不同的进制区分,整型常数有三种表示方法:(1)十进制数:以非0开始的数,如:254,-10,45600。(2)八进制数:以0开始的数,如:06,0106,057。(3)十六进制数:以0X或0x开始的数,如:0X2A,0X
FF,0x58。1.整型变量第2章程序设计的初步知识2.3数据类型2.3.1整型数据(1)一个整常量,如果其值在-32768~+32767范围内,认为它是int型。它可以赋值给int型和1ongint型变量。(2)一个整常量,如果其值超过了上述范围,而在-2147483648~2147483
647范围内,则认为它是1ongint型。可以将它赋值给一个1ongint型变量。(3)如果某一计算机系统的C版本确定的shortint与int型数据在内存中占据的长度相同,则它表示的数据范围与int型相同,因
此一个int型的常量也同时是一个shortint型常量,可以赋给int型或shortint型变量;整型常量的类型:2.整型常量1.整型变量第2章程序设计的初步知识2.3数据类型2.3.1整型数据(4)常量中无unsigned型。但一个非负值的整常量可以赋给unsigned型整变量,只要它的范
围不超过变量表示的数据范围即可。例如,将50000赋给一个unsignedint型变量是可以的,而将70000赋给它则是不行的(溢出)。(5)在一个整常量后面加一个字母l或L,则认为是1ongint型常量。整型常量的类型
:2.整型常量1.整型变量第2章程序设计的初步知识2.3数据类型2.3.1整型数据2.3数据类型2.3.2实型数据1.实型变量实型也称为浮点型,TurboC中实型变量有以下两种类型:(1)单精度浮点型。类型说明符为float,占4个字节(32位)内存空间,其数值范围为3.
4E-38~3.4E+38,只能提供七位有效数字。(2)双精度浮点型。类型说明符为double,占8个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供十六位有效数字。说明:浮点数均为有符号浮点数,没有无
符号浮点数。第2章程序设计的初步知识1.实型变量实型变量定义:实型类型说明符变量标识符,变量标识符,„;示例:floata,f;/*定义a,f为单精度浮点型变量*/doubleb;/*定义b为双精度浮点型变量*/第2章程序设
计的初步知识2.3数据类型2.3.2实型数据1.实型变量2.实型常量实型常量又称实数或浮点数,有两种表示形式:(1)十进制数形式。十进制数形式由数字和小数点组成(注意必须有小数点)。例如:0.123、.123、123.0、123.、0.0
、123.123等都是十进制数形式。(2)指数形式。指数形式由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为aEn(a为十进制数,n为十进制整数),表示值为a×10n,其中,a,n均不可缺省。例:0.123E4表示值为0.123×10-
5.123E-4表示值为-5.123×10第2章程序设计的初步知识2.3数据类型2.3.2实型数据4-41.实型变量2.实型常量说明:(1)浮点常数只有一种进制(十进制)。(2)所有实型常量都被默认为double类型。(
3)绝对值小于1的浮点数,其小数点前面的零可以省略。(4)VC6.0以默认格式输出浮点数时,最多只保留小数点后六位。第2章程序设计的初步知识2.3数据类型2.3.2实型数据2.4运算符和表达式2.4.1算术运算符和算术
表达式1.算术运算符运算符作用运算符作用+加-取负-减--减1*乘++增1/除(类型)类型转换%取模第2章程序设计的初步知识1.算术运算符2.算术表达式算术表达式是由算术运算符、括号以及操作对象组成的符合C语言语法规则的表达式。C语
言规定:(1)模运算符%仅用于整型变量或整型常量。(2)一个表达式中如有多个运算符,则按相应运算符的优先级顺序计算。(3)当运算对象两侧的运算符的优先级别相同时,应按运算符的结合律处理。第2章程序设计的初步知识2.4运算符和表达式2.4.1算术运算符和算术表达式1.算术运算
符2.算术表达式运算符优先级(值小的优先级高)结合律+-(减)4从左向右*/%3-(取负)--++(类型)2从右向左第2章程序设计的初步知识2.4运算符和表达式2.4.1算术运算符和算术表达式1.算术运算符2.算术表达式(4)增1运
算符“++”是操作数加1,而减1运算符“--”则是操作数减1。例:x=x+1可写成x++或++xx=x-1可写成x--或--x但是,表达式x++与++x是有区别的。表达式x++的值为x的原值(不增加1),而表达式++x的
值为x变量增加1后的值。例如:执行m=4;x=m++;后,m=5,x=4。执行m=4;x=++m;后,m=5,x=5。同理,表达式x--值为x的原值(不减1),而表达式--x值为x原值减1后的值。(5)++和--仅适用于变量,不能用于常量或表达式。第2章程序设
计的初步知识2.4运算符和表达式2.4.1算术运算符和算术表达式1.算术运算符2.算术表达式3.类型转换类型转换有两种方式:自动类型转换和强制类型转换。自动类型转换:运算时不必用户指定,系统自动将不同类型的数据转换成同一类型,然后进行计算。C语言规定不同类型数值转换的规则如下:dou
blefloat(必转)longUnsignedintchar,short(必转)第2章程序设计的初步知识2.4运算符和表达式2.4.1算术运算符和算术表达式1.算术运算符2.算术表达式3.类型转换强制类型转换:当自动类型转换不能实现目的时,可以用强制类型转换。强制类型转换的一般形式如
下:(类型)(表达式)例如:(int)(a+b)是将a+b的结果强制转换成int型;(float)a/b是将a的结果强制转换成float型后,再进行计算。第2章程序设计的初步知识2.4运算符和表达式2.4.1算术运算符和算术表达式2.4.2赋值运算符和赋值表达式1.赋
值运算符C语言的赋值运算符是“=”,其作用是将赋值运算符右边表达式的值赋给其左边的变量。2.赋值表达式赋值表达式是由赋值运算符将一个变量和一个表达式连接起来的式子。赋值表达式的一般形式如下:变量=表达式说明:(1)赋值表达式的值等于计算后赋值运算符左边变量的值。(2)赋值运算符左边必须是变量。第2
章程序设计的初步知识2.4运算符和表达式2.4.1算术运算符和算术表达式注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。(1)将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。例:
执行:inta;a=12.345;结果:a=12(2)将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。例:执行:floatb;b=12;结果:b=12.000000第2章程序设计
的初步知识注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。(3)字符型数据赋给整型变量时,由于字符只占一个字节,而整型变量为两个字节,因此将字符数据(8位)放到整型变量低8位中。VC6.
0系统将字符处理为带符号的量,若字符最高位为0,则整型变量高8位全补0;若字符最高位为1,则高8位全补1。例:执行:intc;c='a';结果:c=97(4)整型数据赋给字符型变量,只把低8位原封不动送到字符型变量(即截断
)。第2章程序设计的初步知识注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。(5)将带符号的整型数据(int型)赋给1ongint型变量时。要进行符号扩
展,如果int型数据为正值(符号位为0),则1ongint型变量的高16位补0;如int型变量为负值(符号位为1),则1ongint型变量的高16位补1,将整型数的16位送到1ong型低16位中,以保持数值不改变。反之,若将一个1ongint型数据
赋给一个int型变量,只把低16位原封不动送到整型变量(即截断)。例:执行:inta=12;执行:inta;longb;longb=65536;b=a;a=b;结果:b=12结果:a=0第2章程序设计的
初步知识注意:如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换,将赋值运算符右边表达式值的类型转换成赋值运算符左边变量的类型。第2章程序设计的初步知识3.复合赋值运算符C语言允许在赋
值运算符“=”之前加上其他运算符,以构成其复合运算符。复合运算符有:+=、-=、*=、/=、%=。例如:a+=2等价于a=a+2x*=y+5等价于x=x*(y+5)x%=8等价于x=x%8同样:(1)复合赋值表达式的值等
于计算后赋值运算符左边变量的值。(2)复合赋值运算符左边必须是变量。赋值运算符的结合律都是从右向左执行,其优先级低于所有算术运算符。第2章程序设计的初步知识2.4.2赋值运算符和赋值表达式2.4运算符和表达
式2.4.1算术运算符和算术表达式2.4.3逗号运算符和逗号表达式逗号运算符为“,”。逗号表达式是用逗号运算符把表达式组合成的一个表达式。其一般形式为:表达式1,表达式2,表达式3,„„,表达式N说明:(1)逗号表达式的执
行过程是:依次求表达式1的值、表达式2的值、„„、表达式N的值,整个逗号表达式的值是表达式N的值。(2)逗号运算符是所有运算符中级别最低的。第2章程序设计的初步知识2.4.2赋值运算符和赋值表达式2.
4运算符和表达式2.4.1算术运算符和算术表达式例如:main(){intx,y;x=50;y=(x=x-5,x/5);}上面程序执行后y的值为9,因为x的初始值为50,减5后变为45,45除5为9赋给y。第2章程序设计的初步知识2.4.3逗号运算符和逗号表达式2.
4.2赋值运算符和赋值表达式2.4运算符和表达式2.4.1算术运算符和算术表达式①ANSIC并没有具体规定表达式中的子表达式的求值顺序,允许各编译系统自己安排。例如:对表达式a=f1()+f2()并不是所有的编译系统都先调用f1(),
然后调用f2()。在有的情况下结果可能不同。有时会出现一些令人容易搞混的问题,因此务必要小心谨慎。第2章程序设计的初步知识2.5有关表达式使用中的问题说明②C语言中有的运算符为一个字符,有的运算符由两个字符组成,为避免误解,最好采取大家
都能理解的写法。例如:不要写成i+++j的形式,而应写成(i++)+j的形式第2章程序设计的初步知识2.5有关表达式使用中的问题说明③在调用函数时,实参数的求值顺序,C标准并无统一规定。例如:i的初值为
3,如果有下面的函数调用:printf(″%d,%d″,i,i++)在有的系统中,从左至右求值,输出“3,3”。在多数系统中对函数参数的求值顺序是自右而左,printf函数输出的是“4,3”。以上这种写法不宜提倡,最好改写成j=i++;printf("%d,%d",j,i)第2章程序设计
的初步知识2.5有关表达式使用中的问题说明2.6本章考点•C语言对用户标识符的规定。•整型变量的定义和整型常量的表示。•实型变量的定义和实型常量的表示。•字符型变量的定义和字符型常量的表示。•算术运算符和算术表达式。•赋值运算符和赋值表达式。•逗号运算符和逗号表达式。•运算符的优先级和
结合律。•混合运算中的类型转换。第2章程序设计的初步知识2.7典型试题详解1.以下选项中合法的用户标识符是________。A)longB)_2TestC)3DmaxD)A.dat第2章程序设计的初步知识正确答案:B(知识点:C语言对用户标识符的规定)试题
分析:C语言规定标识符必须由一个字母(a~z,A~Z)或下划线(_)开头,标识符的其他部分可以用字母、下划线或数字(0~9)组成。2.以下选项中不属于C语言的类型的是________。A)signedshortintB)unsignedlongintC)unsignedintD
)longshort第2章程序设计的初步知识2.7典型试题详解正确答案:D(知识点:C语言的基本数据类型)试题分析:C语言的基本类型包括signedshortint、unsignedlongint、unsignedint、char、float、double等,没有longshort类
型。第2章数据与运算3.在16位C编译系统上,若定义longa;,则能给变量a赋值40000的正确语句是________。A)a=20000+20000;B)a=4000*10;C)a=30000+1
0000;D)a=4000L*10L;2.7典型试题详解正确答案:D(知识点:算术运算和赋值运算中的类型转换)试题分析:A、B、C选项中参与算术运算的对象是int类型,其结果应该是int类型,而结果值40000超出int类型范围,发
生溢出,运算结果截取40000的低16位,再将其进行符号位扩展,赋给long类型的a,则a中的结果并不是40000。D选项中参与算术运算的对象是long类型,其结果是long类型,赋给long类型的a,则a中的结果是4
0000。4.以下选项中可以作为C语言中合法整数的是________。A)10110BB)0386C)0xffaD)x2a2第2章程序设计的初步知识2.7典型试题详解正确答案:C(知识点:整型常量)试题分析:C语言中整数的表示有十进制、八进制、十六进制三种方法。A、D选项应该是十进制表示方
法,但A、D选项中出现了非法符号B、x、a;B选项应该是八进制表示方法,但选项中出现了非法符号8;C选项是十六进制表示方法,没有出现非法符号。5.以下程序的输出结果是________。main(){unsignedshorta=65536;intb;printf("%d\n",b=a)
;}第2章程序设计的初步知识2.7典型试题详解正确答案:0(知识点:赋值运算中的类型转换)试题分析:将unsigned类型数据赋给长度相同的signed型变量时,同样原样照赋,再将最高位作为符号位处理。6.以下选项中,非法的字符常量是______
__。A)‘\t’B)‘\117’C)“\n”D)‘\xaa’第2章程序设计的初步知识2.7典型试题详解正确答案:C(知识点:字符常量)试题分析:C语言规定,字符常量是用单引号引起来的一个字符。7.以下非法的赋值语句是________。A)n=(i=2,++i);B)
j++;C)++(i+1);D)x=j>0;第2章程序设计的初步知识2.7典型试题详解正确答案:C(知识点:赋值运算)试题分析:++和--仅适用于变量,不能用于常量或表达式。8.若已定义x和y为double类型,则表达式x=1,y=x
+3/2的值是________。A)1B)2C)2.0D)2.5第2章程序设计的初步知识2.7典型试题详解正确答案:C(知识点:逗号表达式,混合类型运算)试题分析:x=1,y=x+3/2是一个逗号表达式,按顺序先计算x=1,再计算y=x+3/2,整个逗号表达式的值等
于表达式y=x+3/2的值。计算y=x+3/2时,3/2中3和2都是int类型,3/2的结果是int类型值1,与double类型的x相加,结果为double类型的2.0,再赋给double类型的y,所以y和表达式y=x+3/2的值均为double类型的2.0。9.设x、y均
为整型变量,且x=10,y=3,则以下语句的输出结果是________。printf("%d,%d\n",x--,--y)A)10,3B)9,3C)9,2D)10,2第2章程序设计的初步知识2.7典型试题详解正确答案:D(知识
点:减1运算)试题分析:语句的输出结果是x--、--y两表达式的值。表达式x--的值为x没有减1的值10,表达式--y的值为y减1后的值2。10.以下叙述正确的是________。A)构成C程序的基本单位是函数B)可以在函数中定义另一个函数C)
main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义第2章程序设计的初步知识2.7典型试题详解正确答案:A(知识点:C语言程序的构成及格式)试题分析:构成C程序的基本单位是函数,一个C程序中有且只有一个main函数,main函数
在程序中没有固定的位置。11.一个C程序中________。A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置正确答案:B(知识点:C语言程序的构成及格式)试题分
析:构成C程序的基本单位是函数,一个C程序中有且只有一个main函数,main函数在程序中没有固定的位置。第2章程序设计的初步知识2.7典型试题详解