2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Chap 2 基本數(shù)據(jù)類型和表達(dá)式,數(shù)據(jù)類型基本數(shù)據(jù)類型整型int實(shí)型(浮點(diǎn)型)float double字符型char構(gòu)造數(shù)據(jù)類型數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉指針類型空類型對(duì)數(shù)據(jù)的操作-運(yùn)算運(yùn)算符和表達(dá)式,Chap 2 基本數(shù)據(jù)類型和表達(dá)式,常量和變量整數(shù)類型實(shí)數(shù)類型字符類型表達(dá)式數(shù)據(jù)的存儲(chǔ)和類型轉(zhuǎn)換,2.1 常量和變量,2.1.1 常量常量(常數(shù)):數(shù)據(jù)123 (整型) 4.56 (實(shí)型) 

2、’A’ (字符型)符號(hào)常量:用標(biāo)識(shí)符表示的常量數(shù)據(jù)?:PI?:EPS通常用大寫字母,例2-1 求球的表面積和體積,# include void main( ){ float r, s, v; scanf("%f", &r); s=4.0*3.14*r*r ; v=4.0/3.0*3.14*r*r*r ; printf("s=%f

3、, v=%f\n", s, v);},s=4.0*3.14159*r*r ; v=4.0/3.0*3.14159*r*r*r ;,例2-2 符號(hào)常量,# define PI 3.14# include void main( ){ float r, s, v; scanf("%f", &r); s=4.0*PI*r*r ; v=4.0/3

4、.0*PI*r*r*r ; printf("s=%f, v=%f\n", s, v);},# define PI 3.14159,2.1.2 變量,C語言中的量常量(常數(shù)):數(shù)據(jù)符號(hào)常量:用標(biāo)識(shí)符表示的常量數(shù)據(jù)在程序的運(yùn)行過程中,其值不能被改變變量:存放數(shù)據(jù)的工作單元在程序的運(yùn)行過程中,其值可以改變,變量的定義,變量定義的一般形式  類型名 變量表;變量名:小

5、寫字母,見名知義類型名:整型int實(shí)型(浮點(diǎn)型)float double字符型char,變量的定義,int i, j, k; (定義i, j, k為整型變量)char c; (定義c為字符型變量)float x, y;double area, length;變量名代表內(nèi)存中的一個(gè)存儲(chǔ)單元用于存放該變量的值該存儲(chǔ)單元的大小由變量的數(shù)據(jù)類型決定,變量的定義與使用,變量必須 先

6、定義,后使用。# include void main( ){ int x, y; x = 3; y = x*x ; printf(“%d”, y ) ;},,,一個(gè)變量名只能定義一次。 變量一般都定義在程序的頭上,不能定義在程序的中間或后面。,變量的使用,變量: 先定義,后使用 先賦值,后引用#

7、 include void main( ){ int x, y; x = 3; y = x*x ; printf(“%d”, y ) ;},,變量的賦值,賦初值:在定義變量時(shí)對(duì)它賦值 int a = 5, b = 3;賦值表達(dá)式:int a, b;a = 5;b=3;輸入函數(shù): scanf(“%d%d”, &a, &b);,2.2 整數(shù)類型,2.2

8、.1 整型常量(整數(shù))三種表現(xiàn)形式十進(jìn)制整數(shù):正、負(fù)號(hào),0-9,首位不是0例:10,123八進(jìn)制整數(shù):正、負(fù)號(hào),0-7,首位是0例:010,012316進(jìn)制整數(shù):正、負(fù)號(hào),0-9,a-f,A-F,前綴是0x,0X例:0x10,0x123,123 = 1111011 (B) 二進(jìn)制 =173 (O) 八進(jìn)制 =7B (X) 十六進(jìn)制int i=0173;int j=0x7b;

9、int k=123;例:16 020 0x10 10 012 0XA,,2.2.2 整型變量,int ai, bi, ci, di = 0;ai = 1;bi = -27;ci = 012;整型變量的值是整數(shù),它的取值范圍有限最小取值范圍 [-32768,32767],2.2.3 整型數(shù)據(jù)的輸入輸出,printf(格式控制, 輸出參數(shù)1, ... , 輸出參數(shù)n);scanf

10、(格式控制, 輸入?yún)?shù)1, ... , 輸入?yún)?shù)n);格式控制說明 %… %d:以十進(jìn)制形式輸入、輸出整數(shù) %o:以八進(jìn)制形式輸入、輸出整數(shù) %x:以十六進(jìn)制形式輸入、輸出整數(shù),例2-3,# include void main( ){ printf("%d, %o, %x\n", 10, 10, 10); printf(&quo

11、t;%d, %d, %d\n", 10, 010, 0x10); printf("%d, %x\n", 012, 012); },運(yùn)行結(jié)果為: 10, 12, a 10, 8, 16 10, a,例2-4,# include void main( ){ int a, b; scanf("%o%d",

12、&a, &b); printf("%d%5d\n", a, b); printf("%x, %d\n", a, b); },輸入:17 17,運(yùn)行結(jié)果為:15 17f, 17,2.3 實(shí)型數(shù)據(jù),2.3.1 實(shí)型常量(實(shí)數(shù))浮點(diǎn)表示:0.123 123.4 1.科學(xué)計(jì)數(shù)法:123e4 0.2e-12.3.2 實(shí)型變量單精度浮點(diǎn)型fl

13、oat x, y, z;雙精度浮點(diǎn)型double u, v, w;,4字節(jié)存儲(chǔ)8字節(jié)存儲(chǔ),數(shù)據(jù)精度和取值范圍,數(shù)據(jù)精度 取值范圍單精度 七位有效數(shù)字 ±(10-38 - 1038)雙精度 十六位有效數(shù)字 ±(10308 - 10308 ),數(shù)據(jù)精度 與 取值范圍是兩個(gè)不同的概念: float x = 1.23456789;

14、 float y = 123456789; 雖在數(shù)據(jù)表示范圍內(nèi),但無法精確表達(dá)。 float z = 1.2e55 z的精度要求不高,但數(shù)據(jù)表示范圍超出。并不是所有的實(shí)數(shù)都能在計(jì)算機(jī)中精確表示。 實(shí)型常量的類型都是double,x=1.234568y=1.234567e8,2.3.3 實(shí)型數(shù)據(jù)的輸入和輸出,輸出 printf( )float 和double使用相同的格式控制說明%f:以小數(shù)形式輸出浮

15、點(diǎn)數(shù),保留6位小數(shù)。 %e:以指數(shù)形式輸出 1位整數(shù).5 位小數(shù)e3位指數(shù),例2-5 實(shí)型數(shù)據(jù)的輸出,# include void main( ){ float f = 123.45; double d = 3.1415926; printf("%f, %e\n", f, f); printf("%f, %e\

16、n", d, d); printf("%5.3f, %5.2f, %.2f\n", d, d, d); } 一共5位,小數(shù)3位,小數(shù)點(diǎn)一位,運(yùn)行結(jié)果為:123.450000, 1.23450e+023.141593, 3.14159e+003.142, 3.14, 3.14,,,例2-6,假定float的精度為7位,double的精度為16位 # inc

17、lude void main( ) { float f; double d1, d2; f = 1234567890123.123456; d1 = 1234567890123.123456; d2 = 1234567890123.12; printf("f = %f \n d1 = %f \n d2 = %f \n", f, d1, d2);},運(yùn)行結(jié)果為

18、: f = 1234567954432.000000 d1 = 1234567890123.123540 d2 = 1234567890123.120120,,實(shí)型數(shù)據(jù)的輸入,scanf( )float 和double使用不同的格式控制說明%f和%e相同 %f : 以小數(shù)或指數(shù)形式輸入一個(gè)單精度浮點(diǎn)數(shù)%e%lf: 以小數(shù)或指數(shù)形式輸入一個(gè)雙精度浮點(diǎn)數(shù)%le,例2-7,# include v

19、oid main( ){ float f1; double d1; scanf("%f%lf", &f1, &d1); printf("f1 = %f \n d1 = %f \n", f1, d1);},輸入:12 1234567.12345,運(yùn)行結(jié)果為:f1=12.000000d1=1234567.123450,2.4 字符類型,2.

20、4.1 字符常量’a’ ’A’ ’9’ ’+’ ’$' ASCII字符集:列出所有可用的字符每個(gè)字符:惟一的次序值( ASCII 碼)'0'-'9''A'-'Z''a'-'z',2.4.1 字符常量,字符的存儲(chǔ)在內(nèi)存中,每個(gè)字符占用一個(gè)字節(jié),存儲(chǔ)該字符的ASCII碼字

21、符 ASCII碼 內(nèi)存'A' 65 0100 0001 'B' 66 0100 0010 字符的數(shù)值特征字符可以當(dāng)整數(shù)用,ASCII碼'A'+1 =?,2.4.2 字符變量,char c1, c2, c3;c1='2';

22、c2='#';c3='A';或c3=65;,int i;i=65;或i='A';整型變量和字符變量的定義和賦值可以互換【 ASCII碼范圍】,2.4.3 字符型數(shù)據(jù)輸入輸出,scanf( )和printf( ) %cchar ch;scanf("%c", &ch);printf("%c", ch);

23、getchar( )和putchar( )char ch;ch=getchar( );putchar(ch);輸入輸出一個(gè)字符,例2-9,# include void main( ){ char ch1, ch2; ch1=getchar(); ch2=getchar(); putchar(ch1); putchar('#'); putchar(ch2)

24、;},運(yùn)行結(jié)果為:A#b,輸入:Ab,例2-10,# include void main( ){ char ch1, ch2, ch3; scanf("%c%c%c", &ch1, &ch2, &ch3); printf("%c%c%c%c%c", ch1, '#', ch2, '#', ch3);},

25、運(yùn)行結(jié)果1為:A#b#C,輸入1:AbC,運(yùn)行結(jié)果2為:A# #b,輸入2:A bC,輸入數(shù)據(jù)包括字符和數(shù)值的混合# include void main( ){ int i; char c; float x ; scanf("%d%c%f", &i, &c, &x ); printf( "%d %c %f", i,

26、c, x );},輸入:3a1.2輸出:3 a 1.200000,數(shù)據(jù)之間不能用空格等間隔,也不需要單引號(hào),例2-11,已知:'b'的ASCII碼98# include void main( ){ printf("%c,%d\n", 'b', 'b'); printf("%c,%d\n", 98, 98);

27、 printf("%c,%d\n", 97, 'b'-1);},運(yùn)行結(jié)果為:b,98b,98a,97,# include void main( ){ char ch='b'; printf("%c,%d\n", ch, ch);},printf'b' %c putchar98 %d142

28、 %o62 %x,scanf'b' %c getchar98 %d142 %o62 %x,scanf("%c", &ch);,字符運(yùn)算,大小寫英文字母轉(zhuǎn)換 'b' - 'a' = 'B' - 'A' …… 'z' - 'a' = 'Z

29、9; - 'A' 'm' ?? 'M',數(shù)字字符和數(shù)字 9 - 0 = '9' - '0' '9' = 9 + '0''8' ?? 8,'a'-'A''A'-'a','0','m' - '

30、a' + 'A' = 'M''M' - 'A' + 'a' = 'm','8' - '0' = 88 + '0' = '8',2.4.4 轉(zhuǎn)義字符,反斜杠后跟一個(gè)字符或數(shù)字字符常量,代表一個(gè)字符 '\n' '\101' &

31、#39;\x41' 'A'所有字符都可以用轉(zhuǎn)義字符表示,2.5 表達(dá)式,2.5.1 算術(shù)表達(dá)式算術(shù)運(yùn)算符單目 + - ++ --雙目 + - * / %注意! % 模(求余) 整型數(shù)據(jù)5%6=5,9%4=1,100%4=0 / 整數(shù)除整數(shù),得整數(shù)1/2=0,9/4=2雙目運(yùn)算符兩側(cè)操作數(shù)的類型要相同,算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,單目 + - ++ --雙目 *

32、 / %雙目 + -,從右向左,-5+3%2 = (-5)+(3%2) = -43*5%3 = (3*5)%3 = 0-i++,-(i++),算術(shù)表達(dá)式,例2-15 數(shù)學(xué)式 --> C表達(dá)式s(s-a)(s-b)(s-c)(x+2)e2x,s*(s-a)*(s-b)*(s-c),(x+2)*exp(2*x),2.5.2 賦值表達(dá)式,賦值運(yùn)算符 =賦值表達(dá)式變量=表達(dá)式計(jì)算賦值運(yùn)算符

33、右側(cè)表達(dá)式的值將賦值運(yùn)算符右側(cè)表達(dá)式的值賦給左側(cè)的變量將賦值運(yùn)算符左側(cè)的變量的值作為表達(dá)式的值n = 2;n = n+1;賦值運(yùn)算符的優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí)較低,從右向左x=y=3;,x=(y=3),例 大小寫字母轉(zhuǎn)換,輸入一個(gè)小寫字母,輸出對(duì)應(yīng)的大寫字母。# include void main( ){ char ch ; scanf("%c", &ch);

34、 ch = ch - 'a' + 'A'; printf("%c\n", ch); },,2.5.3 逗號(hào)表達(dá)式,表達(dá)式1, 表達(dá)式2, ……,表達(dá)式n先計(jì)算表達(dá)式1,然后計(jì)算表達(dá)式2,……,最后計(jì)算表達(dá)式n的值,并將表達(dá)式n的值作為逗號(hào)表達(dá)式的值.逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,從左向右a = (3+5 , 4*6 ) a = 3+5 , 4*6,a=24a=8

35、,自增運(yùn)算符和自減運(yùn)算符,自增運(yùn)算符 ++ 和自減運(yùn)算符 --int n,n++ ++n n-- --n (只適合變量運(yùn)算)使變量的值增1或減1++n n++ n=n+1--n n-- n=n-1取變量的值作為表達(dá)式的值++n:n=n+1;取n值作為表達(dá)式++n的值n++:取n值作為表達(dá)式n++的值;n=n+1,自增運(yùn)算和自減運(yùn)算,int i, k;i=2;k=++i;i=2

36、;k=i++;,i=3,i=3,k=3,k=2,k=ii=i+1,i=i+1k=i,例2-17,#include void main( ){ int a, b, c; b=5; c=5; a=++b+c--; printf("%d,%d,%d\n", a, b, c); a=b---c; printf(

37、"%d,%d,%d\n", a, b, c); a=-b+++c; printf("%d,%d,%d\n", a, b, c);},b=b+1, a=b+c, c=c-1,a=b-c, b=b-1,a=-(b++)+c,a=(b--)-c,a=-b+c, b=b+1,復(fù)合算術(shù)賦值運(yùn)算符,賦值運(yùn)算符簡單賦值運(yùn)算符 =復(fù)合(算術(shù))賦值運(yùn)算符 += -= *

38、= /= %=賦值表達(dá)式變量 賦值運(yùn)算符 表達(dá)式x += exp,x = x + (exp),例2-18,#include void main( ){ int x, y, z; z=(x=7)+(y=3); printf("%d,%d,%d\n", x, y, z); x=y=z=x+2; printf(&q

39、uot;%d,%d,%d\n", x, y, z); x*=y-3; printf("%d,%d,%d\n", x, y, z);},x=7, y=3, z=x+y,z=x+2, y=z, x=z,x=x*(y-3),2.6 數(shù)據(jù)的存儲(chǔ)和類型轉(zhuǎn)換,2.6.1 數(shù)據(jù)的存儲(chǔ)整型數(shù)據(jù)的存儲(chǔ)設(shè)整數(shù)占2個(gè)字節(jié)1 000 0001 1000 00010 000 0001 10

40、00 0001,原碼 反碼 補(bǔ)碼,正數(shù)的原碼、反碼和補(bǔ)碼相同1的補(bǔ)碼 0 000 0000 0000 0001……32767的補(bǔ)碼 0 111 1111 1111 1111(215-1)負(fù)數(shù) -1原碼 1 000 0000 0000 0001 反碼 1 111 1111 1111 1110 原碼取反補(bǔ)碼 1 111 1111 1111 1111 反碼+1

41、,原碼 反碼 補(bǔ)碼,32767補(bǔ)碼 0 111 1111 1111 1111-32767原碼 1 111 1111 1111 1111反碼 1 000 0000 0000 0000 原碼取反補(bǔ)碼 1 000 0000 0000 0001 反碼+1-32768 = -32767-1補(bǔ)碼 1 000 0000 0000 0000,-32768 -1 0

42、1 32767,32767 0111 1111 1111 1111 …… 1 0000 0000 0000 0001 0 0000 0000 0000 0000 -1 1111 1111 1111 1111 -2 1111 1111 1111 1110 …… -32767

43、 1000 0000 0000 0001 -32768 1000 0000 0000 0000,32768 = 32767+11000 0000 0000 0000 = -32768-32769 = -32768-10111 1111 1111 1111 = 32767,實(shí)型和字符型數(shù)據(jù)的存儲(chǔ),實(shí)型數(shù)據(jù)的存儲(chǔ)-1.2345e+02符號(hào)位 階碼 尾數(shù)字符型數(shù)據(jù)的存儲(chǔ)一個(gè)字節(jié)存儲(chǔ)ASC

44、II碼,2.6.2 整數(shù)類型的擴(kuò)展,有符號(hào) 無符號(hào) 數(shù)據(jù)長度int unsigned [int] 16或32short [int] unsigned short [int] 16long [int] unsigned long [int] 32,無符號(hào) u

45、nsigned設(shè)整數(shù)占2個(gè)字節(jié)0000 0000 0000 0000 01111 1111 1111 1111 65535(216-1),整數(shù)類型的最小取值范圍,int -32768~32767 (-215~215-1)short [int]long [int] -2147483648~ 2147483647

46、 (-231~231-1)unsigned [int] 0~65535 (0~216-1)unsigned short [int] unsigned long [int] 0~4294967295 (0~232-1),整型常量的表示,不能超出整型數(shù)據(jù)的取值范圍比長整型數(shù)還要大的數(shù)只能用實(shí)數(shù)來表示整型常量的類型整數(shù)后的字母后綴123L

47、 long123U unsigned123LU unsigned long數(shù)值,整型數(shù)據(jù)的輸入輸出,printf(格式控制, 輸出參數(shù)1, ... , 輸出參數(shù)n);scanf(格式控制, 輸入?yún)?shù)1, ... , 輸入?yún)?shù)n);格式控制說明 %… 十進(jìn)制 八進(jìn)制 十六進(jìn)制int

48、 %d %o %xlong %ld %lo %lxunsigned %u %o %xunsigned long %lu %lo %lx,例2-

49、19,#include void main( ){ int ai; long cl; unsigned bu; unsigned long dul; ai = 32767; bu = 65535U; cl = -2147483648L; dul = 4294967295LU; printf("%d,%u,%ld,%lu\n",ai, bu, cl,

50、 dul); printf("%x,%x,%lx,%lx\n",ai, bu, cl, dul);},7fff, ffff, 80000000, ffffffff,2.6.3 數(shù)據(jù)類型轉(zhuǎn)換,不同類型數(shù)據(jù)的混合運(yùn)算類型轉(zhuǎn)換自動(dòng)轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換運(yùn)算,自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算),水平方向:自動(dòng)垂直方向:低 ? 高,自動(dòng)類型轉(zhuǎn)換(非賦值運(yùn)算),'A' + 12 – 10.05 65

51、 77 66.95,,,,自動(dòng)類型轉(zhuǎn)換(賦值運(yùn)算),變量 賦值運(yùn)算符 表達(dá)式計(jì)算賦值運(yùn)算符右側(cè)表達(dá)式的值將賦值運(yùn)算符右側(cè)表達(dá)式的值賦給左側(cè)的變量將賦值運(yùn)算符左側(cè)的變量的值作為表達(dá)式的值,將賦值運(yùn)算符右側(cè)表達(dá)式的類型自動(dòng)轉(zhuǎn)換成賦值號(hào)左側(cè)變量的類型,自動(dòng)類型轉(zhuǎn)換(賦值運(yùn)算),double x;x = 1;,x = ?,short a = 1000;char b = 'A';long

52、c = 80000;c = a + b;,c = ?,int ai;ai = 2.56;,ai = ?,int bi;bi = 0x12345678L,bi = ?,,例2-20,# include void main( ){ long a, b, c;   a=1000000L; b=1000*1000LU; c=1000*100

53、0; printf("%ld,%ld,%ld\n", a, b, c);},運(yùn)行結(jié)果為:1000000,1000000,16960,強(qiáng)制類型轉(zhuǎn)換,強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型名) 表達(dá)式優(yōu)先級(jí)同++,從右向左(double)3(int)3.8(double)(5/2)(double)5/2,3.032.02.5,運(yùn)算符優(yōu)先級(jí),( )- + ++ -- (類型名)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論