C语言程序设计基础基本的程序语句_第1页
C语言程序设计基础基本的程序语句_第2页
C语言程序设计基础基本的程序语句_第3页
C语言程序设计基础基本的程序语句_第4页
C语言程序设计基础基本的程序语句_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6 6章章 基本的程序语句基本的程序语句判断一个数是否是偶数:判断一个数是否是偶数:#include#includevoid main()void main() int data;int data;scanf(%d,&data);scanf(%d,&data);if(data%2=0)if(data%2=0) printf(printf(偶数偶数);); elseelse printf(printf(奇数奇数);); If简介简介判断一个数是否在判断一个数是否在100999100999区间内:区间内:#include#includevoid main()void main() int da

2、ta;int data;scanf(%d,&data);scanf(%d,&data);if(data=100&data=100&data=999) printf(printf(是一个三位数是一个三位数);); elseelse printf(printf(超出范围超出范围);); 在在C语言中,字符是按其所对应的语言中,字符是按其所对应的ASCII的值来存的值来存储的,一个字符占一个字节。储的,一个字符占一个字节。部分字符所对应部分字符所对应ASCII码值如下:码值如下:字符字符0 01 19 9A AB BY YZ Za ab by yz zASCII码值(十进制)484957656689

3、909798121122字符型数据字符型数据 char(1) 1) 字符常量字符常量 字符常量是由一对单引号括起来的单个字符。字符常量是由一对单引号括起来的单个字符。 如:如:AA、SS、99、$ $ 等均为字符常量。等均为字符常量。 字符也可以参与运算:字符也可以参与运算:如:如:A+6;运算结果为;运算结果为71,对应的字符为,对应的字符为H。87;运算结果为;运算结果为49,对应的字符为,对应的字符为1。y32;运算结果为;运算结果为89,对应的字符为,对应的字符为Y。例例: :把小写字母转换为大写字母把小写字母转换为大写字母#include#includevoid main()void

4、 main() char c1;char c1;char capital;char capital;scanf(%c,&c1);scanf(%c,&c1);if(c1=a&c1=a&c1=z) capital=c1-32;capital=c1-32;printf(%c,capital);printf(%c,capital); elseelse printf(your input is not a printf(your input is not a smallsmall letter);letter); 例例: :简易加密简易加密#include#includemain()main() cha

5、r c1,c2,c3,c4,c5,c6;char c1,c2,c3,c4,c5,c6; int key=1; int key=1; scanf(%c%c%c%c%c%c,&c1,&c2,&c3,&c4,&c5,&c6); scanf(%c%c%c%c%c%c,&c1,&c2,&c3,&c4,&c5,&c6); if(c1!=z&c2!=z&c3!=z&c4!=z if(c1!=z&c2!=z&c3!=z&c4!=z &c5!=z&c5!=z)&c5!=z&c5!=z) printf(%c%c%c%c%c%c,c1+1, printf(%c%c%c%c%c%c,c1+1, c2+1,c3+1,c

6、4+1,c5+1,c6+1);c2+1,c3+1,c4+1,c5+1,c6+1); else else printf(your inputs contain letter z); printf(your inputs contain letter z); 注意:注意:数字数字3和字符和字符3的区别:的区别:含义含义表达式表达式值值字节数字节数常量33占2个字节字符351占1个字节#include#includevoid main()void main() char c1;/char c1;/也可将也可将c1c1定义为定义为intint型。在有型。在有scanfscanf语句时要语句时要注意注意

7、c1=3;c1=3;printf(%d %cn,c1,c1);printf(%d %cn,c1,c1);c1=3;c1=3;printf(%d %cn,c1,c1);printf(%d %cn,c1,c1); (4 4)字符串常量)字符串常量字符串常量是指用一对双引号括起来的一串字符。字符串常量是指用一对双引号括起来的一串字符。如:如: world, TRUE or FLASE, 8765431.0037, T world, TRUE or FLASE, 8765431.0037, T 均为字符串常量。均为字符串常量。注:双引号注:双引号 ()()和反斜杠和反斜杠()()本身作为字符串时要通过

8、转义本身作为字符串时要通过转义字符字符()()。 如:如: 和和 分别代表字符串分别代表字符串( ( ) )和反斜杠和反斜杠( ( ) )。注意字符常量与字符串常量的区别:注意字符常量与字符串常量的区别: 在在C C语言中,字符串常量在内存中存储时,系语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个统自动在字符串的末尾加一个“串结束标志串结束标志”:00该结束标志的该结束标志的ASCASC码值为码值为0 0,字符为空,字符为空NULLNULL。 因此,长度为因此,长度为n n个字符的字符串常量,在内存个字符的字符串常量,在内存中占有中占有n+1n+1个字节的存储空间。个字节的存储

9、空间。如:如:字符串字符串“ “ World ”World ”,共,共5 5个字符,需占用个字符,需占用6 6个字节,个字节,其存储形式为:其存储形式为:World0(5 5)转义字符)转义字符转义字符用反斜杠转义字符用反斜杠后面跟一个字符或一个八进制或后面跟一个字符或一个八进制或十六进制数表示。十六进制数表示。 如:如:a,0,n等。等。代表代表ASCIIASCII字符中不可打印的控制字符和特定功字符中不可打印的控制字符和特定功能的字符。能的字符。表示特殊字符,如:表示特殊字符,如:单引号单引号()()、双引号、双引号()()和反和反斜杠斜杠()()等。等。常用的转义字符见表常用的转义字符见

10、表6.96.9。转义字符转义字符意义意义ASCIIASCII值(十进制)值(十进制)nn换行(换行(LFLF)010010tt水平制表符水平制表符(HT)(HT)009009反斜杠反斜杠092092单引号字符单引号字符039039”双引号字符双引号字符03403400空字符空字符(NULL)(NULL)000000注意注意 转义字符中的字母只能是小写字母,每个转义转义字符中的字母只能是小写字母,每个转义字符只能看作一个字符。字符只能看作一个字符。例例6 6:了解转义字符的作用。:了解转义字符的作用。/ /* *example6_6.c example6_6.c 了解转义字符的作用了解转义字符的

11、作用* */ / #include#includemain()main() printf(This is a test:n); printf(This is a test:n); printf(Ready:); printf(Ready:); printf(tHorizontal tabn); printf(tHorizontal tabn); / /* * 往右进八格往右进八格 * */ / printf(n); / printf(n); /* * 输出输出 * */ / printf(?n); / printf(?n); /* * 输出输出? ? * */ / printf(n); pri

12、ntf(n); / /* * 输出输出 * */ / printf(n); printf(n); / /* * 输出输出 * */ / printf(101n); / printf(101n); /* * 输出八进制值输出八进制值101101所对应的字符所对应的字符 * */ / printf(x41n); / printf(x41n); /* * 输出十六进制值输出十六进制值4141所对应的字符所对应的字符 * */ / 1.1. C C语言提供语言提供5 5种基本数据类型。种基本数据类型。(1 1)字符型:用)字符型:用charchar表示。表示。(2 2)整数型:用)整数型:用intin

13、t表示。表示。(3 3)单精度实数型:用)单精度实数型:用floatfloat表示表示( (有效数字有效数字7 7位位) )。(4 4)双精度实数型:用)双精度实数型:用doubledouble表示表示( (有效数字有效数字1616位位) )。(5 5)空类型:用)空类型:用voidvoid表示。表示。对整数型,有四种修饰:对整数型,有四种修饰:signedsigned(有符号)(有符号) unsignedunsigned(无符号)(无符号)longlong(长型)(长型) shortshort(短型)(短型)数据类型决定了数据的大小、数据可执行的操作以及数据数据类型决定了数据的大小、数据可执

14、行的操作以及数据的取值范围的取值范围. .6.1 基本数据类型及取值范围基本数据类型及取值范围数据类型的长度和取值范围会随着机器的CPU类型和编译器的不同而不同。6.1 基本数据类型及取值范围基本数据类型及取值范围 实现环境实现环境数据类型数据类型字字 节节 长长 度度TurbTurbo Co CBorlaBorland C+nd C+VisuaVisual C+l C+Dev Dev C+C+GCCGCCcharchar(字符型)(字符型)1 11 11 11 11 1short intshort int(短(短整型)整型)2 22 22 22 22 2intint(整型)(整型)2 22

15、24 44 44 4long intlong int(长整(长整型)型)4 44 44 44 44 4floatfloat(单精度(单精度浮点型)浮点型)4 44 44 44 44 4doubledouble(双精度(双精度浮点型)浮点型)8 88 88 88 88 8例1:验证数据类型的字节长度。6.1 基本数据类型及取值范围main() char a1; short int b1; int c1; long int d1; float e1; double f1; printf(“size of (char)=%dn”,sizeof(a1); printf(“size of (short

16、int)=%dn”,sizeof(b1); printf(“size of (int)=%dn”,sizeof(c1); printf(“size of (long int)=%dn”,sizeof(d1); printf(“size of (float)=%dn”,sizeof(e1); printf(“size of (double)=%dn”,sizeof(f1);不同字节长度的数据类型和取值范围:见表6-36.1 基本数据类型及取值范围6.2.16.2.1 标识符标识符 标识符是对变量名、函数名、标号和其他各种用户定义的对标识符是对变量名、函数名、标号和其他各种用户定义的对象命名。标识

17、符的第象命名。标识符的第1个字符必须是字母或下划线,后面可以是个字符必须是字母或下划线,后面可以是字母、数字或下划线,最长不允许超过字母、数字或下划线,最长不允许超过32个字符。个字符。例如:例如: score、number12、student_name等均为正确的标识符;等均为正确的标识符; 8times、price/tea、low!valume等均不为正确的标识符。等均不为正确的标识符。注意:注意:(1) 标识符区分大小写,标识符区分大小写,score、Score、SCORE代表三个不同的代表三个不同的标识符。标识符。(2)标识符不能和标识符不能和C语言的关键字相同语言的关键字相同 (3)

18、标识符不能和用户自定义的函数或标识符不能和用户自定义的函数或C语言库函数同名语言库函数同名 6.2 标识符、变量和常量6.2.2 6.2.2 变量和常量变量和常量1.1. 变量变量 其值可以改变的量称为变量。其值可以改变的量称为变量。 变量的两个要素:变量的两个要素:标识符标识符 ( (名字名字) )和和值值。 C C 语言规定:变量必须在使用之前定义。语言规定:变量必须在使用之前定义。 定义变量的一般形式是:定义变量的一般形式是: ; 必须是有效的必须是有效的C C数据类型,如:数据类型,如:intint、floatfloat等。等。 可以由一个或多个由逗号分隔的多个可以由一个或多个由逗号分

19、隔的多个标识符名构成。标识符名构成。6.2 标识符、变量和常量如:如: int i, j, number; unsigned int max, min; float high_value, price; double lenth, total_wieight;6.2 标识符、变量和常量例例2 2:运行下面的程序,了解变量的取值范围和:运行下面的程序,了解变量的取值范围和C C语言的特性。语言的特性。/ /* *example6_2.c example6_2.c 变量的取值范围测试变量的取值范围测试* */ / #include #include main()main() int a=32766

20、,b=-32766; int a=32766,b=-32766; unsigned m=6553; unsigned m=6553; printf(a=%dn,a); printf(a=%dn,a); printf(m=%un,m); printf(m=%un,m); a=a+4; a=a+4; 6.2 标识符、变量和常量b=b-6; b=b-6; m=mm=m* *10+10; 10+10; printf(After printf(After change:n);change:n);printf(a+4=%dn,a);printf(a+4=%dn,a);printf(b-6=%dn,b);p

21、rintf(b-6=%dn,b);printf(mprintf(m* *10+10=%un,10+10=%un,m);m); 2.2.常量常量 常量的值是不可变的。常量的值是不可变的。 在在C C语言中,有整型常量、实型常量、字符常语言中,有整型常量、实型常量、字符常量、字符串常量、和枚举常量等。量、字符串常量、和枚举常量等。(1 1)整型常量)整型常量 可采用十进制、八进制、十六进制来表示整型可采用十进制、八进制、十六进制来表示整型常量。常量。 八进制数的前面用数字八进制数的前面用数字0 0开头,开头, 十六进制数前面用数字十六进制数前面用数字0 0和字母和字母X X开头(开头(0 x0 x

22、或或0X0X) 整型常量的表示见表整型常量的表示见表6.76.7。6.2 标识符、变量和常量2.2.常量常量整型常量的表示整型常量的表示见表见表6.76.7。6.2 标识符、变量和常量进制进制整型常量的表达形整型常量的表达形式式十进制数值十进制数值十进制十进制17171717八进制八进制0170171515十六进制十六进制0 x170 x172323十进制十进制17L17L或或17l17l1717十进制十进制17LU17LU或或17lu17lu1717例例3 3:了解整型常量的不同进制表示法。:了解整型常量的不同进制表示法。/ /* *example6_3.c example6_3.c * *

23、/ / #include#includemain()main() printf( printf(十六进制十六进制0 x800 x80的十进制值为:的十进制值为:%dn,0 x80);%dn,0 x80); printf( printf(八进制八进制02000200的十进制值为:的十进制值为:%dn,0200);%dn,0200); printf( printf(十进制十进制128128的十进制值为:的十进制值为:%dn,128);%dn,128); printf( printf(十进制十进制128128的十六进制值为:的十六进制值为:%xn,128);%xn,128); printf( pri

24、ntf(十进制十进制128128的八进制值为:的八进制值为:%on”,128);%on”,128); 6.2 标识符、变量和常量(2 2)实型常量)实型常量实型常量的两种表示法:浮点计数法和科学计数法。实型常量的两种表示法:浮点计数法和科学计数法。例如:例如:231.46231.467.36E7.36E7 74.58E54.58E50.09450.0945对太大或太小的数,采用科学计数法。对太大或太小的数,采用科学计数法。 如上面的如上面的7.36E7.36E7 7、4.58E54.58E5。6.2 标识符、变量和常量例例4 4:了解实型常量的两种表示法。:了解实型常量的两种表示法。/ /*

25、*example6_4.c example6_4.c (浮点计数法,科学计数法)(浮点计数法,科学计数法)* */ / #include#includemain()main() printf(123.456 printf(123.456的浮点数表示:的浮点数表示:%6fn,123.456);%6fn,123.456); printf(1.23456E2 printf(1.23456E2的浮点数表示:的浮点数表示:%6fn,1.23456e2);%6fn,1.23456e2); printf(12345.6E-2 printf(12345.6E-2的浮点数表示:的浮点数表示:%6fn,12345

26、.6e-%6fn,12345.6e-2);2); printf(12345.6 printf(12345.6的科学计数法表示:的科学计数法表示:%En,12345.6);%En,12345.6); getch(); getch(); 6.2 标识符、变量和常量(6 6)符号常量)符号常量将程序中的常量定义为一个标识符,称为符号常量。将程序中的常量定义为一个标识符,称为符号常量。符号常量在使用前必须先定义,定义的形式是:符号常量在使用前必须先定义,定义的形式是: #define #define 如:如:#define PI 3.1415926#define PI 3.1415926 #defin

27、e TRUE 1#define TRUE 1 #define FALSE 0#define FALSE 0其中其中PIPI、TRUETRUE、FLASEFLASE均为符号常量;均为符号常量;其值分别为其值分别为3.14159263.1415926,1 1,0 0。注注1 1: #define#define是是C C语言的预处理命令;语言的预处理命令;注注2 2:习惯上符号常量用大写英文字母表示。习惯上符号常量用大写英文字母表示。6.2 标识符、变量和常量例例7 7:了解符号常量的使用。:了解符号常量的使用。/ /* *example6_7.c example6_7.c * */ / #incl

28、ude#include#define WHO I am a student.#define WHO I am a student.#define HOW That is Fine.#define HOW That is Fine.#define PI 3.1415926#define PI 3.1415926main()main() printf(%sn,WHO); printf(%sn,WHO); printf(%sn,HOW); printf(%sn,HOW); printf(%fn,PI); printf(%fn,PI); 6.2 标识符、变量和常量程序运行结果:I am a stude

29、nt.That is Fine.3.141593l构成基本表达式的常用运算符有:构成基本表达式的常用运算符有:(1)算术运算符。)算术运算符。(2)关系运算符。)关系运算符。(3)逻辑运算符。)逻辑运算符。(4)赋值运算符。)赋值运算符。另外,条件运算符、自反赋值运算符、逗号运算符等另外,条件运算符、自反赋值运算符、逗号运算符等均可构成基本表达式。均可构成基本表达式。6.3 基本运算符、表达式及运算的优先级6.3.1 6.3.1 算术运算符及算术表达式算术运算符及算术表达式算术运算符主要用于完成变量的算术运算。算术运算符主要用于完成变量的算术运算。如:加、减、乘、除等。各运算符及其作用如下:如

30、:加、减、乘、除等。各运算符及其作用如下:6.3 基本运算符、表达式及运算的优先级运运 算算 符符优优 先先 级级作作 用用高(高(1414)自增自增1 1(变量的值加(变量的值加1 1)自减自减1 1(变量的值减(变量的值减1 1)低(低(1212)加法加法减法减法* *中(中(1313)乘法乘法/ /除法除法% %模运算(整数相除,结模运算(整数相除,结果取余数)果取余数)注:此处规定优先级的数字越大,优先级越高。注:此处规定优先级的数字越大,优先级越高。例例8 8: 阅读下面的程序,了阅读下面的程序,了解由算术运算符组成的表解由算术运算符组成的表达式。达式。/ /* *example6_

31、8.c example6_8.c * */ / #include#includemain()main() int a,b,c,d1,d2,d3,d4; int a,b,c,d1,d2,d3,d4; double x,y,z1,z2,z3; double x,y,z1,z2,z3; a=8; a=8; b=3; b=3; c=10; c=10;6.3 基本运算符、表达式及运算的优先级 d1=a+b*c-b/a+b%c*a; /* 复杂表达式复杂表达式1 */ d2=(a+b)*c-(b/a)+(b%c)*a; /* 复杂表达式复杂表达式2 */ d3=a/b; d4=c%b; printf(d1

32、=%d, d2=%d, d3=%d, d4=%dn, d1,d2,d3,d4); x=3.2; y=2.4; z1=x+y/x-y; /* 复杂表达式复杂表达式3 */ z2=(x+y)/(x-y); /* 复杂表达式复杂表达式4 */ z3=y/b; printf(z1=%f, z2=%f, z3=%fn,z1,z2,z3); 程序运行结果:d1=62, d2=134, d3=2, d4=1z1=1.550000, z2=7.000000, z3=0.800000关于关于前置前置+/+/和后置和后置+/+/的作用的作用 前置前置+或或前置前置表达式:表达式: +; 先将变量的值加先将变量的值

33、加1 1,再使用变量。,再使用变量。 ; 先将变量的值减先将变量的值减1 1,再使用变量。,再使用变量。后置后置+或后或后置置表达式:表达式: +;+; 先使用变量,再将变量的值加先使用变量,再将变量的值加1 1。 ; ; 先使用变量,再将变量的值减先使用变量,再将变量的值减1.1.注意:注意:+/-不能用于常量表达式不能用于常量表达式6.3 基本运算符、表达式及运算的优先级例例9 9:阅读程序:阅读程序example6_10.cexample6_10.c,了解前置,了解前置+/-+/-和和后置后置+/+/的作用。的作用。6.3 基本运算符、表达式及运算的优先级#includemain() i

34、nt a,b; double x,y; a=16; x=12.6; +a; +x; printf(1- a=%d,x=%fn,a,x); a+; x+; printf(2- a=%d,x=%fn,a,x); b=a+; y=x+; printf(3-b=%d,y=%fn,b,y); printf(4- a=%d,x=%fn,a,x);6.3.2 关系运算符及关系表达式关系运算符及关系表达式关系运算符的作用:用于条件判断的表达。关系运算符的作用:用于条件判断的表达。关系运算符及其含义和优先级如下:关系运算符及其含义和优先级如下:6.3 基本运算符、表达式及运算的优先级关系运算符关系运算符含含 义

35、义优优 先先 级级小于小于高(高(10)大于大于等于等于低(低(9)!=不等于不等于小于等于小于等于高(高(10)大于等于大于等于关系表达式的结果只有两个:关系表达式的结果只有两个: (1) (1) 真(值为真(值为1 1) (2) (2) 假(值为假(值为0 0)假如有:假如有: int a,b;int a,b; a=(230) a=(230) b=(23-9) = = (18-6); b=(23-9) = = (18-6);则:变量则:变量a a的值为的值为1 1,变量,变量b b的值为的值为0 0。6.3 基本运算符、表达式及运算的优先级6.3.3 逻辑运算符及逻辑表达式逻辑运算符及逻辑

36、表达式逻辑运算符的作用:逻辑运算符的作用:用于判断条件中的逻辑关系。用于判断条件中的逻辑关系。逻辑运算符及其含义和优先级如下:逻辑运算符及其含义和优先级如下:6.3 基本运算符、表达式及运算的优先级逻辑运算符逻辑运算符含含 义义优优 先先 级级!逻辑非逻辑非高(高(14)&逻辑与逻辑与中(中(5)| |逻辑或逻辑或低(低(4)逻辑表达式的结果:逻辑表达式的结果: 真(值为真(值为1 1) 假(值为假(值为0 0) ( (注:非零值均为真注:非零值均为真) )逻辑运算规则:逻辑运算规则:6.3 基本运算符、表达式及运算的优先级ABA&BA|B!A真真真真真真真真假假真真假假假假真真假假假假假假假

37、假假假真真假假真真假假真真真真1.1.由由关系运算符关系运算符和和逻辑运算符逻辑运算符可组成可组成复杂逻辑表达式。复杂逻辑表达式。 如:如:(ab) & !(c-d) | (a=5)(ab) & !(c-d) | (a=5) 2.2.对于对于复杂逻辑表达式复杂逻辑表达式,要注意,要注意C C语言的特殊语法规则。语言的特殊语法规则。6.3 基本运算符、表达式及运算的优先级特别提示(1)(1)( (表达式表达式1) | (1) | (表达式表达式2) 2) 语法规则语法规则 若:若:( (表达式表达式1)1)的值为真,的值为真, 则:则:( (表达式表达式1) | (1) | (表达式表达式2)2

38、)的结果就为真。的结果就为真。 特点:系统对特点:系统对( (表达式表达式2)2)不会进行计算,但会检查其语法错误。不会进行计算,但会检查其语法错误。 结论:与结论:与( (表达式表达式2)2)的结果无关。的结果无关。 例如:例如: int a=4,b=8,c;int a=4,b=8,c; c=(ab)|(+a);c=(ab)&(+a);c=(ab)&(+a); printf(“c=%d, a=%dn”,c,a);printf(“c=%d, a=%dn”,c,a); 程序运行结果为:程序运行结果为:c=0,a=4c=0,a=4。6.3 基本运算符、表达式及运算的优先级例例1111:阅读下面的程

39、序,分析复杂逻辑表达式运算的语法规则。:阅读下面的程序,分析复杂逻辑表达式运算的语法规则。/ /* *example6_14.c example6_14.c * */ / #include#includemain()main() int a=4,b=8,c=5; int a=4,b=8,c=5; int d1,d2,d3,d4; int d1,d2,d3,d4; d1=(ab-); / d1=(ab-); /* * 表达式表达式(1) (1) * */ / printf(d1=%d, a=%d, b=%d, c=%dn,d1,a,b,c); printf(d1=%d, a=%d, b=%d,

40、c=%dn,d1,a,b,c); d2=(ab)&(+a=5)|(cb-); / d2=(ab)&(+a=5)|(cb-); /* * 表达式表达式(2) (2) * */ / printf(d2=%d, a=%d, b=%d, c=%dn,d2,a,b,c); printf(d2=%d, a=%d, b=%d, c=%dn,d2,a,b,c); d3=(ab-); / d3=(ab-); /* * 表达式表达式(3) (3) * */ / printf(d3=%d, a=%d, b=%d, c=%dn,d3,a,b,c); printf(d3=%d, a=%d, b=%d, c=%dn,d3

41、,a,b,c); d4=(ab)&(+a=5)&(cb-); / d4=(ab)&(+a=5)&(cb-); /* * 表达式表达式(4) (4) * */ / printf(d4=%d, a=%d, b=%d, c=%dn,d4,a,b,c); printf(d4=%d, a=%d, b=%d, c=%dn,d4,a,b,c); 6.3.4 6.3.4 条件运算符条件运算符条件运算符条件运算符由由“? ?”和和“: :”组成。组成。条件表达式条件表达式的一般形式:的一般形式: 表达式表达式1? 1? 表达式表达式2:2:表达式表达式3;3;条件表达式条件表达式的语法规则:的语法规则: 当表达

42、式当表达式1 1的值为的值为1 1(真)时,其结果为表达式(真)时,其结果为表达式2 2的值;的值; 当表达式当表达式1 1的值为的值为0 0(假)时,其结果为表达式(假)时,其结果为表达式3 3的值。的值。注意:注意: 表达式表达式1 1通常是关系表达式或逻辑表达式,也可以是其他通常是关系表达式或逻辑表达式,也可以是其他表达式。表达式。条件运算符又称为三目运算符,条件运算符又称为三目运算符,“三目三目”指的是操作数的个指的是操作数的个数有数有3 3个。个。6.3 基本运算符、表达式及运算的优先级例例1212:阅读下面的程序,了解三目运算符组成的表达式计算规则。:阅读下面的程序,了解三目运算符

43、组成的表达式计算规则。/ /* *example6_15.c example6_15.c 了解三目运算符的语法规则了解三目运算符的语法规则* */ / #include #include #include #include main()main() int a=3,b=5,c; int a=3,b=5,c; c=(ab)?(a+b):(a-b); c=(ab)?(a+b):(a-b); printf(The max value of a and b is: %dn,c); printf(The max value of a and b is: %dn,c); a=6; a=6; b=2; b=

44、2; c=(ab)?(a-b):(a+b); c=(ab)?(a-b):(a+b); printf(The max value of a and b is: %dn,c); printf(The max value of a and b is: %dn,c); 请分析程序的运行结果。请分析程序的运行结果。6.3 基本运算符、表达式及运算的优先级6.3.5 6.3.5 逗号表达式逗号表达式由逗号运算符由逗号运算符“, ,”将两个表达式连接起来:将两个表达式连接起来: 表达式表达式1,1,表达式表达式2;2;逗号表达式的逗号表达式的语法规则:语法规则: 先计算表达式先计算表达式1 1,再计算表达式

45、,再计算表达式2 2; 最后结果为表达式最后结果为表达式2 2的结果。的结果。6.3 基本运算符、表达式及运算的优先级例例1313:了解逗号表达式的语法规则。:了解逗号表达式的语法规则。/ /* *example6_16.c example6_16.c 了解逗号表达式了解逗号表达式* */ / #include #include main()main() int a,b; int a,b; a=3 a=3* *5,a5,a* *4;4; b=(3 b=(3* *5,a5,a* *4);4); printf(a=%dnb=%dn,a,b); printf(a=%dnb=%dn,a,b); 请分析

46、程序的运算结果。请分析程序的运算结果。6.3 基本运算符、表达式及运算的优先级6.3.6 6.3.6 数据类型的转换数据类型的转换C C语言允许表达式中混合有不同类型的常量和变量。语言允许表达式中混合有不同类型的常量和变量。1.1. 系统自动转换系统自动转换容易出现意外结果。容易出现意外结果。假设有:假设有:s=a+t; /s=a+t; /* *float t=3.7,s; int a=3,b;float t=3.7,s; int a=3,b;* */ / b=a+t;b=a+t;结果为:结果为:s=6.7s=6.7,b=6b=6,原因:原因:数据类型不一致,有可能产生数据丢失。数据类型不一致

47、,有可能产生数据丢失。应避免出现数据类型不一致的表达式。应避免出现数据类型不一致的表达式。6.3 基本运算符、表达式及运算的优先级2.2.强制转换数据类型强制转换数据类型强制转换表达式:强制转换表达式: ( (数据类型符数据类型符) )表达式表达式; ; 或或 ( (数据类型符数据类型符) )变量变量; ;强制转换强制转换语法规则:语法规则: 将表达式或变量的值将表达式或变量的值临时临时转换成圆括号内指定的数据类型。转换成圆括号内指定的数据类型。并不改变变量原来的数据类型。并不改变变量原来的数据类型。假设有:假设有: int a ;int a ; float t ;float t ; a=15

48、;a=15; t=(float) a/30;t=(float) a/30;结果为:结果为:t=0.5t=0.5,若表达式为若表达式为t=a/30t=a/30,则结果为:,则结果为:t=0t=0。6.3 基本运算符、表达式及运算的优先级6.3.7 6.3.7 复杂表达式的计算顺序复杂表达式的计算顺序 C C语言共有各类运算符语言共有各类运算符4747个,按优先级可分为个,按优先级可分为1111个类别共个类别共1515个优先级。个优先级。运算符的优先级与运算方向:运算符的优先级与运算方向:P158 P158 表表6.156.156.3 基本运算符、表达式及运算的优先级例例1313:阅读程序,分析复

49、杂表达式的计算顺序。:阅读程序,分析复杂表达式的计算顺序。/ /* *example6_18.c example6_18.c 复杂表达式的计算顺序复杂表达式的计算顺序* */ / #include #include main()main() int a=10,b=15,c=14,temp; int a=10,b=15,c=14,temp; temp= a+6b & b-cc; temp= a+6b & b-cc; / /* * * */ / printf(a+6b & b-cc= %dn,temp); printf(a+6b & b-cc= %dn,temp); temp=!a+b temp=

50、!a+b* *c-b/a & b-ac-b/a & b-a* *!(c-a);/!(c-a);/* * * */ / printf(!a+b printf(!a+b* *c-b/a & b-ac-b/a & b-a* *!(c-a)= !(c-a)= %dn,temp);%dn,temp); 请分析并修改程序。请分析并修改程序。6.3 基本运算符、表达式及运算的优先级6.3.8 C语言的基本语句结构语言的基本语句结构C C语言的语句可分为四大类:语言的语句可分为四大类:1表达式语句表达式语句2复合语句复合语句3控制语句控制语句4转向控制语句转向控制语句6.3 基本运算符、表达式及运算的优先级1

51、 1表达式语句表达式语句一个独立的语句就是表达式语句。一个独立的语句就是表达式语句。如:如:a=3a=3* *b-c/2;b-c/2;i-;i-;+j:+j:b=(a3)? 1:0;b=(a3)? 1:0;2 2复合语句复合语句由一对花括号由一对花括号“ ”将多个表达式语句括起来所组成。将多个表达式语句括起来所组成。如:如: a=b+c; a=b+c; x=y%a; x=y%a; prinft(a=%d, x=%dn, a, x); prinft(a=%d, x=%dn, a, x); 3 3控制语句控制语句由由控制结构组成的语句,有控制结构组成的语句,有5 5种控制语句:种控制语句:(1 1

52、)选择(分支)语句:)选择(分支)语句:ifelseifelse。(2 2)多分支语句:)多分支语句:switchswitch。(3 3)forfor循环语句:循环语句:forfor。(4 4)whilewhile循环:循环:whilewhile。(5 5)do_whiledo_while循环:循环:dowhiledowhile。4 4转向控制语句转向控制语句由由系统提供的关键字构成,用于改变程序的流程。系统提供的关键字构成,用于改变程序的流程。 有有4 4种转向控制语句:种转向控制语句:(1 1)breakbreak;可用于;可用于switchswitch语句和循环的语句。语句和循环的语句。

53、(2 2)continuecontinue;只适用于循环语句。;只适用于循环语句。(3 3)returnreturn;用在函数的结束处。;用在函数的结束处。(4 4)gotogoto ;可用于程序的任何地方,但不提倡使用。;可用于程序的任何地方,但不提倡使用。C C语言的输入语言的输入/ /输出的操作是通过调用系统函数来实现。输出的操作是通过调用系统函数来实现。常用的标准输入常用的标准输入/ /输出函数有如下几种。输出函数有如下几种。(1 1)格式化输入)格式化输入/ /输出函数:输出函数:scanf()/printf()scanf()/printf()。(2 2)字符输入)字符输入/ /输出

54、函数:输出函数:getc()/putc()getc()/putc()。(3 3)字符输入)字符输入/ /输出函数:输出函数:getch()/putch()getch()/putch()。(4 4)字符输入)字符输入/ /输出函数:输出函数:getchar()/putchar()getchar()/putchar()。(5 5)字符串输入)字符串输入/ /输出函数:输出函数:gets()/puts()gets()/puts()。不同的函数在不同的函数在功能上有所不同,使用时应根据具体的功能上有所不同,使用时应根据具体的要求,选择合适的输入要求,选择合适的输入/ /输出函数。输出函数。6.4 标准

55、输入标准输入/输出函数简介输出函数简介6.4.1 6.4.1 格式化输出函数格式化输出函数printf( )printf( )函数函数printf( )printf( )的一般形式为:的一般形式为: printf(printf(控制字符串控制字符串 ,输出项列表,输出项列表););注意:注意: 可以是常量、变量、表达式。当有多个输出可以是常量、变量、表达式。当有多个输出项时,各项之间用逗号分隔。项时,各项之间用逗号分隔。 中的个数、类型必须与中的个数、类型必须与中格中格式字符的个数、类型相一致。式字符的个数、类型相一致。(1)(1)必须用双引号将必须用双引号将 括起,可括起,可由由格式说明格式

56、说明和和普通字符普通字符两部分组成。两部分组成。6.4 标准输入标准输入/输出函数简介输出函数简介1 1格式说明格式说明格式说明的一般格式为:格式说明的一般格式为: % % 格式字符规定了对应输出项的输出格式。格式字符规定了对应输出项的输出格式。常用格式字符如表常用格式字符如表6.166.16所示。所示。P162P162如:如:%d,%c,%f,%Lf,%s%d,%c,%f,%Lf,%s等均为正确的输出格式说明。等均为正确的输出格式说明。6.4 标准输入标准输入/输出函数简介输出函数简介格式格式字符字符说明说明d、i以带符号的十进制形式输出整数以带符号的十进制形式输出整数(正数不输出符号正数不

57、输出符号)o以八进制无符号形式输出整数以八进制无符号形式输出整数(不输出前导符不输出前导符0)x、X以十六进制无符号形式输出整数以十六进制无符号形式输出整数(不输出前导符不输出前导符0 x)u以无符号十进制形式输出整数以无符号十进制形式输出整数c以字符形式输出,只输出一个字符以字符形式输出,只输出一个字符s输出字符串输出字符串f以小数形式输出单、双精度数,隐含输出以小数形式输出单、双精度数,隐含输出6位小数位小数E、e以指数形式输出实数以指数形式输出实数.G、g选用选用%f或或%e格式中输出宽度较短的一种格式,不输出无格式中输出宽度较短的一种格式,不输出无意义的意义的0修饰符修饰符是可选的,用

58、于确定数据输出的宽度、精度、小数是可选的,用于确定数据输出的宽度、精度、小数位数、对齐方式等。若缺省修饰符,按系统默认设定输出。位数、对齐方式等。若缺省修饰符,按系统默认设定输出。修饰符修饰符的主要类型:的主要类型:(1 1)字段宽度修饰符)字段宽度修饰符 用数字修饰输出字符占用的宽度,规则见表用数字修饰输出字符占用的宽度,规则见表6.176.17。如:如:%3d,%4c,%5.2f,%8Lf,%6s%3d,%4c,%5.2f,%8Lf,%6s等均为正确的输出格式说明。等均为正确的输出格式说明。(2 2)对齐方式修饰符)对齐方式修饰符 默认输出方式为默认输出方式为右对齐右对齐方式。方式。 在在

59、% %后面加上一个负号后面加上一个负号“”,可使数据的输出方式改为,可使数据的输出方式改为左对齐左对齐的方式。的方式。如:如:%-3d,%-4c,%-5.2f,%-8Lf,%-6s%-3d,%-4c,%-5.2f,%-8Lf,%-6s等均为正确的输出格式等均为正确的输出格式说明。说明。6.4 标准输入标准输入/输出函数简介输出函数简介附加字符附加字符说明说明字母字母l用于长整型整数,可加在格式符用于长整型整数,可加在格式符d、o、x、u前面前面. 也可用也可用lf输出双精度数输出双精度数m(代表一个正整数代表一个正整数)数据最小宽度,不足时左补空格数据最小宽度,不足时左补空格0m数据宽度不足数

60、据宽度不足m时左补零时左补零.n(代表一个正整数代表一个正整数)对实数,表示输出对实数,表示输出n位小数;对字符位小数;对字符串,表示截取的字符个数串,表示截取的字符个数-输出的数字或字符在域内向左靠输出的数字或字符在域内向左靠*控制输出宽度控制输出宽度2 2普通字符普通字符普通字符包括普通字符包括可打印字符可打印字符和和转义字符转义字符。可打印字符可打印字符按原样显示在屏幕上,起说明作用。按原样显示在屏幕上,起说明作用。转义字符转义字符是一些不可显示的控制字符,用于产生特殊是一些不可显示的控制字符,用于产生特殊的输出效果。的输出效果。如:如:“ “ s=s=%4d%4dtt%7.4f%7.4

温馨提示

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

最新文档

评论

0/150

提交评论