版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 C语言程序设计基础l基本符号与基本数据类型l常量与变量l运算符与表达式l数据的输入与输出12.12.1 基本符号与数据类型基本符号与数据类型基本符号基本符号 C C语言使用的全部字符是语言使用的全部字符是ASCIIASCII码字符集码字符集,它包它包括括256256个字符,每个字符都对应着一个不同的序号个字符,每个字符都对应着一个不同的序号(码值);前(码值);前128128个字符为标准的个字符为标准的ASCIIASCII码字符,其码字符,其中序号为中序号为0 0、1 1、2 2、3131以及以及127127的字符为控制字的字符为控制字符,它们完成规定的功能操作;序号从符,它们完成规定
2、的功能操作;序号从3232到到126126的的9696个字符是文字字符,它们用于显示和打印个字符是文字字符,它们用于显示和打印。语语言言程程序序设设计计 C2 其中其中:(1 1)序号从)序号从48574857:数字:数字0909。(2 2)序号从)序号从65906590:2626个大写英文字母个大写英文字母AZAZ。(3 3)序号从)序号从9712297122:2626个小写英文字母:个小写英文字母:azaz。(4 4)其他一些可打印(显示)的字符,如各种标准符号、)其他一些可打印(显示)的字符,如各种标准符号、运算符号和括号运算符号和括号。(5 5)一些特殊字符,如空格符、换行符、制表符(
3、跳格)一些特殊字符,如空格符、换行符、制表符(跳格)等。空格符、换行符、制表符等统称为空白字符,它们在等。空格符、换行符、制表符等统称为空白字符,它们在程序中的主要作用是用来分隔其他成分,即通过加入一些程序中的主要作用是用来分隔其他成分,即通过加入一些空白字符把程序排成适当的格式,以增加程序的可读性。空白字符把程序排成适当的格式,以增加程序的可读性。语语言言程程序序设设计计 C31.1.专用符号(见表专用符号(见表2.12.1)2.2.关键字(见表关键字(见表2.22.2)3.3.标识符标识符 在程序中,常常用具有一定意义的名字来标识程序中在程序中,常常用具有一定意义的名字来标识程序中的变量名
4、、函数名和数组名,以便在程序中根据名字访问的变量名、函数名和数组名,以便在程序中根据名字访问它,而程序中各种名字都是用标识符来表示的。它,而程序中各种名字都是用标识符来表示的。C C语言中关语言中关于标识符的规定如下:于标识符的规定如下:语语言言程程序序设设计计 C4(1 1)一个标识符只能由字母、数字和下划线组成,而且第)一个标识符只能由字母、数字和下划线组成,而且第一个字符必须是字母或下划线,即数字不能作为标识符的一个字符必须是字母或下划线,即数字不能作为标识符的第一个字符。第一个字符。(2 2)标识符中同一字母的大小写是有区别的,即看作为不)标识符中同一字母的大小写是有区别的,即看作为不
5、同的字符。同的字符。(3 3)标识符不能与关键字同名。)标识符不能与关键字同名。例例2.1 2.1 以下以下4 4组用户定义标识符中,全部合法的一组是组用户定义标识符中,全部合法的一组是_。A) _main B) if C) txt D) A) _main B) if C) txt D) intint encludeenclude -max REAL k-2 -max REAL k-2 sin y-m-d sin y-m-d Dr.TomDr.Tom _001 _001 _2010 Date 3COM _2010 Date 3COM sizeofsizeof语语言言程程序序设设计计 C54.4
6、.分隔符分隔符 C C语言的分隔符主要有空格、逗号和分号。语言的分隔符主要有空格、逗号和分号。C C语言中单语言中单词与单词之间可以用一个或多个空格词与单词之间可以用一个或多个空格“ ”“ ”进行分隔,语句进行分隔,语句与语句之间用一个分号与语句之间用一个分号“; ;”进行分隔,逗号进行分隔,逗号“, ,”则用于则用于程序定义同类型变量之间、函数参数表中参数之间以及输程序定义同类型变量之间、函数参数表中参数之间以及输入输出语句中各个参数之间的分隔。入输出语句中各个参数之间的分隔。语语言言程程序序设设计计 C6数据类型数据类型数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型
7、空类型(void)字符型字符型(char)枚举类型枚举类型(enum)整型整型(int)实型实型(浮点型浮点型)单精度型单精度型(float)双精度型双精度型(double)数组类型数组类型结构体类型结构体类型(struct)共用体类型共用体类型(union)语语言言程程序序设设计计 C72.2 常量v定义:在程序运行过程中,其值恒定不变的量。语言程序设计 C8常量常量直接常量直接常量符号常量(标识符定义的常量)符号常量(标识符定义的常量)字符型常量字符型常量数值常量数值常量整型常量整型常量实型常量实型常量字符常量字符常量字符串常量字符串常量&整型常量整型常量v三种形式:三种形式:l十进制十进
8、制整型常量的表示与数学上的整数表示相同。十进整型常量的表示与数学上的整数表示相同。十进制整型常量没有前缀,由制整型常量没有前缀,由0909的数字组成。的数字组成。l八进制整型常量的表示形式是以数字八进制整型常量的表示形式是以数字0 0为前缀,后面跟由为前缀,后面跟由0707的数字组成。八进制数通常是无符号数。的数字组成。八进制数通常是无符号数。l十六进制整型常量是以十六进制整型常量是以0 x0 x或或0X0X为前缀(为前缀(0 x0 x或或0X0X中中x x或或X X的的前面是数字前面是数字0 0而不是字母而不是字母o o),其后跟由),其后跟由0909、AFAF或或afaf的的数字组成。数字
9、组成。语语言言程程序序设设计计 C9&实型常量实型常量v C C语言中的实型常量只能用十进制形式表示。实型常量语言中的实型常量只能用十进制形式表示。实型常量只有两种进制表示形式:小数形式和指数形式。只有两种进制表示形式:小数形式和指数形式。l小数形式:小数形式:由数字和小数点由数字和小数点“. .”组成(必须有小数点)。组成(必须有小数点)。例如:例如:-1.85-1.85、.426.426、728.728.、0.3450.345、0.00.0都是十进制小数都是十进制小数形式的实数,小数点前或后可以没有数字形式的实数,小数点前或后可以没有数字。l指数形式:指数形式:由十进制数加阶码标志由十进制
10、数加阶码标志“e e”或或“E E”以及阶以及阶码组成,其一般形式为:码组成,其一般形式为:aEnaEn或或aenaen,其中,其中,a a为十进制数,为十进制数,n n为十进制整数(为十进制整数(n n为正数时为正数时“+ +”可以省略),其值为可以省略),其值为a a10n10n。语语言言程程序序设设计计 C10v 以下是合法的实数:以下是合法的实数: 1.234e+12(等于(等于1.2341012) 3.7e-2(等于(等于3.710-2) 78E3(等于(等于78103)v 以下是非法的实数:以下是非法的实数: e-5(阶码(阶码“e”前无数字)前无数字) 58.+e5(符号位置不对
11、)(符号位置不对) 2.7E(无阶码)(无阶码) 6.4e-5.8(阶码为小数)(阶码为小数)语语言言程程序序设设计计 C11&符号常量符号常量v 在程序中,可以定义一个符号来代表一个常量。在程序中,可以定义一个符号来代表一个常量。l 符号常量的定义形式如下:符号常量的定义形式如下: #define 符号常量名符号常量名 常量常量 例如:例如: #define PI 3.14159 #define NUM 35 #define Name “Liu yu” 注意,注意,#define与与#include一样是宏命令而不是一样是宏命令而不是C语言语句,其末尾不语言语句,其末尾不能加分号能加分号“;
12、”。符号常量一旦定义,就不能在程序中其他地方给这个符。符号常量一旦定义,就不能在程序中其他地方给这个符号常量再进行赋值。例如号常量再进行赋值。例如“PI=5.286”;是错误的;是错误的。语语言言程程序序设设计计 C12&字符常量与字符串常量字符常量与字符串常量l 字符常量字符常量 用一对单引号用一对单引号“ ”括起来的一个字符,称为字括起来的一个字符,称为字符常量。例如符常量。例如,a、0、A、*都是合法的字符常都是合法的字符常量。字符常量在内存中存储的是字符的量。字符常量在内存中存储的是字符的ASCII码。码。如如a的的ASCII码是码是97,而,而A的的ASCII码则是码则是65。 语语
13、言言程程序序设设计计 C13 C语言还定义了一些特殊的字符常量,即以反语言还定义了一些特殊的字符常量,即以反斜杠字符斜杠字符“”开头的字符序列,称为转义字符。开头的字符序列,称为转义字符。转义字符是一种特殊的字符常量,即将转义字符是一种特殊的字符常量,即将“”后的后的字符或字符序列,改变其字符原有的含义而转化字符或字符序列,改变其字符原有的含义而转化为特定的含义,故称为特定的含义,故称“转义转义”字符。例如转义字字符。例如转义字符符n不再表示字母不再表示字母“n”而作为而作为“换行换行”符使用。符使用。(见表(见表2.4)语语言言程程序序设设计计 C14 使用字符常量时需要注意以下几点:使用字
14、符常量时需要注意以下几点:(1)字符常量只能用单引号)字符常量只能用单引号“”括起来括起来。(2)字符常量只能是单个字符。)字符常量只能是单个字符。(3)字符可以是字符集中的任意字符,但数字被定义为字)字符可以是字符集中的任意字符,但数字被定义为字符型之后就以符型之后就以ASCII码值参与数值运算;如码值参与数值运算;如6的的ASCII码值码值为为54是与数字是与数字6不同的不同的。语语言言程程序序设设计计 C15 非法的字符常量如下:非法的字符常量如下: 197(9不是八进制数中的数字)不是八进制数中的数字) 1673(转义字符中的八进制数最多(转义字符中的八进制数最多3位)位) ab(作为
15、十六进制数少了标识(作为十六进制数少了标识x) ab(字符常量只能是单个字符)(字符常量只能是单个字符) “m”(字符常量只能用单引号括起来)(字符常量只能用单引号括起来)语语言言程程序序设设计计 C16l 字符串常量字符串常量 用一对双引号用一对双引号“”括起来的字符序列称为字符串常括起来的字符序列称为字符串常量,例如,以下是合法的字符串常量:量,例如,以下是合法的字符串常量: “CHINA”“CHINA” “1020376”“1020376” “* * * * * * *” “ ”“ ”(表示一个空格)(表示一个空格) “”“”(表示什么字符也没有)(表示什么字符也没有) “n”“n”(表
16、示一个转义字符(表示一个转义字符“换行换行”) 语语言言程程序序设设计计 C17 字符串常量在内存中存放时,系统仅存放双引号之间的字符串常量在内存中存放时,系统仅存放双引号之间的字符序列字符序列,将这些字符按顺序以其将这些字符按顺序以其ASCIIASCII码值存放(包括空码值存放(包括空格符)。为了表示字符串的结束,系统自动在字符串的最后格符)。为了表示字符串的结束,系统自动在字符串的最后加上一个字符串结束标志,即转义字符加上一个字符串结束标志,即转义字符00(ASCIIASCII码值码值为为0 0)。因此,长度为)。因此,长度为n n个字符的字符串常量在内存中要占用个字符的字符串常量在内存中
17、要占用n+1n+1个字节的空间。例如,字符串个字节的空间。例如,字符串“C programC program”的长度为的长度为9 9,但在内存中所占的字节数为,但在内存中所占的字节数为1010。语语言言程程序序设设计计 C18 字符常量与字符串常量的区别如下:字符常量与字符串常量的区别如下:(1)定界符不同。字符常量使用单引号)定界符不同。字符常量使用单引号“”,而字符串常,而字符串常量使用双引号量使用双引号“”。(2)长度不同。字符常量的长度恒定为)长度不同。字符常量的长度恒定为1,而字符串常量的,而字符串常量的长度可以是长度可以是0,也可以是某个整数。,也可以是某个整数。(3)存储不同,字
18、符常量存储的是字符的)存储不同,字符常量存储的是字符的ASCII码值,而码值,而字符串常量除了要存储字符串常量中每个字符的字符串常量除了要存储字符串常量中每个字符的ASCII码值码值外,最后还要存储字符串结束标志外,最后还要存储字符串结束标志0字符。字符。语语言言程程序序设设计计 C19语语言言程程序序设设计计 C2.3 变量变量v概念:其值可以改变的量概念:其值可以改变的量v三要素三要素:名称、类型、值名称、类型、值v变量定义的一般格式:变量定义的一般格式: 数据类型数据类型 变量变量1,变量,变量2,变量,变量n;例例: int a; /*定义定义a为整型变量为整型变量*/int m,n;
19、 /*定义定义m和和n为整型变量为整型变量*/float x,y,z; /*定义定义x、y、z为单精度实型变量为单精度实型变量*/char ch; /*定义定义ch为字符型变量为字符型变量*/v变量初始化变量初始化:定义时赋初值定义时赋初值 例例: int m=3, n=5; /*定义定义m和和n为整型变量,为整型变量, 并分别赋予了初值并分别赋予了初值3和和5*/float x=0, y=0, z=0; /*定义定义x、y、z为单精度实型变量,为单精度实型变量, 并都赋了初值并都赋了初值0*/char ch=a; /*定义定义ch为字符型变量并赋初值字符为字符型变量并赋初值字符a*/例例:
20、输入任意两个整数,输出它们的和、差、积。输入任意两个整数,输出它们的和、差、积。#includevoid main() int a,b; /*定义定义a、b为整型变量为整型变量*/ printf(“Input a,b=”); /*输出提示信息输出提示信息Input a,b=*/ scanf(“%d,%d”,&a,&b); /*由键盘输入由键盘输入a和和b的值的值*/ printf(“%d+%d=%dn”,a,b,a+b); /*计算计算a+b并输出结果并输出结果*/ printf(“%d-%d=%dn”,a,b,a-b); /*计算计算a-b并输出结果并输出结果*/ printf(%d*%d=
21、%dn,a,b,a*b); /*计算计算a*b并输出结并输出结果果*/运行结果:运行结果:Input a,b=5,85+8=135-8=-35*8=4020&整型变量整型变量v占字节数随机器不同而不同占字节数随机器不同而不同, ,一般占一个机器字一般占一个机器字vshortshort、intint、longlongv可用可用sizeofsizeof( (类型标识符)测量类型标识符)测量&实型变量实型变量vfloatfloat:占占4 4字节,提供字节,提供7 7位有效数字位有效数字vdoubledouble:占占8 8字节,提供字节,提供15151616位有效数字位有效数字&字符型变量字符型变
22、量v字符变量存放字符字符变量存放字符ASCIIASCII码码vcharchar与与intint数据间可进行算术运算数据间可进行算术运算语语言言程程序序设设计计 第第二二章章数数据据描描述述C运行结果:运行结果:int=4short=2long=4unsigned int=4unsigned short=2unsigned long=4例例: 通过通过sizeof获得获得int、short、long、unsigned int、unsigned short和和unsigned long等数据类型所占内存的字节数。等数据类型所占内存的字节数。#includevoid main() printf(“i
23、nt=%dn”,sizeof(int); printf(“short=%dn”,sizeof(short); printf(“long=%dn”,sizeof(long); printf(“unsigned int=%dn”,sizeof(unsigned int); printf(“unsigned short=%dn”,sizeof(unsigned short); printf(unsigned long=%dn,sizeof(unsigned long);例例:通过通过sizeof获得获得float、double和和long double三种数据类型所三种数据类型所占内存的字节数。占内
24、存的字节数。#includevoid main() printf(“float=%dn”,sizeof(float); printf(“double=%dn”,sizeof(double); printf(long double=%dn,sizeof(long double);运行结果:运行结果:float=4double=8long double=8例例:字符型和整型可以相互赋值。字符型和整型可以相互赋值。#includevoid main() int k; char ch; k=b; /*将字符将字符b赋给整型变量赋给整型变量*/ ch=66; /*将整数将整数66赋给字符变量赋给字符变量
25、ch*/ printf(“%d %cn”,k,k); /*以整型和字符型方式输出整型变以整型和字符型方式输出整型变 量量k的值的值*/ printf(“%d %cn”,ch,ch); /*以整型和字符型方式输出字符以整型和字符型方式输出字符 变量变量ch的值的值*/运行结果:运行结果:98 b66 B212.4 运算符和表达式运算符和表达式C运运算算符符算术运算符:(算术运算符:(+ - + - * * / % + - / % + -)关系运算符:(关系运算符:( = != = !=)逻辑运算符:(!逻辑运算符:(! & |& |)位运算符位运算符 :(:( | & | &)赋值运算符:(赋值
26、运算符:(= = )条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(, ,)指针运算符:(指针运算符:(* * & &)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型标识符)强制类型转换:(类型标识符)分量运算符:(分量运算符:(. -. -)下标运算符:(下标运算符:()其它其它 :(函数调用运算符:(函数调用运算符( )( ))语语言言程程序序设设计计 C22学习运算符应注意:学习运算符应注意:(表(表2.52.5)v运算符功能运算符功能v与运算量关系与运算量关系l要求运算量个数要求运算量个数l要求运算量类型要求运算量类型v运算符优先级别运算符优
27、先级别v结合方向结合方向v结果的类型结果的类型语语言言程程序序设设计计 C23算术运算符算术运算符v基本算术运算符:基本算术运算符: + + - - * * / % / %l结合方向:从左向右结合方向:从左向右l优先级:优先级: - - - -* * / % / % - - + -+ - 说明:说明:l“- -”可为可为单目单目运算符时运算符时, ,右结合性右结合性l两整数相除,结果为整数两整数相除,结果为整数l% %要求两侧均为整型数据要求两侧均为整型数据例例 5/2 = -5/2.0 =例例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2 1 -1 1 0 ( )语语言言程
28、程序序设设计计 C 2 -2.524v自增、自减运算符自增、自减运算符+ -+ -l作用:使变量值加作用:使变量值加1 1或减或减1 1l种类:种类:u前置前置 +i, -i (+i, -i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)u后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再执行再执行i i+1+1或或i-1i-1)l说明:说明:u+ - + - 不能用于常量和表达式不能用于常量和表达式, ,如如5+5+,( (a+b)+a+b)+u+ -+ -结合方向:结合方向: 自右向左自右向左u优先级:优先级:- + - - + - -* * /
29、 % -+ - / % -+ - 语语言言程程序序设设计计 C例例:#includevoid main()int i=3;printf(%dn,i+);printf(%dn,i);i=3;printf(%dn,+i);printf(%dn,i);运行结果:运行结果:344425算术表达式算术表达式v定义:定义:由常量、变量、函数和算术运算符组合起来的由常量、变量、函数和算术运算符组合起来的式子式子。 算术表达式的书写规则算术表达式的书写规则:l所有字符必须大小一样的写在同一水平线上。所有字符必须大小一样的写在同一水平线上。l凡是相乘的地方必须写上凡是相乘的地方必须写上“*”,不能省略也不能用小
30、数点,不能省略也不能用小数点“.”代替。代替。l表达式中出现的的括号一律使用圆括号表达式中出现的的括号一律使用圆括号“( )”,并且一定要成对,并且一定要成对出现;不能使用方括号出现;不能使用方括号“”和花括号和花括号“”。l函数的自变量(即函数的参数)必须写在圆括号函数的自变量(即函数的参数)必须写在圆括号“( )”内。内。l书写表达式时应注意数据的类型、运算符的优先级及结合性。书写表达式时应注意数据的类型、运算符的优先级及结合性。语语言言程程序序设设计计 C26关系运算符及优先次序关系运算符及优先次序v关系运算符关系运算符l种类种类: = !=l结合方向:自左向右结合方向:自左向右l优先级
31、别:优先级别:=!=优先级高优先级高优先级低优先级低例如,下面都是合法的关系表达式:例如,下面都是合法的关系表达式:a+bc+dab=cdx!=d(x=2)=(b=a)语语言言程程序序设设计计 Cl关系表达式的值:是逻辑值关系表达式的值:是逻辑值“真真”或或“假假”,用,用1和和0表示表示27ab!a!ba&ba|b真真假假真真假假假假假假真真真真逻辑运算符和表达式逻辑运算符和表达式v逻辑运算符逻辑运算符l种类:种类: ! & |l逻辑运算真值表逻辑运算真值表lC C语言中语言中, ,运算量运算量: : 0 0表示表示“假假”, 非非0 0表示表示“真真”, , 运算结果运算结果: : 0 0
32、表示表示“假假”, 1 1表示表示“真真”, ,真真假假假假假假假假假假真真真真假假假假真真真真真真假假真真真真语语言言程程序序设设计计 C28! &|高高低低例:例: a=x & xb&xy a=b|x=y !a|abl优先级:优先级:l结合方向:结合方向:! :从右向左从右向左& :从左向右从左向右| :从左向右从左向右/ (a=x) & (xb)&(xy)/(a=b)|(x=y)/(!a)|(ab)语语言言程程序序设设计计 C29例:例: a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|83)&2|(8b)&(n=cd) /结果结果m=0,n=1语语言言程程序序设
33、设计计 C31 赋值运算符和表达式赋值运算符和表达式v简单赋值运算符简单赋值运算符l符号:符号: = =l格式:格式: 变量标识符变量标识符= =表达式表达式l作用:将一个数据(常量或表达式)赋给一个作用:将一个数据(常量或表达式)赋给一个变量变量语语言言程程序序设设计计 Cv说明说明: :l结合方向:结合方向:自右向左自右向左l左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式l赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套32例:例:int a,x;a=5; /*将将5赋值给变量赋值给变量a*/x=3*a+2; /*将表达式将表达式3*a+2的计算
34、结果的计算结果17赋值给变量赋值给变量x*/例:例:下面是不合法的赋值表达式:下面是不合法的赋值表达式:12=a /*赋值运算符左侧是常量赋值运算符左侧是常量*/2*x=3*a+6 /*赋值运算符左侧是表达式赋值运算符左侧是表达式*/x=b /*赋值运算符右侧的赋值运算符右侧的b是没有赋过值的变量是没有赋过值的变量*/语语言言程程序序设设计计 C33v复合赋值运算符复合赋值运算符l种类种类:+= -= += -= * *= /= %= /= %= = = = &= = |= &= = |=l含义:含义: exp1 op= exp2exp1 op= exp2 exp1 = exp1 op exp
35、2exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3语语言言程程序序设设计计 Cv说明说明: :l结合方向:结合方向:自右向左自右向左l左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式l赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其左边变量转换成其左边变量的类型的类型l赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套34语语言言程程序序设设计计 C例例: 分析下面程序的运行结果。分析下面程序的运行结果。#includevoid main() int n=2;
36、n+=n-=n*n; printf(n=%dn,n);运行结果:运行结果:n=-435 不同类型数据间的转换不同类型数据间的转换v什么情况下发生什么情况下发生l运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时l赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时l输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式l函数调用转换函数调用转换-实参与形参类型不一致时转换实参与形参类型不一致时转换v运算转换规则运算转换规则: :不同类型数据运算时先不同类型数据运算时先自动自动转换转换成同一类型成同一类型语语言言程程序序设设计计 C36d
37、oublefloatlongunsignedintchar,short低低高高说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换例:例:char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例:例: int i; float f; double d; long l;37强制转换强制转换v一般形式:一般形式:(类型名类型名)(表
38、达式)表达式)例:例: (int)(x+y)(int)(x+y) (int)x+y (int)x+y (double)(3/2) (double)(3/2) (int)3.6 (int)3.6 v说明:强制转换得到所需类型的中间变量,原说明:强制转换得到所需类型的中间变量,原变量类型不变变量类型不变 例:例: #include void main() float x; int i; x=3.6; i=(int)x; printf(x=%f,i=%d,x,i); 结果:结果:x=3.600000,i=3精度损失问题精度损失问题较高类型向较低类型转换时可能发生较高类型向较低类型转换时可能发生语语言
39、言程程序序设设计计 C38逗号运算符和表达式逗号运算符和表达式v形式:形式:表达式表达式1,表达式表达式2,表达式表达式nv结合性结合性:从左向右从左向右v逗号表达式逗号表达式的值:等于表达式的值:等于表达式n的值的值例:例:a=3*5,a*4 a=3*5,a*4,a+5例例:x=(a=3,6*3) x=a=3,6*a例例:a=1;b=2;c=3; printf(%d,%d,%d,a,b,c); printf(%d,%d,%d,(a,b,c),b,c); /a=15,表达式值表达式值60/a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达
40、式,表达式值表达式值18,x=3/1,2,3/3,2,3语语言言程程序序设设计计 C392.5 数据的输入和输出数据的输入和输出语语言言程程序序设设计计 C字符输入字符输入/ /输出函数输出函数v字符输出函数:字符输出函数:putchar(ch) 函数函数putchar的作用是将一个字符输出到标准输出设备(通常的作用是将一个字符输出到标准输出设备(通常指显示器)上,指显示器)上,ch可以是一个字符变量或字符常量、整型变量或可以是一个字符变量或字符常量、整型变量或整型常量,也可以是转义字符。整型常量,也可以是转义字符。例如:例如:char a=A;int k=65;putchar(a);putchar(A);putchar(k);putchar(65);putchar(101);都可以输出大写字母都可以输出大写字母A。v字符输入函数:字符输入函数:getchar(ch) 函数函数getchar的作用是从标准输入设备上(通常指键盘)读入的作用是从标准输入设备上(通常指键盘)读入一个字符。调用函数一个字符。调用函数getchar不需要提供参数,调用该函数的返不需要提供参数,调用该函数的返回值就是从输入设备得到字符的回值就是从输入设备得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年渝中区巴南区公务员人员招聘考试备考试题及答案详解
- 2026年广东省阳江市事业单位人员招聘笔试备考试题及答案详解
- 2026年酒泉市肃州区公务员人员招聘考试参考题库及答案详解
- 2025-2026学年地理说课说课稿
- 2025年辽宁省公务员人员招聘笔试试题及答案详解
- 2026年下半年盐城市大丰区属国有企业招聘15人考试备考题库及答案解析
- 2026年浙江省宁波市事业单位人员招聘笔试参考题库及答案详解
- 2026年丽江地区公务员人员招聘考试模拟试题及答案详解
- 2025-2026学年关于锻炼的说课稿
- 2026年安阳市殷都区公务员人员招聘考试参考试题及答案详解
- 风湿免疫科|系统性红斑狼疮教学查房完整课件
- 2026年出租厂房安全责任告知书
- 2026广西壮族自治区机关事务管理局公开招聘广西实验幼儿园实名编制10人笔试备考试题及答案详解
- 2026年国家能源集团笔试历年真题
- 江西文化演艺发展集团有限责任公司招聘笔试真题2025
- 2026年山东烟台市高三二模高考数学试卷试题(含答案)
- 2026年黑龙江哈三中高三一模英语试题含答案
- 低空空域资源合理配置与运行效率优化策略研究
- 2026年人工智能训练师(二级)实操技能综合试题及解析
- 放射治疗科直线加速器操作规范
- 雨课堂学堂在线学堂云《跨文化交际英语(北京理工)》单元测试考核答案
评论
0/150
提交评论