118
3.1 C 的数据类型 3.2 常量与变量 3.3 整型数据 3.4 实型数据 3.5 字符型数据 3.6 变量赋初值 3 数据类型、运算符与表达式

第 3 章 数据类型、运算符与表达式

Embed Size (px)

DESCRIPTION

第 3 章 数据类型、运算符与表达式. 3.1 C 的数据类型 3.2 常量与变量 3.3 整型数据 3.4 实型数据 3.5 字符型数据 3.6 变量赋初值. 3.7 各类数值型数据间的混合运算 3.8 算术运算符和算术表达式 3.9 赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式 习题. 3.1 C 的数据类型. 一个程序应包括以下两方面内容: 对数据的描述。 在程序中要指定数据的类型和数据的组织形式,即数据结构 (data structure) 。 (2) 对操作的描述。 - PowerPoint PPT Presentation

Citation preview

  • 3 3.1 C3.2 3.3 3.4 3.5 3.6

  • 3.7 3.8 3.9 3.10

  • 3.1 C(data structure)(2) (algorithm)

  • Cc:()C

  • 3.2 3.2.1 120-34.6-1.23ad:3.1 #define price 30 main ( ) {

  • int num total; num=10; total=num * price; printf("total=%d"total); }#defineprice30price30 total=300#define8

  • ()price price=40; (1) price sum= 15 * 30 * 23.5 * 43

  • (2) price#define price 35 price35

  • 3.2.2 3.13.1

  • (identifier)Csumaverage -total class day month student-nametanlotus-1-2-3basic li-lingdohny 123333d64a>b

  • sumsuMclassclassANSI C()c(ib PCs C)888student_namestudent_number8stud_namestud_num

  • Turbo C32() ()8()countnamedaymonthtotalcountry(abcx1y1)

  • ?abc) c1213(1) int student;

  • staentstaent=30statentstatent(2) abintturbo cab(3) ab

  • a%b%(3.8)a/bab()

  • 3.3 3.3.1 c(1) 123 -456 0(2) 00123123(123)8182+281+3808 3-011-11-9(3) 0x0x123123(123)16=1162+2161+3160=256+32+3=291-0x12-18

  • 3.3.2 1. iint i; /* */i=10; /* i10 */ 101010c23.2(a)3.2(b)

  • 3.2(complement) 3.2(b) ?1-10-101010101010101111111111110101(16)111111111111101103.3

  • 3.31601 c

  • 2. intint (modifier):short()long()(1) int(2) short intshort(3) long intlongturbo cint-215(215-1) -3276832767(

  • )unsigned signed signedunsigned(signed)signed6 [signed] int unsigned int [signed] short [int] unsigned short [int]

  • [signed] long [int] unsigned long [int]unsignedsigned(01)unsigned(bit)1234687-123-3ab:int a;unsigned int b;

  • a-3276832767b0655353.4(a) a(32767)3.4(b) b(65535)3.4

  • Clongintshortintintshort16long32Vax 750 short16intlong32(word)nt1616long32Vax323221long64intlong32long32short16int16

  • 32longlongsigned short int shortsignedsigned(13)3.5(cturbo Ms )

  • 3.5

  • 3. cbasicfortranpascalint ab(ab)unsigned short cd(cd) long ef (ef)(6)

  • 3.2main(){int abcd; /*abcd*/ unsigned u /*u*/ a=12b=-24u=10 c=a+ud=b+u printf("a+u=%db+u=%d\n"cd) } a+u=22b+u=-14

  • intunsigned int(3.7)4. turbo cint327671?3.3main(){int ab; a=32767;

  • b=a+1; printf("%d%d"ab);}32767-32768

    3.6

  • 3.6a0151111 150-32768b-32768-327683276732767 32767132768-32768cblong32768

  • 3.3.3 intshort intlong intunsigned intunsigned shortunsigned long??(1) -32768+32767intintlong int(2) -2147483648+2147483647long int

  • (3) c(turbo c)short intintintintshort intintshort int(4) uunsigned int12345uunsigned int(3.4(b)-12345u-1234553191(5) lllong int

  • 123l432l0llong intlong int123123l

  • 3.4 3.4.1 (real number)(floating-point number)(1) () .123 123. 123.0 0.0(2) 123e3123e3123103e(e)ee32.1e3.5e3 e

  • 123.456123.456e0 12.3456e1 1.23456e2 0.123456e3 0.0123456e4 0.00123456e51.23456e2 e(e)()2.3478e2 3.0999e5 6.46832e1212.908e10 0.4578e3 756e05689.655.68965e+003 0.568965e+00456.8965e+002

  • 1. 4(32)3.7 3.14159 3.73.4.2 3.7

  • 24(32)CCc24()8()(bit)

    2. C(float)(double)(long double)

  • ANSI C double32(bit)3.2c(turbo c Ms c borland c ):floatxy(xy) double z (z)

  • long double t; (t)long double

    3. a 20a3.4

  • main(){float ab; a = 123456,789e5; b = a + 20 ; printf("%f"b); }printf%f baa20a+20123456789207

  • ab12345678848.000000?201.0/3*31

    3.4.3 Cf f = 2.45678 * 4523.65

  • 2.456784523.65(64)7fff(1.65f 654.87f)(32)floatdoublelong doublea float a a=111111111float7adouble9a

  • 3.5 3.5.1 C()axd?aaC\printf\n

  • 3.5 ain() printf(" ab c\t de\rf\tg\n"); printf("h\ti\b\bj k"); printfprintf ab c\t89911de

  • \r()(1)f\t9g\nprintf1h\t9i(10)\b \b\b\b8j k

  • fab c gde h jik f gde

    h j k\r() ab c f gdeh i

  • ii

  • 3.5.2 ()charc1c2c1c2c1c2c1='a'c2='b'

  • 3.5.3 ASCIIaASCII97b98c1c23.8(a)3.8(b)3.8

  • ASCIIASCII ASCIIASCII29

  • 3.6 main() {char c1c2; c1=97; c2=98; printf("%c %c\n"c1c2);/**/ printf("%d %d\n"c1c2);/**/ c1c2349798c1c2c1='a'c2='b'

  • abASCII9798349798c1c2c1=ac2=babascii97985ab%c697983.9

  • ab9798(%c)(%d)3.90255 3.7main() {char c1c2 c1='a';

  • c2='b'; c1=c1-32; c2=c2-32; printf("%c%c"c1c2) abababaascii97a65b98b66asciiascii32ca+3297a-3265

  • Cbasicaaascasciichrasciiprintchr(asc("a")-32)int i; char c;

  • i='a' c=97%di97%cca printf("%c%d\n"cc); printf("%c%d\n"ii);a97 a97

  • (pdpVax-11turbo c)signed char-128127ascii01270%dascii1282551%d: char c=130; printf(%d, c);

  • -126unsigned char 0255signed char unsigned charsigned intunsigned int

  • 3.5.4 c:how do you do. CHINA""a"123.45":printf("how do you do.")aac

  • char c;c='a';c="a"c=CHINA" aa?cC\0\0ASCII

  • 0asciiascii0CHINA C H I N A \056\0\0printf("how do you do.")\0\0\0a2a\0c

  • c="a"c(basicab)6

  • 3.6 Cint a=3; /* a3 */float f=3.56;/* f3.56 */char c='a'; /* c'a' */: int abc=5abccc5

  • 3int a=3b=3,c=3;abc3int a=b=c=3;(7)int a=3;

  • int a;/*a */ a=3 /*3a */int abc=5;int abc; /*abc*/ c=5 /*5c*/

  • 3.7 (intshortlong)(floatdouble):10+'a'+15-87651234 *'b'3.103.10

  • shortintfloat(floatdouble)intdoubleintdouble(double)doubleintunsigned intlongdouble

  • intdoubleintdoubleintlongintlongfloatdoubledoubledoublelonglonglongiffloatddoubleelong10+'a'+i*f-d/e

  • 10+aa97107*+i*fifdoubledouble107i*f107(010700000)doubleedoubled/edouble10+'a'+i*fd/edouble

  • 3.8 3.8.1 CC=c1 (+-*/%)2 (=====)3 (&&||)4 (> ~ |&)5 (=)6 (?)

  • 7 ()8 (*&)9 (s i z e o f)10 ( () )11 (->)12 ([])13 (())

  • 3.8.2 1. +(3+5+3)-(5-2-3)*(3*5)/(5/3)%(%7%43)5/31-5/3-1

  • -25/3=1-5/3=-1+, -, *, /doubledouble2. ()ccca*b/c-1.5+'a'

  • Ca-b*cba-(b*c)a-b+cC()ba-bc

  • ()c3.7

  • 3. (double)a (adouble) (int)(x+y) (x+y) (float)(5%3) (5%3float)()()(int)x+yxy

  • (int)x(int(x))xfloatintxx(float)3.8 main() float x int i

  • x=36 i=(int)x printf("x=%f i=%d"xi); x=3.600000 i=3xfloat3.63+6.5%xfloat

  • x%3(int)x % 3%(int)x3

    4. 11++i--i(ii()1)

  • i++i--(ii()1)++ii++i=i+1++ii++++ii=i+1ii++ii=i+1i3=++i(i4 j4) =i++( i33i4)i=3; printf("%d"++i);

  • 4printf("%d"i++)3

    (1) (++)(--)5++(a+b)++5(a+b)++a+b56?

  • (2) ++---i++ii3(-i)++(-i)++++()-(i++)printf("%d"-i++)i3-i-3i4 -(i++)i3-3i11 -4

  • ()1

    5. (1)Cansi ca = f1( )+f2( )f1( ) f2( )f1( ) f2( )

  • (i++)+(i++)+(i++)i3?12 3+4+512(turbo cs c)i3i 3i93i612 i = 3;a = i++;

  • b = i++;c = i++;d = a + b + c;d12i6c(2) c?i+++(i++)+?i+(++)?c()()i+++

  • (i++)+i+(++)i+++j(i++)+j(3) CCi3printf("%d%d"ii++)33printf(ii++)2i++3(i)1

  • 2i++, i14printfi4printf43 j = i++;printf("%d %d" ji); c

  • ++--

    3.9

    1. =a=3()3a

  • 2. (1) ()ii=3.56i3 (2) 23floatff=23232300000f23doubledd=23232300000000000000

  • d(3) doublefloat7float(32)float f;double d=123.456789e100;f=d;floatdouble1664(bit)

  • (4) 12(8)8 unsigned char888\376inti3.11(a)3.11

  • (turbo c)(signed char)080181(3.11(b))c(\376)-2i-2(5) intshortlongchar8char() int i=289; char c='a'; c=i;

  • 3.12c33 %cc! (ascii33)

    3.12(6) (int)long16long16int(0)long160int(1)long161

  • longintlong16()inta longb=8 a=b3.13b=65536(0200000)a03.14b=020000000000()a0

  • 3.143.13

  • (7) unsigned intlong int0unsigned(unsigned int=>intunsigned long=>longunsigned short=>short)unsignedunsignedunsigned int a=65535; int b; b=a

  • ab(3.15)bint13.15b-1printf(%db)(8) unsignedunsigned()3.9 main() unsigned a int b=-1 a=b printf("%u"a)

  • %u 65535

    3.163.16b032767c

  • ()

  • 3. ==++=a+=3a=a+3 x*=y+8 x=x*(y+8) x%=3 x=x%3a+=3a(3)a3ax*=y+8x(y+8)x

  • a += b (ab) a +=b (a+=) a = a + b (=a) b x %= y+3 x %=(y+3) x = x %(y+3) (x=x%y+3)()c10

  • +=-=*=/=%==&==|=511C()

    4.

  • a=5a=55(a5)a=(b=5)b=55a=(b=5)b=5a=b a55b=5a=(b=5)a=b=5

  • b=5(5)aa=b=c=5 (5 a b c5)a=5+(c=6) (11a11c6)a=(b=4)+(c=6) (10a10b4c6)a=(b=10)/(c=2) (5a5b10c2)a+=a-=a*a

  • a12 a-=a*a a=a-a*a=12-144=-12 a+=-132a=a+(-132)=-132-132=-264()printf("%d"a=b);b3 a(a=b)3c5

  • 3.10 C3+56+8121223+56+814

  • a=3*5a*43*5a*4 a31212a a12a=3*5a*4? a=3*5(a=3*5)a15a*46060

  • (a=3*5a*4)a+5 a15a*460(a15)a+52020123nn:

  • x=(a=36*3) x=a=36*axx18x3(for)5

  • printf("%d%d%d"abc)abcprintf37printf("%d%d%d"(abc)bc)(abc)cprintfCc

  • 3.1 cc?

    3.2 C? 3.3 ()(1)10 (2)32 (3)75[](4)-617(5)-111 (6)2483 (7)-28654 (8)21003

  • 3.4 3 25 -2 32769int(16)long(32)short(16)signed char(8)unsigned intunsigned longunsigned short

  • unsigned char

    3.5 ?

    3.6 main() {char c1='a'c2='b'c3='c'c4='\101'c5='\116'; printf("a%c b%c\tc%c\tabc\n"c1c2c3); printf("\t\b%c %c"c4c5);

  • 3.7 china4a4eeachinaglrec1c2c3c4c5chinac1c2c3c4c5glre

    3.8 3.6ain() int c1c2(char c1c2) c1=97

  • c2=98printf("%c%c\n"c1c2)printf("%d %d\n"c1c2); ??

    3.9 (1) x+a%3*(int)(x+y)%2/4 x=25a=7y=47 (2) (float)(a+b)/2+(int)x%(int)y a=2b=3x=35y=25

  • 3.10 main() int imn i=8 j=10 m=++i n=++ printf("%d%d%d%d"ijmn)

  • 3.11 aa=12an(1) a+=a(2) a-=2(3) a*=2+3(4) a/=a+a(5) a%=(n%=2)n5(6) a+=a-=a*=a