電子工業(yè)社-C語(yǔ)言程序設(shè)計(jì)(第2版)呼克佑全套教案課件_第1頁(yè)
電子工業(yè)社-C語(yǔ)言程序設(shè)計(jì)(第2版)呼克佑全套教案課件_第2頁(yè)
電子工業(yè)社-C語(yǔ)言程序設(shè)計(jì)(第2版)呼克佑全套教案課件_第3頁(yè)
電子工業(yè)社-C語(yǔ)言程序設(shè)計(jì)(第2版)呼克佑全套教案課件_第4頁(yè)
電子工業(yè)社-C語(yǔ)言程序設(shè)計(jì)(第2版)呼克佑全套教案課件_第5頁(yè)
已閱讀5頁(yè),還剩432頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)第1章C語(yǔ)言與程序設(shè)計(jì)第1章C語(yǔ)言與程序設(shè)計(jì)本章主要內(nèi)容:

C語(yǔ)言發(fā)展簡(jiǎn)史與特點(diǎn)

計(jì)算機(jī)解題過程

算法及其表示

常用算法策略介紹

結(jié)構(gòu)化程序設(shè)計(jì)方法。第1章C語(yǔ)言與程序設(shè)計(jì)計(jì)算機(jī)系統(tǒng)的組成計(jì)算機(jī)系統(tǒng)由硬件和軟件組成。硬件是組成計(jì)算機(jī)的物理設(shè)備,由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成。軟件是指程序及其相關(guān)文檔,程序是計(jì)算任務(wù)的處理對(duì)象和處理規(guī)則的描述,文檔是為了便于了解程序所需的闡明性資料。程序必須裝入機(jī)器內(nèi)部才能工作,文檔一般是給人看的,不一定裝入機(jī)器。程序是軟件系統(tǒng)中不可或缺的重要組成部分,是用計(jì)算機(jī)語(yǔ)言編寫的。學(xué)習(xí)計(jì)算機(jī)語(yǔ)言和程序設(shè)計(jì)技術(shù),就是要學(xué)會(huì)用計(jì)算機(jī)語(yǔ)言編寫解決實(shí)際問題的程序,這對(duì)于軟件開發(fā)人員來說是重要的一步。

第1章C語(yǔ)言與程序設(shè)計(jì)學(xué)習(xí)計(jì)算機(jī)語(yǔ)言當(dāng)然也包括C語(yǔ)言,主要是學(xué)習(xí)語(yǔ)法和語(yǔ)義兩個(gè)方面。計(jì)算機(jī)語(yǔ)言的語(yǔ)法是嚴(yán)格定義的,不允許有語(yǔ)法錯(cuò)誤。語(yǔ)法是一些規(guī)定,如各種語(yǔ)句及各種語(yǔ)法成分都有各自的規(guī)定。同時(shí)計(jì)算機(jī)語(yǔ)言的語(yǔ)義是唯一的,沒有二義性的,各種語(yǔ)句及語(yǔ)法成分有各自的語(yǔ)義。只有掌握計(jì)算機(jī)語(yǔ)言的語(yǔ)法,理解語(yǔ)義,才能正確使用計(jì)算機(jī)語(yǔ)言編寫出沒有語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的程序。第1章C語(yǔ)言與程序設(shè)計(jì)程序設(shè)計(jì)是給出解決特定問題程序的過程,包括問題分析、算法設(shè)計(jì)、程序源代碼設(shè)計(jì)、測(cè)試、調(diào)試和維護(hù)。源代碼可以用C語(yǔ)言編寫,也可以用其他計(jì)算機(jī)語(yǔ)言編寫。程序設(shè)計(jì)的目的是得到一個(gè)指令序列,提供給計(jì)算機(jī)來執(zhí)行,使得問題得到解決。在程序設(shè)計(jì)過程中,往往需要不同方面、不同領(lǐng)域的專業(yè)知識(shí),包括應(yīng)用領(lǐng)域知識(shí)、特定算法知識(shí)和形式邏輯知識(shí)等。

C語(yǔ)言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程。在學(xué)習(xí)過程中,不僅要掌握基本概念、語(yǔ)法和語(yǔ)義等內(nèi)容,還需要注重實(shí)驗(yàn)環(huán)節(jié),通過自己動(dòng)手編寫程序,在完成C語(yǔ)言程序的編輯、編譯、調(diào)試和運(yùn)行的過程中,加深對(duì)C語(yǔ)言的理解。1.1C語(yǔ)言發(fā)展簡(jiǎn)史

C語(yǔ)言是一種廣泛使用的面向過程的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,既適合于系統(tǒng)程序設(shè)計(jì),又適合于應(yīng)用程序設(shè)計(jì)。C語(yǔ)言在操作系統(tǒng)、軟件工程、圖形學(xué)、數(shù)值分析等諸多領(lǐng)域得到了廣泛的應(yīng)用。早期的計(jì)算機(jī)語(yǔ)言,除了匯編語(yǔ)言之外,高級(jí)程序設(shè)計(jì)語(yǔ)言有FORTRAN語(yǔ)言、ALGOL語(yǔ)言和COBOL語(yǔ)言等。后來出現(xiàn)了大量的各種各樣的高級(jí)語(yǔ)言,較有影響的有BASIC語(yǔ)言、PASCAL語(yǔ)言、C語(yǔ)言、C++語(yǔ)言和Java語(yǔ)言等。C語(yǔ)言的發(fā)展歷程大致如下圖所示。1.2C語(yǔ)言的特點(diǎn)C語(yǔ)言的特點(diǎn)可概括如下:

(1)C語(yǔ)言簡(jiǎn)潔、緊湊、靈活。C語(yǔ)言的核心內(nèi)容很少,只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句。

(2)表達(dá)方式簡(jiǎn)練、實(shí)用。C語(yǔ)言有一套強(qiáng)有力的運(yùn)算符,達(dá)44種。

(3)具有豐富的數(shù)據(jù)類型。C語(yǔ)言具有現(xiàn)代語(yǔ)言的各種數(shù)據(jù)類型,如字符型、整型、實(shí)型、數(shù)組、指針、結(jié)構(gòu)體和共用體等。

(4)具有低級(jí)語(yǔ)言的特點(diǎn),使用地址訪問內(nèi)存。

(5)C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言,適合于大型程序的模塊化設(shè)計(jì)。C語(yǔ)言提供了編寫結(jié)構(gòu)化程序的基本控制語(yǔ)句,例如if~else語(yǔ)句、switch語(yǔ)句、while語(yǔ)句和do~while語(yǔ)句等。C語(yǔ)言程序是函數(shù)的集合,函數(shù)是構(gòu)成C語(yǔ)言程序的基本單位,每個(gè)函數(shù)具有獨(dú)立的功能。1.2C語(yǔ)言的特點(diǎn)(6)各種版本的編譯器都提供了預(yù)處理命令和預(yù)處理程序。

(7)可移植性好。程序從一個(gè)環(huán)境不經(jīng)改動(dòng)或稍加改動(dòng)就可以移植到另一個(gè)完全不同的環(huán)境中運(yùn)行。

(8)生成的目標(biāo)代碼質(zhì)量高。由C源程序編譯和連接得到的目標(biāo)代碼的運(yùn)行效率比用匯編語(yǔ)言編寫的也不過只低10%~20%,可充分發(fā)揮機(jī)器的效率。

(9)C語(yǔ)言語(yǔ)法限制不嚴(yán),程序設(shè)計(jì)自由度大。1.3計(jì)算機(jī)解題過程

對(duì)于比較復(fù)雜的問題,需要使用軟件工程的方法來解決,超出本書的范圍。這里僅從學(xué)習(xí)C語(yǔ)言的角度簡(jiǎn)要認(rèn)識(shí)計(jì)算機(jī)解題的過程。計(jì)算機(jī)的解題過程如右圖所示,大致分為4個(gè)階段,分別是分析問題、設(shè)計(jì)算法、編寫程序和運(yùn)行驗(yàn)證。1.4算法及其表示C語(yǔ)言解題時(shí),在程序中有兩方面的描述,即數(shù)據(jù)描述和處理步驟(算法)描述,后者處理前者的數(shù)據(jù)。因此,編寫C語(yǔ)言程序之前,應(yīng)該將問題所涉及的數(shù)據(jù)、已知條件和問題的解決步驟分析清楚。下面通過兩個(gè)簡(jiǎn)單的實(shí)例來說明這一點(diǎn)

?!纠?-1】求兩個(gè)任意數(shù)的和與平均值。(1)數(shù)據(jù)描述問題中有4個(gè)數(shù)據(jù),兩個(gè)任意數(shù)、任意數(shù)之和以及平均值。在程序中定義4個(gè)浮點(diǎn)型變量存儲(chǔ)這些數(shù)據(jù),即:floata,b,sum,average;1.4算法及其表示(2)處理步驟描述

第1步:輸入兩個(gè)任意數(shù),存儲(chǔ)在變量a和b中。第2步:計(jì)算兩數(shù)之和與平均值,存儲(chǔ)在變量sum和average中。第3步:輸出變量sum和average的值,得到問題所要求的結(jié)果。根據(jù)上述分析,程序設(shè)計(jì)如下:1.4算法及其表示#include<stdio.h>voidmain(){ floata,b,sum,average; /*定義變量*/scanf("%f,%f",&a,&b); /*輸入兩個(gè)實(shí)型數(shù)*/sum=a+b; /*求兩個(gè)數(shù)的和*/average=(a+b)/2; /*求兩個(gè)數(shù)的平均值*/printf("sum=%f,average=%f\n",sum,average); /*輸出結(jié)果*/}1.4算法及其表示

【例1-2】某體育比賽,有10個(gè)裁判為參賽選手打分,參賽選手最后得分的計(jì)算方法是:去掉一個(gè)最高分和一個(gè)最低分后其它分?jǐn)?shù)的平均值。求參賽選手的最后得分。(1)數(shù)據(jù)描述問題中的原始數(shù)據(jù)有10個(gè),還有解題過程中需要計(jì)算的最高分、最低分和最后得分。在程序中可定義一個(gè)浮點(diǎn)數(shù)組s存儲(chǔ)10個(gè)裁判分?jǐn)?shù)、三個(gè)浮點(diǎn)變量max,min,score分別用來存儲(chǔ)最高分、最低分和最后得分,另外還需要若干輔助變量。1.4算法及其表示(2)處理步驟描述第1步:輸入10個(gè)裁判分?jǐn)?shù),存儲(chǔ)在數(shù)組s中第2步:求10個(gè)數(shù)的最高分、最低分、累加和,存儲(chǔ)在變量max、min和sum中。第3步:從sum中減去max和min并且除以8(=10-2)求得最后得分,存儲(chǔ)在變量score中。第4步:輸出變量score的值,則得到問題所要求的結(jié)果。對(duì)于第1步和第2步還需給出更詳細(xì)的步驟,以便程序?qū)崿F(xiàn)。根據(jù)上述分析,程序設(shè)計(jì)如下:1.4算法及其表示#include<stdio.h>voidmain(){ floats[10],max,min,sum,score; /*定義變量*/ inti; for(i=0;i<10;i++) /*輸入10個(gè)數(shù)*/ scanf("%f",&s[i]); max=min=sum=s[0]; /*求最高分、最低分及和值*/ for(i=1;i<10;i++) { if(max<s[i])max=s[i]; if(min>s[i])min=s[i]; sum+=s[i]; } score=(sum-max-min)/8; /*求最后得分*/ printf("score=%.4f",score); /*輸出結(jié)果*/}1.4.1算法的概念

算法是精確定義的一系列規(guī)則的集合,這些規(guī)則規(guī)定了解決特定問題的一系列操作,以便在有限的步驟內(nèi)產(chǎn)生出問題的答案。例1-1和例1-2中的處理步驟就是一種用自然語(yǔ)言描述的算法。

【例1-3】求兩個(gè)正整數(shù)m和n的最大公約數(shù)(即同時(shí)能夠整除m和n的最大正整數(shù))。歐幾里得闡述了求兩個(gè)數(shù)的最大公約數(shù)的過程——?dú)W幾里得算法。第1步:以n除m,并令r為所得余數(shù)(顯然n>r≥0)。第2步:若r=0,算法結(jié)束,n即為m和n的最大公約數(shù)。第3步:置m←n,n←r,返回第1步繼續(xù)。

算法中的符號(hào)←表示將該符號(hào)右邊變量或表達(dá)式的值存儲(chǔ)到左邊的變量中。1.4.1算法的概念

對(duì)于同一個(gè)問題,可以有不同的解題方法,即可以有不同的算法。如【例1-2】求參賽選手的最后得分問題,可以先將10個(gè)數(shù)排序,求中間8個(gè)數(shù)的平均值,還可以有其它方法。為了有效地解題,不但要求算法正確,還要考慮算法的質(zhì)量

。算法千變?nèi)f化、簡(jiǎn)繁各異,但是算法必須具有以下特性。有窮性確定性可行性輸入輸出1.4.2算法的表示

算法的基本組成結(jié)構(gòu)有三種,即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)?;蛘哒f,任何一個(gè)算法,無論其多么簡(jiǎn)單或多么復(fù)雜,都可以由這三種基本結(jié)構(gòu)組合而成。算法有多種表示方法,常用的表示方法有:

(1)自然語(yǔ)言描述;

(2)傳統(tǒng)流程圖;

(3)N—S流程圖;

(4)偽代碼;

(5)計(jì)算機(jī)語(yǔ)言描述。1.4.2算法的表示1.自然語(yǔ)言描述

例1-2和例1-3介紹的算法就是用自然語(yǔ)言描述的。自然語(yǔ)言可以是中文、英文、其他民族語(yǔ)言或數(shù)學(xué)表達(dá)式等。用自然語(yǔ)言描述算法通俗易懂,其缺點(diǎn)是文字有可能冗長(zhǎng),不太嚴(yán)格,容易產(chǎn)生歧義,表達(dá)分支和循環(huán)結(jié)構(gòu)不方便等。

2.傳統(tǒng)流程圖流程圖是用約定的圖框和流程線表示運(yùn)算或操作流程的圖示形式。其優(yōu)點(diǎn)是直觀形象、易于理解。美國(guó)標(biāo)準(zhǔn)化協(xié)會(huì)ANSI規(guī)定的一些常用流程圖符號(hào)如下圖所示:

1.4.2算法的表示

傳統(tǒng)流程圖常用圖形符號(hào)

1.4.2算法的表示

求最大公約數(shù)算法的傳統(tǒng)流程如下圖所示

1.4.2算法的表示3.N-S流程圖

N-S流程圖是一種結(jié)構(gòu)化流程圖,適合于表示結(jié)構(gòu)化算法。N-S流程圖完全取消了帶箭頭的流程線,全部算法寫在一個(gè)矩形框內(nèi),框內(nèi)還可以包含從屬于它的框?;緢D形符號(hào)如下所示:圖中A和B為某種操作或功能模塊,P為判斷條件。

成立

不成立

BA

P

B

A當(dāng)P成立

A

A當(dāng)P成立順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu):while循環(huán)結(jié)構(gòu):do-while1.4.2算法的表示

求最大公約數(shù)算法的N-S流程如下圖所示

方法1方法2輸入m,nr←m處以n的余數(shù)當(dāng)r≠0時(shí)執(zhí)行m←n,n←rr←m處以n的余數(shù)輸出n的值即為求的結(jié)果1.4.2算法的表示4.偽代碼偽代碼采用了類似程序設(shè)計(jì)語(yǔ)言的語(yǔ)句表示算法,但是偽代碼不是一種程序設(shè)計(jì)語(yǔ)言,不涉及程序設(shè)計(jì)的細(xì)節(jié)。偽代碼表示算法不用圖形符號(hào),比使用傳統(tǒng)流程圖和N-S流程圖表示算法更方便、緊湊并且易懂,便于將算法轉(zhuǎn)換為各種計(jì)算機(jī)語(yǔ)言的程序。求最大公約數(shù)算法的偽代碼(偽C語(yǔ)言)表示如右方所示:算法開始輸入m,n;do{r←以n除m的余數(shù);m←n;n←r;}while(r≠0);輸出m;算法結(jié)束1.5常用算法策略介紹

算法是解決問題的方法,不同領(lǐng)域有不同的方法。根據(jù)問題領(lǐng)域的不同,算法可以分為數(shù)值問題和非數(shù)值問題的算法。數(shù)值問題的算法解決傳統(tǒng)的數(shù)學(xué)問題,例如求方程解的算法和求定積分算法等。與數(shù)值問題的算法相比,計(jì)算機(jī)科學(xué)對(duì)非數(shù)值問題的算法給予了更多的重視。計(jì)算機(jī)在非數(shù)值領(lǐng)域的應(yīng)用十分廣泛,不同的應(yīng)用領(lǐng)域有不同的非數(shù)值問題算法,已遠(yuǎn)遠(yuǎn)超過了在數(shù)值問題方面的應(yīng)用。

算法思想種類繁多,常用的算法思想有枚舉法、遞推法、遞歸法等。本節(jié)簡(jiǎn)要介紹這幾種方法,程序設(shè)計(jì)中常常用到這些方法。1.5.1枚舉法

枚舉法又稱為窮舉法。該方法通過逐一考察問題的所有可能解,找出問題真正的解。枚舉法要求問題的可能解必須是有限的,而且這些可能解是已知的。

【例1-4】給定一個(gè)正整數(shù),確定它的整數(shù)立方根是否存在,若存在則找出這個(gè)立方根。

問題分析:一個(gè)正整數(shù)的整數(shù)立方根如果存在,一定在1和這個(gè)數(shù)之間,而這之間正整數(shù)的個(gè)數(shù)是有限的,所以可以設(shè)計(jì)一個(gè)基于枚舉法的算法。

算法開始輸入一個(gè)正整數(shù)給n;x←1;while(x≤n且x*x*x≠n){x←x+1;}if(x≤n)

找到n的整數(shù)立方根,輸出x的值;else

輸出n的整數(shù)立方根不存在信息;算法結(jié)束1.5.2遞推法

遞推法是從已知的初始條件或問題的最簡(jiǎn)單情況出發(fā),逐次推出中間結(jié)果。在理想狀態(tài)下,每遞推一次,結(jié)果逐漸接近問題的最后解。

【例1-5】計(jì)算一個(gè)正整數(shù)N的階乘。

問題分析:根據(jù)數(shù)學(xué)知識(shí)N!=1×2×3×…×N,為了求得N!,可以從1開始,求得1的階乘后再求2的階乘,再和3相乘得3的階乘,依次類推,最后求得N的階乘。算法開始輸入一個(gè)正整數(shù)給n;t←1;i←1;while(i≤n){ t←t×i; i←i+1;}輸出結(jié)果t算法結(jié)束1.5.3遞歸法

一個(gè)直接或間接調(diào)用過程(或函數(shù))自身的算法稱為遞歸算法,一個(gè)函數(shù)如果調(diào)用自身進(jìn)行計(jì)算則稱該函數(shù)為遞歸函數(shù)。一些問題的算法描述中,遞歸法往往比非遞歸法更加簡(jiǎn)潔易懂。

【例1-6】計(jì)算一個(gè)正整數(shù)N的階乘。階乘函數(shù)f的遞歸定義為:f(1)=1(1!=1,N=1時(shí))f(N)=N×f(N-1)(N!=N×(N-1)!,如果N>1)

前一式子給出函數(shù)的初始值,初始值是非遞歸定義的。每個(gè)遞歸函數(shù)都應(yīng)該給出非遞歸定義的初始值,否則這個(gè)函數(shù)無法計(jì)算出來。后一式子用較小自變量的函數(shù)值來表達(dá)較大自變量的函數(shù)值,在定義式的兩邊都引用了階乘函數(shù)f,所以是一個(gè)遞歸定義。1.6結(jié)構(gòu)化程序設(shè)計(jì)方法

編寫程序如果沒有一整套規(guī)范,就會(huì)造成程序可讀性差、無法維護(hù)等問題。結(jié)構(gòu)化程序設(shè)計(jì)方法有助于解決這個(gè)問題。對(duì)于過程性的計(jì)算機(jī)語(yǔ)言程序來說,使用結(jié)構(gòu)化程序方法可以提高程序的可閱讀性和可修改性,提高編寫程序的效率,縮短修改程序的時(shí)間。結(jié)構(gòu)化程序設(shè)計(jì)是由E.W.Dijikstra在1965年提出的,對(duì)程序設(shè)計(jì)及軟件開發(fā)產(chǎn)生了深遠(yuǎn)的影響。結(jié)構(gòu)化程序設(shè)計(jì)以功能模塊和過程設(shè)計(jì)為主,其要點(diǎn)如下:

(1)自頂向下,逐步求精

(2)模塊化

(3)結(jié)構(gòu)化1.6結(jié)構(gòu)化程序設(shè)計(jì)方法

結(jié)構(gòu)化程序設(shè)計(jì)要求程序中的每個(gè)基本結(jié)構(gòu)是單入口和單出口的;沒有死循環(huán),即沒有一段程序無休止執(zhí)行;沒有死語(yǔ)句,即沒有絕對(duì)不會(huì)被執(zhí)行的語(yǔ)句。本章作業(yè)

習(xí)題一一、2,4,6

二、1,2,3(1)~(4)C語(yǔ)言程序設(shè)計(jì)第2章C語(yǔ)言基礎(chǔ)知識(shí)第2章C語(yǔ)言基礎(chǔ)知識(shí)本章主要內(nèi)容:簡(jiǎn)單的C語(yǔ)言程序?qū)嵗址?、關(guān)鍵字和標(biāo)識(shí)符數(shù)據(jù)類型常量和變量運(yùn)算符、表達(dá)式、運(yùn)算符優(yōu)先級(jí)和結(jié)合性數(shù)據(jù)類型轉(zhuǎn)換05六月2025332.1簡(jiǎn)單的C語(yǔ)言程序

【例2-1】一個(gè)經(jīng)典C程序,輸出“Hello,World”。

#include<stdio.h>voidmain(void){ printf("Hello,world\n");}將上述程序輸入計(jì)算機(jī)并存儲(chǔ)在一個(gè)文件中,再對(duì)源程序文件進(jìn)行編譯、連接生成可執(zhí)行程序,最后運(yùn)行生成的可執(zhí)行程序,運(yùn)行結(jié)果如下圖所示。(演示)05六月2025342.1簡(jiǎn)單的C語(yǔ)言程序

【例2-2】計(jì)算兩個(gè)整數(shù)之和并且輸出結(jié)果。/*計(jì)算兩個(gè)整數(shù)之和,并輸出*/#include<stdio.h>voidmain(void){ intvalue1,value2,sum; /*定義變量*/ value1=30; /*為變量賦值*/ value2=45; sum=value1+value2; /*求和*/

printf("sum=%d\n",sum);/*輸出結(jié)果*/}05六月2025352.1簡(jiǎn)單的C語(yǔ)言程序

【例2-3】編寫程序,輸出兩個(gè)整數(shù)中的較大值。#include<stdio.h>/*定義函數(shù),求兩個(gè)整數(shù)中的較大值*/intmax(intx,inty){ intz; /*說明變量*/ if(x>y)z=x; /*將較大者賦值給z*/ elsez=y; returnz; /*返回z的值*/}05六月2025362.1簡(jiǎn)單的C語(yǔ)言程序voidmain(void){ inta,b,c; /*說明變量*/ printf("a,b="); /*輸出提示信息*/ scanf("%d,%d",&a,&b); /*輸入兩個(gè)整數(shù)*/ c=max(a,b); /*調(diào)用函數(shù)*/ printf("max=%d\n",c); /*輸出結(jié)果*/}05六月2025372.1簡(jiǎn)單的C語(yǔ)言程序?qū)程序的初步認(rèn)識(shí)

1.C程序是由一個(gè)或多個(gè)函數(shù)組成的。一個(gè)C程序必須有一個(gè)名為main的函數(shù),也可以有一個(gè)main函數(shù)和若干個(gè)其它函數(shù);因此,函數(shù)是組成C程序的基本單位。2.一個(gè)函數(shù)由兩部分組成,即函數(shù)頭(函數(shù)首部)和函數(shù)體。例1-3中函數(shù)max的函數(shù)頭是:intmax(intx,inty),其中的int是函數(shù)返回值類型,max是函數(shù)名,圓括號(hào)中的x和y是形式參數(shù),x,y前面的int是參數(shù)的類型;函數(shù)頭后面用花括號(hào)括起來的部分是函數(shù)體,一般包括說明部分(變量說明和函數(shù)聲明)和執(zhí)行部分。05六月2025382.1簡(jiǎn)單的C語(yǔ)言程序

3.C程序總是從main函數(shù)開始執(zhí)行的。無論main()函數(shù)寫在程序的什么位置,C程序總是從main函數(shù)開始執(zhí)行的,main函數(shù)以外的函數(shù)只能被調(diào)用。人們習(xí)慣將main函數(shù)寫在所有其它函數(shù)的前面。4.C程序書寫格式自由。編寫C程序時(shí),一行內(nèi)可以寫一個(gè)語(yǔ)句,也可以寫多個(gè)語(yǔ)句;一個(gè)語(yǔ)句也可以分寫在多行上;每個(gè)語(yǔ)句和說明的最后必須有一個(gè)分號(hào),分號(hào)是語(yǔ)句結(jié)束的標(biāo)志。05六月2025392.1簡(jiǎn)單的C語(yǔ)言程序5.伴隨C編譯系統(tǒng),C環(huán)境通常都提供了大量的庫(kù)函數(shù)供用戶使用。各種不同版本的C編譯系統(tǒng)可能對(duì)應(yīng)不同的庫(kù)函數(shù),包括輸入輸出操作也是由庫(kù)函數(shù)scanf和printf等完成的。熟悉和掌握C語(yǔ)言庫(kù)函數(shù)的使用,也是C語(yǔ)言學(xué)習(xí)的一個(gè)重要內(nèi)容。6.可以用/*……*/對(duì)C程序的任何部分作注釋,以增加程序的可讀性另外:通過上面例題程序,引出:類型、常量、變量、運(yùn)算符、表達(dá)式、語(yǔ)句等基本語(yǔ)法成分。05六月2025402.2關(guān)鍵字和標(biāo)識(shí)符

從語(yǔ)法角度來看,計(jì)算機(jī)語(yǔ)言程序的最小單位是字符,即程序是由字符組成的。程序是符合語(yǔ)法規(guī)定的字符的有序序列。這些字符除了字母、數(shù)字和標(biāo)點(diǎn)符號(hào)之外,還可以是制表符、回車符和換行符等。

計(jì)算機(jī)語(yǔ)言有若干語(yǔ)法元素,如關(guān)鍵字、標(biāo)識(shí)符、常量、變量、運(yùn)算符和表達(dá)式等,C語(yǔ)言也不例外。由語(yǔ)法元素構(gòu)成語(yǔ)句,由語(yǔ)句構(gòu)成程序。因此,C語(yǔ)言程序包含三個(gè)層次,它們是語(yǔ)法元素(也稱為單詞)、語(yǔ)句和程序。05六月2025412.2.1字符集C語(yǔ)言字符集包括以下的內(nèi)容:(1)字母:大寫字母A~Z、小寫字母a~z。(2)數(shù)字:0~9。(3)下畫線:_。(4)標(biāo)點(diǎn)符號(hào):,(逗號(hào))、;(分號(hào))、"(雙引號(hào))、'(單引號(hào))等。(5)特殊字符:+(加號(hào))、-(減號(hào))、*(乘號(hào))、/(除號(hào))、%(百分號(hào))、=(等于號(hào))、()(圓括號(hào))、[](方括號(hào))、{}(花括號(hào))、>(大于號(hào))、<(小于號(hào))、!(感嘆號(hào))、\(反斜杠)、|(豎線)、Tab(制表符)、

(空格符)等。制表符、空格符、回車符和換行符等是單詞的分隔符。標(biāo)點(diǎn)符號(hào)和特殊字符也是單詞的分隔符,同時(shí)自身也可能是運(yùn)算符。05六月2025422.2.2關(guān)鍵字

關(guān)鍵字又稱保留字,是語(yǔ)言中被賦予特定含義的單詞符號(hào)。ANSIC定義的核心關(guān)鍵字有32個(gè),下表給出了ANSIC定義的關(guān)鍵字分類,其中選擇語(yǔ)句、循環(huán)語(yǔ)句和控制轉(zhuǎn)移關(guān)鍵字合起來又稱為控制流關(guān)鍵字。

關(guān)鍵字用途int、char、float、double、long、short、signed、unsigned、struct、union、enum、void、auto、extern、register、static、typedef類型if、else、switch、case、default選擇語(yǔ)句do、while、for循環(huán)語(yǔ)句break、continue、goto、return控制轉(zhuǎn)移const、volatile、sizeof其他05六月2025432.2.3標(biāo)識(shí)符

程序中,通常需要對(duì)函數(shù)、變量、符號(hào)常量、數(shù)據(jù)類型和數(shù)組等進(jìn)行命名,這些名稱統(tǒng)稱為標(biāo)識(shí)符。標(biāo)識(shí)符是一個(gè)具有特定規(guī)則的字符序列,用來作為這些對(duì)象的名稱。需要注意,C語(yǔ)言中大小寫字符是有區(qū)別的。例如,2.1節(jié)中的變量名value1、value2、sum和函數(shù)名printf、max都是標(biāo)識(shí)符。而max和Max不是同一個(gè)標(biāo)識(shí)符。

標(biāo)識(shí)符是符合以下語(yǔ)法規(guī)則的字符序列:(1)首字符必須是字母或下畫線。(2)只能包含字符A~Z、a~z、0~9及_(下畫線)。(3)標(biāo)識(shí)符不能是關(guān)鍵字。(4)標(biāo)識(shí)符不能跨行書寫。05六月2025442.2.3標(biāo)識(shí)符

例如,以下這些字符序列是合法的C語(yǔ)言標(biāo)識(shí)符:

abcABCAbcbufferdata1_abcfilename而以下這些字符序列則是非法的C語(yǔ)言標(biāo)識(shí)符:

+abc$xyz2apple%cat

通常遵循以下原則來使用標(biāo)識(shí)符:(1)選擇具有一定意義的英文單詞做標(biāo)識(shí)符。例如,用day表示日期、sum表示和等等。(2)適當(dāng)?shù)厥褂孟庐嬀€。例如,用load_num表示調(diào)入數(shù)據(jù)等。(3)使用約定俗成的標(biāo)識(shí)符。例如,temp表示中間變量,x、y和z表示需要計(jì)算的變量等。(4)標(biāo)識(shí)符的長(zhǎng)度不要過長(zhǎng)。(5)用大小寫區(qū)別命名。例如,loadnum和loadNum是兩個(gè)不同的標(biāo)識(shí)符,后者則相對(duì)易于閱讀。程序中,變量通常使用小寫字母開頭的標(biāo)識(shí)符,而符號(hào)常量往往使用大寫字母的標(biāo)識(shí)符。05六月2025452.3數(shù)據(jù)類型

程序處理的對(duì)象是數(shù)據(jù)。數(shù)據(jù)有許多種類,如123是一個(gè)整數(shù),3.14是一個(gè)帶小數(shù)點(diǎn)的浮點(diǎn)數(shù),A是一個(gè)字符等等。不同種類的數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)形式是不同的,處理方法也是不同的。為了描述不同種類的數(shù)據(jù)特征,引入了數(shù)據(jù)類型的概念。

數(shù)據(jù)類型決定了數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)形式。如整數(shù)123,它的類型是整型(int),在內(nèi)存中使用4個(gè)字節(jié)(32位)存儲(chǔ);又如字符A,是字符型(char)數(shù)據(jù),在內(nèi)存中使用1個(gè)字節(jié)(8位)存儲(chǔ),等等。C語(yǔ)言提供了如下的數(shù)據(jù)類型:(教材表2-3)05六月2025462.3.1C語(yǔ)言的數(shù)據(jù)類型數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型(void)基本整型(int)短整型(shortint)長(zhǎng)整型(longint)無符號(hào)整型無符號(hào)基本整型(unsignedint)無符號(hào)短整型(unsignedshortint)無符號(hào)長(zhǎng)整型(unsignedlongint)整型字符型(char)實(shí)型(浮點(diǎn)型)單精度實(shí)型(float)雙精度實(shí)型(double)枚舉類型(enum)數(shù)組類型共用體類型(union)結(jié)構(gòu)體類型(struct)05六月2025472.3.1C語(yǔ)言的數(shù)據(jù)類型

數(shù)據(jù)類型決定此類數(shù)據(jù)的存儲(chǔ)空間、表示形式、取值范圍和可以參與的運(yùn)算。例如,有符號(hào)整數(shù)類型的數(shù)據(jù)帶有一個(gè)二進(jìn)制的正負(fù)符號(hào)位,通常在最左邊,負(fù)整數(shù)采用補(bǔ)碼表示;浮點(diǎn)類型根據(jù)精度的不同使用不同的字節(jié)數(shù)表示,其尾數(shù)部分和指數(shù)部分有各自的編碼方式。

需要注意的是,數(shù)據(jù)類型本身只是數(shù)據(jù)的一種抽象描述,只有用它定義的變量才分配存儲(chǔ)空間。

一定要理解數(shù)據(jù)類型的概念,知道C語(yǔ)言中有哪些數(shù)據(jù)類型!

本章介紹基本數(shù)據(jù)類型:整型、浮點(diǎn)型和字符型。05六月2025482.3.2整數(shù)類型C語(yǔ)言的整數(shù)類型包括帶符號(hào)和無符號(hào)兩類。從使用的空間字節(jié)數(shù)來看,又分為整型、短整型和長(zhǎng)整型。下表給出了16位機(jī)整數(shù)類型的存儲(chǔ)字節(jié)數(shù)和表示范圍

。類

型存儲(chǔ)表

圍shortint2字節(jié)-32768~32767(-215~215-1)unsignedshortint2字節(jié)0~65535(0~216-1)int2字節(jié)-32768~32767(-215~215-1)unsignedint2字節(jié)0~65535(0~216-1)longint4字節(jié)-2147483648~2147483647(-231~231-1)unsignedlongint4字節(jié)0~4294967295(0~232-1)a15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0intunsignedint符號(hào)位也是數(shù)值位例如:05六月2025492.3.2整數(shù)類型

下面以16位機(jī)上C語(yǔ)言為例,簡(jiǎn)單介紹整數(shù)類型的存儲(chǔ)形式,帶符號(hào)整數(shù)類型數(shù)據(jù)在存儲(chǔ)單元中是以補(bǔ)碼形式存儲(chǔ)的。例如:87的存儲(chǔ)形式為:-87的存儲(chǔ)形式為:-1的存儲(chǔ)形式為:87L的存儲(chǔ)形式為:11111111111111110000000001010111111111111010100100000000010101110000000000000000(考慮:-87L和-1L的存儲(chǔ)形式)05六月2025502.3.3浮點(diǎn)類型C語(yǔ)言用浮點(diǎn)類型來表示人們概念中的實(shí)數(shù)(含有小數(shù))。C語(yǔ)言的浮點(diǎn)類型有單精度浮點(diǎn)型(float)、雙精度浮點(diǎn)型(double)和長(zhǎng)雙精度浮點(diǎn)型(longdouble),常見的浮點(diǎn)類型如下表所示:類

型存儲(chǔ)表

圍精度float4字節(jié)±3.4×10-38~3.4×10387位數(shù)有效字double8字節(jié)±1.7×10-308~1.7×1030816位有效數(shù)字longdouble10字節(jié)±3.4×10-4932~3.4×10493219位有效數(shù)字

當(dāng)精度要求不高時(shí),一般使用單精度浮點(diǎn)型,如日常生活中的溫度、速度、長(zhǎng)度、面積和體積等都可以使用該類型;雙精度浮點(diǎn)型提供了更高的精度,可以滿足絕大多數(shù)的應(yīng)用需求;對(duì)精度有極高的要求時(shí),需要使用長(zhǎng)雙精度浮點(diǎn)型。05六月2025512.3.4字符類型

字符類型(char)主要用于文字或文本數(shù)據(jù)的處理,是C語(yǔ)言中的重要類型之一。目前,最常用的字符集是ASCII(美國(guó)信息交換標(biāo)準(zhǔn)碼)字符集,參見附錄A。它用7位二進(jìn)制編碼表示128個(gè)字符。ASCII碼中,數(shù)字字符0~9用0110000~0111001碼表示,大寫字母A~Z用1000001~1011010碼表示。

C語(yǔ)言允許把字符作為整數(shù)來使用,所以字符類型與整數(shù)類型一樣,也分有符號(hào)和無符號(hào)兩種類型,如下表所示:

類型存儲(chǔ)表示范圍char1字節(jié)-128~127(-27~27-1)unsignedchar1字節(jié)0~255(0~28-1)

字符類型的數(shù)據(jù)在內(nèi)存中存儲(chǔ)的是其ASCII碼值。例如,字符'0'和'A'的存儲(chǔ)形式如下:010000010011000005六月2025522.4常量和變量C語(yǔ)言中的數(shù)據(jù)有常量和變量?jī)煞N形式。常量是在程序運(yùn)行過程中其值不能改變的量。變量是在程序運(yùn)行過程中,其值可以在其類型規(guī)定的范圍內(nèi)變化的量。每個(gè)常量和變量都屬于某種類型。變量代表特定類型的存儲(chǔ)空間(也稱為存儲(chǔ)單元),當(dāng)變量的存儲(chǔ)空間的內(nèi)容發(fā)生變化時(shí),變量的值隨之改變。變量必須遵守“先定義,后使用”的原則,并且使用數(shù)據(jù)類型進(jìn)行定義,一旦定義了變量就會(huì)為該變量分配相應(yīng)的存儲(chǔ)空間。

從使用的角度理解,程序中需要存儲(chǔ)數(shù)據(jù)時(shí),就要定義相應(yīng)的變量。05六月2025532.4.1常量(數(shù)據(jù)的表示)

C語(yǔ)言的常量有整數(shù)常量、浮點(diǎn)數(shù)常量、字符常量和字符串常量。常量可以出現(xiàn)在表達(dá)式中,直接參與計(jì)算。例如,12、3.14、'A'、“Hello”都是(直接)常量的例子。

C語(yǔ)言也提供預(yù)處理命令#define定義符號(hào)常量,使用標(biāo)識(shí)符作為符號(hào)常量的名稱,符號(hào)常量可以像常量一樣使用。以下的程序段定義了符號(hào)常量PI,代表圓周率3.14159,然后用PI計(jì)算圓的周長(zhǎng)和面積。

#definePI3.14159doubleradius=10,circumference,area;circumference=2*PI*radius;/*圓的周長(zhǎng)*/area=PI*radius*radius; /*圓的面積*/

一定要掌握各種常量在程序中的書寫方法!05六月2025541.整數(shù)常量

整數(shù)常量有十進(jìn)制、八進(jìn)制和十六進(jìn)制三種表示形式:

(1)十進(jìn)制整數(shù)常量:由正負(fù)號(hào)(+或-)和數(shù)字0~9組成,首字符不能是0。例如,128、-98、0、100。

(2)八進(jìn)制整數(shù)常量:以0開頭,由數(shù)字0~7組成,首字符必須是0。例如,0127表示八進(jìn)制數(shù)127,即(127)8,等于十進(jìn)制數(shù)87。再如,0144,等于十進(jìn)制數(shù)100。

(3)十六進(jìn)制整數(shù)常量:以0x或0X開頭,由0~9、a~z或A~Z組成。例如,0x1C表示十六進(jìn)制數(shù)1C,即(1C)16

,等于十進(jìn)制數(shù)28。再如,0x64,等于十進(jìn)制數(shù)100。上述三種形式表示的整數(shù)是int型。若要表示long型常量時(shí),需在整數(shù)后面加字母L或l。例如,87L是一個(gè)長(zhǎng)整數(shù)常量。(提問:存儲(chǔ)87和87L分別使用幾個(gè)字節(jié)?)05六月2025552.浮點(diǎn)數(shù)常量

浮點(diǎn)數(shù)常量有十進(jìn)制表示法和指數(shù)表示法,浮點(diǎn)數(shù)常量必須包含小數(shù)點(diǎn)或指數(shù)部分,可以帶正、負(fù)符號(hào)。

(1)十進(jìn)制表示法與數(shù)學(xué)表示相同,包含整數(shù)部分和小數(shù)部分,但是沒有指數(shù)部分,例如:

987.-123.456.456。

(2)指數(shù)表示法包含尾數(shù)部分和指數(shù)部分,尾數(shù)部分可以是整數(shù)或十進(jìn)制浮點(diǎn)數(shù);指數(shù)部分是以字符E或e開頭,后面跟一個(gè)可以帶正、負(fù)符號(hào)的整數(shù)。例如:

-123E3表示-123×103987.654e-10表示987.654×10-10。

上述兩種方法表示的浮點(diǎn)數(shù)是double型浮點(diǎn)數(shù),若要表示float型或longdouble型浮點(diǎn)數(shù)時(shí),需加后綴F或L。請(qǐng)指出下面常量的類型。

123.123123.L123L123.F05六月2025563.字符常量

字符常量是用單引號(hào)括起來的單個(gè)字符。例如,'A'、'g'、'?'、'6'都是字符常量。注意,其中的單引號(hào)不是字符常量的一部分,只起分隔作用,稱為字符常量定界符。

對(duì)于無法顯式地書寫或無法從鍵盤直接輸入的字符,。C語(yǔ)言提供了一種特殊的表示法——轉(zhuǎn)義序列,通常稱為轉(zhuǎn)義符。轉(zhuǎn)義符有字符轉(zhuǎn)義符和數(shù)字轉(zhuǎn)義符兩種。字符轉(zhuǎn)義符由反斜杠(\)加一個(gè)字母組成,如'\n'表示換行符。數(shù)字轉(zhuǎn)義符又有8進(jìn)制轉(zhuǎn)義符和16進(jìn)制轉(zhuǎn)義符兩種。例如:\n 換行 \'

單引號(hào)\t 水平制表 \“

雙引號(hào)\v 垂直制表 \\ 反斜杠\b 退格 \ddd 碼值為八進(jìn)制ddd的字符\r 回車 \xhh 碼值為十六進(jìn)制hh的字符\f 走紙換頁(yè)

請(qǐng)看下面的例子:05六月2025573.字符常量⑴換行字符:'\n'

'\12'

或'\xA'⑵回車字符:'\r'

或'\15'或

'\xD'⑶字母A:'A'

或'\101'

或'\x41'⑷字母a:'a'

或'\141'

或'\x61'字符數(shù)據(jù)在內(nèi)存中存儲(chǔ)字符的ASCII碼值,占用1個(gè)字節(jié)(8位),如字符A的存儲(chǔ)形式:a7a6a5a4a3a2a1a001000001

字符數(shù)據(jù)也可以理解成值為字符碼值的整數(shù),也就是說,字符數(shù)據(jù)可以作為整數(shù)使用;反過來,整數(shù)也可以作為字符使用,此時(shí),把整數(shù)的低8位作為字符的ASCII碼值。05六月2025584.字符串常量

字符串常量是用一對(duì)雙引號(hào)引起來的零個(gè)或多個(gè)字符序列。例如,以下這些都是字符串常量:

"How

are

you","123.4","a","

",""

字符串中的字符數(shù)稱為字符串的長(zhǎng)度,零個(gè)字符的字符串稱為空串。字符串存儲(chǔ)在一塊連續(xù)的內(nèi)存中,自動(dòng)在字符串的末尾加一個(gè)結(jié)束標(biāo)志'\0'(空字符)。例如:

⑴字符串"a"的存儲(chǔ)形式為:

'H'

'o'

'w'

'

'

'a'

'r'

'e'

'

'

'y'

'o'

'u'

'\0'

'a''\0'⑵字符串:"Howareyou"的存儲(chǔ)形式為:注意:字符常量與長(zhǎng)度為1的字符串常量的區(qū)別。如'a'與"a"的區(qū)別字符串結(jié)束標(biāo)記05六月2025592.4.2變量(數(shù)據(jù)的存儲(chǔ))C語(yǔ)言的變量代表的是一塊存儲(chǔ)空間。在程序運(yùn)行過程中,如果變量的存儲(chǔ)空間的內(nèi)容被改變,則意味著變量的值改變了。每一個(gè)變量必須在定義之后才能使用,可以使用各種數(shù)據(jù)類型來定義變量,并且用標(biāo)識(shí)符作為變量名稱。一個(gè)變量有三個(gè)要素:變量名,存儲(chǔ)單元,變量的當(dāng)前值。例如,以下的變量說明語(yǔ)句:

inta=10;定義整型變量a,并設(shè)置初值為10。下圖可幫助理解。a10變量名存儲(chǔ)空間變量的當(dāng)前值變量名是a,存儲(chǔ)單元(方框表示),變量值為10(寫在方框內(nèi))。當(dāng)給變量賦值后,存儲(chǔ)單元中數(shù)據(jù)發(fā)生變化,變量的值也變化。05六月2025602.4.2變量

1.變量定義變量定義語(yǔ)句的一般形式如下:

數(shù)據(jù)類型變量名列表;

數(shù)據(jù)類型可以是表2-3中的變量類型,也可以是程序員自己定義的類型。變量名列表是由逗號(hào)(,)分隔開的若干變量或含有初始化值的變量。每一個(gè)變量名必須是一個(gè)合法的標(biāo)識(shí)符,并且不能同名。例如:intx=10,y; /*定義整型變量x,y*/longz; /*定義長(zhǎng)整型變量z*/charch; /*定義字符型變量ch*/

變量定義之后便有了相應(yīng)的存儲(chǔ)單元,就能夠在程序中使用定義了的變量。如果變量沒有聲明就使用,編譯程序就會(huì)給出出錯(cuò)信息。

(提問:定義變量的目的?)05六月2025612.4.2變量

2.變量初始化定義變量的同時(shí)為變量指定一個(gè)初值,稱為變量的初始化。例如:inta=10;/*定義a為整型變量,初值為10*/floatb=10.23;/*定義b為實(shí)型變量,初值為10.23*/charc='A';/*定義c為字符型變量,初值為'A'*/也可以對(duì)變量名列表中的部分變量進(jìn)行初始化。例如:inta,b,c=6;/*定義a,b,c為整型變量,c初值為6*/如果對(duì)幾個(gè)變量賦以同一個(gè)初值,應(yīng)寫成:inta=6,b=6,c=6;/*定義a,b,c為整型變量,初值都為6*/而不能寫成以下這樣:inta=b=c=6;(×)因?yàn)椴环献兞慷x的語(yǔ)法格式!(請(qǐng)指出具體錯(cuò)誤)05六月2025622.5運(yùn)算符和表達(dá)式

使用運(yùn)算符可以完成一些簡(jiǎn)單的數(shù)據(jù)運(yùn)算,而復(fù)雜的數(shù)據(jù)運(yùn)算只能通過程序控制實(shí)現(xiàn)。除了輸入輸出和控制語(yǔ)句,幾乎所有的操作都可以使用運(yùn)算符實(shí)現(xiàn)。

C語(yǔ)言運(yùn)算符按其功能分類有:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、遞增遞減運(yùn)算符等。

按參與運(yùn)算的操作數(shù)個(gè)數(shù)來分有:?jiǎn)文窟\(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。用運(yùn)算符將操作數(shù)(常量、變量和函數(shù))按一定的規(guī)則連接起來,就構(gòu)成了表達(dá)式。表達(dá)式的種類也很多,如算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式等等。表達(dá)式總是有值的,表達(dá)式的值是按照運(yùn)算符的優(yōu)先級(jí)和結(jié)合性(運(yùn)算方向)規(guī)則求得的,因此,書寫表達(dá)式時(shí)要注意運(yùn)算符的優(yōu)先等級(jí)和運(yùn)算方向。05六月2025632.5運(yùn)算符和表達(dá)式C語(yǔ)言的運(yùn)算符有15個(gè)運(yùn)算級(jí)別和兩種運(yùn)算方向。

15個(gè)運(yùn)算級(jí)別依次用1~15表示,數(shù)字越小,運(yùn)算級(jí)別越高。兩種運(yùn)算方向是自左至右(左結(jié)合性)和自右至左(右結(jié)合性)。

表達(dá)式的計(jì)算規(guī)則:運(yùn)算級(jí)別不同時(shí),先進(jìn)行運(yùn)算級(jí)別高的運(yùn)算,再進(jìn)行運(yùn)算級(jí)別低的運(yùn)算;運(yùn)算級(jí)別相同時(shí),運(yùn)算順序由結(jié)合方向決定。C語(yǔ)言的運(yùn)算符詳見附錄B。與人們?nèi)粘5谋磉_(dá)式書寫習(xí)慣一樣,C語(yǔ)言的表達(dá)式是中綴表示法,即對(duì)于雙目運(yùn)算符而言,運(yùn)算符寫在兩個(gè)操作數(shù)的中間,如a+b和a-b;一般的單目運(yùn)算符則寫在操作對(duì)象的左邊,如-a、+b和++c;只有單目的自增和自減運(yùn)算符可以寫在操作數(shù)的右邊,如a++和b--。05六月2025642.5.1算術(shù)運(yùn)算符及其表達(dá)式1.算術(shù)運(yùn)算符

C語(yǔ)言的算術(shù)運(yùn)算符用來計(jì)算數(shù)值類型數(shù)據(jù),是應(yīng)用最為廣泛的一類運(yùn)算符,,包括加、減、乘、除和取正、負(fù)等,如下表所示:優(yōu)先級(jí)運(yùn)算符含

義舉

例備

注2++自增++x或x++單目運(yùn)算符,相當(dāng)于x=x+1-

-自減-

-x或x-

-單目運(yùn)算符,相當(dāng)于x=x-1+取正值+(x+y)單目運(yùn)算符-取負(fù)值-(x–y)單目運(yùn)算符3*乘法x*y雙目運(yùn)算符/除法x/z雙目運(yùn)算符%取模(余數(shù))x%y雙目運(yùn)算符4+加法x+y雙目運(yùn)算符-減法x–y雙目運(yùn)算符05六月2025652.5.1算術(shù)運(yùn)算符及其表達(dá)式

算術(shù)運(yùn)算符使用說明:

(1)-(取負(fù))、++、--是單目運(yùn)算符,*、/、%、+、-是雙目運(yùn)算符。例如:

-xi++--ix+y(2)+、-、*、/與數(shù)學(xué)中運(yùn)算類似。除法運(yùn)算符在用于兩個(gè)整型數(shù)據(jù)運(yùn)算時(shí),其運(yùn)算結(jié)果也是整數(shù),余數(shù)部分被舍棄。例如:

5/2.0=2.55/2=2(不是2.5)

7/4=1-7/4=-17/-4=-1(3)求余運(yùn)算符(%)的運(yùn)算對(duì)象只能是整型數(shù)據(jù),它的作用是求整數(shù)除法的余數(shù),余數(shù)的符號(hào)與左操作數(shù)的符號(hào)相同。例如:

8%2=07%4=3-7%4=-37%-4=3-7%-4=-305六月2025662.5.1算術(shù)運(yùn)算符及其表達(dá)式(4)自增(++)、自減(--)運(yùn)算符自增、自減運(yùn)算符的作用是使變量的值增1或減1,運(yùn)算對(duì)象只能是變量,不能是常量或表達(dá)式,如果寫成6++或(a+b)++都是錯(cuò)誤的。自增、自減運(yùn)算符是單目運(yùn)算符,運(yùn)算符可以寫在變量的前面,也可以寫在變量的后面,例如:①i++,i--注意:(i++)或(i--)是表達(dá)式

++i,--i

就變量的值而言,這兩種寫法都使變量的值增1(或減1),而對(duì)表達(dá)式的值來說結(jié)果是不一樣的。第①種情況表達(dá)式值是變量i增1(或減1)之前的值;第②種情況表達(dá)式值是變量i增1(或減1)之后的值。設(shè)變量i的值為5,則表達(dá)式i++的值為5,而++i的值為6,變量i的值變?yōu)?。05六月2025672.5.1算術(shù)運(yùn)算符及其表達(dá)式

2.算術(shù)表達(dá)式

算術(shù)表達(dá)式由算術(shù)運(yùn)算符、操作數(shù)和圓括號(hào)組成。含有算術(shù)運(yùn)算符,符合C語(yǔ)言表達(dá)式語(yǔ)法的式子稱為算術(shù)表達(dá)式。這里的操作數(shù)可以是常量、變量和函數(shù)。允許用圓括號(hào)改變計(jì)算優(yōu)先順序,圓括號(hào)在表達(dá)式中是成對(duì)出現(xiàn)的,圓括號(hào)括起來的式子也可以作為操作數(shù),圓括號(hào)是允許嵌套的。表達(dá)式((a+b)*c-d)/e就是一個(gè)含有多重圓括號(hào)嵌套的表達(dá)式,該表達(dá)式的計(jì)算過程如下:((a+b)*c-d)/e①②③④請(qǐng)列舉一些數(shù)學(xué)公式,寫成C語(yǔ)言表達(dá)式,注意圓括號(hào)的使用。05六月2025682.5.2賦值運(yùn)算符及其表達(dá)式C語(yǔ)言的賦值運(yùn)算符比較特殊,從語(yǔ)法上看是一個(gè)運(yùn)算符,從語(yǔ)義上看是賦值。賦值運(yùn)算符的優(yōu)先級(jí)為14,僅比逗號(hào)運(yùn)算符的優(yōu)先級(jí)高,運(yùn)算方向?yàn)樽杂抑磷蟆?/p>

1.賦值運(yùn)算符

C語(yǔ)言中賦值運(yùn)算符是“=”,變量通過賦值得到一個(gè)新的值。由賦值運(yùn)算符(=)構(gòu)成的賦值表達(dá)式的一般形式是:

v=e或變量=表達(dá)式

其中,v是變量(或存儲(chǔ)單元),e是表達(dá)式。其語(yǔ)義是對(duì)賦值運(yùn)算符右邊的表達(dá)式e進(jìn)行求值,將表達(dá)式e的值存儲(chǔ)在賦值運(yùn)算符左邊的變量(或存儲(chǔ)單元)v中。例如:

x=3y=4z=x+y賦值表達(dá)式也有值,賦值表達(dá)式的值就是賦值給變量的值。

c=(a=3)+(b=4)變量a,b,c的值依次為3,4,7。分析表達(dá)式:a=b=c=10的賦值過程。05六月2025692.5.2賦值運(yùn)算符及其表達(dá)式2.復(fù)合賦值運(yùn)算符算術(shù)運(yùn)算符(+、-、*、/、%)和位運(yùn)算符(&、|、^、<<、>>)與賦值運(yùn)算符組合構(gòu)成復(fù)合賦值運(yùn)算符。復(fù)合賦值運(yùn)算符有如下10個(gè):

+=-=*=/=%=&=|=^=<<=>>=

用op代表上述算術(shù)運(yùn)算符或位運(yùn)算符,一個(gè)由復(fù)合賦值運(yùn)算符構(gòu)成的賦值表達(dá)式的一般形式是:

vop=e等價(jià)于:

v=vope例如:i+=2等價(jià)于i=i+2i%=2等價(jià)于i=i%2 i*=a+2等價(jià)于i=i*(a+2),而不是i=i*a+2i>>=3等價(jià)于i=i>>305六月2025702.5.3其他運(yùn)算符

1.逗號(hào)運(yùn)算符(,)由逗號(hào)運(yùn)算符構(gòu)成的表達(dá)式,其一般形式為:

表達(dá)式1,表達(dá)式2,表達(dá)式3,…,表達(dá)式n

其作用是從左至右依次求解各個(gè)表達(dá)式,最后一個(gè)表達(dá)式的值就是整個(gè)逗號(hào)表達(dá)式的值。例如:

a=2*3,b=3*4,c=5+25

上述逗號(hào)表達(dá)式求解后,變量a,b,c的值依次為6,12,30,整個(gè)逗號(hào)表達(dá)式的值為30。又如:

x=(a=2*3,b=3*4,c=5+25

)

賦值給x的是圓括號(hào)中逗號(hào)表達(dá)式的值3005六月2025712.5.3其他運(yùn)算符

2.條件運(yùn)算符(?:)條件運(yùn)算符是C語(yǔ)言中唯一的三目運(yùn)算符。由條件運(yùn)算符構(gòu)成的表達(dá)式的一般形式為:

表達(dá)式l?表達(dá)式2:表達(dá)式3

求解過程是:如果表達(dá)式1為真(非0),則表達(dá)式2的值就是整個(gè)表達(dá)式的值,否則表達(dá)式3的值是整個(gè)表達(dá)式的值。條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)高于賦值運(yùn)算符和逗號(hào)運(yùn)算符。例如,假設(shè):a=3,b=4,則表達(dá)式

a>b?a:b

的值為4。05六月2025722.5.3其他運(yùn)算符3.求字節(jié)數(shù)運(yùn)算符(sizeof)

求字節(jié)數(shù)運(yùn)算符sizeof是一個(gè)單目運(yùn)算符,書寫形式上有點(diǎn)像函數(shù)。該運(yùn)算符的操作數(shù)可以是數(shù)據(jù)類型、變量名或表達(dá)式。通過該運(yùn)算符可以求得指定類型、變量或表達(dá)式值所屬類型數(shù)據(jù)使用的存儲(chǔ)單元字節(jié)數(shù)。求字節(jié)數(shù)運(yùn)算符sizeof構(gòu)成的表達(dá)式的一般形式為:

sizeof(類型符或變量名)

例如:sizeof(char)的值是1;

sizeof(float)的值是4;

sizeof(3.14)的值是8;設(shè)有變量說明:intx;

sizeof(x)的值是4;(演示例題程序:例2-5~例2-9)05六月2025732.6數(shù)據(jù)類型轉(zhuǎn)換不同類型的數(shù)據(jù)可以進(jìn)行混合運(yùn)算。C語(yǔ)言規(guī)定,不同類型的數(shù)據(jù)混合運(yùn)算時(shí),先將各種類型數(shù)據(jù)轉(zhuǎn)換成同一類型數(shù)據(jù),然后再運(yùn)算求值。數(shù)據(jù)類型轉(zhuǎn)換有三種情況:1.自動(dòng)轉(zhuǎn)換(隱式轉(zhuǎn)換)轉(zhuǎn)換規(guī)則如右圖所示:規(guī)范化轉(zhuǎn)換:表達(dá)式中有short,char類型,在運(yùn)算前先轉(zhuǎn)換成int型,unsignedshort類型先轉(zhuǎn)換成unsignedint型,float類型先轉(zhuǎn)換成double型,這種轉(zhuǎn)換稱為規(guī)范化(橫向箭頭)。longunsigneddoublefloatintchar,short高低保值轉(zhuǎn)換:運(yùn)算符兩端操作類型不一致,在運(yùn)算前先將類型等級(jí)較低的數(shù)據(jù)轉(zhuǎn)換成等級(jí)較高的,稱為保值轉(zhuǎn)換(縱向箭頭)。分析下面表達(dá)式計(jì)算過程中,數(shù)據(jù)類型轉(zhuǎn)換情況。('a'-32)-32L+(1.23f+2.34)05六月2025742.6數(shù)據(jù)類型轉(zhuǎn)換2.賦值類型轉(zhuǎn)換(隱式轉(zhuǎn)換)賦值運(yùn)算時(shí),如果賦值運(yùn)算符右側(cè)表達(dá)式值的類型與左側(cè)變量的類型不一致,則將右側(cè)表達(dá)式的值自動(dòng)轉(zhuǎn)換成左側(cè)變量的類型,并將值存儲(chǔ)在左側(cè)變量中。例如:charc;inti;floatf;c='a'-32;i=123.456;f=3.14*10*10;3.強(qiáng)制類型轉(zhuǎn)換(顯式轉(zhuǎn)換)有時(shí)根據(jù)實(shí)際需求,需要將某種類型轉(zhuǎn)換成另外一種類型,如取整數(shù)和四舍五入等。C語(yǔ)言提供了強(qiáng)制類型轉(zhuǎn)換,其語(yǔ)法形式如下:

(類型名)表達(dá)式

將表達(dá)式的值強(qiáng)制轉(zhuǎn)換成類型名指定類型的數(shù)據(jù)。例如:(int)3.1415轉(zhuǎn)換結(jié)果為整數(shù)3(double)(10+20)轉(zhuǎn)換結(jié)果為30.005六月202575本章作業(yè)

習(xí)題二所有習(xí)題(一、二、三)05六月202576C語(yǔ)言程序設(shè)計(jì)第3章程序控制結(jié)構(gòu)第3章程序控制結(jié)構(gòu)本章主要內(nèi)容:

C語(yǔ)句概述關(guān)系運(yùn)算和邏輯運(yùn)算順序結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

一定要掌握C語(yǔ)言的基本語(yǔ)句,如賦值語(yǔ)句,函數(shù)調(diào)用語(yǔ)句,分支語(yǔ)句和循環(huán)語(yǔ)句,并能靈活使用這些語(yǔ)句設(shè)計(jì)各種結(jié)構(gòu)的程序。

第3章程序控制結(jié)構(gòu)

實(shí)際問題的求解算法往往是復(fù)雜的,包括順序的計(jì)算步驟,以及許多不同計(jì)算路徑和一些重復(fù)的計(jì)算過程。這些計(jì)算路徑的選擇和計(jì)算過程的重復(fù),需要某些條件的判斷,因此,算法的流程是重要的。算法即問題的求解過程,最終要用計(jì)算機(jī)程序語(yǔ)言(如C語(yǔ)言)的程序來描述,也可以說需要用程序語(yǔ)言的語(yǔ)句實(shí)現(xiàn)。編寫程序的過程中,算法的流程控制映射為程序的控制結(jié)構(gòu)。在C語(yǔ)言中,程序的控制結(jié)構(gòu)分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),任何復(fù)雜的程序都是由這三種基本結(jié)構(gòu)組成的。通過本章的學(xué)習(xí),理解并掌握C語(yǔ)言中的語(yǔ)句類型和實(shí)現(xiàn)三種結(jié)構(gòu)程序的語(yǔ)句的使用方法。3.1C語(yǔ)言語(yǔ)句概述C語(yǔ)言語(yǔ)句可以看作計(jì)算機(jī)系統(tǒng)的操作指令,用來完成一定的操作任務(wù)。C語(yǔ)言語(yǔ)句可以分為以下5種。

1.表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句由表達(dá)式加上分號(hào)“;”組成。其一般形式為:

表達(dá)式;例如:

x=y+z; /*賦值表達(dá)式加分號(hào),賦值語(yǔ)句*/a=520; /*賦值表達(dá)式加分號(hào),賦值語(yǔ)句*/y+z; /*合法語(yǔ)句,但無實(shí)際意義*/i++;++i; /*增1語(yǔ)句,i值增1*/

分號(hào)是C語(yǔ)言中語(yǔ)句的標(biāo)志,一個(gè)語(yǔ)句必須以分號(hào)結(jié)束,沒有分號(hào),則不是語(yǔ)句。3.1C語(yǔ)言語(yǔ)句

2.函數(shù)調(diào)用語(yǔ)句由函數(shù)調(diào)用加上分號(hào)“;”組成。其一般形式為:

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

例如:

printf("\n");

調(diào)用庫(kù)函數(shù)printf(),輸出換行字符。

3.控制語(yǔ)句

C語(yǔ)言有9個(gè)控制語(yǔ)句,用于完成選擇、重復(fù)和跳轉(zhuǎn)操作等控制功能,以實(shí)現(xiàn)程序的各種控制結(jié)構(gòu)??煞譃槿悾孩欧种дZ(yǔ)句:if、switch語(yǔ)句。⑵循環(huán)語(yǔ)句:for、while、do-while語(yǔ)句。⑶跳轉(zhuǎn)語(yǔ)句:break、continue、goto、return語(yǔ)句。3.1C語(yǔ)言語(yǔ)句4.復(fù)合語(yǔ)句復(fù)合語(yǔ)句是用花括號(hào)將若干語(yǔ)句組合在一起,又稱為分程序,邏輯上是一條語(yǔ)句。復(fù)合語(yǔ)句的一般形式:

{語(yǔ)句1語(yǔ)句2

語(yǔ)句n}

例如:

{ i++; printf("%d\n",i);}5.空語(yǔ)句只有一個(gè)分號(hào)的語(yǔ)句稱為空語(yǔ)句。它的一般形式是:

;空語(yǔ)句是什么也不做的語(yǔ)句。

if、while、for和do-while控制的語(yǔ)句只能是一條且必須有一條,所以這些語(yǔ)句的內(nèi)嵌語(yǔ)句一般是復(fù)合語(yǔ)句或空語(yǔ)句。

3.2順序結(jié)構(gòu)程序設(shè)計(jì)

順序結(jié)構(gòu)程序相對(duì)比較簡(jiǎn)單。這種程序中主要使用賦值語(yǔ)句及數(shù)據(jù)的輸入和輸出語(yǔ)句(函數(shù))。程序運(yùn)行時(shí),依書寫順序,每條語(yǔ)句執(zhí)行一次。本節(jié)主要介紹賦值語(yǔ)句字符輸入輸出函數(shù)格式輸入輸入函數(shù)

3.2.1賦值語(yǔ)句

賦值語(yǔ)句是一個(gè)應(yīng)用十分普遍且簡(jiǎn)單的語(yǔ)句。賦值語(yǔ)句的一般形式為:

賦值表達(dá)式;賦值語(yǔ)句是一種表達(dá)式語(yǔ)句,在賦值表達(dá)式的后面加上一個(gè)分號(hào),就構(gòu)成了賦值語(yǔ)句。例如: c=a+b*8 i++ j+=5是賦值表達(dá)式,而

c=a+b*8; i++; j+=5;是賦值語(yǔ)句。3.2.2數(shù)據(jù)輸入輸出

一個(gè)完整的程序,通常要求具備輸入和輸出功能。數(shù)據(jù)離開主機(jī)稱為“輸出”,數(shù)據(jù)進(jìn)入主機(jī)稱為“輸入”。如下圖所示:C語(yǔ)言本身沒有輸入輸出語(yǔ)句,輸入輸出操作是通過調(diào)用庫(kù)函數(shù)來實(shí)現(xiàn)的。使用輸入輸出函數(shù)時(shí),應(yīng)在程序的開頭寫上命令:#include<stdio.h>最基本的輸入輸出函數(shù)有4個(gè):(1)字符輸入/輸出函數(shù)getchar()和putchar();(2)格式輸入/輸出函數(shù)scanf()和printf()。主機(jī)CPU內(nèi)存外設(shè):如顯示器、打印機(jī)、鍵盤、掃描儀、磁盤輸出輸入3.2.2數(shù)據(jù)輸入輸出字符輸入/輸出函數(shù)比較簡(jiǎn)單,在此一并給出這兩個(gè)函數(shù)調(diào)用的一般形式: getchar(

) putchar(字符型或整型數(shù)據(jù))getchar()函數(shù)的功能是從終端設(shè)備(鍵盤)讀取(輸入)一個(gè)字符,函數(shù)的值即為讀取的字符,可以將函數(shù)的值賦給一個(gè)字符變量,從而將這個(gè)字符保存起來,在程序中的使用形式一般為:

charch;…ch=getchar(

);

3.2.2數(shù)據(jù)輸入輸出

putchar()函數(shù)的功能是向終端(顯示器)輸出一個(gè)字符。其中,函數(shù)的參數(shù)(圓括號(hào)中的數(shù)據(jù))可以是字符常量、變量或表達(dá)式,也可以是轉(zhuǎn)義字符,還可以是整數(shù)。請(qǐng)看下面的程序:【例3-1】在屏幕上輸出“BOY”。(演示)

#include<stdio.h>voidmain(){ chara,b,c;

a='B';b='O';c='Y';

putchar(a);putchar(b);putchar(c);}程序運(yùn)行結(jié)果:BOY3.2.2數(shù)據(jù)輸入輸出【例3-2】輸出換行字符。

(演示)

#include<stdio.h>voidmain(){ chara,b,c; a='B’;b='O’;c='Y’;;

putchar(a);putchar('\n'); putchar(b);putchar('\n'); putchar(c);putchar('\n');}程序運(yùn)行結(jié)果:BOY3.2.2數(shù)據(jù)輸入輸出例3-3鍵盤輸入一個(gè)小寫字母,輸出對(duì)應(yīng)的大寫字母。#include<stdio.h>voidmain(){ charc;

c=getchar(); c=c+32; putchar(c);}程序運(yùn)行情況:a(鍵盤輸入)A(程序輸出)3.2.3格式輸入輸出1.格式輸出函數(shù)(printf函數(shù))printf函數(shù)可以輸出整型、浮點(diǎn)型、字符型和字符串?dāng)?shù)據(jù)。功能是按指定的格式輸出數(shù)據(jù)。printf函數(shù)的一般形式為:

printf(格式控制串,輸出項(xiàng)表)例如:printf("x=%d,y=%d\n"

,x,y)①格式控制串通常有格式說明和普通字符兩種內(nèi)容。格式說明由%和格式字符組成,如%d、%f等,它指定所在位置輸出數(shù)據(jù)的格式,實(shí)際輸出的數(shù)據(jù)在輸出項(xiàng)表中給出。普通字符是希望原樣輸出的字符,其作用是說明、標(biāo)注,使輸出數(shù)據(jù)的意義更明確。如x=、y=、換行字符\n等。②輸出項(xiàng)表是用逗號(hào)分隔開的若干個(gè)表達(dá)式(當(dāng)然,也可以是常量或變量),表達(dá)式的值將在對(duì)應(yīng)的格式說明處輸出,表達(dá)式的類型應(yīng)與格式說明要求的數(shù)據(jù)類型對(duì)應(yīng)一致。請(qǐng)看下面的程序格式控制串輸出項(xiàng)表3.2.3格式輸入輸出#include<stdio.h>voidmain(){

inta=123,b=456,c;/*定義整型變量a,b,c并初始化a,b*/

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

/*將變量a和b的值交換*/

printf("a=%d,b=%d\n",a,b);}程序的輸出結(jié)果是:a=456,b=123分析:printf()函數(shù)中的格式控制串是:"a=%d,b=%d\n",其含義是先輸出“a=”,然后在第一個(gè)格式說明“%d”處按十進(jìn)制整數(shù)格式輸出第一個(gè)表達(dá)式的值,再輸出“,b=”后,在第二個(gè)格式說明“%d”處按十進(jìn)制整數(shù)格式輸出第二個(gè)表達(dá)式的值,最后輸出換行字符“\n”。格式說明與表達(dá)式的對(duì)應(yīng)關(guān)系如下圖所示:

printf("a=%d,b=%d\n",a,b);3.2.3格式輸入輸出③格式說明及其作用如下表所示:(詳見教材表3-1)3.2.3格式輸入輸出④格式說明中還可以使用格式修飾符,其一般形式為:

“%m.n格式字符”如:printf("x=%5d,y=%7.2f",x,y);格式修飾符及其作用如下表所示:(詳見教材表3-2)例3-4分析下面程序的輸出3.2.3格式輸入輸出#include<stdio.h>voidmain(){shortints=-1;inti=-1;unsignedu=65535;floatf=123.456;charc='a';printf("s=%hd,s=%ho,s=%hx,s=%hu\n",s,s,s,s);printf("i=%d,i=%o,i=%x,i=%u\n",i,i,i,i);printf("u=%d,u=%o,u=%x,u=%u\n",u,u,u,u);

pri

溫馨提示

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

評(píng)論

0/150

提交評(píng)論