版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言概述1.1C語言的發(fā)展歷程
C語言是國際上廣泛流行的高級(jí)語言。C語言的發(fā)展過程可以粗略的分為誕生(1970年—1973年)、發(fā)展(1973年—1988年)和成熟(1988年以後)三個(gè)階段。
(1)C語言是在B語言的基礎(chǔ)上發(fā)展起來的。B(BCPL)語言是1970年由美國貝爾實(shí)驗(yàn)室設(shè)計(jì)的,並用於編寫了第一個(gè)UNIX操作系統(tǒng),在PDP7上實(shí)現(xiàn)。優(yōu)點(diǎn):精練,接近硬體缺點(diǎn):過於簡單,數(shù)據(jù)無類型。1.1C語言的發(fā)展歷程(2)1973年貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語言的基礎(chǔ)上設(shè)計(jì)出了C語言,但僅在貝爾實(shí)驗(yàn)室使用。1975年UNIX第6版發(fā)佈,C優(yōu)點(diǎn)突出引起關(guān)注。1977年出現(xiàn)了《可移植C語言編譯程序》。
1978年影響深遠(yuǎn)的名著《TheCProgrammingLanguage》由BrianW.Kernighan和DennisM.Ritchie合著,被稱為標(biāo)準(zhǔn)C。在此之後,C語言風(fēng)靡世界,成為最廣泛的幾種電腦語言之一。1983年,美國國家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC,比標(biāo)準(zhǔn)C有了很大的發(fā)展。1.1C語言的發(fā)展歷程
(3)1988年K&R按照ANSIC修改了他們的《TheCProgrammingLanguage》。1987年,ANSI公佈了新標(biāo)準(zhǔn)——87ANSIC。
1990年,國際標(biāo)準(zhǔn)化組織接受了87ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899—1990)。
1994年,ISO又修訂了C語言標(biāo)準(zhǔn)。目前流行的C語言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)進(jìn)行開發(fā)的。
說明:不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語言功能和語法規(guī)則又略有差別,因此讀者可以參閱有關(guān)手冊,瞭解所用的C語言編譯系統(tǒng)的特點(diǎn)。本書的敘述基本上以ANSIC為基礎(chǔ)。1.2數(shù)據(jù)在電腦內(nèi)的存儲(chǔ)形式和表示方法1.2.1記憶體的組織形式1.內(nèi)記憶體RAM(RandomAccessMemory)2.內(nèi)記憶體的組織形式圖1.1內(nèi)記憶體的結(jié)構(gòu)示意圖
1.2數(shù)據(jù)在電腦內(nèi)的存儲(chǔ)形式和表示方法加法運(yùn)算規(guī)則:0+0=00+1=11+0=11+1=10乘法運(yùn)算規(guī)則:0×0=00×1=01×0=01×1=12.十進(jìn)位數(shù)與二進(jìn)位數(shù)的轉(zhuǎn)換例如:將十進(jìn)位19.45轉(zhuǎn)換為二進(jìn)位數(shù)。19.45的整數(shù)部分為19,其轉(zhuǎn)換的過程如下:1.2數(shù)據(jù)在電腦內(nèi)的存儲(chǔ)形式和表示方法19.45的小數(shù)部分為0.45(取四位小數(shù)),其轉(zhuǎn)換的過程如下:、0.45×2=0.90取其整數(shù)部分為00.90×2=1.80取其整數(shù)部分為10.80×2=1.60取其整數(shù)部分為10.60×2=1.20取其整數(shù)部分為1……
依次類推。則得到(19.45)10=(10011.0111)2括弧外的下標(biāo)10和2,分別表示十進(jìn)位數(shù)和二進(jìn)位數(shù)。由此可以觀察到:19=1×24+0×23+0×22+1×21+1×20。
1.2數(shù)據(jù)在電腦內(nèi)的存儲(chǔ)形式和表示方法1.2.3八進(jìn)制(octal)數(shù)
1.八進(jìn)制數(shù)的基本特徵八進(jìn)制數(shù)由0、1、2、3、4、5、6、7等八個(gè)數(shù)字元號(hào)表示;基數(shù)為8;按逢8進(jìn)1、借1算8的規(guī)則計(jì)數(shù);採用位置記數(shù)法(或帶權(quán)記數(shù)法),權(quán)值為8。其基本運(yùn)算規(guī)則與十進(jìn)位相似。2.二進(jìn)位數(shù)與八進(jìn)制數(shù)的轉(zhuǎn)換
3.八進(jìn)制數(shù)與十進(jìn)位數(shù)的轉(zhuǎn)換1.2數(shù)據(jù)在電腦內(nèi)的存儲(chǔ)形式和表示方法1.2.4十六進(jìn)制(Hexadecimal)數(shù)1.十六進(jìn)制數(shù)的基本特徵十六進(jìn)制數(shù)由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等十六個(gè)數(shù)字元號(hào)表示;基數(shù)為16;按逢16進(jìn)1、借1算16的規(guī)則計(jì)數(shù);採用位置記數(shù)法(或帶權(quán)記數(shù)法),權(quán)值為16。十六進(jìn)制數(shù)中的A、B、C、D、E、F分別代表10、11、12、13、14、15。在C語言中,表示十六進(jìn)制數(shù)時(shí),大小寫字母作用相同。2.十六進(jìn)制數(shù)與二進(jìn)位數(shù)間的轉(zhuǎn)換例如:將二進(jìn)位數(shù)1011010101111110轉(zhuǎn)換為十六進(jìn)制數(shù)。二進(jìn)位數(shù)1011010101111110可以寫成1011,0101,0111,1110四組數(shù),再分別用十六進(jìn)制數(shù)碼C、5、7、E表示。即(1011010101111110)2=(C57E)161.2數(shù)據(jù)在電腦內(nèi)的存儲(chǔ)形式和表示方法表1.1各種進(jìn)位制度的常用數(shù)值轉(zhuǎn)換表
3.十六進(jìn)制數(shù)與十進(jìn)位數(shù)間的轉(zhuǎn)換若將一個(gè)十六進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)位數(shù),只需把十六進(jìn)制數(shù)按權(quán)展開,累加各項(xiàng)即可。
注意:在進(jìn)行轉(zhuǎn)換時(shí),每位十六進(jìn)制數(shù)都應(yīng)表示為4位二進(jìn)位數(shù),如0應(yīng)表示為0000,而不應(yīng)只寫成0,否則就會(huì)丟失某些位。八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)位數(shù)時(shí),每位八進(jìn)制數(shù)對(duì)應(yīng)一個(gè)3位的二進(jìn)位數(shù)。
1.2數(shù)據(jù)在電腦內(nèi)的存儲(chǔ)形式和表示方法1.2.5原碼、反碼和補(bǔ)數(shù)。
在電腦內(nèi)部,所有的資訊都要用二進(jìn)位數(shù)來表示,數(shù)的符號(hào)“+”、“-”也必須採用二進(jìn)位數(shù)來表示。通常以0表示正數(shù)的符號(hào),以1表示負(fù)數(shù)的符號(hào),當(dāng)符號(hào)和數(shù)值都二進(jìn)位數(shù)0和1表示之後,這樣的數(shù)叫機(jī)器數(shù)或機(jī)器碼。
機(jī)器碼可以採用不同的碼制來表示,常用的有原碼、反碼和補(bǔ)數(shù)三種表示方法。這樣表示的目的是在電腦內(nèi)部可以讓符號(hào)位一道參加數(shù)值運(yùn)算。1.數(shù)的原碼表示原碼通常用最高位表示數(shù)的符號(hào)位,數(shù)值部分用二進(jìn)位絕對(duì)值表示。即一個(gè)正數(shù)的原碼是它本身,一個(gè)負(fù)數(shù)的原碼是其符號(hào)位加數(shù)值部分。2.數(shù)的反碼表示
一個(gè)正數(shù)的反碼與其原碼相同,一個(gè)負(fù)數(shù)的反碼是將符號(hào)位除外,其他各位逐位取反,即0變1,1變0,參看表1.2。3.補(bǔ)數(shù)表示方法先以日常鐘錶的時(shí)間表示為例,說明補(bǔ)數(shù)的概念。假設(shè)現(xiàn)在的標(biāo)準(zhǔn)時(shí)間為6點(diǎn)整,而有一只指針指向10點(diǎn),為了校準(zhǔn)時(shí)間,可以採取兩種方法:一是將時(shí)針退(10-6)=4格;另一種方法是將時(shí)針向前撥(12-4)=8格。
這兩種方法都可以將鐘錶校準(zhǔn)的正確時(shí)間。對(duì)於這個(gè)問題來說,減4和加8是等價(jià)的。由此,可以說(+8)和(-4)是以12為模的補(bǔ)數(shù)。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法說明:在電腦中,帶符號(hào)的數(shù)用補(bǔ)數(shù)表示,此時(shí)減法運(yùn)算變?yōu)榧臃ㄟ\(yùn)算,從而簡化了電腦硬體電路的結(jié)構(gòu)。當(dāng)運(yùn)算的結(jié)果超出補(bǔ)數(shù)表示範(fàn)圍時(shí),結(jié)果就不正確了,這稱為“溢出”。1.2數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)形式和表示方法在數(shù)學(xué)上由於-4=-1×12+8,+8=0×12+8稱為同餘式。對(duì)於同餘式中的模,則表示可以棄舍或丟掉的數(shù)值。其結(jié)果是減去4和加上8都可以實(shí)現(xiàn)正確時(shí)間的校準(zhǔn)。補(bǔ)數(shù)的計(jì)算規(guī)則:一個(gè)正數(shù)的補(bǔ)數(shù)和其原碼形式相同,一個(gè)負(fù)數(shù)的補(bǔ)數(shù)是將其反碼加1,參看表1.2中部分舉例。在計(jì)算機(jī)中,負(fù)數(shù)是用其補(bǔ)碼表示的。例如:求-42的補(bǔ)數(shù)。42用二進(jìn)位數(shù)表示是101010,其原碼為10101010,則其反碼為11010101,即其反碼加1即為補(bǔ)碼:11010110。1.3利用計(jì)算機(jī)處理問題的基本過程1.電腦算題的簡單過程2.利用電腦處理問題的過程(1)需求分析。(2)確定處理方案。
(3)確定操作步驟。(4)編寫根源程式。(5)輸入和運(yùn)行程式。(6)整理結(jié)果。
圖1.3電腦處理一個(gè)實(shí)際問題的主要過程
1.4最簡單的C程式的構(gòu)成
1.4.1C語言的特點(diǎn)(1)語言簡潔、緊湊,使用方便、靈活。(2)具有豐富的運(yùn)算符和數(shù)據(jù)結(jié)構(gòu)。(3)C語言是完全模組化和結(jié)構(gòu)化的語言。(4)C語言因?yàn)榧嬗懈呒?jí)和低級(jí)語言的特點(diǎn)。(5)與組合語言相比,可移植性好。(6)生成目標(biāo)代碼品質(zhì)高。1.4最簡單的C程式的構(gòu)成
1.4.2C語言中的字元集
1.字元集字元是組成語言的最基本的元素。C語言字元集由字母、數(shù)字、空格、標(biāo)點(diǎn)和特殊字元組成,具體可以參看附錄1中常用字符與ASCII碼表。具體可以分為如下幾類:(1)字母。小寫英文字母a~z共26個(gè),大寫字母A~Z共26個(gè)。
(2)數(shù)字。0~9共10個(gè)。
(3)空白符。空白字元、跳位字元、換行符等統(tǒng)稱為空白符。
(4)標(biāo)點(diǎn)和特殊字元。1.4最簡單的C程式的構(gòu)成
2.識(shí)別字
C語言中用來對(duì)變數(shù)、符號(hào)常量、函數(shù)、數(shù)組、自定義類型等數(shù)據(jù)對(duì)象命名的有效字元序列統(tǒng)稱為識(shí)別字(identifier)。簡單地說,識(shí)別字就是一個(gè)名字。
C語言規(guī)定識(shí)別字只能由字母、數(shù)字和下劃線3種字元組成,且第1個(gè)字元必須為字母或下劃線。
下麵列出的是合法的識(shí)別字,可以作為變數(shù)名。X1,a,A3,student,abc,kk下麵是不合法的識(shí)別字和變數(shù)名M.D.John,¥123,#33,3D64,a>b,3x特別注意:編譯系統(tǒng)將大寫字母和小寫字母認(rèn)為是兩個(gè)不同的字元。
1.4最簡單的C程式的構(gòu)成
3.關(guān)鍵字C語言的32個(gè)關(guān)鍵字,是C語言編譯系統(tǒng)賦予規(guī)定含義的英文單詞或字母組合,在進(jìn)行C語言的程式設(shè)計(jì)時(shí),不能再賦予其新的含義。C語言的關(guān)鍵字分為以下幾類:(1)類型說明符。用於定義變數(shù)、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)的類型。如int、double等。(2)語句定義符。用於表示一個(gè)語句的功能。如if、else、while等。(3)預(yù)處理命令字。用於表示一個(gè)預(yù)處理命令。如include、define等。C語言的32個(gè)關(guān)鍵字,具體功能可以參看附錄Ⅳ。例1.1
輸出一行資訊Helloworld!。
#include<stdio.h>void
main(){
printf("Helloworld!
\n");}
1.4最簡單的C程式的構(gòu)成/*檔包含*//*主函數(shù)*//*函數(shù)體開始*//*輸出語句*//*函數(shù)體結(jié)束*/說明
main
主函數(shù)名,每個(gè)C程式必須有一個(gè)主函數(shù)main,系統(tǒng)執(zhí)行C程式時(shí),從main函數(shù)開始。()是函數(shù)的標(biāo)誌。1.4.3C程式的構(gòu)成1.簡單的C程式舉例
1.4最簡單的C程式的構(gòu)成
說明void函數(shù)類型表示此函數(shù)是“空類型”,printf是C編譯系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫中的輸出函數(shù)名,
雙引號(hào)“”是字串的定界符,雙引號(hào)內(nèi)的字串按原樣輸出?!埃躰”是換行符,即在輸出“Helloworld!”後回車換行。
{}是函數(shù)開始和結(jié)束的標(biāo)誌,不可省每個(gè)C語句以分號(hào)結(jié)束
#是預(yù)處理命令行起始符號(hào)。使用標(biāo)準(zhǔn)庫函數(shù)時(shí)應(yīng)在程式開頭一行寫:#includestdio.h>說明:本程式的運(yùn)行結(jié)果:
Helloworld!1.4最簡單的C程式的構(gòu)成例1.2
求兩個(gè)整數(shù)之和。#include<stdio.h>voidmain(){inta,b,sum;a=11;b=45;
sum=a+b;
printf(“sumis%d\n”,sum);}
/*求兩數(shù)之和*/
/*變數(shù)聲明部分*//*賦值語句*//*輸出函數(shù)*/
本程式的運(yùn)行結(jié)果:sumis561.4最簡單的C程式的構(gòu)成
說明本程式中各行右側(cè)的/*……*/表示注釋。逗號(hào)主要用在變數(shù)類型說明中分隔各個(gè)變數(shù),是分隔符號(hào)。在C程式中採用的分隔符號(hào)最常用的有逗號(hào)和空格兩種??崭穸嘤渺墩Z句各單詞之間,作分隔符號(hào)。“inta,b,sum;”是函數(shù)體中的聲明部分,定義變數(shù)a和b,指定a和b為整型(int)變數(shù)?!癮=11;b=45;sum=a+b;”是賦值語句。printf函數(shù)中得“%”是輸入輸出的“格式字串”,用來指定輸入輸出時(shí)的數(shù)據(jù)類型和格式。
1.4最簡單的C程式的構(gòu)成例1.3計(jì)算長為l,寬為w,高為h的長方體體積v。
#include<stdio.h>viodmain(){intvolume(intlength,intwidth,inthigh);intl,w,h,v;printf("pleaseinputl,w,h:\n");
scanf("%d,%d,%d",&l,&w,&h);v=volume(l,w,h);
printf("v=%d",v);
return;}intvolume(intlength,intwidth,inthigh)
{intv;v=length*width*high; returnv; }程式運(yùn)行結(jié)果:pleaseinputl,w,h:4,3,2↙
v=241.4最簡單的C程式的構(gòu)成說明:本程式包括main和被調(diào)用函數(shù)volume兩個(gè)函數(shù)。max函數(shù)的作用是計(jì)算一個(gè)長方體的體積。return語句將z的值返回給主調(diào)函數(shù)main。2.C根源程式的結(jié)構(gòu)特點(diǎn)(1)C程式是由函數(shù)構(gòu)成的。一個(gè)C根源程式至少且僅包含一個(gè)main函數(shù)。(2)一個(gè)C程式總是從main函數(shù)開始執(zhí)行的。(3)C根源程式中可以有預(yù)處理命令,預(yù)處理命令通常應(yīng)放在原始檔案或根源程式的最前面。(4)C程式的基本單位是函數(shù)。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù)(如printf和scanf等輸入輸出函數(shù)),也可以是用戶自定義函數(shù)(如volume函數(shù))。
1.4最簡單的C程式的構(gòu)成3.C函數(shù)的組成(1)函數(shù)首部。即函數(shù)的第1行,包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形式參數(shù)名、參數(shù)類型)。一個(gè)函數(shù)名後面必須跟一對(duì)圓括號(hào),括弧內(nèi)寫函數(shù)的參數(shù)名及其類型。例如,例1.3中的volume函數(shù)的首部為:(2)函數(shù)體。即函數(shù)首部下面的花括弧內(nèi)的部分。①聲明部分。定義所用到的變數(shù)和對(duì)所調(diào)用函數(shù)的聲明。②執(zhí)行部分。由若干個(gè)C語句組成。1.4最簡單的C程式的構(gòu)成說明:(1)空函數(shù):有時(shí)函數(shù)可以既無聲明部分也無執(zhí)行部分。如:voidexample1(){}它是一個(gè),什麼也不做,但這是符合C語言規(guī)則的。(2)C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。由於輸入輸出操作牽涉具體的電腦設(shè)備,把輸入輸出操作放在函數(shù)中處理,就可以使C語言本身的規(guī)模較小,編譯程序簡單,很容易在各種機(jī)器上實(shí)現(xiàn),程式具有可移植性。(3)不同電腦系統(tǒng)除了提供標(biāo)準(zhǔn)函數(shù)外,還提供一些專門的函數(shù),因此不同電腦系統(tǒng)中所提供的函數(shù)個(gè)數(shù)和功能是有所不同的。ANSIC提供一百多個(gè)庫函數(shù),TurboC則提供三百多個(gè)庫函數(shù)。1.4最簡單的C程式的構(gòu)成4.書寫程式時(shí)應(yīng)遵循的規(guī)則(1)每個(gè)語句和數(shù)據(jù)聲明的最後必須有個(gè)分號(hào),分號(hào)是C語句的必要組成部分。(2)關(guān)鍵字、識(shí)別字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符如逗號(hào)、分號(hào)等,也可不再加空格來間隔。(3)C程式書寫格式自由,一行內(nèi)可以寫幾個(gè)語句,一個(gè)語句可以分寫在多行上。(4)函數(shù)體內(nèi)部用{}括起來的部分,通常表示程式的某一層次結(jié)構(gòu)。在編程時(shí)應(yīng)力求遵循這些規(guī)則,以養(yǎng)成良好的編程風(fēng)格。(5)可以用/*……*/對(duì)C程式中的任何部分做注釋1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
1.5.1C語言的運(yùn)行環(huán)境選用TurboC++3.0作為學(xué)習(xí)C語言的運(yùn)行環(huán)境。對(duì)於熟悉VisualC++的人,可以參考與本書配套的《C程式設(shè)計(jì)教程習(xí)題解答與上機(jī)指導(dǎo)》指導(dǎo)書來學(xué)習(xí)。
TurboC++3.0:是一個(gè)集成環(huán)境,它具有方便、直觀和易用的介面,雖然它也是DOS環(huán)境下的集成環(huán)境,但是可以把啟動(dòng)TurboC++3.0集成環(huán)境的DOS執(zhí)行檔tc.exe生成快捷方式,也可以用滑鼠操作。1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
TurboC++3.0的集成環(huán)境可以通過兩種方法得到TurboC++3.0集成環(huán)境。(1)在DOS環(huán)境下??梢栽贒OS環(huán)境下用鍵盤輸入DOS命令TC即可:D:\TC3.0>TC↙
(2)在Windows環(huán)境下。先通過流覽找到TurboC++3.0集成環(huán)境所在的子目錄(如D:\TC3.0),從中找到可執(zhí)行檔tc.exe,創(chuàng)建其快捷方式,並拖曳到Windows桌面上,用一個(gè)圖示表示。雙擊該圖示,就可打開的TurboC++3.0集成環(huán)境。圖1.4TurboC++3.0集成環(huán)境
1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
在集成環(huán)境的上部,有一行主菜單,其中包括10個(gè)菜單項(xiàng)。用戶可以通過以上菜單來選擇使用集成環(huán)境所提供的TurboC++3.0的各項(xiàng)主要功能。
主菜單,其中包括10個(gè)菜單項(xiàng):
FileEditSearchRunCompileDebugProjectOptionsWindowHelp以上10個(gè)菜單項(xiàng)分別代表:檔、編輯、查找、運(yùn)行、編譯、調(diào)試、專案、選項(xiàng)、窗口、幫助。用滑鼠可以選擇菜單條中所需要的菜單項(xiàng),單擊此菜單項(xiàng)就會(huì)出現(xiàn)一個(gè)下拉菜單。
1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
1.5.2C程式的上機(jī)步驟
所謂程式,就是一組電腦能識(shí)別和執(zhí)行的指令。每一條指令使電腦執(zhí)行特定的操作。用高級(jí)語言編寫的程式稱為“根源程式(sourceprogram)”。
TurboC++3.0是一個(gè)集根源程式編輯、編譯、連接、運(yùn)行與調(diào)試於一體、用菜單驅(qū)動(dòng)的集成軟體環(huán)境。運(yùn)行一個(gè)C語言程式的一般過程如圖1.7所示:
編輯編譯根源程式f.c有錯(cuò)?連接執(zhí)行結(jié)果正確?目標(biāo)程式f.0bj無有庫函數(shù)和其他目標(biāo)程式可執(zhí)行程式f.exe是否開始結(jié)束1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
說明:經(jīng)過編輯得到一個(gè)根源程式檔f.c,然後將根源程式檔f.c輸入到電腦中,經(jīng)過編譯得到目標(biāo)程式檔f.obj,再將目標(biāo)程式f.obj均輸入記憶體,與系統(tǒng)提供的庫函數(shù)等連接,即可得到可執(zhí)行的目標(biāo)程式f.exe,最後把f.exe調(diào)入記憶體並執(zhí)行。即:運(yùn)行C程式的步驟上機(jī)輸入與編輯根源程式對(duì)根源程式進(jìn)行編譯與庫函數(shù)連接運(yùn)行目標(biāo)程式1編輯原始檔案新建:單擊File菜單下的New1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
修改:選擇File→Open(即單擊“File”的下拉菜單中的Open項(xiàng),修改已有的根源程式。
在編輯(EDIT)狀態(tài)下游標(biāo)表示當(dāng)前進(jìn)行編輯的位置,在此位置可以進(jìn)行插入、刪除或修改,直到自已滿意為止。保存:在完成編輯之後,應(yīng)當(dāng)保存根源程式。如果該根源程式是已有的,則選擇菜單File
Save命令保存已修改過的根源程式。若根源程式是新輸入的,則選擇File->Save命令,並在彈出的SaveFileAs對(duì)話框中的Name欄中輸入檔路徑和文件名,1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
2.對(duì)根源程式進(jìn)行編譯
選擇菜單Compile(或“Alt+F9”)對(duì)根源程式進(jìn)行編譯。AA.C根源程式,出現(xiàn)1個(gè)錯(cuò)誤(error),0個(gè)警告(warming)。
1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
3將目標(biāo)程式進(jìn)行連接選擇菜單Compile→Link,如果不出現(xiàn)錯(cuò)誤,會(huì)得到一個(gè)尾碼為.exe的可執(zhí)行檔。4執(zhí)行程式
選菜單Run→Run(或按“Ctrl+F9”鍵)。5退出TurboC++3.0環(huán)境退出TC有兩種方法:1)菜單法:File|Quit(先選擇File主項(xiàng),再選擇並執(zhí)行Quit子項(xiàng))2)快捷鍵法:Alt+“X”(先按下Alt鍵並保持,再按字母鍵X,然後同時(shí)放開)。1.5C語言的運(yùn)行環(huán)境和上機(jī)步驟
2.1C的數(shù)據(jù)類型C語言提供了以下一些數(shù)據(jù)類型。給變量定義數(shù)據(jù)類型,實(shí)際上是為數(shù)據(jù)在內(nèi)存中分配規(guī)定的存儲(chǔ)空間,存儲(chǔ)空間通常用字節(jié)數(shù)的形式表示。數(shù)據(jù)類型構(gòu)造類型指針類型空類型void枚舉類型enum數(shù)組類型結(jié)構(gòu)體類型struct共用體類型
union基本類型整型int字元型char實(shí)型(浮點(diǎn)型)單精確度float雙精度
double2.2常量與變數(shù)3.2.1常量和符號(hào)常量在程式運(yùn)行過程中,其值不能被改變的量稱為常量。常量區(qū)分為不同的類型:例如整型100,125,-100,0實(shí)型3.14,0.125,-3.789字元型‘a(chǎn)’,‘b’,‘2’字串‘a(chǎn)’,‘a(chǎn)b’,‘1232’符號(hào)常量:用一個(gè)識(shí)別字代表一個(gè)常量。符號(hào)常量的值在其作用域內(nèi)不能改變,也不能再被賦值。例2.1定義一個(gè)符號(hào)常量PI,表示圓周率。然後使用符號(hào)常量PI計(jì)算圓的周長。
#include<stdio.h>
#definePI3.14/*定義符號(hào)常量PI,表示3.14*/
voidmain()
{
floatr,l;
r=5.0;
l=2*r*PI;
printf("l=%f\n”,l);
}
程式運(yùn)行結(jié)果為:l=31.400000說明:
程式中用#define命令行定義PI代表常量3.14,此後凡在本文件中出現(xiàn)的PI都代表3.14,可以和常量一樣進(jìn)行運(yùn)算說明:如再用賦值語句給PRICE賦值是錯(cuò)的如:
PRICE=40;/*錯(cuò)誤,不能給符號(hào)常量賦值2.2常量與變數(shù)2.2常量與變數(shù)2.2.2變數(shù)變數(shù)代表記憶體中具有特定屬性的一個(gè)存儲(chǔ)單元,它用來存放數(shù)據(jù),這就是變數(shù)的值,在程式運(yùn)行期間,這些值是可以改變的。變數(shù)名實(shí)際上是一個(gè)以一個(gè)名字對(duì)應(yīng)代表一個(gè)地址,在對(duì)程式編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變數(shù)名分配對(duì)應(yīng)的記憶體地址。從變數(shù)中取值,實(shí)際上是通過變數(shù)名找到相應(yīng)的記憶體地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。2.2常量與變數(shù)
變數(shù)名必須是識(shí)別字
例:sum,_total,month,Stu_name,l_1_2,BC235M.D.John,¥123,3D64,a>b
注意:編譯系統(tǒng)將大寫字母和小寫字母認(rèn)為是兩個(gè)不同的字元。在C語言中,要求對(duì)所有用到的變數(shù)作強(qiáng)制定義,也就是“先定義,後使用”,凡未被事先定義的,C編譯系統(tǒng)不把它認(rèn)作變數(shù)名,這就能保證程式中變數(shù)名使用得正確。
在選擇變數(shù)名和其他識(shí)別字時(shí),應(yīng)注意做到“見名知意”,即選有含意的英文單詞(或其縮寫)作識(shí)別字。每一個(gè)變數(shù)被指定為一個(gè)確定類型,在編譯時(shí)就能為其分配相應(yīng)的存儲(chǔ)單元。2.3整型數(shù)據(jù)3.3.1整型常量的表示方法整型常量即整常數(shù)。在C語言中,整常數(shù)可用以下三種形式表示:(1)十進(jìn)位整數(shù)。
如:123,-456.4,3.1415926。(2)八進(jìn)制整數(shù)。以0頭的數(shù)是八進(jìn)制數(shù)。
如:0123表示八進(jìn)制數(shù)123,等於十進(jìn)位數(shù)83,-011表示八進(jìn)制數(shù)-11,即十進(jìn)位數(shù)-9。(3)十六進(jìn)制整數(shù)。以0x開頭的數(shù)是16進(jìn)制數(shù)。如:0x123,代表16進(jìn)制數(shù)123,等於十進(jìn)位數(shù)291。-0x12等於十進(jìn)位數(shù)-18。
2.3.2整型變數(shù)
1.整型數(shù)據(jù)在內(nèi)存中的存放形式
數(shù)據(jù)在內(nèi)存中是以二進(jìn)位形式存放的。
如:
inti;/*定義為整型變數(shù)*/
i=17;/*給i賦以整數(shù)17*/2.3整型數(shù)據(jù)注意:十進(jìn)位數(shù)17的二進(jìn)位形式為10001,TurboC++3.0為一個(gè)整型變數(shù)在內(nèi)存中分配2個(gè)位元組的存儲(chǔ)單元。數(shù)值是以補(bǔ)數(shù)(complement)表示的。
2.整型變數(shù)的分類共六種有符號(hào)基本整型有符號(hào)短整型有符號(hào)長整型無符號(hào)基本整型無符號(hào)短整型無符號(hào)長整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)
注意:括弧表示其中的內(nèi)容是可選的。2.3整型數(shù)據(jù)2.3整型數(shù)據(jù)C語言沒有具體規(guī)定以上各類數(shù)據(jù)所占記憶體的位元組數(shù),只要求long型數(shù)據(jù)長度不短於int型,short型不長於int型。具體如何實(shí)現(xiàn),由各電腦系統(tǒng)自行決定。如在TurboC++3.0中,int型和short型數(shù)據(jù)都是16位(bit),而long型數(shù)據(jù)是32位。以整數(shù)13在TurboC++3.0環(huán)境下,在各種整數(shù)類型的存儲(chǔ)單元中的存儲(chǔ)情況如圖所示。3.整型變數(shù)的定義C規(guī)定在程式中所有用到的變數(shù)都必須在程式中定義,變數(shù)說明的一般形式為:
數(shù)據(jù)類型名變數(shù)名表;(變數(shù)名之間用逗號(hào)分隔)
例如:
inta,b,c(指定變數(shù)a、b為整型)
unsignedshortc,d;(指定變數(shù)c、d為無符號(hào)短整型)
longe,f;(指定變數(shù)e、f為長整型)2.3整型數(shù)據(jù)例2.2整型變數(shù)的定義與使用。
#include<stdio.h>
voidmain()
{
inta,b,c,d;
unsignedu;
a=15;b=-19;u=17;
c=a+u;d=b+u;
printf(“c=a+u=%d,d=b+u=%d\n”,c,d);
}
說明
可以看到不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算程式運(yùn)行結(jié)果為:c=a+u=32,d=b+u=-22.3整型數(shù)據(jù)例2.3整型數(shù)據(jù)的溢出(見圖)。
#include<stdio.h>
voidmain()
{
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);
}
說明:數(shù)值是以補(bǔ)數(shù)表示的。一個(gè)整型變數(shù)只能容納-32768~32767範(fàn)圍內(nèi)的數(shù),無法表示大於32767或小於-32768的數(shù)。遇此情況就發(fā)生“溢出”。
程式運(yùn)行結(jié)果為:a=32767,a+1=-32768a=-32768,a-1=327672.3整型數(shù)據(jù)4.整型數(shù)據(jù)的溢出2.3.3整型常量的類型(1)一個(gè)整數(shù),如果其值在-32768~+32767範(fàn)圍內(nèi),認(rèn)為它是int型,它可以賦值給int型和longint型變數(shù)。(2)一個(gè)整數(shù),如果其值超過了上述範(fàn)圍,而在-2147483637~+2147483647範(fàn)圍內(nèi),則認(rèn)為它是為長整型??梢詫⑺x值給一個(gè)longint型變數(shù)。2.3整型數(shù)據(jù)(3)如果所用的C版本分配給shortint與int型數(shù)據(jù)在內(nèi)存中佔(zhàn)據(jù)的長度相同,則它的表數(shù)範(fàn)圍與int型相同。(4)一個(gè)整常量後面加一個(gè)字母u或U,認(rèn)為是unsignedint型,如果寫成-12345u,則先將-12345轉(zhuǎn)換成其補(bǔ)數(shù)53191,然後按無符號(hào)數(shù)存儲(chǔ)。(5)在一個(gè)整常量後面加一個(gè)字母l或L,則認(rèn)為是longint型常量。
例如:123l.432L.0L
2.3整型數(shù)據(jù)2.4實(shí)型數(shù)據(jù)2.4.1實(shí)型常量的表示方法兩種表示形式小數(shù)指數(shù)0.1233e-3注意:字母e(或E)之前必須有數(shù)字,且e後面的指數(shù)必須為整數(shù):1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e
3.4浮點(diǎn)型數(shù)據(jù)規(guī)範(fàn)化的指數(shù)形式:
在字母e(或E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)只有一位非零的數(shù)字。在C程式中,一個(gè)浮點(diǎn)數(shù)在用指數(shù)形式輸出時(shí),是按規(guī)範(fàn)化的指數(shù)形式輸出的。
例如:123.456可以表示為:123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e
其中的1.23456e3稱為“規(guī)範(fàn)化的指數(shù)形式”。2.4實(shí)型數(shù)據(jù)2.4.2實(shí)型變數(shù)
1.實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式
一個(gè)浮點(diǎn)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)位元組(32位)。與整型數(shù)據(jù)的存儲(chǔ)方式不同,浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分採用規(guī)範(fàn)化的指數(shù)形式。2.4實(shí)型數(shù)據(jù)2.實(shí)型變數(shù)的分類和定義
實(shí)型變數(shù)分為單精確度(float型)、雙精度(double型)和長雙精度型(longdouble)三類形式。表2.2實(shí)型數(shù)據(jù)的分類例如:floatx1,x2;(指定x1、x2為單精度浮點(diǎn)數(shù))doubley1;(指定y1為雙精度浮點(diǎn)數(shù))longdoublez1;(指定z1為長雙精度浮點(diǎn)數(shù))
2.4實(shí)型數(shù)據(jù)例2.4實(shí)型數(shù)據(jù)的舍入誤差。
#include<stdio.h>
voidmain()
{
floatx1,x2;
x1=333333.222E5
x2=x1+30;
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
}
說明:一個(gè)浮點(diǎn)型變數(shù)只能保證的有效數(shù)字是7位有效數(shù)字,後面的數(shù)字是無意義的,並不準(zhǔn)確地表示該數(shù)。應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失”小的數(shù)。與此類似,用電腦計(jì)算1.0/3.0×3.0的結(jié)果不可能等於1.0。程式運(yùn)行結(jié)果為:x1=33333321728.000000x2=33333321728.0000002.4實(shí)型數(shù)據(jù)3.實(shí)型數(shù)據(jù)的舍入誤差2.4.3實(shí)型常量的類型
C編譯系統(tǒng)將浮點(diǎn)型常量作為雙精度來處理。
例如:f=2.45678*4523.65
系統(tǒng)先把2.45678和4523.65作為雙精度數(shù),然後進(jìn)行相乘的運(yùn)算,得到的乘也是一個(gè)雙精度數(shù)。最後取其前7位賦給浮點(diǎn)型變數(shù)f。如是在數(shù)的後面加字母f或F(如1.65f,654.87F),這樣編譯系統(tǒng)就會(huì)把它們按單精確度(32位)處理。假如:
floaty;y=1234567.1111;float型變數(shù)y只能接收7位有效數(shù)字2.4實(shí)型數(shù)據(jù)2.5字元型數(shù)據(jù)2.5.1字元常量(1)字元常量只能用單引號(hào)括起來,不能用雙引號(hào)或其他括弧。(2)字元常量只能是單個(gè)字元。(3)字元可以是字元集中任意字元。
(4)C語言還允許用一種特殊形式的字元常量,就是以一個(gè)字元“\”開頭的字元序列,稱之為“轉(zhuǎn)義字元”。
表2.3轉(zhuǎn)義字元及其含義
有些以“\”開頭的特殊字元稱為轉(zhuǎn)義字元\n
換行\(zhòng)t
橫向跳格\r
回車\\
反斜杠\dddddd表示1到3位八進(jìn)制數(shù)字\xhhhh表示1到2位十六進(jìn)制數(shù)字2.5字元型數(shù)據(jù)例2.5
轉(zhuǎn)義字元的使用。
#include<stdio.h>
voidmain()
{
inta,b,c;
a=5;b=6;c=7;
printf("%d\n\t%d%d\n%d%d\t\b%d\n",a,b,c,a,b,c);
}
程式運(yùn)行時(shí)輸出以下結(jié)果:2.5字元型數(shù)據(jù)2.5.2字元型變數(shù)1.字元型變數(shù)分類和定義字元型變數(shù)用來存放字元常量,注意只能放一個(gè)字元。一個(gè)字元變數(shù)在內(nèi)存中占一個(gè)位元組。
字元變數(shù)的定義形式如下:charc1,c2;在本函數(shù)中可以用下麵語句對(duì)c1,c2賦值:
c1=‘a(chǎn)’;c2=‘b’;2.5字元型數(shù)據(jù)2.字元型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法字元型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)是將字元的ASCII碼值以二進(jìn)位形式存放,佔(zhàn)用1個(gè)位元組。也就是說將一個(gè)字元型常量放到一個(gè)字元變數(shù)中,實(shí)際上並不是把該字元本身放到記憶體單元中去,而是將該字元的相應(yīng)的ASCII代碼放到存儲(chǔ)單元中。
這樣使字元型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個(gè)字元數(shù)據(jù)既可以以字元形式輸出,也可以以整數(shù)形式輸出。2.5字元型數(shù)據(jù)例2.6
向字元型變數(shù)賦值。
#include<stdio.h>
voidmain()/*字元'a'的各種表達(dá)方法*/
{
charc1,c2,c3,c4,c5,c6;
c1='a';c2='\x61';c3='\141';
c4=97;c5=0x61;c6=0141;
printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3);
printf("c4=%c,c5=%c,c6=%c\n",c4,c5,c6);
printf("c1=%d,c2=%d,c3=%d\n",c1,c2,c3);
printf("c4=%d,c5=%d,c6=%d\n",c4,c5,c6);
}
程式運(yùn)行結(jié)果:c1=a,c2=a,c3=ac4=a,c5=a,c6=ac1=97,c2=97,c3=97c4=97,c5=97,c6=972.5字元型數(shù)據(jù)例2.7
字元型數(shù)據(jù)的轉(zhuǎn)換。
#include<stdio.h>
voidmain()
{
charc1,c2,c3;
c1='a';
c2='b';
c1=c1-32;
c2=c2-32;
c3=157;
printf("\nc1=%cc2=%cc3=%c\n",c1,c2,c3);
printf("c1=%dc2=%dc3=%d\n",c1,c2,c3);
}
程式運(yùn)行結(jié)果:c1=Ac2=Bc3=¥
c1=65c2=66c3=-99
2.5字元型數(shù)據(jù)注意:需要進(jìn)一步說明的是有些系統(tǒng)(如TurboC++3.0)將字元變數(shù)定義為signedchar型。其存儲(chǔ)單元中的最高位作為符號(hào)位,它的取值範(fàn)圍就是-128~127。
如果在字元變數(shù)中存放一個(gè)ASCII碼為0~127間的字元,由於位元組中最高位為0,因此用%d輸出字元變數(shù)時(shí),輸出的是一個(gè)正整數(shù)。如果在字元變數(shù)中存放一個(gè)ASCII碼為128~255間的字元,由於在位元組中最高位為1,用%d格式符輸出時(shí),就會(huì)得到一個(gè)負(fù)整數(shù),
2.5字元型數(shù)據(jù)2.5.3字串常量C語言除了允許使用字元常量外,還允許使用字串常量。字串常量是一對(duì)雙引號(hào)括起來的字元序列。例如:
”ThisisaCprogram.”,”CHINA”,”a”,”a1f3.45”也可以利用printf函數(shù)可以輸出一個(gè)字串。例如:printf("All
alone
in
a
foreign
land.");2.5字元型數(shù)據(jù)設(shè)ch1被指定為字元變數(shù):charch1;ch1=’a’;是正確的?!帷亲衷A慷鴆h1=”a”;則是錯(cuò)誤的?!保帷笔亲执A浚靡?guī)定:在每一個(gè)字串常量的結(jié)尾加一個(gè)“字串結(jié)束標(biāo)誌”,以便系統(tǒng)據(jù)此判斷字串是否結(jié)束。C規(guī)定以字元’\0’作為字串結(jié)束標(biāo)誌。2.5字元型數(shù)據(jù)注意:在寫字符串時(shí)不必加’\0’,因?yàn)椤痋0’字元是系統(tǒng)自動(dòng)加上的。在C語言中沒有專門的字串變數(shù),如果想將一個(gè)字串存放在變數(shù)中以便保存,必須使用字元數(shù)組,即用一個(gè)字元型數(shù)組來存放一個(gè)字串。2.6變數(shù)初始化和變數(shù)賦初值
(1)C語言允許在定義變數(shù)的同時(shí)使變數(shù)初始化。如:inta=3;//指定a為整型變數(shù),初值為3
floatf=3.56;//指定f為浮點(diǎn)型變數(shù),初值為3.56
charc=‘a(chǎn)’;//指定c為字元變數(shù),初值為‘a(chǎn)’(2)可以使被定義的變數(shù)的一部分賦初值。如:
inta,b,c=5;表示指定a、b、c為整型變數(shù),但只對(duì)c初始化,c的初值為5
2.6變數(shù)初始化和變數(shù)賦初值
(3)如果對(duì)幾個(gè)變數(shù)賦以同一個(gè)初值,應(yīng)寫成:inta=3,b=3,c=3;表示a、b、c的初值都是3。不能寫成∶
inta=b=c=3;
注意:初始化不是在編譯階段完成的,而是在程式運(yùn)行時(shí)執(zhí)行本函數(shù)時(shí)賦初值的,相當(dāng)於有一個(gè)賦值語句。2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
2.7.1C語言運(yùn)算符簡介
C的運(yùn)算符有以下幾類:(1)算術(shù)運(yùn)算符(+-*/%)(2)關(guān)係運(yùn)算符(><==>=<=?。剑?3)邏輯運(yùn)算符(?。Γ|)(4)位運(yùn)算符(<<>>~|∧&)(5)賦值運(yùn)算符(=及其擴(kuò)展賦值運(yùn)算符)(6)條件運(yùn)算符(?:)(7)逗號(hào)運(yùn)算符(,)(8)指針運(yùn)算符(*和&)(9)求位元組數(shù)運(yùn)算符(sizeof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符((類型))(11)分量運(yùn)算符(.->)(12)下標(biāo)運(yùn)算符([])(13)其他(如函數(shù)調(diào)用運(yùn)算符())2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
2.7.2基本算術(shù)運(yùn)算符和算術(shù)運(yùn)算式1.基本的算術(shù)運(yùn)算符+(加法運(yùn)算符,或正值運(yùn)算符,如:3+5、+3)-(減法運(yùn)算符,或負(fù)值運(yùn)算符,如:5-2、-3)*(乘法運(yùn)算符,如:3*5)/(除法運(yùn)算符,包括整數(shù)除和實(shí)數(shù)除,如25/3、4.2/2.0)%(模運(yùn)算符,或稱求餘運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如:7%4的值為3)。2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
2.算術(shù)運(yùn)算式和運(yùn)算符的優(yōu)先順序與結(jié)合性用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來的、符合C語法規(guī)則的式子,稱為C算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。例如:
a*b/c-1.5+′a′
是一個(gè)合法的運(yùn)算式。2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
C語言規(guī)定了運(yùn)算符的優(yōu)先順序和結(jié)合性。在運(yùn)算式求值時(shí),先按運(yùn)算符的優(yōu)先順序別高低次序執(zhí)行,例如先乘除後加減。C規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性)
算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?,即先左後右?/p>
注意:C語言規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性),“自左至右的結(jié)合方向’’又稱“左結(jié)合性”,即運(yùn)算對(duì)象先與左面的運(yùn)算符結(jié)合。有些運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆?例如,賦值運(yùn)算符)。
在程式運(yùn)行時(shí),系統(tǒng)會(huì)自動(dòng)進(jìn)行結(jié)合性的運(yùn)算的。2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
2.7.3自增、自減運(yùn)算符自增運(yùn)算符記為“++”,其功能是使變數(shù)的值自增1。自減1運(yùn)算符記為“--”,其功能是使變量值自減1。如:
++i,--i(在使用i之前,先使i的值加(減)1)i++,i--(在使用i之後,使i的值加(減)1)
2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
說明:一般來說,++i和i++的作用相當(dāng)於i=i+1。但++i和i++不同之處在於++i是先執(zhí)行i=i+1後,再使用i的值;而i++是先使用i的值後,再執(zhí)行i=i+1。--i和i--的作用相當(dāng)於i=i-1。但--i和i--不同之處在於--i是先執(zhí)行i=i-1後,再使用i的值;而i--是先使用i的值後,再執(zhí)行i=i-1。
i++與++i的區(qū)別:
++i是先執(zhí)行i=i+1後,再使用i的值;i++是先使用i的值後,再執(zhí)行i=i+1。例如:①j=++i;
i的值先變成4,再賦給j,j的值均為4②j=i++;先將i的值3賦給j,j的值為3,然後i變?yōu)椋?.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
注意:
(1)自增運(yùn)算符(++),自減運(yùn)算符(--),只能用於變數(shù),而不能用於常量或運(yùn)算式,(2)++和--的結(jié)合方向是“自右至左”。如:9++或(a+b)++都是不合法的。
因?yàn)?是常量,常量的值不能改變,不可能出現(xiàn)“9=9+1”的形式。
(a+b)++也不可能實(shí)現(xiàn),因?yàn)樽栽?、自減運(yùn)算還有一種給變數(shù)賦值的功能。2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
例2.8變量自增、自減運(yùn)算舉例。#include<stdio.h>voidmain(){inti=7;/*i的初值為7*/printf("%d",++i);/*i加1后輸出故為8*/printf("%d",--i);/*i減1后輸出故為7*/printf("%d",i++);/*輸出i為7之后再加1(為8)*/printf("%d",i--);/*輸出i為8之后再減1(為7)*/printf("%d",-i++);/*輸出-7之後i再加1(為8)*/printf("%d\n",-i--);}/*輸出-8之後i再減1(為7)*/
2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
程式運(yùn)行結(jié)果:8778-7-8例2.9較複雜的變數(shù)自增、自減運(yùn)算舉例。#include<stdio.h>voidmain(){inti=3,j=6,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("p=%dq=%di=%dj=%d\n",p,q,i,j);}2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
程式運(yùn)行結(jié)果:2.7.4有關(guān)算術(shù)運(yùn)算式使用中的問題說明(1)ANSIC並沒有具體規(guī)定運(yùn)算式的求值順序,允許各編譯系統(tǒng)自己安排。
例如:對(duì)運(yùn)算式a=f1()+f2()
並不是所有的編譯系統(tǒng)都先調(diào)用f1(),然後調(diào)用f2()。在有的情況下結(jié)果可能不同。有時(shí)會(huì)出現(xiàn)一些令人容易搞混的問題,因此務(wù)必要小心謹(jǐn)慎。例2.10自增自減運(yùn)算的求值順序。
2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
(2)C編譯系統(tǒng)在處理程式時(shí)盡可能多地(自左而右)將若干個(gè)字元組成一個(gè)運(yùn)算符、識(shí)別字和關(guān)鍵字。
C語言中有的運(yùn)算符為一個(gè)字元,有的運(yùn)算符由兩個(gè)字元組成,為避免誤解,最好採取大家都能理解的寫法。例如:不要寫成i+++j的形式,而應(yīng)寫成(i++)+j的形式2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
(3)在調(diào)用函數(shù)時(shí),實(shí)參數(shù)的求值順序,C標(biāo)準(zhǔn)並無統(tǒng)一規(guī)定。例如:i的初值為3,如果有下麵的函數(shù)調(diào)用:
printf(″%d,%d″,i,i++)
在有的系統(tǒng)中,從左至右求值,輸出“3,3”。在多數(shù)系統(tǒng)中對(duì)函數(shù)參數(shù)的求值順序是自右而左,輸出的是“4,3”。以上這種寫法不宜提倡,最好改寫成
j=i++;printf("%d,%d",j,i)
不要寫出別人看不懂的也不知道系統(tǒng)會(huì)怎樣執(zhí)行程式2.7算術(shù)運(yùn)算符和算術(shù)運(yùn)算式
2.8各種數(shù)值類型數(shù)據(jù)間的轉(zhuǎn)換和運(yùn)算
2.8.1隱式轉(zhuǎn)換整型(包括int,short,long)、浮點(diǎn)型(包括float,double)可以混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然後進(jìn)行運(yùn)算。轉(zhuǎn)換的目的是:(1)將短的數(shù)擴(kuò)展成機(jī)器處理的長度。(2)使得運(yùn)算符兩側(cè)的數(shù)據(jù)類型相同。例如:下麵式子在C語言中是能夠通過類型轉(zhuǎn)換進(jìn)行計(jì)算的。63+’a’-16*8+15.95該類型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的,轉(zhuǎn)換的規(guī)則:如圖(3)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符
可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)運(yùn)算式轉(zhuǎn)換成所需類型。
一般形式:(類型名)(運(yùn)算式)例如:(double)a將a轉(zhuǎn)換成double類型(int)(x+y)將x+y的值轉(zhuǎn)換成整型(float)(5%3)將5%3的值轉(zhuǎn)換成float型2.8各種數(shù)值類型數(shù)據(jù)間的轉(zhuǎn)換和運(yùn)算
2.8各種數(shù)值類型數(shù)據(jù)間的轉(zhuǎn)換和運(yùn)算
說明:需要轉(zhuǎn)換的運(yùn)算式應(yīng)該用括弧括起來。在強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變數(shù),原來變數(shù)的類型未發(fā)生變化。
floatx=3.6;inta;a=(int)x;注意:強(qiáng)制類型轉(zhuǎn)換實(shí)際上是一種單目運(yùn)算。各種數(shù)據(jù)類型名都可以用來作強(qiáng)制類型換的運(yùn)算符,如(char)、(int)、(float)等。
2.9賦值運(yùn)算符和賦值運(yùn)算式
1.賦值運(yùn)算符和賦值運(yùn)算式賦值符號(hào)“=”就是賦值運(yùn)算符,它的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變數(shù)。也可以將一個(gè)運(yùn)算式的值賦給一個(gè)變數(shù)。
賦值運(yùn)算符按照“自右而左”的結(jié)合順序
賦值運(yùn)算式是賦值運(yùn)算符將一個(gè)變數(shù)和一個(gè)運(yùn)算式連接起來的式子。它的一般形式為:
<變數(shù)><賦值運(yùn)算符><表達(dá)式>下麵是賦值運(yùn)算式的例子:k=b=c=7k=5+(c=6)k=(b=5)+(c=4)k=(b=8)%(c=3)2.類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不一致,但都是數(shù)值型或字元型時(shí),在賦值時(shí)要進(jìn)行類型轉(zhuǎn)換。
(1)將實(shí)型數(shù)據(jù)(單、雙精度)賦給整型變量,舍棄實(shí)數(shù)的小數(shù)部分,以整數(shù)形式存儲(chǔ)到變量中。如:i為整型變數(shù),執(zhí)行“i=3.56”的結(jié)果是使i的值為3,以整數(shù)形式存儲(chǔ)在整型變數(shù)中。例2.11將實(shí)型數(shù)據(jù)賦值給整型變量。
(2)將double型數(shù)據(jù)賦給float型變數(shù)時(shí),截取其前面7位有效數(shù)字,存放到float變數(shù)的存儲(chǔ)單元中(32bits)。但同樣應(yīng)注意數(shù)值範(fàn)圍不能溢出。
2.9賦值運(yùn)算符和賦值運(yùn)算式
(3)char型數(shù)據(jù)賦給int、short、long型整型變數(shù)時(shí),由於字元只占1個(gè)位元組,而整型變數(shù)占2個(gè)字節(jié)或4個(gè)字節(jié),因此將字符數(shù)據(jù)(8個(gè)二進(jìn)位位)放到整型變量存儲(chǔ)單元的低8位中。有兩種情況如下。
①零擴(kuò)展:高位補(bǔ)零。②符號(hào)擴(kuò)展:按字元最高位(符號(hào)位為0或1)碼補(bǔ)高位。
2.9賦值運(yùn)算符和賦值運(yùn)算式
(4)將一個(gè)int、short、long型數(shù)據(jù)賦給一個(gè)char型變數(shù)時(shí),只將其低8位原封不動(dòng)地送到char型變數(shù)(即高位截去)。若將一個(gè)long型數(shù)據(jù)賦給一個(gè)int型變數(shù),只將long型數(shù)據(jù)中低16位原封不動(dòng)地送到整型變量(即高位截去)。
例如:longa=32769;intb;b=a;2.9賦值運(yùn)算符和賦值運(yùn)算式
(5)將unsignedint型數(shù)據(jù)賦給longint型變數(shù)時(shí),不存在符號(hào)擴(kuò)展問題,只需將高位補(bǔ)0即可。
說明:不同類型的整型數(shù)據(jù)間的賦值歸根到底就是一條:按存儲(chǔ)單元中的存儲(chǔ)形式直接傳送。
例2.12不同數(shù)據(jù)類型間的賦值。
2.9賦值運(yùn)算符和賦值運(yùn)算式
2.9賦值運(yùn)算符和賦值運(yùn)算式
類型轉(zhuǎn)換小結(jié)如果運(yùn)算式值的類型,與被賦值變數(shù)的類型不一致,但都是數(shù)值型或字元型時(shí),系統(tǒng)自動(dòng)地將運(yùn)算式的值轉(zhuǎn)換成被賦值變數(shù)的數(shù)據(jù)類型,然後再賦值給變數(shù)。float\double
int去掉小數(shù)—>高位截取int
float\double按浮點(diǎn)數(shù)形式存儲(chǔ)double
float增加精度char
inta.高位補(bǔ)0b.符號(hào)擴(kuò)展int\short\long
char高位截取int
long符號(hào)擴(kuò)展unsignedint
long高位補(bǔ)0非Unsigned
unsigned原樣照賦
3.複合的賦值運(yùn)算符和賦值運(yùn)算式在賦值運(yùn)算符“=”之前加上其他二目運(yùn)算符可構(gòu)成複合賦值符。即:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=例如:a+=5等價(jià)於a=a+5x*=y+7等價(jià)於x=x*(y+7)r%=p等價(jià)於r=r%p2.9賦值運(yùn)算符和賦值運(yùn)算式
討論1:賦值運(yùn)算式也可以包含複合的賦值運(yùn)算符。
如:a+=a-=a*a分析:此賦值運(yùn)算式的求解步驟如下∶①先進(jìn)行“a-=a*a”的運(yùn)算,它相當(dāng)於a=a-a*a,a的值為12-144=-132。②再進(jìn)行“a+=-132”的運(yùn)算,相當(dāng)於a=a+(-132),a的值為-132-132=-264。討論2:賦值運(yùn)算式也可以包含複合的賦值運(yùn)算符。例如:若a為3,求下列運(yùn)算式的值:a+=a-=a*=a2.9賦值運(yùn)算符和賦值運(yùn)算式
討論3:將賦值運(yùn)算式作為運(yùn)算式的一種,使賦值操作不僅可以出現(xiàn)在賦值語句中,而且可以以運(yùn)算式形式出現(xiàn)在其他語句(如輸出語句、迴圈語句等)中。如:printf("%d",a=b);
分析:如果b的值為3,則輸出a的值(也是運(yùn)算式a=b的值)為3。在一個(gè)語句中完成了賦值和輸出雙重功能。2.9賦值運(yùn)算符和賦值運(yùn)算式
2.10位運(yùn)算
運(yùn)算符含義運(yùn)算符含義
&按位與~取反
|按位或<<左移∧按位異或>>右移說明:(1)位運(yùn)算符中除~以外,均為二目(元)運(yùn)算符。(2)運(yùn)算量只能是整型或字元型的數(shù)據(jù),不能為實(shí)型數(shù)據(jù)。所謂位運(yùn)算是指進(jìn)行二進(jìn)位位的運(yùn)算。在系統(tǒng)軟體中,常要處理二進(jìn)位位的問題。例如,將一個(gè)存儲(chǔ)單元中的各二進(jìn)位位左移或右移一位,兩個(gè)數(shù)按位相加等。
C語言提供的位運(yùn)算符有:
2.10.1位運(yùn)算符及其功能
1.“按位與”運(yùn)算符(&)
&運(yùn)算是雙目運(yùn)算,其基本規(guī)則是將參加運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)位位進(jìn)行“按位與”運(yùn)算。
即:&0=00&1=01&0=01&1=1
例如:inta1=0x19,a2=0x35,b;b=a1&a2;注意:如果參加&運(yùn)算的是負(fù)數(shù)(如-3&-5),則要以補(bǔ)數(shù)形式表示為二進(jìn)位數(shù),然後再按位進(jìn)行“與”運(yùn)算。2.10位運(yùn)算
按位與有一些特殊的用途:
(1)清零。若想對(duì)一個(gè)存儲(chǔ)單元清零,即使其全部二進(jìn)位位為0,只要找一個(gè)二進(jìn)位數(shù),其中各個(gè)位符合以下條件:原來的數(shù)中為1的位,新數(shù)中相應(yīng)位為0。然後使二者進(jìn)行&運(yùn)算,即可達(dá)到清零目的。2.10位運(yùn)算
(2)取一個(gè)數(shù)中某些指定位。
如有一個(gè)整數(shù)a(2個(gè)位元組),想要取其中的低位元組,只需將a與8個(gè)1按位與即可。0010110010101100abc000000001111111100000000101011002.10位運(yùn)算
2“按位或”運(yùn)算符(|)|運(yùn)算是雙目運(yùn)算,其基本規(guī)則是將參加運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)位位進(jìn)行“按位或”運(yùn)算。即0|0=0,0|1=1,1|0=1,1|1=1例如:inta1=0x19,a2=0x35,b;b=a1|a2;2.10位運(yùn)算
“按位或”
運(yùn)算一個(gè)的用途示對(duì)一個(gè)數(shù)據(jù)的某些位定值為13.“按位異或”運(yùn)算符(∧)
∧運(yùn)算的功能是將參加運(yùn)算的兩個(gè)數(shù)據(jù),按位異或運(yùn)算,也稱XOR運(yùn)算符。即:
0∧0=00∧1=11∧0=11∧1=0
2.10位運(yùn)算
例如:inta1=0x19,a2=0x35,b;b=a1∧a2;則其運(yùn)算的情況如下:
例如:有01100110,想使其低4位翻轉(zhuǎn),即1變?yōu)?,0變?yōu)???梢詫⑺c0000111l進(jìn)行∧運(yùn)算,即01100110∧0000111l=01101001?!倪\(yùn)算符應(yīng)用:
(1)使特定位翻轉(zhuǎn)與0相∧,保留原值
01100110∧00001111
011010012.10位運(yùn)算
(2)交換兩個(gè)值,不用臨時(shí)變量。
例如:將a和b兩個(gè)整數(shù)的值互換,可以利用如下語句實(shí)現(xiàn):inta=0xff00,b=0x88aa;a=a∧b;b=b∧a;a=a∧b;
自己演算一下!4.“按位取反”運(yùn)算符(~)
~是一個(gè)單目運(yùn)算符,用來對(duì)一個(gè)二進(jìn)位數(shù)按位取反,即將0變l,將1變0。
即:
0=1~1=0
例如:(~)0000000000000101(5)1111111111111010(八進(jìn)制數(shù)177752)(-6)2.10位運(yùn)算
5.左移運(yùn)算符(<<)
<<是雙目運(yùn)算,其功能式將一個(gè)數(shù)的各個(gè)二進(jìn)位位全部左移若干位。其左邊是需要移位的對(duì)象,右邊是一個(gè)整型表達(dá)式,代表要左移的位數(shù)。移位時(shí)右端補(bǔ)0,左端移出的位棄舍。
例如:
inta=128,b;
b=a<<2;
2.10位運(yùn)算
注意:在實(shí)際應(yīng)用中,左移比乘法運(yùn)算快得多,有些C編譯程序自動(dòng)將乘2的運(yùn)算用左移乘2n的冪運(yùn)算處理為左移n位。
例如:左移1位相當(dāng)於該數(shù)乘以2,左移2位相當(dāng)於該數(shù)乘以22=4,15<<2=60,即乘了4。但此結(jié)論只適用於該數(shù)左移時(shí)被溢出捨棄的高位中不包含1的情況。假設(shè)以一個(gè)位元組(8位)存一個(gè)整數(shù),若a為無符號(hào)整型變數(shù),則a=64時(shí),左移一位時(shí)溢出的是0,而左移2位時(shí),溢出的高位中包含1。2.10位運(yùn)算
6.右移運(yùn)算符(>>)>>是雙目運(yùn)算,其功能式將一個(gè)數(shù)的各個(gè)二進(jìn)制位全部右移若干位。>>運(yùn)算符左邊是需要移位的對(duì)象,右邊是一個(gè)整型表達(dá)式,代表要右移的位數(shù)。
移位時(shí)右端移出的位棄舍。對(duì)於unsigned數(shù)和正數(shù)左端補(bǔ)0,對(duì)於負(fù)數(shù)左端補(bǔ)1。注意:右移一位相當(dāng)於除以2右移n位相當(dāng)於除以2n。2.10位運(yùn)算
例如:inta1=9,a2=-8,b1,b2;b1=a1>>2;b2=a2>>2;2.10位運(yùn)算
在右移時(shí),需要注意符號(hào)位問題:有的系統(tǒng)移入0,有的系統(tǒng)移入1。移入0的稱為“邏輯右移”,即簡單右移;移入1的稱為“算術(shù)右移”。TurboC++3.0和其他一些C編譯採用的是算術(shù)右移,即對(duì)有符號(hào)數(shù)右移時(shí),如果符號(hào)位原來為1,左面移入高位補(bǔ)1。例如:2.10位運(yùn)算
k的值為十六進(jìn)制數(shù)0xf0f0k:1111000011110000(用二進(jìn)位形式表示)k>>1:0111100001111000(邏輯右移時(shí))k>>l:1111100001111000(算術(shù)右移時(shí))7.位運(yùn)算賦值運(yùn)算符
位運(yùn)算符與賦值運(yùn)算符可以組成複合賦值運(yùn)算符。例如:&=,|=,>>=,<<=,∧=例:a&=b相當(dāng)於a=a&ba<<=2相當(dāng)於a=a<<22.10位運(yùn)算
8.不同長度的數(shù)據(jù)進(jìn)行位運(yùn)算如果兩個(gè)數(shù)據(jù)長度不同(例如long型和int型),進(jìn)行位運(yùn)算時(shí)(如a&b,而a為long型,b為int型),系統(tǒng)會(huì)將二者按右端對(duì)齊。如果b為正數(shù),則左側(cè)16位補(bǔ)滿0;若b為負(fù)數(shù),左端應(yīng)補(bǔ)滿1;如果b為無符號(hào)整數(shù)型,則左側(cè)添滿0。2.10位運(yùn)算
2.10.2位運(yùn)算舉例
例2.13右移運(yùn)算符(>>)和按位與(&)位運(yùn)算符舉例。
#include"stdio.h"voidmain(){unsigneda,b;printf("inputanumber:");scanf("%d",&a);b=a>>3; /*a右移3位,將右移後的值賦給b*/printf("a=%d\tb=%d\n",a,b);b=b&9; /*將b和9按位與的值賦給b*/printf("a=%d\tb=%d\n",a,b);}2.10位運(yùn)算
程式運(yùn)行結(jié)果:inputanumber:127a=127b=15a=127b=9例2.14左移(<<)、右移(>>)、按位或(|)、按位與(&)位運(yùn)算符舉例。#include"stdio.h"voidmain(){chara=’a’,b=’b’;intp,c,d;p=a;p=(p<<2)|b;/*將p左移2位然後和b按位與運(yùn)算*/d=p&0xff;/*將p和0xff按位與運(yùn)算*/c=(p&0xff00)>>8;printf("a=%d\tb=%d\nc=%d\td=%d\n",a,b,c,d);}2.10位運(yùn)算
程式運(yùn)行結(jié)果:a=97b=98c=1d=2302.11逗號(hào)運(yùn)算符和逗號(hào)運(yùn)算式
在C語言中“,”也是一種特殊的運(yùn)算符——逗號(hào)運(yùn)算符,又稱為“順序求值運(yùn)算符”。用逗號(hào)運(yùn)算符將若干個(gè)運(yùn)算式連接起來的式子稱為逗號(hào)運(yùn)算式。例如:3+5,a=14,b=4,a+b,r=a+b-2逗號(hào)運(yùn)算式的一般形式可以擴(kuò)展為:運(yùn)算式1,運(yùn)算式2,表達(dá)式3,…,運(yùn)算式n
逗號(hào)運(yùn)算式的求解過程是:先求解運(yùn)算式1,再求解運(yùn)算式2,依次求到表達(dá)式n,表達(dá)式n的值就是整個(gè)逗號(hào)運(yùn)算式的值。a的值為14,b的值為4.12,然後求解a+b,得18。整個(gè)逗號(hào)運(yùn)算式的值為16。優(yōu)先順序:逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的賦值運(yùn)算符的優(yōu)先順序別高於逗號(hào)運(yùn)算符,逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的。
例如,下麵兩個(gè)運(yùn)算式的,作用是不同的:x=(a=5,7*3)x=a=8,6*2
前一個(gè)是一個(gè)賦值運(yùn)算式,將一個(gè)逗號(hào)運(yùn)算式的值賦給x,x的值等于21,同時(shí)變量a的值為5。後一個(gè)是逗號(hào)運(yùn)算式,包括一個(gè)賦值運(yùn)算式和一個(gè)算術(shù)運(yùn)算式,x的值為8,整個(gè)逗號(hào)運(yùn)算式的值為12,變量a的值為8。
2.11逗號(hào)運(yùn)算符和逗號(hào)運(yùn)算式
3.1.1演算法概念廣義地說,為解決一個(gè)問題而採取的方法和步驟,就稱為“演算法”。要進(jìn)行程式設(shè)計(jì),也必須要有進(jìn)行程式設(shè)計(jì)的演算法。1.程序設(shè)計(jì)中的算法著名電腦科學(xué)家沃思提出一個(gè)公式
數(shù)據(jù)結(jié)構(gòu)+演算法=程式即:一個(gè)程式應(yīng)包括兩個(gè)方面的內(nèi)容:對(duì)數(shù)據(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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤制烯烴生產(chǎn)工安全知識(shí)水平考核試卷含答案
- 余熱余壓利用系統(tǒng)操作工安全意識(shí)強(qiáng)化知識(shí)考核試卷含答案
- 硅料腐蝕工風(fēng)險(xiǎn)評(píng)估與管理強(qiáng)化考核試卷含答案
- 絲麻毛纖維預(yù)處理工安全宣貫?zāi)M考核試卷含答案
- 江浙高中發(fā)展聯(lián)盟2025-2026學(xué)年高三上學(xué)期1月學(xué)情監(jiān)測語文試題附答案
- 統(tǒng)編版本語文高中選擇性必修中冊《屈原列傳》第1課時(shí)教學(xué)設(shè)計(jì)
- 2026河北衡水市第八中學(xué)招聘備考題庫及參考答案詳解
- 老年術(shù)后3D打印體位調(diào)整輔具設(shè)計(jì)
- 企業(yè)級(jí)大數(shù)據(jù)分析流程詳解
- 組織胚胎學(xué)基礎(chǔ):細(xì)胞周期課件
- 2023民用建筑鋼結(jié)構(gòu)檢測技術(shù)規(guī)程
- 江蘇省淮安市2024-2025學(xué)年七年級(jí)上學(xué)期期末地理試卷(含答案)
- 導(dǎo)管水密試驗(yàn)流程
- 銷售經(jīng)理2025年工作總結(jié)及2025年工作計(jì)劃
- 《保障農(nóng)民工工資支付條例》五項(xiàng)制度特別解讀
- 新醫(yī)療新技術(shù)答辯
- 建筑施工-10S505柔性接口給水管道支墩規(guī)范圖集
- 高校校園超市運(yùn)營管理方案
- 醫(yī)療類產(chǎn)品設(shè)計(jì)
- 體系工程師工作年終總結(jié)
- 德育原理 課件全套 班建武 第1-9章 德育的本質(zhì)與功能-學(xué)校德育現(xiàn)代化
評(píng)論
0/150
提交評(píng)論