C語言程序設(shè)計筆記-知識點及例題_第1頁
C語言程序設(shè)計筆記-知識點及例題_第2頁
C語言程序設(shè)計筆記-知識點及例題_第3頁
C語言程序設(shè)計筆記-知識點及例題_第4頁
C語言程序設(shè)計筆記-知識點及例題_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章程序設(shè)計基本概念

1.1程序和程序設(shè)計

程序:連續(xù)執(zhí)行的一條條指令的集合稱為“程序”。

1.1.2程序設(shè)計

1.確定數(shù)據(jù)結(jié)2.確定算法3.編碼4.在計算機上調(diào)試程序5.整理并寫出文檔資料

1.2算法

定義:是指為了解決某個特定的問題而采取的確定且有限的步驟。

1有窮性2確定性3可行性4有零個或多個輸入5有一個或多個輸出

1.3結(jié)構(gòu)化程序設(shè)計和模塊化結(jié)構(gòu)

結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成

1順序結(jié)構(gòu)2選擇結(jié)構(gòu)3循環(huán)結(jié)構(gòu)

12)計算機能直接執(zhí)行的程序是(B)o

A)源程序B)目標(biāo)程序C)匯編程序D)可執(zhí)行程序

13)以下敘述中正確的是(D)

A)程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試

B)程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)

C)程序設(shè)計的任務(wù)就是確定所用算法

D)以上三種說法都不完整

第二章:C程序設(shè)計的初步知識

(11)以下敘述中正確的是(C)o

A)C程序的基本組成單位是語句B)C程序中的每一行只能寫一條語句

二級C語言程序設(shè)計試卷)

C)簡單C語句必須以分號結(jié)束D)C語句必須在一行內(nèi)寫完

(11)以下敘述中正確的是(C)

A)C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面

B)C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個語句

C)C程序書寫格式自曰,一個語句可以寫在多行上

D)用C語言編寫的程序只能放在一個程序文件中

第二課:C語言的基礎(chǔ)知識

2.2標(biāo)識符,常量和變量

2.2.1標(biāo)識符:

定義:由字母,數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線的。這樣的

組成就是標(biāo)識符。

注意:在C中大寫字母與小字字母被認(rèn)為是兩個不同的字符。

分類:

關(guān)鍵字:在C中己經(jīng)定義好了的,不能用作它用的。如ifdoubleint等等。

預(yù)定義標(biāo)識符:如printfscanf

用戶標(biāo)識符:用戶根據(jù)自己的需求來定義的。

(12)以下選項中,能用作用戶標(biāo)識符的是(C;

A)voidB)8_8C)_0_D)unsigned

(11)以下選項中合法的標(biāo)識符是(C)

A)1-1B)1—1C)-11D)1—

(12)以下選項中不合法的標(biāo)識符是(C)

A)printB)F0RC)&aD)_00

2.2.2常量:

定義:是指在程序的執(zhí)行的過程中,其值不會被改變的量。

分類:

、整型常量:沒有小數(shù)的常量

如:391234等等都是。

實型常量:有小數(shù)點的常量

如:3.93.03.

字符常量:由單個字符組成的量

如:‘a(chǎn)''b''3’

字符串常量:至少由一個字符組成的量

如:“a”“abc”“beijing”

符號常量:符號常量的值到底是多少,這是由在來定義符號有量時來決定

(13)以下選項中,能用作數(shù)據(jù)常量的是ID)

A)oll5B)0118C)1.5el.5D)115L

(13)以下選項中不能作為C語言合法常量的是(A)。

A)'cd'B)0.le+6C)〃\a〃D)'\0U'

(13)以下選項中不屬于字符常量的是(B)

A)'C'B)C)'\xCC0*D)'\072,

2.3整型常量與實型常量

整型常量的幾個表示方法

十進制數(shù):

八進制數(shù):以0開頭的數(shù)字,由0-7組成。

下列合法的八進制數(shù)是

A,0B,028C,-077D,01.0

十六進制數(shù):以0X開頭,由0-9和A-F組成.

A,oxffB,OxabcC,0x11D,0x19

實型常量123.4

小數(shù)形式:123.4

指數(shù)形式:1.234e2

L字母e和E之前必須要有數(shù)字

2.字母e和E之后的數(shù)字必須是整數(shù)

3.字母e,和數(shù)字之間不能有空格。

A,2.607E-10.8103E2-77.77456E-20.le+61.23E1.2

2.2.4變量:

1.定義:在程序的運行過程中其值可以被改變的量,就叫變量。

2.原則:變量必須先定義后使用。變量定義的過程就是給變量開辟存儲單元的過程。

3.分類:

整型變量:用關(guān)鍵羋血來表示.

shortint短整型

longint長整型在內(nèi)存中占4個字節(jié)如123L

unsigned無符號如有-200U這就是錯的。

變量的定義:inta這是定義了一個整型變量a.

實型變量:用關(guān)鍵字double或float來表示。

float單精度在內(nèi)存中占4個字節(jié)

double雙精度在內(nèi)存中占8個字節(jié)。

2.2.5算術(shù)表達式

一、基本的算術(shù)運算符

+?*/%這些是雙目運算符(就是指操作對象有兩個)

注意:

除%外,其它的運算符的運算對象可以是整型也可以是實型。%的操作對象只

能是整型。

如10%3=110.7%310%4.5x%3=0

+-也可以做為單目運算。-5.4+4.9

說明:

1.如果雙目運算符兩邊運算數(shù)的類型一致,則所得結(jié)果的類型與運算數(shù)的類型一

致。如1.0/2.0=0.51/2=0

2.如果雙目運算符兩邊運算數(shù)的類型不一致,則系統(tǒng)會自動進行類型轉(zhuǎn)換,使兩邊

的類型一致后,再進行運算。

1.0/2=0.5

3,所有的單精度數(shù)據(jù),在運算過程中都以雙精度進行運算。

二、優(yōu)先級

()+-*/%+-

由高------------低

如(5+1)/2=???

2.5.3強制類型轉(zhuǎn)換表達式

格式:(類型名)(表達式)

例:(int)3.23d-3

(double)1()%3=?

(14)表達式:4-(9)%2的值是(B)

A)0B)3C)4D)5

(14)設(shè)變量已正確定義并賦值,以下正確的表達式是(C)

A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0

2.6賦值表達式

格式:變量名二表達式

注:1.不可以顛倒(左邊必須是變量名,右邊必須是C語言中合法的表達式)

2.功能就是先求出右邊表達式的值,然后把此值賦值給賦值號左邊的變量。確切

的說是把數(shù)據(jù)存入以該變量為標(biāo)識的存儲單元中去。a=4,a=7

3.結(jié)合性的優(yōu)元級僅高于逗號表達式。順序是自右向左的。如a=2+7/3

4."="是一個賦值號,不是一個等號。

5.x伸。變量的值也是可以傳遞和賦值的。它的意思就是將變量Y中的值賦值到

X中去。同癢N=N+1也成立

6.賦值運算符的左側(cè)只能是變量,不能是常量或表達式a+b=c這就是違法的

70賦值號的右邊也可以是一個賦值表達式。如a=b=7+l;

補充;表達式與語句的區(qū)別,

表達式后面加一個分號就是語句。

2.6.2復(fù)合賦值表達式

例:

a+=3....a=a+3同理可得a*=3/=-=

a+=a-=a+aa的初值是9

a+=a-=18

a+=(a=a-18)

a+=(a=-9)

a+=a

-18

(15)若有定義語句:inlx=10;,則表達式x-=x+x的值為(B)

A)-20B)-1()C)0D)10

(14)設(shè)有定義:inlx=2;,以下表達式中,值不為6的是(D)

A)x*=x+lx=x*(x+l)B)x++,2*x

C)x*=(1+x)D)2*x,x+=2

(17)若變量均已正確定義并賦值,以下合法的C語言賦值語句是(A)

A)x=y==5;B)x=n%2.5;C)x+n=lD)x=5=4+1;

2.7++和一一的講解

++咱身加1

-:自身減1

i=3i++I=i+1i=4

單目

3++

++II++

當(dāng)++在前,先自身加1,然后再干別人讓干的事情。

當(dāng)++在后,先別人讓干的事情然后再干自身加1。

inti=3;

inta;

a=i++;a=3

a=++I;a=4

第三課:輸入和輸出語句

3.2輸出語句的講解

一、printf函數(shù)的一般調(diào)用形式

格式:printf(格式控制,輸出項L輸出項2,.……);

在printf函數(shù)的最后面寫上;號就是輸出語句。

1,給輸出項白提供輸出格式說明

格式說明符:

作用:就是使數(shù)據(jù)按格式說明符的要求進行輸出。

組成:由%號和緊跟在其后的格式描述符組成。

int.....%d

float或double-%f或e%

char-....%c

2.提供原樣輸出的文字或字符

在“”中除了格式說明符之外的內(nèi)容要全部原樣輸出。

各個輸出項之間要用逗號隔開。

輸出項可以是任意合法的常量,變量或表達式。

printf中常用的格式說明

在格式說明符中,每一個格式說明符都必須以%號開頭由相應(yīng)的類型標(biāo)識字母結(jié)束。

但在他們之間可以有其它的一個內(nèi)容:

%c:輸出一個字符

%d:輸出一個十進制的數(shù)據(jù)

%o:以八進制格式輸出。

%X:以十六進制輸出

%u:無符號十進制輸出

%f:以帶小數(shù)點的數(shù)字輸出

%e:以指數(shù)形式輸出

%s:輸出一個字符串C

%%:輸出一個%號

%4d:輸出的數(shù)據(jù)長度是4個長度,當(dāng)原來的長度大于4個時會自動突破。小于4個時會

填充空格。

%x.yf:x代表數(shù)制的寬度(包括小數(shù)點)。Y代表小數(shù)點后面的小數(shù)位數(shù),

注意事項:

L輸出比較自由一些,輸出有的各個數(shù)之到底是什么,取決于格式說明符之間的內(nèi)容。

2.格式說明符要與輸出項一一對應(yīng)。

3.輸出語句中還可以有\(zhòng)n\r\t\a

4.盡量不要在輸出語句中改變輸出變量的值。

5.輸出的數(shù)據(jù)中如果存在變量,一定要定義過的。

輸入語句

格式:scanf(格式控制,輸入項1,輸入項2,…);

例如:想通過鍵盤輸入3個數(shù)分別給變量a,b,c。并且他們分別為整型,浮點型,雙精度

型。

輸入語句為scanf("%d%f%lf',&k,&a,&y);

說明:

1.格式說明符與輸出語句一樣。

2.在格式串中,必須含有與輸入項一一對應(yīng)的格式轉(zhuǎn)換說明符。

3.在VC6.0的環(huán)境下,要收輸入的DOUBLE型數(shù)據(jù)的格式說明符一定要用%此否

則數(shù)據(jù)不能正確的輸入

4.由于輸入是一個字符流,所以當(dāng)輸入的數(shù)據(jù)少于輸入項時,程序會等待用戶輸入,

直到滿足要求。當(dāng)輸入的數(shù)據(jù)多于輸入項時,多余的數(shù)據(jù)會自動作廢。

復(fù)合語句:多個語句被{}括起來,當(dāng)成一條語句來執(zhí)行。

空語句:最后的表示只有一個;

程序舉例:

lo編寫一個程序,從鍵盤上輸入兩個數(shù)字,讓后讓他們互換一下。

#inckide<stdio.h>

main()

(

inta,b;

printf("請輸入兩個數(shù)字:");

scanf(n%2d%3d';&a,&b);

printfCqian:%d%d”,a,b);

intc;

c=a,a=b,b=c;

printf("后:%d%d',a,b);

1

2。編寫程序,對一個double型數(shù)據(jù)進行四舍五入運算。要求保留兩位有效小樹。

123.4567

1234567*100=12345.67

12345.67+0.5=12346.17

(int)(12346.17)=12346

12346/100=123.46

第四課:C語言的程序結(jié)構(gòu)

4-1節(jié)、關(guān)系運算與邏輯運算

一、簡介

關(guān)系表達式與邏輯表達式的運算結(jié)果都會得到一個邏輯值。就是“真”、"假”

在C語言中0表示“假”,非0(無論是負(fù)數(shù)還是正數(shù)都是真,更多時候用1來代替)

表示“真

二、兒個簡單的關(guān)系運算符

<<=>>===!=

注意:

1,由兩個字符組成的運算符,中間不能有空格

2,它們都是雙目運算符,具有自左至右的結(jié)合性。

3,上面的6個運算符中,前4個的優(yōu)先級要比后2個的優(yōu)先級要高。

先計算,后判斷,最后進行賦值運算。

三、幾個簡單的邏輯運算符

&&與一假則假

II或一真則真

!非非假則真,非真則假

4-2、4-3節(jié)、if語句

一、定義:

只有兩種結(jié)果。要么執(zhí)行這條語句,要么執(zhí)夕亍那條語句。

if(條件表達式)

上述條件成立執(zhí)行的句子

else

上述條件不成立執(zhí)行的句子

如:

if(成績>60)

顯示及格

else

顯示不及格

二、分類

1.不含有else的語句

2.含有else語句

if(條件)

語句1;

else

(

語句2;

語句3;

}

注:

1.沒有分號

2.控制的是與if或者else緊臨的“一條”語句c

4-4節(jié)、結(jié)合一個例題來給大家分析if的嵌套

輸入一個學(xué)生的成績,評定他的等級。每十分一個等級

if()

elseif()

elseif()

else

if(a>=90)printf("a");

clseif(a>=80)printf(,,bH);

elseif(a>=70)printf("c");

elseif(a>=60)printf("dH);

elseprintf("e");

4-6節(jié)、條件表達式

是C語言中唯一的一個三目運算。

格式:表達式1?表達式2:表達式3

當(dāng)1成立(非零時)時,表達式的值就是2的值,否則就是3的值。

如:

1.1<2?4:5

2.printf(',%du,x<0?(-l)*++x:x++);(假定X的值為-3)

3.++X>3?(x<3?a:b):b

4-7節(jié)、switch語句(一)

switch(表達式)

case常量表達式1:語句1

case常量表達式2:語句2

case常量表達式3:語句3

case常量表達式4:語句4

case常量表達式5:語句5

OOO

case常量表達式N:語句N

4-8節(jié)、switch語句(二)

switch(AZlO)

(

case10:printf("A");

case9:printf("A");

case8;printf("b");

case7;printf("c");

case6;printf(',dH);

default:printf("e");

第五課:循環(huán)結(jié)構(gòu)

5-1>5-2節(jié)、while語句

一、格式:

while(表達式)

循環(huán)體

注:1:

2:

3:一條

while(a<3)l

{a+=s;2

s=a;3}

1.......100

inti=l,sum=();

while(i<101)

surn=sum+i++;

printf("%d",sum);

叢1開始加到哪個數(shù)時他們的和將超過1000?

inii=l,sum=0;

while(sum<1000)

{sum+=i;999+42=1041

i++;}4243

printf("%d",—i);

5-3節(jié)、do-while語句

dowhile()

格式:

do

循環(huán)體

while(表達式)

1235813

do

(

a3=al+a2;

al=a2;

a2=a3;

}while(a3<=1000);

1:1

2:;

5-4節(jié)、for語句(I)

for語句和for語句構(gòu)成的循環(huán)結(jié)構(gòu)

一、格式:

for(表達式1;表達式2;表達式3)

循環(huán)體

相當(dāng)于while語句的

表達式1;

while(表達式2)

{

循環(huán)體;

表達式3;

)

k=0

for(;k<=10;)

{printf(u*");

k++;

)

intk=0;

whi!e(k<10)

(

printfC,*");

k+十;

注:

1:表達式可以省略,但分號不可以。

2:表達式可以是任意有效的C語言表達式

課后習(xí)題部分,筆記不再提供,請大家看教程。

第六課、字符型數(shù)據(jù)

6-1節(jié)、字符型常量

格式:'a,W…

要求:

1,單引號中的大寫字母和小寫字母代表不同的字符常量。

2.單引號中的空格也是一個字符常量,但不能是兩個連續(xù)的單引號

3.字符常量只能用單引號括起來,不能用雙引號。

轉(zhuǎn)義字符

\n代表回車

''代表一個單引號’

\\代表一個'

\”代表一個雙引號

注意:

1.轉(zhuǎn)義字符常量,如'\141,只代表一個字符

2.反斜線后的8進制數(shù)可以不用0開頭。如1中所講的141就是一個8進制數(shù)。

0141

3.反斜線后的16進制數(shù)只可以用x開頭,不可以用X開頭。

字符串常量

格式:由雙引號括起來的一串字符。

同時也要知道“A"和'A,是不一樣的。

"A",A'

ACSII碼

A65a97

匕',A'=32

6.2節(jié)、字符變量

格式:chara=,s,

6.3字符的輸入和輸出

Printf和scanf函數(shù)輸出和輸入字符

對于字符型數(shù)據(jù)的格式說明符是%c

Charc=,a,;

Printf(4k%c,,,c);

Chara,b,c,d;

Scanf("%c%c%c”,&a,&b,&c);

6-3節(jié)、程序舉例

寫出26個大寫字母和他們的ASCII代碼要求每行輸出兩組數(shù)據(jù)。

#include<stdio.h>

Main()

(

Charch;intI;

For(i=0;i<26:i++)

(

Ch=i+65;

If(i%2==0)

PrintR\");

PrintfC4c=%c,ASCII=%d,,,ch,ch);

)

)

在上面的程序中有對于字符的輸入與輸出,在C語言中也有另外的輸入輸出字符的

語句。

輸入:變量名=getchar()

輸出:pulchar(變量名)

第七章函數(shù)

7-1節(jié)、庫函數(shù)

1.調(diào)用C語言標(biāo)準(zhǔn)庫函數(shù)時要求的include命令行

Include命令行必須以#開頭,系統(tǒng)提供的頭文件以.h作為文件的后綴,文件名用一

對雙引號或一對尖括號(需要注意include命令行不是C語句,因此不能在最后加分號)

2.標(biāo)準(zhǔn)庫函數(shù)的調(diào)用

函數(shù)名(參數(shù)表)

如:putchar(ch)

(1)出現(xiàn)在表達式中的...ch=getchar()

(2)做為單獨的語句完成某種操作。--printf(“********”);

7.2函數(shù)的定義和返回值

由于C語言中的定義的函數(shù)不能完成用戶所有的要求,所以用戶可以為自己定義函數(shù)

實現(xiàn)相應(yīng)的功能。

7.2.1函數(shù)定義的語法

1:格式:

函數(shù)返回值的類型名函數(shù)名(類型名形式參數(shù)1,類型名形式參數(shù)2……)

(

說明部分

語句部分

I

2:函數(shù)名和形式參數(shù)都是用戶命名的標(biāo)識符。在同一個程序中,函數(shù)名必須唯一,

形式參數(shù)名只要在同一函數(shù)中唯一即可,可以與其他函數(shù)中的變量同名。

3:C語言規(guī)定,不能在函數(shù)的內(nèi)部定義函數(shù)。

4:若在函數(shù)的首部省略了函數(shù)返回值的類型名,則說明該函數(shù)的返回值是int類

5:除了返回值類型為int類型的函數(shù)外,函數(shù)必須先定義后調(diào)用。

6:當(dāng)沒有函數(shù)返回值,則必須把函數(shù)定義成void類型。

例:編寫求兩個雙精度數(shù)之和的函數(shù)。

doubleadd(doublea,doubleb)

(

doubles;

s=a+b;

returns;

)

7-2節(jié)、函數(shù)的返回值

函數(shù)的值通過return語句返回,

return表達式;

此表達式的值必須與函數(shù)首部所說明的類型一致,若類型不一致,則以函數(shù)值的

類型為準(zhǔn)。需要注意的是,無論函數(shù)體中有多少個return語句,只能執(zhí)行一次。

函數(shù)體內(nèi)可以沒有return語句,這時也必須定義函數(shù)為viod類型。

7-3節(jié)、函數(shù)的調(diào)用

7.3.1函數(shù)的兩種調(diào)用方式

格式為:

函數(shù)名(實在參數(shù)表)

當(dāng)實參的個數(shù)多于二個時,各實參用逗號隔開。實參的個數(shù)必須與調(diào)用函數(shù)中形

參的個數(shù)相周,類型一一對應(yīng)匹配。

如沒有形參,則形式為函數(shù)名()注意后面的小括號不能丟。

如題:

#include<stdio.h>

doubleadd(doublc,doublc);

main()

(

doublem,n,z;

scanf("%lf

z=add(m,n);

printf(<4%lf,,z);\

)

doubleadd(doublea,doubleb)

(

doubles;

s=a+b;

returns;

}

7.3.2函數(shù)調(diào)用時的語法要求

1.調(diào)用函數(shù)時,函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致。

2.實參的個數(shù)必須與形參的個數(shù)一致。

3.C語言中規(guī)定,函數(shù)必須先定義后使用。

4c語言中,函數(shù)可以直接或間接的自己調(diào)用自己。稱為遞歸調(diào)用

fac(n)=fac(n-l)*n

7-4節(jié)、函數(shù)的說明

在C語言中凡是未在調(diào)用前定義的函數(shù),C編譯程序都默認(rèn)函數(shù)的返回值為int型。

對于返回值是其它類型的,若把函數(shù)的定義放在調(diào)用之后,應(yīng)該在調(diào)用之前對函數(shù)進行

說明。

說明的格式:

類型名函數(shù)名(參數(shù)類型1,參數(shù)類型2.?!薄?

也可以用以下格式

類型名函數(shù)名(參數(shù)類型1參數(shù)名1,參數(shù)類型2參數(shù)名2,……)

函數(shù)說明的位置:

一般為了讓程序早點識別出程序中的定義好了的函數(shù),一般將其放在程序的開始

部分

7-5節(jié)、調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞

一:三種格式進行傳遞

1.實在參數(shù)和形式參數(shù)之間進行數(shù)據(jù)傳遞

2.通過return語句把函數(shù)值返回調(diào)用函數(shù)

3.能過全局變量,但這不是一種好的方式,通常不提倡使用.

通過一個程序來看一下數(shù)據(jù)到底是怎樣傳遞的。

#include<stdio.h>

viodtry(int,int,int);

main()

{

intx=2,y=3,z=0;

printfC(l)x=%dy=%dz=%d\n,,,x,y,z);

try(x,y,z);

printfCX4)x=%dy=%dz=%d\n,,,x,y,z);

)

voidtry(intx,inty,intz)

(

printf("(2)x=%dy=%dz=%d\n,,,x,y,z);

z=x+y;

x=x*x;

y=y*y;

printf(44(3)x=%dy=%dz=%d\n”,x,y,z");

)

屏幕上的結(jié)果是:

(1)x=2y=3z=0

(2)x=2y=3z=()

⑶x=4y=9z=5

(4)x=2y=3z=0

再來一個程序

#include<stdio.h>

viodswap(int,int);

main()

intx=10,y=20;

printfC(1)x=%dy=%d\n”,x,y);

swap(x,y);

printffc(4)x=%dy=%d\n,,,x,y);

)

voidswap(inta,intb)

(

intt;

printf("(2)a=%db=%d\n,,,a,b);

t=a;a=b;b=t;

printf("(3)a=%db=%d\n,\a,h);

1

程序運行結(jié)果

(1)x=10y=20

(2)a=10b=20

⑶a=20b=10

(4)x=10y=20

7.6程序應(yīng)用舉例

編寫一個函數(shù)isprime(inta),用來判斷自變量a是否為素數(shù)。若是素數(shù),函數(shù)返回整數(shù)1,

否則返回0.

#include<stdio.h>

intisprimc(int)

main()

(

intx;

printff'cntcraintegernumbcr:,,);

scanfT%d”,&x);

if(isprimc(x))

printff4%disprime\n",x);

else

printf("%disnotprime\n>\x);

)

intisprime(inta)

(

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)

return0;

return1;

}

編寫函數(shù)myupper(ch),把ch中的小寫字母轉(zhuǎn)換成大寫字母作為函數(shù)值返回,其他字

符不變。主函數(shù)中不斷輸入字符,用字符@結(jié)束輸入,同時不斷輸出結(jié)果。

#inckide<stdio.h>

#include<ctype.h>

charmyupper(charch)

(

if(ch>=,a,&&ch<=,z,)

ch=ch-32;

returnch;

main()

(

chare;

whilc((c=gctchar())!=,@,)

(

c=myuppcr(c);

putchar(c);

)

)

編寫函數(shù)統(tǒng)計輸入字符的個數(shù),用@字符結(jié)束輸入,在主函數(shù)中調(diào)用此函數(shù),輸出統(tǒng)

計結(jié)果。

#include<stdio.h>

longcountch();

main()

(

longn;

n=countch();

printR“n=%ld\n”,n);

I

longcountch()

(

longcn;

fbr(cn=O;getchar()!=,@,;cn-H-)

returncn;

)

7/0--7/3節(jié)、課后習(xí)題

[7.1]以下說法中正確的是C

A)C語言程序總是從笫--個定義的函數(shù)開始執(zhí)行

B)在C語言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義

C)C語言程序總是從main函數(shù)開始執(zhí)行

D)C語言程序中的main函數(shù)必須放在程序的開始部分

[7.2]以下函數(shù)的類型是C

A)與參數(shù)x的類型相同

B)void類型

C)int類型

D)無法確定

fff(floatx)

{printf("%d\n",x*x);)

[7.3]以下函數(shù)調(diào)用語句中,含有的實參個數(shù)是B

A)1B)2C)4D)5

func((exp1,exp2),(exp3,exp4,exp5));

17.41以下程序的輸出結(jié)果是C

A)llB)200)21D)31

func(inta,intb)

{intc

c=a+b;

returnc;

)

main()

intx=6,y=7,7=8,r;

r=func((x-,y++,x+y),z-);

printf("%d\n",r);

)

[7.5]以下程序的輸出結(jié)果是A

A)-lB)0C)1D)2

main()

{inti=2,p;

P=f(i,i+D;

printf("%d",p);

)

intf(inta,intb)

{intc;

c=a;

if(a>b)c=l;

elseif(a==b)c=0;

elsec=-l;

return(c);

[7.61以下程序的輸出結(jié)果是D

A)()B)1C)6D)無定值

fun(inta,intb,intc)

{c=a*b;|

main()

{intc;

fnn(2,3,c);

printf("%d\n",c);

)

[7.7]以下程序的輸出結(jié)果是A

A)5.B)3.C)4.D)8.25

doublef(intn)

{inti;doubles;

s=1.0;

for(i=l;i<=n;i++)s+=1.0/i;

returns;

)

main()

{inti,m=3;floata=0.0;

for(i=0;i<m;i++)a+=f(i);

printf("%f\n';a)L;

)

二、填空題

[7.8]以下程序的輸出結(jié)果是___12.

unsignedfun6(unsignednum)

unsignedk=1;

do

k*二num%10;num/=10;}

while(num);

returnk;

)

main()

{unsignedn=26;

printf("%d\n",fun6(n);

)

[7.9]以下程序的輸出結(jié)果是—9.0.

doublesub(doublex,doubley,doublez)

{y-=i.O;

z=z+x;

returnz;

)

main()

{doublea=2.5,b=9.0;

printf("%f\n",sub(b-a,a,a));

)

[7,10]以下程序的輸出結(jié)果是—4.

funl(inta,intb)

{intc;

a+=a;b+=b;

c=fun2(a,b);

return

fun2(inta,intb)

{intc;

c=(a*b)%3;

returnc;

)

main()

{intx=ll,y=19;

printf("%d\n",fun1(x,y));

)

[7.11]下面pi函數(shù)的功能是,根據(jù)以下公式返回滿足精度要求的的值.請?zhí)羁?/p>

pi/2=1+173+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9+...

doublepi(doubleeps)

{doubles=O.O,t=l.O;

intn;

for(—n=1—:t>eps;n++)

{s+=t;

t=n*t/(2*n+l);

)

return(2.0*_S);

)

[7,12]以下函數(shù)用以求x的y次方.請?zhí)羁?

doublefun(doublex,inty)

{inti;doublez=l;

for(i=l;i<=y_;i+十)

returnz;

[7,13]以下程序的功能是計算5=51<!.請?zhí)羁?

longf(intn)K=1

inti;longs;

s=_l;

fbr(i=l;i<=n;i++)s=_s*i

returns;

main()

longs;intk,n;

scanf("%d1&n);

s=_0—;

for(k=0;k<=n;k++)s=s+f(k)—;

printf(H%ld'jiH,s);

三、程序調(diào)試和編程題

[7,14]以下fun函數(shù)月以判斷n是否是素數(shù),fun函數(shù)中有邏輯錯,請調(diào)試改正.

fun(intn)

{intk,yes;

for(k=2;k<=n/2;k++)

if(n%k==O)

returnyes=0;

yes=l;

returnyes;

第八章:指針變量

8.1變量的地址和指針:

在最開始的時候,一直給大家強調(diào)變量要先定義,后使用。為什么會這個樣子?這

是因為,每當(dāng)我們使用一個變量系統(tǒng)就必須要給他開辟一個存儲單元。系統(tǒng)要對它的值

進行記錄。每時每刻的記錄。怎樣進行記錄呢?系統(tǒng)會自動的開辟一個地方將該變量監(jiān)

督起來,觀察和記錄它的變化。這個地方多大放什么東西?這都要求我們提前和系統(tǒng)說

好。所以就有了變量要先定義在使用說法。其實變量定義的過程就是給他開辟存儲空間

的過程。那么存儲空間又是什么東西呢??

計算機種有一個硬件叫內(nèi)存條,當(dāng)我們提起這個硬件的時候往往都會說多大的。

1G2Q4G……這都是在說他的空間大小。計算機中的內(nèi)存是以字節(jié)為單位的一片連續(xù)的

存儲空間,每一個字節(jié)都有一個編號,這個編號就稱為內(nèi)存地址。如同旅館的房間一樣,

單人間,雙人間等等,每個房間都有自己的編號。

內(nèi)存中的空間是連續(xù)的,地址號也是連續(xù)的,并且都是用二進制數(shù)來表示的。

變量在定義的時候先要說明定義的類型。如:intk;doubleb;charch;等等如此的定

義。這樣是在和電腦系統(tǒng)打招呼,我們是2人要一個兩人間。目的就是告訴老板你的房

間要是兩個人的空間。不能定的是2人間,結(jié)果來了3個人??;同時也不能定的2人間,

結(jié)果就你自己來了(末自己來說多花錢了)。

綜上所述:變量的定義就是給變量開辟存儲空間的過程。

intafloatb

a|ab|b|bb

跚是變微義的眼系螂隨機微的地界空間。在結(jié)合我們在一開始講的不同類

型的變量的大小,其實就是在說變量所占的內(nèi)存單元的多少。

1()12就是整型變量a的首地址,1014就是浮點型變量b的首地址。

當(dāng)要用到一個變量時,系統(tǒng)就會迅速的找到這個變量。所以在C程序中還有這樣的一

個變量的存在,就是指針。

指針就是用來存放一個變量在內(nèi)存中的地址,當(dāng)要調(diào)用這個變量的時候能迅速的找

到。用來存放一個變量地址的變量就叫指針變量。

同時大家也要走出一個誤區(qū)就是:指針變量之所以叫變量,就是因為它旦面所存放的

變量的地址也不斷的變化的。指針是可以移到的。

8.2指針變量的定義和由針變量的基類型

一:格式:

類型名*指針變量名1,*指針變量名2....

int*pi.*pj:

與之前不一樣的地方就是在變量的前面加了一個九*是一個說明符,用來說明該

變量是指針變量。*號省略的話就和普通的變量一樣了。

又如:

int*pi;char*ch;inta;charc;

指針的作用都是一樣的,都是用來存放地址的,為什么還要分類型的。原因就是指

針變量pi只能存放整型變量的地址,指針變量ch只能存放字符變量的地址。

如何讓一個指針存放一個變量的地址呢?

pi=&a;ch=&c;

&叫取址符。*叫指針運算符。

能過以上的講解在家一定對指針有了更進一步和了解。我們共同的回顧一下;

變量的定義就是給其開辟存儲單元的過程。

任何一個變量都有自己的存儲地址。

指針就是用來存放變量地址的。

指針也是一個變量。

指針也要一個地址。

那,

有沒有能存放指針變量地址的一個對象呢?用該怎么稱呼?

它是專門用來存放指針的地址的。

它就是指向指針的指針。

int**p,*s;

p=&s;

**p就是一個指向指針的指針。它里面只能存放同種數(shù)據(jù)類型的指針的地址。

8.3給指針變量賦地址值

一個指針變量可以通過不同的方式獲得一個確定的地址值,從而指向一個具體的對象。

(在以后的課程中,每當(dāng)一個指針中存放了一個變量的地址的時候,我們就說這個指針

指向了這個變量)。

intk=l,*q,*p;

q=&k;

q--------->i

這/口J以d:q指南了變4k;

q=&k+lq=&(k+1)這是錯誤的,指針q就是用來存放地址的,前兩個例子不是。

同時:

&必須放在運葬對象的左邊,而且運算對象的類型必須與指針變量的基類型相同。

2,通過指針變量獲得地址值

可以通過賦值運算,把一個指針變量中的地址值賦給另一個指針變量,從而使這

兩個指針指向同一地址。

intk,*p,*q;

q=&k;p=q;

也就是說指針變量p和q都指向了變量k.

注:當(dāng)進行賦值運算時,賦值號兩邊指針變量的基類型必須相同。

3.給指針變量賦“空”值;

“空

null的代碼值為0,當(dāng)執(zhí)行了以上和賦值語句后,稱P為空指針。null的代碼值為0.

p=''0'p=0;

注意:P并不是指向地址為。的存儲單元,而是一個有確定的值“空”。

8.4對指針變量的操作

C語言提供了一個稱作“間接訪問運算符”的單目運算符:當(dāng)指針變量中存放

[一個確切的地址值是,就可以用“間接運算預(yù)算符”通過指針來引用該地址的存儲單

兀O

int*p,i=10,j;

p=&i;

則這樣的賦值語句

j=*p;

上面的這個賦值語句我們可以這樣理解:j變量的值是由指針指向的空間中的值賦予

的。這里的*P代表指針P中存放的變量i的地址中的值。*不是乘而是用來說明指針的說

明符。

J二[?*'W?***??**wj=,|

如果有這樣的表達式代表:

j=*p+l代表指針P指向的空間中中的值加1后的值給了變量j;

再如

int*p,k=();

p=&k;

*p=100;

*p+=l;

注意:當(dāng)*p出現(xiàn)在賦值號左邊時,代表的是指針?biāo)傅拇鎯卧?,?dāng)出*p出現(xiàn)在賦值

號右邊時,代表的是指針?biāo)傅拇鎯卧膬?nèi)容。

如果有:

*p+=l

++*p

(*P)++

這三個表達式有什么不一樣嗎?

++和*兩個運算符的優(yōu)先級相同。但按自右至左的方向結(jié)合。因此++*p相當(dāng)于++(*p)。

而在(*p)++中,一本括號不可以少,(*p)++代表先取里面的值然后再加1。而如果去

掉怎成了*P++,根據(jù)順序,先++然后再取值。這樣就成了先p++再取值。而P++就是指針

先向后移動。

例8,1

用指針指向兩個變量,通過指針運算選出值小的那個數(shù)。

#include<stdio.h>

main()

(

inta,b,min,*pa,*pb,*pmin;

pa=&a;pb=&b;pmin=&min;

scanfC%d%d'',pa,pb);

printf(<4a=%d,b=%d\n,,,a,b);

*pmin=*pa;

if(*pa>*pb)

*pmin=*pb;

printf(4€min=%d\n,\inin);

I

8.4移動指針

所謂移動指針就是對指針變量加上減去一個整數(shù),或通過賦值運算,使指針變量指向

相鄰的存儲單元。

(因此只有當(dāng)指針指向一串連續(xù)的存儲單元時,指針的移動才有意義)

a[0]a[l]a[2]a[3]a[4]

1122334455

p=&a[()f,

q=p+2

q++

q++

q--

p++

對指針進行加減運算時,數(shù)字“1”不再代表十進制數(shù)1,而是指一個單位存儲單元長度。

這個單元到底多長,要看存儲數(shù)據(jù)的類型了。

如果是int則代表1個存儲單元長度就是位移4個字節(jié)。如果是char類型則代表1個

存儲單元長度就是位移1個字節(jié)。如果變量的類型是double,8個字節(jié)為一個單位,而指

向它的指針是int,4人字節(jié)為一個單位。那么這個時候指針每移動一個單位就代表移動

4個字節(jié)的長度,這個時候讀取數(shù)據(jù)的時候就會已錯。

8.5函數(shù)之間地址值的傳遞

▲形參為指針變量時參數(shù)和形參之間的數(shù)據(jù)傳遞

若函數(shù)的形參為指針類型,調(diào)用該函數(shù)時,對應(yīng)的實參必須是基類型相同的地址值或

者是已指向某個存儲單元的指針變量。

例題:編寫函數(shù)myadd(int*a,int*b),函數(shù)中把指針a和b所指的存儲單元中的兩

個值相加,然后將和值作為函數(shù)值返回。在主函數(shù)中輸入兩個數(shù)給變量,把變量地址做

為實參,傳給對應(yīng)的形參。

#inckide<stdio.h>

intmyadd(int*a,int*b)

(

intsum;

sum=*a+*b;

returnsum:

}

main()

(

intx,y,z;

int

p=&x,q=&y;

printf(4tenterx,y:‘‘);

scanR"%d%d”,&x,&y);

z=myadd(*p,*q);

printf(ti%d+%d=%d,\x,y,z);

)

▲通過傳送地址值在被調(diào)用函數(shù)中直接改變調(diào)用函數(shù)中的變量的值

之前我們已經(jīng)知道形參值的改變并不能改變本應(yīng)實參的值,把數(shù)據(jù)從被調(diào)用函數(shù)返回

到調(diào)用函數(shù)的唯一途徑是通過return語句返回函數(shù)值。

例題:調(diào)用swap函數(shù),交換主函數(shù)中變量x和y中的數(shù)據(jù)

#include<stdio.h>

voidswap(int*,int*)

main()

(

intx=30,y=20;

printf(u(1)x=%dy=%d\n”,x,y);

swap(&x,&y);

printfT(4)x=%dy=%d\n”,x,y);

)

voidswap(int*a,int*b)

(

intt;

printfT⑵a=%db=%d\nM,*a,*b);

t=*a;*a=*b;*b=t;

printfCu(3)a=%db=%d\n,,,*a,*b);

)

例題:編寫函數(shù)。rder(int*ajnt*b),使用函數(shù)中的第一個實參總是存放兩個數(shù)中較

小的數(shù),第二個參數(shù)存放兩個數(shù)中較大的數(shù)

#include<sldio.h>

voidswap(int*xl,int*x2)

(

intt;

t=*xl;*x1=*x2;*x2=t;

1

voidorder(int*a,int*b)

{if(*a>*b)swap(a.b);

)

main()

(

intx,y;

printf("輸入x,y:”);

scanf("%d%d”,&x,&y);

printf(t<x=%dy=%d\n”,x,y);

order(&x,&y);

printff'x=%dy=%d\n,,,x,y);

)

8.5函數(shù)返回地址值

函數(shù)值的類型不僅可以是簡單的數(shù)據(jù)類型,而且可以是指針類型

例:以下函數(shù)把主函數(shù)中變量i和j中存放較大數(shù)的那個地址作為函數(shù)值傳回。

第九章數(shù)組

之前我們只學(xué)過單個變量的定義,而有的時候就需要一片連續(xù)的存儲單元。單個單個

的定義第一,分配的內(nèi)存空間不一定連續(xù),這樣指針就不能移動了。第二,單個單個的

定義會費時費力。所以這個時候就需要一個東西來滿足用用戶這樣一個需求。數(shù)組就在

這樣的條件下產(chǎn)生了。

數(shù)組:多個相同類型的變量被存儲在一片連續(xù)的存儲單元中。

9.1一維數(shù)組的定義和一維數(shù)組元素的引用

★一維數(shù)組的定義:

當(dāng)數(shù)組中每個元素只帶有一個下標(biāo)時,稱這樣的數(shù)組為一維數(shù)組。

格式:類型名數(shù)組名【整型常量表達式】

如inta[10]

說明:

1.定義了一個名為a的一維數(shù)組

2.方括號中的10規(guī)定了a數(shù)組含有10個元素,它們是(a[0].a[lj.a[2].

a[3].a[4].a[5].a[6].a[7].a[8].a[9])

3.類型名int規(guī)定了a數(shù)組中每個元素都是整型,在每個元素中只能存放整形數(shù)。

4.每個元素只有一個下標(biāo),C語言規(guī)定每個數(shù)組第一個元素的下標(biāo)總為。(稱為數(shù)組

下界),那么最后一個9(稱為數(shù)組的下標(biāo)為上界)

5.在內(nèi)存中給數(shù)組中每個成員開辟了一個存儲單元??傆嫶笮。?0*4=40字節(jié)。這

樣每當(dāng)調(diào)用數(shù)組中的一個成員時就用它們的下標(biāo)。如aW

注:當(dāng)同時定義多個數(shù)組時彼此之間用,號隔開

如doublew[22],v[100],u[5];

以上定義了三個數(shù)組。

需要注意的是,【】中的內(nèi)容只能是整型常量或整型常量表達式。如inta[ll+22]也可以。

★一維數(shù)組元素的引用

格式:數(shù)組[下標(biāo)表達式]

其實x[0],x[j],x[i+k]都是對數(shù)組中元素的合法引用形式。但是需要注意的是下標(biāo)

表達式的值必須大于或等于0,并且小于數(shù)組上界的數(shù)。

能過上面知識講解,大家應(yīng)該建立以下概念:

1:一個數(shù)組元素實質(zhì)上就是一個變量名,代表內(nèi)存中一個存儲單元。一個數(shù)組占有

一串連續(xù)的存儲單元。

2:在C語言中一個數(shù)組不能整體引用。不能說用一個數(shù)組名就代表整個數(shù)組了。這

是錯誤的。因為在C語言中規(guī)定數(shù)組名是一個地址常量,它代表整個數(shù)組的首地址。

int木p;inta[10]p-a(p-&a[0])a--&a[0]a-10

3:數(shù)組元素中下標(biāo)表達式的值必須是整數(shù)。在編寫程序時保證數(shù)組下標(biāo)不越界是十分

重要的。

a[2.5]a[10]=123

★一維數(shù)組的初始化

一維數(shù)組的始化,其實就是給數(shù)組元素賦值。

格式:inta[8]=-:0,1,2,4,5,6,7}

所賦的值放在等號后的一對花括號中,數(shù)值類型必須必須與所說明的類型一致,所賦

值之間用逗號隔開。系統(tǒng)會按賦值順序來自動分配。

當(dāng)花括號中的值少于數(shù)組元素個數(shù)時,將自幼給數(shù)組后面元素賦值0.如

inta[10]={l}這個時候除了a[0]=l外,其它的都是0;

對于字符數(shù)組也是一樣;

chara[10]={<1,)

不夠的也會賦值'\0'

通過賦初值定義數(shù)組的大小

C語言中規(guī)定,可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中

可以不指定數(shù)組的大小。

如inta[]={l,1,1,1,1,1,1,1,1,1)

這樣相當(dāng)于數(shù)組中有了10個元素

例題:編寫一個程序,通過鍵盤給數(shù)組a中的10個成員賦初值。

^include<stdio.h>

main()

(

inta[10];

inti,*p;

P二a;

for(i=0;i<10;i++)

{scanf("%d",p);

printf(“a[i]=%d",*p);}

)

編寫一個程序定義一個含有30個成員的數(shù)組。并給其賦值,要求從1這樣的奇數(shù)開始。

當(dāng)賦值完畢后,按每行10個輸出。

include<stdio.h>

ftdefinem30

main()

(

inta[m];

inti,k=l;

for(i=0;i<m;i++)

{a[i]=k;

k+=2;}

for(i=0;i<m;i++)

{printf(“a[%d]=%d",i,a[i]);

if((i+l)%10--0)

printf("\n");}

)

9.2一維數(shù)組和指針

★一維數(shù)組和數(shù)組元素的地址

前言:定義的數(shù)組名可以認(rèn)為是一個存放地址值的指針變量名,其中的地址值是數(shù)

組第一個元素的地址,也就是數(shù)組所占一串連續(xù)存儲單元的起始地址。重要的是:這個

指針變量中的地址值不可改變,也就是說,不可以給數(shù)組重新賦值。因此,也可以認(rèn)為

數(shù)組名是一個地址常量。

如:floata[lC],*p,x;

語句a=&x或a++這樣的語句都是非法的。因為不能給a重新賦地址值。一旦定義a永

遠(yuǎn)指向a數(shù)組的首地址。

雖然不可以改變數(shù)組名a中的內(nèi)容,但可以用對數(shù)組名加一個整數(shù)的辦法,來依次

表達該數(shù)組中不同元素的地址。

如:inta[10],*p;p=a+4~~~p=&a[4]

再如:for(k=0;k<10;k++)

p=a+k;

在循環(huán)中并沒有改變數(shù)組名a中的內(nèi)容,但通過表達式:a+k逐一給出了a數(shù)組中每個

元素的地址,使P依次指向a數(shù)組中和每一個元素。

如果要能過類似上面的語句給數(shù)組中的元素賦值,語句為:

for(k=0;k<10;k++)

scanf(“%d”,a+k);

如有p=a或p=&a[0]這兩個表達式所要表達的意思是一樣的。都是指指針P指向了數(shù)

組a的首地址。所以當(dāng)要依次訪問數(shù)組中的每一個元素時可以用以下的兩個形式;

P++;

或a+k(k的值是不斷變化的如上面的for語句一樣)

★通過數(shù)組的首地址引用數(shù)組元素

a是數(shù)組元素的首地址,a(即a+0)的值即等于則用a+1的值等于

在以前我們學(xué)過“間接訪問運算符”一一“釬來引用地址所在的存儲單元。因此對

于數(shù)組a[0],可以用表達式*&a[0]來引用也可以用*(a+0),還可以用a[0]來表示。

但需要注意的是對于*(p+k)這樣的表達式不能這樣寫*p+k,這樣寫的話就錯了。代

表指針取值后再加K的值了。

總結(jié):表示數(shù)組元素s[i]的表達式應(yīng)當(dāng)有

s[i]*(s+i)*(p+i)*p[i]

(但當(dāng)p=s+2時,p=&a[2].*p[0]就是a[2]的值了)

9.3函數(shù)之間對一維數(shù)組和數(shù)組元素的引用

數(shù)組元素作實參

每個數(shù)組元素實際上代表內(nèi)存中的一個存儲單元,故和普通變量一樣,對應(yīng)的形參

必須是類型相同的變量。數(shù)組元素的值可以傳送給該變量,在函數(shù)中只能太該變量進行

操作,而不能直接引用數(shù)組元素,更不能在函數(shù)中改變對應(yīng)數(shù)組元素中的值。

數(shù)組名作實參

數(shù)組名也可以作為實參傳送,但數(shù)組名是一個地址值,因此,對應(yīng)的形參就應(yīng)當(dāng)是一

個指針變量,此指針變量的基類型必須與數(shù)組的類型一致。這樣就可以通過指針變量來

引用調(diào)用函數(shù)中對應(yīng)的數(shù)組元素,從而達到對調(diào)用函數(shù)中對應(yīng)的數(shù)組元素進行操作而改

變其中的值。

例:編寫程序,通過一個函數(shù)給主函數(shù)中定義的數(shù)組輸入若干大于或等于0的整數(shù),

用負(fù)數(shù)作為輸入結(jié)束標(biāo)志,調(diào)用另一個函數(shù)輸出該數(shù)組中的數(shù)據(jù)。

ttinclude<stdio.h>

#defineM100

voidarrout(int

溫馨提示

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

最新文檔

評論

0/150

提交評論