C語言程序設計2完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學教程_第1頁
C語言程序設計2完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學教程_第2頁
C語言程序設計2完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學教程_第3頁
C語言程序設計2完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學教程_第4頁
C語言程序設計2完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學教程_第5頁
已閱讀5頁,還剩584頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章C語言概述1.1C語言的發(fā)展簡史1.2C語言的特點1.3認識C程序1.4C程序的運行與調試[Return]本章學習目標了解C語言的發(fā)展簡史和特點掌握C語言的基本結構及如何編寫可讀性良好的C程序掌握一個C程序的編輯、編譯、運行和調試的一般過程1.1C語言的發(fā)展簡史C語言發(fā)源于著名的美國貝爾實驗室,是由該實驗室的研究人員DennisRitchie

和KenThompson兩人于二十世紀七十年代初在設計UNIX操作系統(tǒng)時開發(fā)出來的。在C語言誕生以前,系統(tǒng)軟件主要是用匯編語言編寫的,原來的UNIX操作系統(tǒng)就是1969年由美國貝爾實驗室的KenThompson和DennisRitchie利用匯編語言開發(fā)成功的。由于匯編語言程序依賴于計算機硬件,其可讀性和可移植性都很差;但一般的高級語言又難以實現對計算機硬件的直接操作,于是KenThompson于1970年設計出一種簡單而且接近硬件的高級語言——B語言,并用B語言寫了UNIX操作系統(tǒng)。1972年到1973年間,DennisRitchie在B語言基礎上又設計了C語言。后來,C語言又被多次改進,并出現了多種版本。80年代初,美國國家標準化協(xié)會(ANSI),根據C語言問世以來各種版本對C語言的發(fā)展和擴充,制定了ANSIC標準(1989年再次做了修訂)。

本書的敘述以ANSIC新標準為基礎。本書選定的編譯環(huán)境是TurboCV3.0。

目前,在微機上廣泛使用的C語言編譯系統(tǒng)有MicrosoftC、TurboC、BorlandC等。雖然它們的基本部分都是相同的,但還是略有差異,所以請大家注意自己所使用的C編譯系統(tǒng)的特點和規(guī)定(參閱相應的手冊)。[Return]C語言同時具有匯編語言和高級語言的優(yōu)勢。概括如下:(1)語言簡潔、靈活,程序執(zhí)行效率高。(2)運算符極其豐富,能夠實現在其他高級語言中難以實現的運算功能。(3)數據類型豐富,可實現各種復雜的數據結構的運算。(4)靈活的結構化控制語句,是理想的結構化程序設計語言;以函數為程序基本單位,容易實現模塊化程序設計。(5)語法不嚴,程序設計自由。(6)具有直接對硬件進行控制的功能。(7)可移植性好。

1.2C語言的特點(8)C語言的另一面:相對“難”學。[Return]1.3.1一個簡單的C程序

1.3認識C程序

WelcometotheCworld!/*exam1_1*/#include<stdio.h>main(){printf(“WelcometotheCworld!\n”);}程序運行結果:【例1-1】在屏幕顯示字符串“WelcometotheCworld!”【例1-2】計算兩個數的和并輸出結果。01

/*exam1_2*/02 #include<stdio.h>/*將stdio.h這個文件包含進來*/03 main() /*主函數名,函數從這里開始*/04 {05 inta,b,sum;/*定義三個整形變量:a,b和sum*/06 a=5;/*給a賦值為5*/07 b=10;/*給b賦值為10*/08 sum=a+b;/*把a+b的值賦給sum*/09 printf(“sumis%d.\n”,sum);/*輸出sum的值*/10 }1.3.2C程序的基本結構

下面再來看另一個簡單的C程序,并從這個例子出發(fā)說明C程序的基本結構。程序行最左邊的行號是為了方便介紹程序而添加的,實際輸入程序時是不需要的?!?1】第1行為注釋,C語言的注釋以“/*”和“*/”作為注釋內容的分界符。注釋可增強程序的可讀性,幫助我們理解程序的含義?!?2】第2行是讓計算機系統(tǒng)把文件stdio.h“包含”進來。C語言里有關輸入和輸出的函數都定義在這個文件里,要把結果輸出到屏幕上,就要調用輸出函數,也就需要把stdio.h文件包含進來?!?3】第3行為程序執(zhí)行的起點,即main()函數,我們把它稱為“主函數”。每一個C程序都由一個或多個函數組成,其中必須有一個名為main的函數。函數體由花括號括起來,main前的int是聲明main函數的返回值類型為整形,main右邊的園括號內的void表示這個函數沒有參數?!?4】第4行的左花括號“{”為main()函數體的開始分界符。

下面我們逐行對這個程序進行詳細解說?!?6】第6行是一個賦值語句,把整數5賦給a?!?7】第7行也是一個賦值語句,把整數10賦給b?!?8】第8行把運算表達式a+b的計算結果賦給sum?!?9】第9行是調用系統(tǒng)函數printf(),按照雙引號(””)內的指定格式輸出結果,在%d位置上用sum的值代替,引號內的其余字符照原樣輸出,\n是換行符,告訴計算機在輸出完結果后將光標移到下一行的開頭?!?0】第10行是右花括號“}”是main()函數的結束分界符。【05】第5行聲明a、b和sum為整形變量。C語言在使用變量之前必須先聲明其類型,這是與Basic語言不同的。一個C程序基本包括以下幾個部分:1.#include宏命令及頭文件2.main()函數3.花括號{}、語句塊和函數體4.變量5.語句6.輸入和輸出

當我們在程序中加入#include<filename>時,C編譯系統(tǒng)會自動把<>內的頭文件的內容全部包含進來,并且放置在#include這行的位置上。有時我們需要將已經編寫好的另一個程序包含到本程序中,或者在程序中需要調用系統(tǒng)庫函數,這時我們就需要使用#include命令。

如,上例中由于使用系統(tǒng)標準輸出函數printf(),所以要將含有該函數聲明信息的stdio.h文件包含進來。

#include<stdio.h>main(){…}main(){…}char*_Cdeclgets(char*s);void_Cdeclperror(constchar*s);int_Cdeclprintf(constchar*format,...);[Return]

一個C程序由一個或多個函數構成,其中必須有且只有一個主函數main(),一個函數可以調用其他函數,如上面例子中main函數調用printf函數。所有的C程序都是從main函數開始執(zhí)行,并在main函數中結束。[Return]C程序以函數為單位,編寫C程序就是編寫一個個函數。每個函數的主體都包括在一對花括號“{}”內。有時把完成某個功能或操作的幾個語句用一對花括號括起來,組成一個語句塊(也叫復合語句)。若一個函數體內有多對花括號,則最外層的一對是函數體的分界符。[Return]

變量是一個C程序不可缺少的最基本的部分,是用來存放數據的。概括地說,一個計算機程序包括兩個部分,第一部分是對數據的描述,第二部分是對操作的描述。變量就是用來描述數據的。C語言的變量必須先聲明后使用,聲明時要說明變量的數據類型和名字。C語言中的數據類型有整形(int)、浮點型(float)、字符型(char)等。[Return]每個C函數由若干個語句構成,每個語句以“;”結束,可以一行書寫多個語句。C語言有表達式語句、函數調用語句、控制語句、變量定義語句等。如上面main()函數體有5個語句,第1個語句(【05】行)為變量定義語句,第2~4語句(【06】~【08】行)為賦值(表達式)語句,第5個語句(【09】行)為函數調用語句。[Return]每個程序必須有0個或多個輸入,有至少一個輸出。如果一個程序沒有輸出,我們就無從知道它的運算和操作結果。C語言的輸入和輸出是通過調用系統(tǒng)提供的標準輸入輸出函數實現的。如上例中調用printf()函數以指定格式輸出計算結果。上例中的“printf(“sumis%d\n”,sum);”指定以雙引號內的格式輸出,%d處將代入相應的sum的值,雙引號內的所有其它字符照原樣輸出,“\n”是換行符。1.3.3C程序中的單詞

C語言的單詞可分為標識符、關鍵字、分界符、空白、和運算符幾類。1.C語言的標識符2.C語言的關鍵字3.C語言的分界符4.C語言的空白5.C語言的運算符

在C語言中,我們稱變量、函數的名稱、符號常量或者標號為用戶標識符。C語言的標識符由英文大小寫字母、數字或下劃線所組成,首字母必須是英文字母或下劃線。標識符的長度沒有限定,決定于使用的編譯系統(tǒng),如Turbo

C允許標識符長度為32個字符。通常取前8個字符為有效字符,所以給變量或函數取名時最好保證前8個字符能夠區(qū)別不同。要注意的是,系統(tǒng)的保留字(又稱關鍵字),是不可以用作標識符的。

以下是合法的標識符例子:

min,t,SIZE,M1,x10,count_1,_myargument以下是不合法的標識符例子:for 使用關鍵字8h以數字開頭-5以減號開頭A*出現非法字符*x<y出現非法字符<下面是三個不同的標識符:count,Count,COUNT。[Return]

關鍵字是編譯系統(tǒng)本身提供給用戶使用的標識符,用戶在進行編程時必須按照系統(tǒng)規(guī)定的方式使用這些關鍵字,而不能更改或者重新定義它們。所以用戶自定義的變量名或函數名等標識符不能與關鍵字相同,如上面的for和short都是關鍵字,所以不可用作標識符。C語言提供的關鍵字共有32個,如表1-1所示。※注意:C語言是大小寫敏感的!所有關鍵字都是小寫的,若把某個或全部字母寫成大寫形式,則系統(tǒng)不把它當做關鍵字,而當成普通標識符。auto

break

case

char

const

continue

default

do

double

else

enum

extern

float for

goto

if

int

long register

return

short

signed

sizeof static

struct

switch

typedef union unsigned void

volatile while 表1-1C語言的關鍵字[Return]※注意:為避免遺漏必須配對使用的符號,例如注釋符號、函數體的起止標識符(花括號)、圓括號等等,在輸入時,可連續(xù)輸入這些起止標識符,然后再在其中進行插入來完成內容的編輯。C語言的分界符是用來分隔特定的語法單位的。如,花括號“{}”用來界定函數體的范圍;圓括號“()”用來界定函數的參數;中括號“[]”用來界定數組的下標;“/*”和“*/”用來界定注釋內容的范圍;分號“;”用來表示一個語句的結束;等等。[Return]

一個C程序除了必需的關鍵字和用戶自定義的標識符以外,一般還需要有一些輔助性的字符,如空格(space)、制表符、回車、換行、注釋等,這些字符起到使程序的版面的層次、段落分明,反映出程序的邏輯結構,從而提高程序的可讀性的作用。這些字符在編譯時不會被生成任何代碼,所以稱它們?yōu)榭瞻祝╞lank)。[Return]

運算符在表達式中表示對數據執(zhí)行某類運算。C語言的運算符非常豐富,共有13類34種,其中最常用到的有,算術運算符:加(+)、減(-)、乘(*)、除(/)、求余(%)5種,關系運算符:大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=)6種,賦值運算符(=),等等。各種運算符的作用將分散在后面各章節(jié)分別作詳細介紹?!⒁猓篊語言的等于運算符由兩個“=”組成,即“==”,而賦值運算符是一個“=”。千萬別寫錯!1.3.4如何編寫可讀性良好的C程序1.命名風格2.注釋風格3.布局風格

標識符的命名習慣,盡量遵循如下原則:(1)含義明確(2)規(guī)范縮寫(3)規(guī)范分隔(4)限制長度(5)大小寫約定[Return]

C語言的注釋格式為:/*……*/。注釋時要注意以下幾點:(1)“/*”和“*/”

必須成對使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則都出錯。(2)注釋的位置,可以單占1行,也可以跟在語句的后面。(3)如果1行寫不下,可另起1行繼續(xù)寫。(4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,看到的是一串亂碼,但不影響程序運行。(5)編寫程序時先編寫注釋、后編寫代碼;修改程序時先修改注釋、后修改代碼。(6)注釋不僅僅是只列出代碼執(zhí)行的功能,而且還應給出為什么如此編寫代碼的原因或理由。[Return]

一個程序的可讀性與它的版面布局有很大關系。程序的版面布局又與花括號的格式和空白的使用密切相關。下面介紹常見的幾種花括號格式以及空白的使用:(1)花括號的格式1)

1TBS2)

Allman3)

Whitesmith4)

GNUfor(i=1;i<=100;i++){

sum=sum+i;

}for(i=1;i<=100;i++)

{

sum=sum+i;

}for(i=1;i<=100;i++)

{

sum=sum+i;

}for(i=1;i<=100;i++)

{

sum=sum+i;

}[Return](2)空白的使用

在一個程序中適當地使用空白可提高程序的可讀性。下面重點說明一下縮進的格式和標識符周圍的空白。1)

縮進for(

j=0;j<2;j++)sum=sum+a[j];2)標識符周圍的空白for(j=0;j<2;j++)??for(k=0;k<3;k++)??scanf(“%d”,&a[j][k]);for(j=0;j<2;j++)??for(k=0;k<3;k++)??printf(“a[%d][%d]=%d\n”,j,k,a[j][k]);一個采用4個空格的縮進的例子:在圓括號旁使用空格和在分號的右側使用空格例子:[Return]1.4C程序的運行與調試1.4.1C程序設計的基本步驟1.規(guī)劃程序——流程圖

2.編寫程序代碼及注釋——源程序(.C文件)3.編譯程序代碼——目標程序(.obj文件)

4.鏈接與執(zhí)行程序——可執(zhí)行程序(.exe文件)

5.排錯與測試

6.程序代碼的優(yōu)化、修飾和保存[Return]下面以一個簡單的例子說明如何繪制程序流程圖。【例1-5】畫出求5!的程序流程圖。

(1)使result=1

(2)使i=2

(3)使result*i=>result(用=>表示存放)

(4)使i+1=>i

(5)如果i的值不大于5,返回(3)繼續(xù)執(zhí)行;否則輸出result(此時的result的值就是5!),算法結束。用自然語言描述的算法(求解步驟)如下:繪制成流程圖如下:圖1-5求5!的流程圖結束1=>result開始2=>iresult*i=>resulti+1=>ii>5?輸出resultfalsetrue開始/結束程序前進方向數據處理判斷預定義函數文件輸入/輸出連接點圖1-6常用的流程圖符號[Return]

在完成對程序的規(guī)劃之后,我們便可以根據程序流程圖編寫程序代碼了。在編寫代碼的過程中,我們會體會到先做規(guī)劃的好處。程序規(guī)劃得好,編寫程序時邏輯清晰,不容易產生邏輯上的錯誤,避免反復修改,從而提高效率。編寫代碼時,不要忘記加上注釋。加上注釋不但方便別人了解程序的功能,而且方便日后對程序的維護與擴展??傊粋€好的程序員應該養(yǎng)成給編寫的代碼加上注釋的好習慣。

程序編寫完后,這些用計算機高級語言編寫出來的源代碼還不能直接被計算機執(zhí)行,我們知道計算機能夠理解的是由0和1所組成的二進制代碼,所以還必須將寫好的源程序翻譯成為計算機能夠理解的目標代碼文件(擴展名為obj)。這個工作由高級語言系統(tǒng)提供的編譯程序來完成。[Return]

一個源程序經過編譯后,若這個程序與庫函數或其它程序沒有任何聯系,便可以執(zhí)行了。否則,還必須經過鏈接(link),才能夠生成可執(zhí)行文件(擴展名為exe)。這時運行這個可執(zhí)行文件,便可看到程序的運行結果了。[Return]

程序通過了編譯和鏈接,執(zhí)行后得到的并不一定是期望的結果。這就說明程序雖然在語法上沒有問題,但是可能在邏輯上出了問題,從而導致輸出非預期的結果。這種情況下我們必須根據流程圖,逐個排除每個語句的邏輯錯誤。另外,有時程序在某種輸入數據條件下輸出正確結果,但是在其它一些輸入數據條件下得到不正確的結果。所以我們還必須使用各種可能的輸入數據,對程序進行測試,才能保證在任何情況下程序都能正常運行,并得到正確結果,即確保程序的“健壯性”。[Return]

當程序經過測試證明結果完全正確后,有時我們還需要對程序進行優(yōu)化,以提高程序的運行效率。另外,還要對源程序進行適當的排版、增加注釋等修飾性操作,使程序更加層次分明,更加易讀。最后,千萬別忘記把我們的勞動成果妥善保存起來。1.4.2如何使用TurboC/C++3.0運行與調試C程序(1)啟動TC,進入TC集成環(huán)境。(2)編輯(或修改)源程序。編輯一個新文件——選擇File菜單的New菜單項。圖1-5編輯一個新文件1.運行一個C程序的一般步驟修改一個舊文件——選擇File菜單的load菜單項。圖1-9調入已經存在的文件保存文件——選擇File菜單的save或write

to菜單項。

以原文件名進行保存,選擇Save;以新的文件名保存,選擇Write

to。圖1-6以新文件名保存(3)編譯——選擇Compile菜單的CompiletoOBJ菜單項。圖1-9編譯(4)連接——選擇Compile菜單的LinkEXEfile菜單項。

圖1-10連接※注意:若想要一次性完成編譯和連接,可以直接按【F9】,也可以按【F10】或【Alt+C】后選擇Compile菜單的MakeEXEfile菜單項并回車即可。(5)運行——選擇Run菜單的Run菜單項。

圖1-11運行※注意:若想要一次性完成編譯、連接并運行,可以直接按【Ctrl+F9】并回車即可。2.如何設置用戶文件存放目錄

選擇File菜單的Changedir項,在彈出的“NewDirectory”對話框中輸入已建立好的自己的工作目錄名即可(見圖1-18)。圖1-12設置用戶工作目錄3.如何設置TC工作環(huán)境

圖1-13TC工作環(huán)境設置圖1-14保存工作環(huán)境設置

假如安裝時系統(tǒng)文件存放在C:\Turboc2目錄下,而用戶的目標文件和可執(zhí)行文件存放在C:\output目錄中,則各項內容設置如圖1-13所示。4.常用快捷鍵及其功能

請看書中表1-2。[Return]本章結束

謝謝!第2章基本數據類型、運算符與表達式

2.1C語言的數據類型2.2

常量與變量2.3

整型數據2.4

實型數據2.5

字符型數據2.6

各類數據混合運算2.7C語言的運算符與表達式2.8

運算符的優(yōu)先級及其結合性

[Return]本章學習目標熟悉C語言的數據分類掌握常量的表示方法與變量賦初值的方法掌握不同類型數據間的混合運算掌握基本運算符及其表達式的使用2.1C語言的數據類型

C語言提供了以下一些主要數據類型:

說明:①

C語言為每個類型定義了一個標識符,稱為類型名。例如:整型用int標識、字符型用char標識等。一個類型名由一個或幾個關鍵字組成,僅用于說明數據屬于哪一種類型。

②對于基本數據類型,按取值是否可改變分為常量和變量兩種。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,取值可變的量稱為變量。它們可與數據類型結合起來分類。例如,可分為整型常量、整型變量、字符常量、字符變量等。在程序中,常量是可以不經過說明而直接引用的,而變量則必須先說明后使用。

[Return]2.2常量與變量

在程序運行中,其值不改變的量稱為常量。常量區(qū)分為不同的類型,如:5、0、-7為整型常量3.2、-4.68為實型常量‘a’、’f’為字符常量常量從字面形式即可判別。也可用一個標識符代表一個常量,稱為符號常量。習慣上,符號常量名用大寫,變量名用小寫字母表示,以示區(qū)別,例如:#definePI3.1415926[Return]2.2.1常量【例2-1】符號常量的使用。

已知圓半徑為r,求圓周長c和圓面積s的值。#definePI3.1415926main(){floatr,c,s;scanf(“%f”,&r);c=2*PI*r;s=PI*r*r;printf(“c=%6.2f,s=%6.2f\n”,c,s);}

在該程序中,用#define命令行定義PI,PI為定義的符號常量代表3.1415926,此后凡在程序中出現的PI都代表3.1415926。從上面的例子可以看出使用符號常量的好處:

一是含義清楚、見名知意。

看程序時從PI就可以知道它代表圓周率;

二是修改方便,一改全改。

如要“#definePI3.1415927”,則在程序中所有出現PI的地方值全部改為3.1415927。[Return]在程序運行時其值可以改變的量稱為變量。變量是由變量名、變量值和存儲單元組成的。2.2.2變量1.變量名的命名規(guī)則:

變量名用標識符表示。在C語言中,用來對變量、符號常量、函數、數組等數據對象命名的有效字符序列統(tǒng)稱為標識符。C語言規(guī)定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須是字母或下劃線。下面列出的是合法的標識符,可作為變量名:

abc,

sum,f4,student_1下面是不合法的標識符:8h以數字開頭-5以減號開頭A*出現非法字符*x<y出現非法字符<在使用標識符時須注意以下幾點:(1)建議變量名的長度最好不要超過8個字符。(2)標識符大小寫是有區(qū)別的。(3)標識符命名時應盡量有相應的含義,增加程序的可讀性。2.變量的定義

在C語言中,要求對所有用到的變量必須先定義。

定義格式:類型說明符變量1,變量2,……;

其中,類型說明符是C語言中的一個有效的數據類型,如整型類型說明符int、字符型類型說明符char等。例如:inta,b,c;charcc;

在C語言中,要求對所有用到的變量作強制定義,也就是“先定義,后使用”。

[Return]2.3整型數據2.3.1

整型常量

[Return]整型常量即整常數。C語言中的整常數可用以下3種形式表示:(1)十進制整常數。十進制整常數沒有前綴,其數碼為0~9。如:123、-234、0(2)八進制整常數。八進制整常數以0作為前綴。如:0123、-0234,后面只能是有效的八進制數字0~7,若寫成09就錯了。(3)十六進制整常數。十六進制整常數的前綴為0X或0x。其數碼取值為0~9,A~F或a~f。如:0x123、-0x234。2.3.2

整型變量

1.整型數據在內存中的存放形式整型數據在內存中是以二進制形式存放的。例如,定義了一個整型變量a:inta;/*定義a為整型變量*/a=25;/*給a賦以整數25*/

十進制數25的二進制形式為11001,TurboC2.0和TurboC++3.0為一個整型變量在內存中分配2個字節(jié)的存儲單元(不同的編譯系統(tǒng)為整型數據分配的字節(jié)數是不相同的),在這里我們假定每一個整型變量在內存中占2個字節(jié)。2.整型變量的分類

整型變量的基本類型符為int。

可以根據數值的范圍將變量定義為基本整型、短整型或長整型。有以下3類整型變量:

基本整型,以int表示。短整型,以shortint表示。長整型,以longint表示。在int前可以加上以下類型修飾符,用來改變和擴充基本類型的含義:long長short短signed有符號unsigned無符號這些修飾符與int可以組合成以下6種整型變量。即:有符號的基本整型[signed]int無符號的基本整型unsignedint有符號的短整型[signed]short[int]無符號的短整型unsignedshort[int]有符號的長整型[signed]long[int]無符號的長整型unsignedlong[int]上面的方括號表示其中的內容是可選的。

【例2-2】下圖保存了整數14的各種整型數據類型。3.整型變量的定義

在C語言程序中所有用到的變量都必須在程序中定義。

格式:

數據類型名變量名;【例2-3】變量的定義與使用。/*exam2_3*/main(){inta,b,c,sum;/*定義整型變量a、b、c、sum*/a=3,b=-4,c=9;/*a、b、c分別賦初值*/sum=a+b+c;/*求a、b、c的和賦給變量sum*/printf(“\nsum=%d”,sum);/*換行輸出變量sum的值*/}程序運行結果:sum=8[演示]4.整型數據的溢出

一個int型變量的最大允許值為32767,如果再加1,那么結果會是什么樣的呢?我們看下面這個例子?!纠?-4】整型數據的溢出。/*exam2_4*/main(){inta,b;a=32767;b=a+1;printf("\na=%d,a+1=%d\n",a,b);a=-32768;b=a-1;printf("\na=%d,a-1=%d\n",a,b);}程序運行結果:a=32767,a+1=-32768a=-32768,a-1=32767[演示]5.整型常量的類型(1)一個整數如果其值在-32768~32767范圍內,則認為是int型,可以賦給int型和longint型變量。(2)一個整數如果其值超過了上述范圍,在-2147483648~2147483647內,則認為是longint型,可賦給longint型變量。(3)如果所使用的C語言版本確定shortint和int型數據在內存中占據長度相同,則其表示范圍與int型相同。因此一個int型的常量也同時是一個shortint型常量,可以賦給int型或shortint型變量。(4)常量中無unsigned型,但可以將一個非負值且在取值范圍內的整數賦給unsigned型變量。(5)在一個整常量后面加一個字母l或L,則認為是longint型常量。[Return]2.4實型數據1.實型常量的表示方法2.4.1

實型常量C語言中的實數(浮點數)有兩種表示形式:(1)十進制小數形式由數字0~9和小數點和正負號組成(必須有小數點)。(2)指數形式也稱為科學計數法,以冪的形式表示,以字母e或E后跟一個以10為底的冪數。其一般形式為:ae±b,表示a×10±b,其中a是十進制數,可以是整數或是小數,字母e或E之前必須要有數字,且字母e或E后面的指數b必須為整數,字母e或E的前后及數字之間不得有空格。[Return]2.實型常量的類型

許多C編譯系統(tǒng)將實型常量作為雙精度實數來處理。這樣可以保證較高的精度,缺點是運算速度降低??梢栽趯崝档暮竺婕幼址鹒或F,如1.65f、654.87F,使編譯系統(tǒng)按單精度處理實數。

實型常量可以賦值給一個float、double、longdouble型變量。根據變量的類型截取實型常量中相應的有效數字?!纠?-5】顯示個人微機上不同類型變量所占的字節(jié)數。/*exam2_5*/#include<stdio.h>main(){printf(“thebytesofthevariablesare:\n”);printf(“int:%dbytes\n”,sizeof(int));printf(“char:%dbytes\n”,sizeof(char));printf(“short:%dbytes\n”,sizeof(short));printf(“l(fā)ong:%dbytes\n”,sizeof(long));printf(“float:%dbytes\n”,sizeof(float));printf(“double:%dbytes\n”,sizeof(double));printf(“l(fā)ongdouble:%dbytes\n”,sizeof(longdouble));}程序運行結果:thebytesofthevariablesare:

int:2bytes

char:1bytes

short:2bytes

long:4bytes

float:4bytes

double:8bytes

longdouble:10bytes[演示]2.4.2

實型變量

1.實型數據在內存中的存放形式

一個實型數據一般在內存中占4個字節(jié)(32位)。與整數存儲方式不同,實型數據是按照指數形式存儲的。系統(tǒng)將實型數據分為小數部分和指數部分,分別存放。2.實型變量的分類

C語言的實型變量,分為兩種:

(1)單精度型。類型關鍵字為float,一般占4字節(jié)(32位)、提供7位有效數字。(2)雙精度型。類型關鍵字為double,一般占8個字節(jié)、提供15~16位有效數字。3.實型數據的舍入誤差

實型變量是由有限的存儲單元組成的,因此提供的有效數字總是有限的。在有效位以外的數字將被舍去。由此可能會產生一些誤差。

【例2-6】實型數據的舍入誤差。/*exam2_6*/main(){floatx,y;x=123456.789e5;y=x+20;printf("x=%f,y=%f\n",x,y);}程序運行結果:x=12345678848.000000,y=12345678848.000000

[演示]【例2-7】實型數據的定義和使用。/*exam2_7*/main(){

floatx;

doubley;

x=123456.1234;y=123456.1234;printf(“x=%f,y=%lf\n”,x,y);}程序運行結果:x=123456.125000,y=123456.123400[演示]2.5 字符型數據

字符型常量是用一對單引號(′′)即撇號括起來的一個字符。只能用單引號括起來,不能用雙引號或其它括號。字符常量只能是單個字符,不能是字符串。注意:′a′和′A′是不同的字符常量。例如:′d′,′R′,′=′,′$′,′?′等都是合法字符常量。2.5.1字符常量1.定義[Return]2.轉義字符

轉義字符是一種特殊的字符常量,是以反斜杠\開頭的字符序列?!纠?-8】轉義字符的使用。/*exam2_8*/main(){printf(“\x4F\x4B”); }OK程序運行結果為:[演示]2.5.2

字符變量1.變量值的存儲字符變量的定義形式如下:chara1,a2;

它表示a1和a2為字符型變量,各可以放一個字符,因此在本函數中可以用下面語句對a1、a2賦值:

a1=′x′;

a2=′y′;2.特性(1)一個字符型數據,既可以字符形式輸出,也可以整數形式輸出。(2)允許對字符數據進行算術運算,此時就是對它們的ASCII碼值進行算術運算。【例2-10】用字符形式和整數形式輸出字符變量。/*exam2_10*/main()

{charch1,ch2;ch1='a';ch2='b';printf(“ch1=%c,ch2=%c\n”,ch1,ch2);printf(“ch1=%d,ch2=%d\n”,ch1,ch2);}程序運行結果:ch1=a,ch2=bch1=97,ch2=98[演示]【例2-11】字符數據的算術運算。/*exam2_11*/main(){charch1,ch2;ch1=‘a’;ch2=‘B’;printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32);/*字母的大小寫轉換*/}程序運行結果:ch1=A,ch2=b[演示]2.5.3

字符串常量1.字符串常量的概念和字符串長度字符串常量是用一對雙引號“

”括起來的若干字符序列。這里的雙引號僅起到字符串常量邊界符的作用,它并不是字符串常量的一部分。字符串中字符的個數稱為字符串長度。長度為0的字符串(即一個字符都沒有的字符串)稱為空串,表示為“”(一對緊連的雙引號)。2.字符串的存儲

C語言規(guī)定:在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個‘\0’作為字符串的結束標志。CHINA\0如有一個字符串為“CHINA”,則它在內存中的實際存儲如下圖所示:(存儲長度為6)[Return]2.6各類數據混合運算整型、實型、字符型數據之間可以混合運算。運算規(guī)則:不同類型的數據先轉換成同一類型,然后進行計算。轉換方法:自動轉換(隱式轉換)、強制轉換。[Return]自動轉換(隱式轉換)

自動轉換發(fā)生在不同類型數據進行混合運算時,由編譯系統(tǒng)自動完成。

自動轉換規(guī)則:類型不同,先轉換為同一類型,然后進行運算。(1)圖中縱向的箭頭表示當運算對象為不同類型時轉換的方向。

(2)圖中橫向向左的箭頭表示必定的轉換。2.強制轉換:通過類型轉換運算來實現。格式:(類型說明符)表達式功能:把表達式的結果強制轉換為類型說明符所表示的類型。例如:

(double)a/*將變量a的值轉換成double型*/(int)(x+y)/*將x+y的結果轉換成int型*/【例2-12】強制類型轉換。/*exam2_12*/main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}程序運行結果:x=3.600000,i=3x的類型仍為float型,值仍等于3.6。[演示]2.7C語言的運算符與表達式運算符:表示各種運算的符號。

表達式:使用運算符將常量、變量、函數連接起來的式子。

[Return]C語言的運算符有以下幾類:

算術運算符(+-*/%++--)關系運算符(<<===>>=!=)邏輯運算符(!&&||)位運算符(<<>>~|∧&)賦值運算符(=及其擴展賦值運算符)條件運算符(?:)逗號運算符(,)指針運算符(*&)求字節(jié)數運算符(sizeof)強制類型轉換運算符(類型)分量運算符(.->)下標運算符([])其它(如函數調用運算符())C語言有以下類型的表達式:

賦值表達式,如:a=1算術表達式,如:1*2+3/4.5關系表達式,如:4>7邏輯表達式,如:8>4&&a<b條件表達式,如:a>b?a:b逗號表達式,如:a=1,b=2,c=3位表達式,如:0&1=0,1|1=1,1^0=12.7.1

算術運算符和算術表達式1.算術運算符C語言提供的算術運算符及功能如下:+加法運算符或正值運算符。如31+18,+2。-減法運算符或負值運算符。如6-3,21+(-57)。*乘法運算符。如4*1.9。/除法運算符。如5/3。%模運算符或稱取余運算符,要求%的兩邊必須為整型數據。如123%15,2%7都是正確的,而25%1.5,12.0%6.0都是錯誤的表示。2.算術表達式

用算術運算符和括號將數據對象連接起來的式子,稱為算術表達式。運算對象包括常量、變量、函數等。例如:3+6*9(x+y)/2-aa*b+c-1.5+′a′

都是算術表達式。

算術運算符的結合方向為“自左至右”。

【例2-13】將430分鐘換算成小時和分鐘表示,然后輸出。/*exam2_13*/main(){inti,h,m;i=430;h=i/60;m=i-60*h;printf(“\n%dminutes:%dhour%dminutes”,i,h,m);}程序運行結果:430minutes:7hour10minutes[演示]【例2-14】求表達式2+d-10的值。(設a=64,d=6)/*exam2_14*/#include<math.h>/*調用標準數學函數*/main(){floata,d,s;a=64,d=6;s=2*sqrt(a)+d-10;printf(“\n%6.2f”,s);}程序運行結果:12.00[演示]2.7.2

自增與自減運算符1.功能自增運算符++的作用是使變量的值增1,自減運算符--的作用是使變量的值減1。2.用法與運算規(guī)則自增、自減運算符都有兩種用法:(1)前置運算──運算符放在變量之前:++變量、--變量

(2)后置運算──運算符放在變量之后:變量++、變量--

【例2-16】自增、自減運算符的用法。/*exam2_16*/main(){intx=6,y;printf("x=%d\n",x); /*輸出x的初值*/y=++x; /*前置運算*/printf("y=++x:x=%d,y=%d\n",x,y);y=x--; /*后置運算*/printf("y=x--:x=%d,y=%d\n",x,y);}程序運行結果:x=6y=++x:x=7,y=7y=x--:x=6,y=7[演示]

※注意:在表達式中,連續(xù)使同一變量進行自增或自減運算時,很容易出錯,所以最好避免這種用法。[Return]2.7.3

賦值運算符和賦值表達式1.賦值運算符

賦值運算符為“=”,它的作用是將一個數據賦給一個變量。

轉換原則:先將賦值號右邊表達式類型轉換為左邊變量的類型,然后賦值。

【例2-17】賦值運算中類型轉換的規(guī)則。

/*exam2_17*/main(){

inti=5;

/*說明整型變量i并初始化為5*/

floata=3.5,a1;

/*說明實型變量a和a1并初始化a*/doubleb=123456789.123456789;

/*說明雙精度型變量b并初始化*/

charc='A';

/*說明字符變量c并初始化為'A'*/

printf("i=%d,a=%f,b=%f,c=%c\n",i,a,b,c);

/*輸出i,a,b,c的初始值*/

a1=i;i=a;a=b;c=i;

/*整型變量i的值賦值給實型變量a1*//*實型變量a的值賦給整型變量i*//*雙精度型變量b的值賦值給實型變量a*//*整型變量i的值賦值給字符變量c*/

printf("i=%d,a=%f,a1=%f,c=%c\n",i,a,a1,c);

/*輸出i,a,a1,c賦值以后的值*/

}程序運行結果:i=5,a=3.500000,b=123456789.123457,c=Ai=3,a=123456792.000000,a1=5.000000,c=[演示]2.復合的賦值運算符

在賦值符“=”前加上某些運算符,可以構成復合賦值運算符。即+=,-=,*=,/=,%=,<<=,>>=,&=,|=,^=(共10種)

復合賦值運算符均為雙目運算符,右結合性。功能:對"變量名"和"表達式"進行復合賦值運算符所規(guī)定的運算,并將運算結果賦值給復合賦值運算符左邊的"變量名"。3.賦值表達式

賦值表達式:由賦值運算符組成的表達式稱為賦值表達式。賦值表達式一般形式:

變量名賦值運算符表達式賦值的含義:將賦值運算符右邊的表達式的值存放到左邊變量名標識的存儲單元中。例如:a=5+b;執(zhí)行賦值運算,將5+b的值賦給變量a,同時整個表達式的值就是剛才所賦的值。賦值運算符的功能:一是計算,二是賦值。[Return]2.7.4

關系運算符及其表達式1.關系運算符C語言提供了6種關系運算符:<小于>大于<=小于或等于>=大于或等于==等于!=不等于2.關系表達式

用關系運算符將兩個操作數連接起來的合法的C語言式子,稱為關系表達式。

例如,關系表達式”1==2”的值為“假”,

“4>3”的值為“真”。在C語言中以0表示邏輯假,以1表示邏輯真。當輸出結果為邏輯真時,顯示1;當輸出結果為邏輯假,顯示0。[Return]2.7.5

邏輯運算符及其表達式1.邏輯運算符C語言提供三種邏輯運算符:|| 邏輯或(相當于“OR”)&& 邏輯與(相當于“AND”)! 邏輯非(相當于“NOT”)邏輯運算符的運算規(guī)則:&&:當且僅當兩個運算量的值都為“真”時,運算結果為“真”,否則為“假”。||:當且僅當兩個運算量的值都為“假”時,運算結果為“假”,否則為“真”。!:當運算量的值為“真”時,運算結果為“假”;當運算量的值為“假”時,運算結果為“真”。邏輯運算符的優(yōu)先級:“邏輯非”的優(yōu)先級最高“邏輯與”次之“邏輯或”最低2.邏輯表達式

邏輯表達式是指用邏輯運算符將1個或多個表達式連接起來,進行邏輯運算的式子。在C語言中,用邏輯表達式表示多個條件的組合。[Return]2.7.6

逗號運算符(,)及其表達式逗號運算符的結合方向是“從左向右”,它的優(yōu)先級是所有運算符中最低的。用逗號運算符連接起來的表達式稱為逗號表達式。它的一般形式為:表達式1,表達式2,…,表達式n逗號表達式的運算過程是:先算表達式1,再算表達式2,依次計算直到表達式n。整個逗號表達式的值是表達式n的值。2.7.7

位運算符及其表達式

位運算符是位運算使用的運算符;位運算是指針對二進制位進行的運算。

C語言提供以下6種位運算符:

關系運算符含義&按位與|按位或^按位異或~按位取反<<左移位>>右移位位運算符優(yōu)先級別

:~高<<、>>&^|低[Return]2.8運算符的優(yōu)先級及其結合性1.運算符的優(yōu)先級一般而言,單目運算符優(yōu)先級較高,賦值運算符優(yōu)先級低,算術運算符優(yōu)先級較高。2.運算符的結合性多數運算符具有左結合性,單目運算符、賦值運算符和復合賦值運算符為右結合性。[Return]作業(yè)與實驗作業(yè):[習題二]上機操作:[實驗二][Return]第3章簡單的C程序設計本章學習目標了解C語言的基本語句熟悉程序設計的三種基本結構及其特點掌握賦值語句的使用方法掌握數據輸入、輸出函數的調用規(guī)則和格式控制字符的正確使用掌握順序結構程序的設計方法[Return]3.1C語句概述

3.2程序的三種基本結構

3.3賦值語句

3.4數據輸入輸出

3.5順序結構的C程序設計舉例

一個C程序一般包含若干個C語句。C語句可以分為以下七類:1.控制語句

(1)條件語句:if~else(在第4章中介紹)(2)多分支選擇語句:switch~case(在第4章中介紹)(3)結束本次循環(huán)語句:continue(在第5章中介紹)(4)中止switch或循環(huán)語句:break(在第5章中介紹)(5)循環(huán)語句:for,while,do~while(在第5章中介紹)(6)轉向語句:goto(在第5章中介紹)(7)從函數返回語句:return(在第7章中介紹)2.表達式語句:在表達式后面加分號構成。例如:a=3/*后面無分號,是表達式,不是語句*/a=3;/*后面有分號,是語句*/i++;/*為語句,相當于賦值語句i=i+1;*/3.變量定義語句:定義指定類型的變量,也可同時給變量賦初值。例如:inta=8;/*定義整型變量a,并給它賦初值8*/charc;/*定義字符型變量c*/4.數據類型定義語句:定義新的類型名來代表已有的類型名,以方便用戶更好地使用C語言編寫程序。例如:typedefcharSTR[10];/*定義STR為字符數組*/STRa,b;/*定義a,b為字符數組*/5.空語句:僅包含一個分號的語句,語句中無實質性內容。例:;/*僅由一個分號組成*/6.復合語句:由大括號{}括起來的語句序列。例如:

{c=a+b;c=c/100;

printf("%f",);

}7.函數調用語句:是函數的具體執(zhí)行部分,用于完成對數據的操作。例如:printf("WelcometotheCworld.");/*該語句是調用printf函數實現字符串輸出*/※注意:C語言允許一行寫多個語句,每條語句后面必須要有分號;也允許一個語句寫多行。[Return]3.2程序的三種基本結構C語言是理想的結構化程序設計語言。結構化程序的最大特點是以控制結構為單位,每個單位只有一個入口和一個出口。結構化程序中常見的基本結構有三種:1.順序結構2.選擇結構3.循環(huán)結構

圖3-1順序結構程序框圖在順序結構程序中,一般包括以下幾個部分:(1)程序開頭的編譯預處理命令在程序中若要使用標準函數(又稱庫函數),除printf()和scanf()函數外,使用其它的標準函數都必須使用編譯預處理命令,將相應的頭文件包含進來。(2)順序結構程序的函數體順序結構程序的函數體中包括完成程序具體功能的各個語句,主要有以下四部分:①變量類型的說明部分;②數據的輸入部分;③數據的處理部分;④數據的輸出部分。[Return]

根據條件p成立與否來選擇執(zhí)行程序的某部分,即:當條件P成立(“真”),執(zhí)行A操作,否則執(zhí)行B操作。但無論選擇哪部分,程序均將匯集到同一個出口。程序流程圖如圖3-2所示:圖3-2選擇結構程序流程圖

選擇結構還可以派生出“多分支選擇結構”,程序框圖如圖3-3所示。根據k的值(k1、k2、...、kn)不同,來選擇執(zhí)行多路分支A1、A2、...、An之一。圖3-3多分支選擇結構程序流程圖[Return](1)當型循環(huán)結構。當條件p成立(“真”)時,反復執(zhí)行A操作,直到p為“假”時才停止循環(huán)。程序流程圖如圖3-4所示:圖3-4當型循環(huán)結構程序流程圖(2)直到型循環(huán)結構。先執(zhí)行A操作,再判別條件p是否為“真”,若為“真”,再執(zhí)行A,如此反復,直到p為“假”為止。程序流程圖如圖3-5所示:假真圖3-5直到型循環(huán)結構程序流程圖

使用循環(huán)結構時,在進入循環(huán)前,應設置循環(huán)的初始條件。同時,在循環(huán)過程中,應修改循環(huán)條件,以便程序退出循環(huán)。如果不修改循環(huán)條件或循環(huán)條件錯誤修改,可能導致程序不能退出循環(huán),即進入“死循環(huán)”。

三種基本結構可以處理任何復雜的問題。[Return]3.3賦值語句1.一般格式:<變量名>=<表達式>;例如:c=a+b;2.功能:先計算賦值號右邊表達式的值,然后將計算得到的結果賦值給賦值號左邊的指定變量。3.說明:①C語言中的“=”作為賦值運算符,又稱“賦值號”,不是“等號”。②賦值語句和賦值表達式是不同的概念,賦值表達式使C語言非常靈活。例如:if((a=b)>0)t=a;

if((a=b;)>0)t=a;[Return]3.4數據輸入輸出C語言不提供輸入輸出語句,輸入輸出由開發(fā)系統(tǒng)提供的函數實現,其中:putchar()、printf()是輸出到終端(系統(tǒng)標準輸出設備,如顯示器)的函數;getchar()、scanf()是從系統(tǒng)標準輸入設備(一般指鍵盤)輸入數據的函數。 輸入輸出庫函數的原型在文件stdio.h中定義,因此,使用輸入輸出函數時,應在源程序的開頭使用如下語句:#include“stdio.h”

或#include<stdio.h>(關于編譯預處理命令的使用可參考第8章。)

stdio.h放在程序的開頭,稱為“頭文件”;由于使用#include(包含)命令,又稱為“包含文件”。

C語言開發(fā)系統(tǒng)提供很多庫函數,它們的原型在不同的頭文件中定義,因此,在程序開頭總是包含需要的頭文件。最常用的頭文件如表3-1所示。

表3-1最常用的頭文件頭文件名作用stdio.h定

定義輸入輸出函數string.h定義字符串操作函數math.h定義sin、cos、sqrt等數學函數3.4.1printf()——格式化輸出函數1.一般形式(1)格式:printf("格式字符串"[,輸出項表]);(2)功能:向系統(tǒng)默認的輸出設備(一般指終端或顯示器)格式化輸出一個或多個任意類型的數據。(3)說明:格式字符串:又稱“轉換控制字符串”,可以包含格式字符、轉義字符和普通字符三種字符。

輸出項表:輸出項表是可選的。如果要輸出的數據不止1個時,則相鄰2個數據之間有用逗號分開。

例如:

printf("a=%f,b=%5d,c=%c\n",a,b,c); /*a、b、c為輸出項表,中間用逗號隔開*/

“格式字符串”中的格式字符,必須與“輸出項表”中的輸出項的數據類型一致,否則會引起輸出錯誤。

2.格式字符輸出不同類型的數據,printf()函數中可以使用不同的格式字符:(1)d格式符:以帶符號的十進制整數形式輸出。

格式字符意義%d輸出數字長度為變量數值的實際長度%md輸出m位(不足補空格,大于m位時按實際長度輸出)%ld,%mldl(小寫字母L)表示輸出“長整型”數據%0md,%0mld0(數字0)表示位數不足m時補0【例3-1】

格式字符d的使用。/*exam3_1*/main(){ intnum1=123; longnum2=123456; printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1); printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2); printf("num1=%ld\n",num1);} 用4種不同格式,輸出int型數據num1的值用3種不同格式,輸出long型數據num2的值num1=123,num1=□□123,num1=123□□,num1=123num2=123456,num2=□□123456,num2=123456num1=11272315

程序運行結果如下:(□表示空格)說明:a.對于整數,還可用八進制、無符號形式(%o)和十六進制、無符號形式(%x)輸出。b.對于unsigned型數據,也可用%u格式符,以十進制、無符號形式輸出。(2)f格式:以小數形式,按系統(tǒng)默認的寬度,輸出單精度和雙精度實數。格式字符意義%f按實數格式輸出,整數部分按實際位數輸出,6位小數%m.nf總位數m(含小數點),其中n位小數,右對齊%-m.nf同上,左對齊【例3-2】

格式字符f的使用。/*exam3_2*/main(){ floatf=123.456; doubled1,d2; d1=1111111111111.111111111; d2=2222222222222.222222222; printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f); printf("d1+d2=%f\n",d1+d2);}屏幕顯示運行結果為:123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46d1+d2=3333333333333.333010float實數(單精度)的有效位數是7位,double實數(雙精度)的有效位數是16位,超過有效位數的輸出和輸入均無意義。說明:

a.對于實數,也可使用格式符%e,以標準指數形式輸出:尾數中的整數部分大于等于1、小于10,小數點占一位,尾數中的小數部分占5位;指數部分占4位(如e-03),其中e占一位,指數符號占一位,指數占2位,共計11位。

b.也可使用格式符%g,讓系統(tǒng)根據數值的大小,自動選擇%f或%e格式、且不輸出無意義的零。(3)C格式:僅輸出一個字符(只占一列寬度)。一個整數,若其值在0~255范圍內,可以用字符形式(c格式)輸出,也可以用整數形式(d格式)輸出。當用字符形式輸出時,在輸出前,將該整數轉換為對應的ASCII字符。【例3-3】格式字符c的使用。/*exam3_3*/main(void){ chara='A'; intb=65; printf("%c,%5c,%d\n",a,a,a); printf("%d,%c",b,b);}屏幕顯示運行結果為:A,□□□□A,6565,A※注意:在C語言中,整數可以用字符形式輸出,字符數據也可以用整數

溫馨提示

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

評論

0/150

提交評論