




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
TOC\o"1-5"\h\z>dayOl(C編程基本結(jié)構(gòu)輸出函數(shù)) 4\o"CurrentDocument"gcc編譯器 4\o"CurrentDocument"基本數(shù)據(jù)類型 10\o"CurrentDocument"原碼與補碼 10\o"CurrentDocument"ASCH碼 12\o"CurrentDocument"常量與變量 12\o"CurrentDocument"變量與數(shù)據(jù)類型 13\o"CurrentDocument"變量與變量的size 13\o"CurrentDocument"類型轉(zhuǎn)換 13\o"CurrentDocument"范例 14\o"CurrentDocument"AdayO2AM(變量常量) 15\o"CurrentDocument"C的保留字 15\o"CurrentDocument"C變量名 15\o"CurrentDocument"vi初始化文件 15\o"CurrentDocument"變量聲明 16\o"CurrentDocument"常量 20const限定符 20\o"CurrentDocument"表達式的左值與右值 22\o"CurrentDocument"算數(shù)運算符 22\o"CurrentDocument"賦值運算符 22\o"CurrentDocument"關(guān)系運算符 23\o"CurrentDocument"判等運算符 23\o"CurrentDocument"邏輯運算符 23\o"CurrentDocument"位運算 25按位取反 25按位與 25按位或 25按位異或 26左移 26右移 26\o"CurrentDocument"取地址運算符 27\o"CurrentDocument"逗號運算符 28\o"CurrentDocument"條件運算符 28\o"CurrentDocument"自增/自減運算 29\o"CurrentDocument"運算符與結(jié)合性 32>day03AM(格式化輸入控制語句) 34\o"CurrentDocument"scanf()從鍵盤輸入 34\o"CurrentDocument"程序語句 35\o"CurrentDocument"流程控制語句 36\o"CurrentDocument"條件判斷語句 36\o"CurrentDocument"分支語句 38\o"CurrentDocument"A dayO3PM(循環(huán)枚舉) 39\o"CurrentDocument"循環(huán)語句 39\o"CurrentDocument"用typedef定義類型 46\o"CurrentDocument"枚舉類型 46\o"CurrentDocument"> day04(數(shù)組結(jié)構(gòu)體) 49\o"CurrentDocument"范例 49\o"CurrentDocument"復(fù)雜數(shù)據(jù)類型 49\o"CurrentDocument"數(shù)組 50\o"CurrentDocument"字符串字面量 56\o"CurrentDocument"二維數(shù)組 59\o"CurrentDocument"結(jié)構(gòu)體 63\o"CurrentDocument"> dayO5AM(struct位段union) 67\o"CurrentDocument"內(nèi)存的對齊與補齊 67\o"CurrentDocument"位段 68共用體(聯(lián)合) 71\o"CurrentDocument"> dayO5PM(函數(shù)) 72\o"CurrentDocument"■ 函數(shù) 72函數(shù)的定義 72函數(shù)的聲明 72函數(shù)的調(diào)用 73\o"CurrentDocument"函數(shù)范例一 75\o"CurrentDocument"函數(shù)范例二 76\o"CurrentDocument"C與C++的部分區(qū)別 78\o"CurrentDocument"> dayO6AM(變量種類棧堆) 79\o"CurrentDocument"變量種類 80\o"CurrentDocument"變量的作用域與可見性 80\o"CurrentDocument"register變量 85\o"CurrentDocument"volatile變量 85\o"CurrentDocument"棧的技術(shù)簡介 85\o"CurrentDocument"堆與內(nèi)存管理 86\o"CurrentDocument"> dayO6PM(函數(shù)傳參) 87\o"CurrentDocument"函數(shù)傳參 87\o"CurrentDocument"數(shù)組作參數(shù) 89\o"CurrentDocument"可變長參數(shù)的函數(shù) 92\o"CurrentDocument"遞歸函數(shù) 95\o"CurrentDocument"漢諾塔程序 98\o"CurrentDocument"> day07(預(yù)處理命令) 99■ 宏定義指令#define 99不帶參數(shù)的宏定義 99帶參數(shù)的宏定義(宏函數(shù)) 100#和## 101\o"CurrentDocument"“文件包含”處理 103\o"CurrentDocument"條件編譯指令 103?編譯器預(yù)定義宏 107\o"CurrentDocument"> day08AM(指針) 108\o"CurrentDocument"指針的定義 108\o"CurrentDocument"指針的操作 109地址作為參數(shù) 113\o"CurrentDocument"數(shù)組作為參數(shù) 114\o"CurrentDocument"字符串 115\o"CurrentDocument"虛擬內(nèi)存,內(nèi)核空間,用戶空間,內(nèi)存映射 118虛擬內(nèi)存 118內(nèi)核空間到物理內(nèi)存的映射 118頁式映射 119\o"CurrentDocument"> day。8PM(多級指針 空指針) 120\o"CurrentDocument"不同的main()格式 120\o"CurrentDocument"多級指針 122\o"CurrentDocument"空指針(void*) 123> day09(數(shù)組指針函數(shù)指針 堆空間) 125\o"CurrentDocument"指針數(shù)組 125\o"CurrentDocument"數(shù)組指針 125函數(shù)指針 128\o"CurrentDocument"堆空間 133\o"CurrentDocument"malloc 133\o"CurrentDocument"calloc 133\o"CurrentDocument"realloc 134\o"CurrentDocument"free 134>day10(1/0流文件格式控制) 136\o"CurrentDocument"I/O流 136\o"CurrentDocument"字符串:sscanf,sprintf 137\o"CurrentDocument"文件:fscanf,fprintf 138\o"CurrentDocument"文件:fopen,fclose 139\o"CurrentDocument"格式字符串 141\o"CurrentDocument"gets.puts,fgets,fputs 143\o"CurrentDocument"getchar.putchar.fgetc/getc?fputc/putc 144fseek 148\o"CurrentDocument"fread.fwrite 150\o"CurrentDocument"ungetc 153\o"CurrentDocument"feof 154dayO1(C編程基本結(jié)構(gòu)輸出函數(shù))標準化20世紀70年代,出現(xiàn)了第一本關(guān)于C語言的書籍一《CprogrammingLanguage》,這本書成了程序員編寫程序事實上的標準。1983年美國開始制定本國的C語言標準,在1989年12月正式通過,我們把這個標準稱為C89。1995年C語言有做出一些改變,1999年通過了C99標準。經(jīng)典hello程序c程序文件的后綴名必須是?c。C程序文件不是可執(zhí)行文件,是源代碼程序。需要用gcc來翻譯,它會把c程序轉(zhuǎn)換成對應(yīng)的機器指令,存放在a.out文件中,它是一個可執(zhí)行文件。vixxx.c編輯(edit),生成c語言源文件。gccxxx.c——編譯連接(compilelink),如果沒錯誤,就生成可執(zhí)行文件a.out。編譯連接可分開做:編譯:gcc-cxxx.c>如果沒錯誤,會產(chǎn)生一個目標文件xxx.o(windows中是xxx.obj);連接:gccxxx.o如果沒錯誤,生成a.out。a.out--運行,shell首先找到這個可執(zhí)行文件,然后內(nèi)核來執(zhí)行它。c源程序是采用標準c語法來寫,標準c是國際標準,所以c源程序是可移植的,可以應(yīng)用于任何操作系統(tǒng)以及任何的編譯工具,但是不可執(zhí)行。a.out已經(jīng)生成了具體的系統(tǒng)下的機器碼了,所以它是不可移植的。不同操作系統(tǒng)的可執(zhí)行文件的格式不同,linux系統(tǒng)中可執(zhí)行文件格式一般為ELF,windows系統(tǒng)是PE。gcc編譯器我們已經(jīng)使用過了gcc命令,那么gcc是什么呢?GCC是C語言的最流行的一個編譯器,GCC(GNUCompilerCollection,GNU編譯器套裝),是一套由GNU開發(fā)的編程語言編譯器。它是一套以GPL及LGPL許可證所發(fā)行的自由軟件,也是GNU計劃的關(guān)鍵部分,亦是自由的類Unix及蘋果電腦MacOSX操作系統(tǒng)的標準編譯器。GCC最基本的用法是:gcc(options)|filenames|o其中options就是編譯器所需要的參數(shù),filenames給出相關(guān)的文件名稱。C:只編譯,不連接成為可執(zhí)行文件,編譯器只是由輸入的.C等源代碼文件生成.O為后綴的目標文件,通常用于編譯不包含主程序的子程序文件。ooutput_filename:確定輸出文件的名稱為output_filename,同時這個名稱不能和源文件同名。如果不給出這個選項,gcc就給出預(yù)設(shè)的可執(zhí)行文件a.out。g:產(chǎn)生符號調(diào)試工具(GNU的gdb)所必要的符號資訊,要想對源代碼進行調(diào)試,我們就必須加入這個選項。O:對程序進行優(yōu)化編譯、連接,采用這個選項,整個源代碼會在編譯、連接過程中進行優(yōu)化處理,這樣產(chǎn)生的可執(zhí)行文件的執(zhí)行效率可以提高,但是,編譯、連接的速度就相應(yīng)地要慢一些。02:比-0更好的優(yōu)化編譯、連接,當然整個編譯、連接過程會更慢。std:選擇編譯程序所使用的C語言的標準,可以使用-std=c89或者-std=c99。S:生成匯編代碼文件。E:查看預(yù)處理后的代碼,顯示在終端屏幕上。|root@192cl|#vihello.cmain()|root@192cl|#gcchello.c|root@192cl|#Isa.outhello.cprintf.c|root@192cl|#a.out|root@192cl|#rm-fa.out[root@192cl|#gcc-chello.c|root@192cl|#Ishello.chello.oprintf.c|root@192cl|#gcchello.o[root@I92cl|#lsa.outhello.chello.oprintf.c[root@192cl|#a.out|root@192cl|#rm-fa.out[root@192cl|#Ishello.chello.oprintf.c|root@192cl|#gcchello.o-ohello[-o:指定可執(zhí)行文件的名字,不指定就叫a.outo]|root@192cl|#Ishellohello.chello.oprintf.c|root@192cl|#rm-fhellohello.o[root@192cl|#Ishello.cprintf.c|root@192cl|#gcchello.c-ohello 【兩步并一步】|root@192cl|#Ishellohello.cprintf.c規(guī)范的寫法:intmain()【前面如果不寫int,默認也是int】{return0;【返回一個整數(shù)0,與前面的int相呼應(yīng);返回0表示一切正常:默認的返回值是0,出錯返回-1;習(xí)慣上,一切正常,就寫:return。;在main函數(shù)中,如果不寫該句,編譯器會自動產(chǎn)生return0;對于其他函數(shù),如果要求有返回值,但沒寫return,就會隨機帶回一個值】)main函數(shù)(主函數(shù))是一個C程序中必備的且只能有一個,否則連接出錯。標準c自帶很多頭文件,存放在目錄/usr/include下。C語言的一個突出優(yōu)點就是標準庫,里面包含了很多用于輸入輸出,字符串操作,分配內(nèi)存等非常實用的函數(shù)。標準庫中的函數(shù)名全部小寫。頭文件里存放的一般都是函數(shù)的聲明。[root@192cl|#vihello.c/*這是我的第一個Linux環(huán)境下的C程序【注釋,也可用〃注釋一行;多行注釋不可嵌套】經(jīng)典不容錯過的helloworld*/#include<stdio.h>[#開頭的行叫預(yù)處理行;將stdio.h頭文件的內(nèi)容插入到該位置;預(yù)處理行要寫在一行上,如果太長,可在文件末尾用'\'作為續(xù)行符;預(yù)處理行結(jié)尾不加分號】intmain()(printf("hellocsdl007!\n");【以分號結(jié)尾的稱為一條語句,表達一個相對完整的命令】return0;[root@192cl]#gcchello.c-ohello[root@192cl]#hellohellocsdl007!<>:里面寫的是標準c自帶的頭文件,插入自己寫的文件可用雙引號寫成<>,就只去標準C的頭文件目錄/usr/include下去找,寫成“”,就在當前目錄下找;如果帶了路徑,就按路徑查找。例如要用/usr/include目錄下的sys目錄下的socket.h,需要寫成:#include<sys/socket.h>?要查看某個函數(shù)在哪兒頭文件中,只需要:man-a函數(shù)名。[chenzongquan]$man-aprintfPRINTF(1) UserCommandsPRINTF(l)NAMEprintf-formatandprintdataSYNOPSISprintfFORMAT[ARGUMENT]...printfOPTIONDESCRIPTIONPrintARGUMENT(s)accordingtoFORMAT.—helpdisplaythishelpandexit-versionoutputversioninformationandexitFORMATcontrolstheoutputasHnCprintf.Interpretedsequencesare:此時顯示的是用戶命令,按q進入到下一個printf:PRINTF(P) POSIXProgrammerfsManualPRINTF(P)NAMEprintf—writeformattedoutputSYNOPSISprintfformat「argument,..]IDESCRIPTIONTheDrintfutilityshallwriteformattedoperandstothestandardoutput.Theargumentoperandsshallbeformattedundercontroloftheformatoperand.OPTIONSNone.OPERANDSThefollowingoperandsshallbesupported:formatAstringdescribingtheformattousetowriteI此時顯示的還是一個命令,再按q進入到下一個printf:PRINTF(PRINTF(3)PRINTF(3)NAMELinuxProgrammer*sManualprintf, fprintf,sprintf,snprlntf,vprintf,vfprintf,vsprintf,vsnprintf-formattedoutputconversionSYNOPSIS#include<stdio.h:intprintf(constchar*format.,intfprintf(FILE*stream,constchar*format.,??.);intsprintf(char*str,constchar*format,???);intsnprintf(char*str,size_tsize,constchar*for-mat,???);#include<stdarg.h>intvprintf(constchar*format.,va_listap);intvfprintf(FILE*stream,constchar *format,可以看到printf后面有個3,所以也可以直接輸入以下命令:[chenzongquan]$man3printf一般情況下,標準C的函數(shù)都是數(shù)字3。嚴格地說,應(yīng)該寫成下面的形式:[chenzongquan]$man-s3printflinux中,寫s,unix中,寫S。printf:按格式打印;print-打印,f表示格式。其中,雙引號包起來的叫字符串,可長可短,原樣輸出,除非有特殊含義,如轉(zhuǎn)義字符。printf(格式字符串,表達式1,表達式2,…);【用表達式替換格式字符串中的占位符%;如果沒寫表達式,占位符會隨機找數(shù)據(jù)來替換;如果沒有格式占位符,后面的表達式就沒用處】在stdio頭文件中聲明了printf,所以需包含頭文件stdio.h。單引號包起來的叫字符,單引號只能包一個字符,不能包多個,也不能一個都不包,但是還存在一些轉(zhuǎn)義字符,如'\n',也是一個字符,表示newline,換一行。用“\”打頭的字符都有特殊含義,稱為轉(zhuǎn)義字符。表3T轉(zhuǎn)義字符及其作用字符形式含義ASCII代碼\n換行,將當前位置移到下一行開頭10\t水平制表(跳到下一個Tab位置)9\b退格,將當前位置移到前一列8\r回車,將當前位置移到本行開頭13\f換頁,將當前位置移到下頁開頭12\\代表一個反斜杠字符92V代表一個單引號(撇號)字符39代表一個雙引號字符34\ddd1到3位八進制數(shù)所代表的字符\xhh1到2位十六進制數(shù)所代表的字符輸入回車鍵其實相當于輸入了一個換行符。而上是回車符,回到本行最左邊,它并不換行。|root@192cl|#viabcprintf("大家好!\n*');prinlf(”祝大家好運!\n");【在c程序的末尾最好留一個空行,因為不留空行,有些編譯器給警告】|root@192cl|#vihello.c#include<stdio.h>intmain()(printf(nhellocsd1007!\nM);#include"abc1'【把另一個文件的內(nèi)容插進來】return0;}|root@192cl|#catabcprintf("大家好!\nM);printf("祝大家好運!\nM);[root@192cl|#gcchello.c[root@192cl|#a.outhellocsdl007!大家好!祝大家好運![root@192cl|#■基本數(shù)據(jù)類型程序運行時,所有的數(shù)據(jù)都放在內(nèi)存中。為了使用起來方便,我們可以給某些內(nèi)存區(qū)域取一個名字,這就是所謂的變量。變量用來存放數(shù)據(jù),數(shù)據(jù)有不同的類型,所以變量必須有類型。int是整型;char是字符型;char"是字符數(shù)組,存放一組字符,不同于字符串,字符串是以\0為結(jié)束標志的一組字符。定義了變量,這個變量就有了數(shù)據(jù),如果不給其賦值,里面存的就是垃圾數(shù)據(jù)。整型:int字符型:char實型:float,double【float一般精確到7位有效數(shù)字,double一般是15位】還有非標準的類型:longdouble【有些編譯器不支持,精度能達到30多位】char類型變量占1個字節(jié);int、long和float占4個字節(jié),double占8個字節(jié)?;緮?shù)據(jù)類型羅列:char,unsignedchar【可以表示0?255】,signedchar【可以表示-128?127】(這兩個對字符本身沒有任何意義,主要是用來存放整數(shù)時用到),默認的是,unsigned(int),(signed)int,short(int)【2個字節(jié)】,unsignedshort(int),signedshort(int).long(int),signedlong(int).unsignedlong(int),longlong【8個字節(jié)float,double,longdouble(無unsigned,實數(shù)總是可正可負的)。void(空類型,不確定類型,沒有用void定義的變量,它有其他用途)規(guī)定新類型的方法:enum(枚舉),struct(結(jié)構(gòu)體),union(聯(lián)合體),array(數(shù)組),pointer(指針)。SD卡就是用4個字節(jié)設(shè)計的存儲容量,遺憾的是它設(shè)計的時候設(shè)成了有符號的,即存儲容量為:-231~23=(2G),但存儲容量是不可能為負的,所以SD卡最大容量就是2G。也有擴展到4G的SD卡,但如果設(shè)備不支持擴展的SD,也沒辦法識別。1P=1O24T;1T=1O24G;1G=1024M=1024*1024KB=1073741824字節(jié)=2種字節(jié);2G=231字節(jié)?!鲈a與補碼整數(shù)在計算機中用二進制來表示,最高位表示符號位,最高位為0表示非負數(shù),為1就表示是負數(shù)。比如一個字節(jié)有八位二進制位:非負數(shù)可以表示出0?127,負數(shù)可以表示出-1~-128(因為沒有-0,所以多增加一個,到-128)。如果是無符號的八位二進制位,可以表示0?255。以前的計算機用原碼的方式存放數(shù)據(jù),比如-1,在計算機里表示為:10000001;但這種方法使得計算起來很麻煩。所以現(xiàn)在的計算機采用補碼的方式存數(shù)據(jù):非負數(shù)的補碼與原碼相同,負數(shù)的補碼是對應(yīng)的正數(shù)的原碼按位取反再加1,比如-1,它對應(yīng)的整數(shù)1的原碼為00000001,按位取反后11111110,再加1就是11111111。這樣在進行運算就簡單了,比如-1+1,最高位的1溢出,結(jié)果就是0。如果知道一個負數(shù),比如11111111,將它按位取反再加1就可以知道它表示的是負幾。再比如10000000,就是-128。小數(shù)是按照指數(shù)形式存儲的,小數(shù)都會被化為數(shù)值乘以2的n次方,比如0.45*23,45叫做尾數(shù),3叫做階碼。整數(shù)的表示是精確的,小數(shù)的表示只能是近似的。比如10000個0.0001相加,結(jié)果可能不是1.0。一般也不直接比較兩個小數(shù)是否相等,一般用fabs(a-b)<le-5,fabs是取絕對值函數(shù)。[le-5或1E-5,表示1*10工e(E)之前必須有數(shù)字,之后的指數(shù)必須為整數(shù)】float存儲方式為:符號位(1位)+階碼(8位)+尾數(shù)(23位)。double存儲方式為:符號位(1位)+階碼(11位)+尾數(shù)(52位)?!鯝SCII碼每個字符都有自身對應(yīng)著的ASCII碼,如:'a'就是97(0x61),'b,是98,'z'是122(0x7a);'A'是65(0x41),'B'是66,'Z'是90(0x5a);*0'是48(0x30),T'是49,'9'是57(0x39);空格字符是32(0x20);回車字符\r是13;換行符\n是10;制表符\t是9。ASCII碼的范圍是0~127;ASCII碼為32及32以下的字符都是看不見的字符。ASCII碼為0的字符叫空字符,有個特殊的表示方式:'\0',它被賦予了特殊的含義:作為字符串的結(jié)束標志。ASCIIvalueCharacterControlcharacterASCIIvalueCharacterASCIIvalueCharacterASCIIvalueCharacter000(null)NUL032(space)0643096001oSOH033I065A097a002STX034*066B098b003■ETX035*067C099c004EOT036$068D100d005AENQ037%069E101e006AACK038&070F102f007(beep)BEL039071G103g008DBS040(072H104h009(tab)HT041)073I105i010(linefeed)LFE.10741ion(home)VT043075K107k012(formfeed)FF044076L1081013(carriagereturn)CR045077MIOSmOHCSO046078NUOn015aSI0470790IIIo016ADLE0480080P112P017VDC1049108)Q113q0181DC20502082R114r019I!DC30513083S115s020ITDC40524084T1161021§NAK0535085U117u022MMSYN0546086V118V0231ETB0557087w119w024CAN0568088X120X0251EM0579089Y121y026SUB058090Z122z027?—ESC059091(1231028(cursorright)FS060<032\124029(cursorleft)GS061093!125i030(cursorup)RS062094A126031(cursordown)US063095-127a■常量與變量?內(nèi)存?程序的內(nèi)存使用?常量(不變的變量,放在內(nèi)存空間中,放進去后就不允許改變了)?字面量(直接的數(shù)據(jù),如20,'x',"abc”:inta=l,a是變量,1是字面量)?變量?動態(tài)內(nèi)存?變量的類型(一個變量有類型,名字和數(shù)值;一個變量的類型、地址、名字終生不變)■變量與數(shù)據(jù)類型?先聲明,后使用?C編譯器對變量聲明的處理編譯器會對聲明的變量規(guī)劃一塊內(nèi)存空間,在運行時變量才真正得到空間。規(guī)劃的空間大小由變量類型決定,與具體數(shù)值無關(guān)?!鲎兞颗c變量的size?變量都有類型?變量在內(nèi)存中的大?。簊izeof(類型),sizeof(變量),sizeof(數(shù)值),sizeof(表達式);返回的是字節(jié)數(shù);sizeof只關(guān)心類型,不關(guān)心數(shù)值;sizeof(數(shù)值):數(shù)值如果寫的是整數(shù),會被當成int類型;小數(shù)會被當成double類型。sizeof(表達式):只關(guān)心數(shù)據(jù)類型,只會分析括號中的類型,不會對括號中的內(nèi)容進行運算,只看如果算了最終會是什么類型。如果寫一個小數(shù),希望它是float類型,就加個f,如3.14f;希望它是10ngdouble類型的,就寫成3.14L或3.141,但盡量用大寫,容易區(qū)分。整數(shù)也是一樣,比如35L,表示是longint類型;35LL,表示是longlong類型。C語言沒有專門用來表示真假的數(shù)據(jù)類型,C語言用數(shù)值來表示真假,非零數(shù)值表示真,NULL、0、,\0'為假。反之,如果為真,就當成數(shù)值1;如果為假,就當成數(shù)值0?!鲱愋娃D(zhuǎn)換c語言有自動類型提升機制。進行運算時:char、short類型都會提升成int類型,float類型會提升成double類型再做運算;int和unsignedint進行混合運算時,首先將int轉(zhuǎn)換成unsignedint然后參與運算;如果有整數(shù)和小數(shù)的混合運算,整數(shù)會轉(zhuǎn)換成小數(shù)double。#include<stdio.h>intmain()(charc=0xcd;printf(,,%d,%x\n,',c,c);return0;[root@192c2]#a.out-51,ffffffcd 【帶符號擴展,Oxcd的最高位為1,char提升為int時,前面的24位都是1】■范例#include<stdio.h>intmain()(printf(Mhello,data!\nn);printf("aaa%ibbb%fccc%cddd\n,');return0;)|root@192cl|#gccprintf.c[root@192cl|#a.outhello,data!aaa-1075708976bbb0.000000ccc^ddd%:稱為格式占位符,%打頭的都會依次被后面的數(shù)據(jù)代替。%i、%f、%(:都被別的數(shù)據(jù)代替了。|root@192cl|#viprintf.c改為: printf(naaa%ibbb%fccc%cddd\nn,l23,45.6,'a');[root@192cl|#gccprintf.c|root@192cl|#a.outhello,data!aaal23bbb45.600000cccaddd%1或%(1:int【i表示int;d表示十進制】%hd或%15shortint/longint%u:unsignedint%(*或%£Hoat/double%c:char%§:,,字符串,,%,或%0:無符號的十六進制/無符號的八進制【自己寫十六進制數(shù)時,加Ox,如0x2FA;八進制,加0】%e:以指數(shù)的形式輸出浮點數(shù)%p:變量地址%g:float/double在f和e之間選擇一個較短格式輸出,去掉了尾隨的零#include<stdio.h>intmain()(printf(“十六進制%x,八進制%o\n”,763,763);return0;}|root@192cl|#a.out十六進制21b,八進制1373dayO2AM(變量常量)c的保留字auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,printf,register,return,scanf,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,while,...c變量名?變量名(identifier)只能使用字母,數(shù)字,或下劃線第一個字符必須是字母或下劃線(不能是數(shù)字,如5L,表示long型數(shù)值)中間不能斷開不能是保留字,不能與全局函數(shù)和數(shù)據(jù)類型同名C嚴格區(qū)分大小寫(UNIX中 )使用易懂的變量名,最好能見名知意(一般是相關(guān)的英語單詞或者縮寫)長度一般不要超過32個字符不單是變量名,所有需要自己起名的地方都需要遵守這樣的規(guī)則?!鰒i初始化文件vi的初始化文件是主目錄下的.exrc文件??梢栽趘i的編輯模式下用命令setall查看可以設(shè)置的所有東西。$vi?/.exrc:setall 選項 aleph=224noiconnoshowcmdnoarabiciconstring=noshowfulltagarabicshapenoignorecasenoshowmatchnoallowrevinsiminsert=Oshowmodenoaltkeymapimsearch=Oshowtabline=lambiwidth=singleincludeexpr=sidescroll=0noautochdirnoincsearchsidescrolloff=0noautoindentindentexpr=nosmartcasenoautoreadnoinfercasenosmartindentnoautowritenoinsertmodenosmarttabnoautowriteallisprint=O,161-255softtabstop=0background=lightJoinspacesnospell Tnobackupkey=spellfile=backupcopy=autokeymap=spelllang=enbackupext=~keymodel=spellsugsest=bestbackupskip=/tmp/*keywordprg=mannosplitbelownobinarylangmap=nosplitrightnobomblangmenu=startoflinebufhidden=laststatus=lstatusline=—更多一一文件(E)編捐(E)查看Q)終端d)setnusetts=4setnu:設(shè)置顯示行號;setts=4:設(shè)置一個tab鍵跑4個字符?!鲎兞柯暶魅魏巫兞吭谑褂弥氨仨氝M行聲明。變量聲明類似于下面這種形式:數(shù)據(jù)類型變量名稱;比如:intx;也可以一次性聲明多個同類型變量:floaty,z;對變量可以進行初始化,也可以在之后對它賦值。早期的C編譯器有個規(guī)定:變量聲明必須放在最前面。但現(xiàn)在很多編譯器無此規(guī)定。|root@192c2|#viinit.c#include<stdio.h>intmain()(doubleincome;〃垃圾數(shù)據(jù)shortintpen,notebook;〃垃圾數(shù)據(jù)printf(Mpen=%hd,notebook=%hd\n",pen,notebook);printf(Mincome=%hd\n",123);return0;)[root@192c2|#gccinit.c|root@192c2|#a.outpen=-28684,notebook=38income=123|root@I92c2|#改為:printf(Mincome=%hd\nM,123.0);[root@192c2|#gccinit.c|root@192c2|#a.outpen=20468,notebook=200income=0|root@192c2|#viinit.c#include<stdio.h>intmain()(doubleincome; 〃垃圾數(shù)據(jù)shortintpen,notebook;〃垃圾數(shù)據(jù)intage=40;〃指定值初始化doublesalary=1234.56,weight=78.9; 〃指定值初始化printf(,,pen=%hd,notebook=%hd\n,',pen,notebook);printf(,'income=%lf\n'\income);printf(nage=%d\n",age);printf("salary=%lf,weight=%lf\nH,salary,weight);age=18;〃賦值,用的時候直接用名字,不用再加類型printf(Mage=%d\nH,age);age=age-10;〃賦值printf("age=%d\n",age);return0;)|root@192c2|#gccinit.c|root@192c2|#a.outpen=10824,notebook=-16499income=0age=40salary=l234.560000,weight=78.900000age=18age=8|root@I92c2|#[root@192c2|#vitype.c#include<stdio.h>intmain()(intn=12345.6;doubled=1.5e3O;printf(nn=%d\nu,n);〃小數(shù)部分直接截斷printf(Mn=%f\nH,n); //變量n是整型數(shù)據(jù)return0;}[root@192c2|#gcctype.c|root@192c2|#a.outn=12345n=-0.020396[root@192c2|#
添加語句:1.5e30;〃會將數(shù)值轉(zhuǎn)換為int類型(隱式轉(zhuǎn)換),結(jié)果會溢出printf(Mn=%d\n';n);|root@192c2|#gcctype.ctype.c:Infunction'main':type.c:9:警告:隱式常量轉(zhuǎn)換溢出|root@192c2|#a.outn=12345n=-0.007939n=2147483647〃實際是2G-1,2G用十六進制表示就是7fffffff|root@192c2|#|root@192c2|#vitype.c#include<stdio.h>intmain()〃小數(shù)部分直接截斷〃變量n是整型數(shù)據(jù)〃強制轉(zhuǎn)換;這樣不會有警告〃類型轉(zhuǎn)換轉(zhuǎn)換的是數(shù)值,不會改變變量類型intn=12345.6;doubled=1.5e3O;printfC'n=%d\n';n);printf(Mn=%f\nM,n);n=(int)1.5e30;printf(Hn=%d\n",n);printf(Mn=%x\n';n);printf(,〃小數(shù)部分直接截斷〃變量n是整型數(shù)據(jù)〃強制轉(zhuǎn)換;這樣不會有警告〃類型轉(zhuǎn)換轉(zhuǎn)換的是數(shù)值,不會改變變量類型printf(Mdasdouble:%g\nn,d);printf(Mdasinteger:%d\nM,d);return0;[root@192c2|#geetype.c|root@192c2|#a.outn=12345n=-0.020396n=2147483647n=7fffffff-2147483648dasdouble:1.5e+30dasinteger:-348624465|root@192c2|#|root@192c2|#visizeof.c#include<stdio.h>intmain()(intn=10;printf(M%i\n\sizeof(int));printf("%i\n,',sizeof(n));printf(M%i\n\sizeof(n+5));printf(M***%i\nM,sizeof(n+5.5));//5.5為double類型,最終是double類型數(shù)據(jù),不會計算printf("%i\n”,sizeof(n=123));〃只關(guān)心數(shù)據(jù)類型,不做計算,只會分析類型printf(Mn=%i\nn,n);return0;}|root@192c2|#gccsizeof.c[root@192c2|#a.out4444n=10|root@192c2|#查看匯編代碼:[root@192c2|#gcc-Ssizeof.c|root@192c2|#Isa.c a.out const.clogic.c sizeof.ctype.caddress.cbits.c init.c ppmm.c|root@192c2|#rm-fa.out|root@192c2|#gccsizeof.s【可以直接編譯】[root@192c2|#a.out444***84n=10|root@192c2|#visizeof.s.file"sizeof.c".section.rodata.LCO:.string"%i\n”.LC1:.LC2:.string,'n=%i\nM.text.globlmain【全局main].typemain,?function[main的類型是函數(shù)】main:leal4(%esp),%ecxsub1 $36,%espmovl$10,-8(%ebp)(對應(yīng)intn=10;]movl $4,4(%esp)movl $.LC0,(%esp)call printfmovl $4,4(%esp)movl $.LC0,(%esp)call printfmovl $4,4(%esp)movl $.LC0,(%esp)call printfmovl $&4(%esp)movl $.LC1,(%esp)call printfmovl $4,4(%esp)movl $.LC0,(%esp).identnGCC:(GNU)4.1.220080704(RedHat4.1.2-54)”.section .note.GNU-stack,,,n,@progbits■常量常量與常量的數(shù)據(jù)類型constdoublePI=3.14;(加const就表示變量是不可變的,常量必須給其初始值)const類型名字=初始值:或類型const名字=初始值;常量一般用大寫字母?!鯿onst限定符?限定一個常量或者函數(shù)?方便編譯器來檢測非法的修改操作#include<stdio.h>#defineCLASS,,csdlOO7H〃預(yù)處理,宏定義,遇到CLASS就替換成"csdlOO7”#defineDATE20100730〃遇到DATE就替換成20100730#defineAAPI#defineBB10+student_numintmain()(constdoublePI=3.14;〃定義成常量后,以后若想改動該值,只需在此處改intconststudent_nuin=40;printf(nPI=%g,student_num=%d\n'\PI,student_num);//PI=3.15; 〃會出現(xiàn)編譯錯誤或者警告printf(n%s,%d\n”,CLASS,DATE); 〃編譯前,先經(jīng)過預(yù)處理printf(M%g\n'\AA*BB);//157?71.4?換為:PI*10+student_numconstdoubleaa=PI;constintbb=1()+student_num;printf("%g\n",aa*bb);//157return0;)|root@192c2|#a.outPI=3.14,student_num=40csdl007,2010073071.4157|root@192c2|#gcc-Econst.c>const.i|root@192c2|#gccconst.i[可以直接編譯】|root@192c2|#a.outPI=3.14,student_num=40csdl007,2010073071.4157|root@192c2|#>dayO2PM(運算符)■表達式的左值與右值簡單的說,左值就是放在等號左邊的值。左值就是變量或者結(jié)果是變量的式子(如前++、前一、賦值)。右值就是放在等號右邊的值?!鏊銛?shù)運算符算術(shù)運算符是包括c語言在內(nèi)的許多編程語言都廣泛使用的一種運算符。這類運算符包括:+-*/%(取余)。(1)運算符/可能產(chǎn)生意外的結(jié)果:當兩個操作數(shù)都是整數(shù)的時候,運算符/會丟掉分數(shù)部分來”截取“結(jié)果。如想得到小數(shù),可以在前面乘以1.0,如1.0*a/b,不要寫成a/b*1.0,因為先算a/b,此時已經(jīng)丟掉了小數(shù)部分,也可以寫成(double)a/b,把a的值強制轉(zhuǎn)換。(2)%要求操作數(shù)都為整數(shù),如果其中一個不是整數(shù),編譯將無法通過。(3)0不能做除數(shù),不能對0進行取余運算。(4)兩個整數(shù)相除,取結(jié)果的整數(shù)部分。(5)-1%2=-1;-1/2=0。這里,我們再引入兩外的一個概念:加法運算符需要兩個操作數(shù),所以它屬于二元運算符,只需要一個操作數(shù)的運算符稱為一元運算符?!鲑x值運算符求出表達式的數(shù)值之后,常常需要將其存儲到變量中,以便將來使用。我們知道一般的運算符不會改變操作數(shù)的值,而C語言提供的=運算符可以用于此目的。另外,賦值運算還有右結(jié)合性。賦值運算可以分為兩種:(1)簡單賦值inti,j;i=j=100;串在一起賦值inti;floatf;f=(i=2.3);可能產(chǎn)生非預(yù)期的結(jié)果。(2)復(fù)合賦值利用變量原來的數(shù)值經(jīng)過一系列的計算之后再賦值給這個變量的操作叫做復(fù)合賦值。i=i+2;可以寫成i+=2;n=n?3;可以寫成n?=3;a=aAb;可以寫成aA=b:-=*=/=%=&=|=?=...【所有的數(shù)學(xué)運算和雙目的位運算都可以這樣寫】注意:不要交換兩個運算符的位置i+=2;不要寫成i=+2;關(guān)系運算符C語言中的關(guān)系運算符和數(shù)學(xué)上的<、>、<=和>=運算符相對應(yīng),只是用在C語言的表達時產(chǎn)生的結(jié)果是0(假)或者1(真)。關(guān)系運算符可以用于比較整數(shù)和浮點數(shù),也允許比較混合類型的操作數(shù)。10<11:邏輯結(jié)果成立(真1);1K10:不成立(假0)。注意:(1)關(guān)系運算符的優(yōu)先級低于算數(shù)運算符(2)我們在數(shù)學(xué)上可以這樣表達:而在C語言里:i<j<k也是合法的,但是可能不是你所期望的含義,因為〈都是左結(jié)合的。所以:(i<j)<k,如果括號里的為真,即i<j,則變?yōu)閘<k;正確的寫法為:i<j&&j<k.判等運算符C語言中表示關(guān)系運算符的符號與其他許多編程語言中的相同,但是判等運算符卻有著獨一無二的形式:==等于(數(shù)學(xué)=)!=不等于注意:等于不要漏掉等號,if(15==data);判等運算符的優(yōu)先級低于關(guān)系運算符,i<(j==x)<k?邏輯運算符邏輯運算符所產(chǎn)生的結(jié)果是:邏輯結(jié)果,?;蛘逫,當然操作數(shù)的數(shù)值經(jīng)常是1或者0,所以邏輯運算符將任何非零操作數(shù)作為真值來處理,同時將任何的零值操作數(shù)作為假值來處理。&&邏輯與II邏輯或!邏輯非運算規(guī)則:!表達式【對表達式取反】表達式1&&表達式2表達式1表達式2結(jié)果真真真真假假假真假假假假表達式111表達式2TOC\o"1-5"\h\z表達式1表達式2結(jié)果真 真 真真 假 真假 真 真假 假 假短路特性:表達式1&&表達式2:如果表達式1為假就不會進行表達式2的計算;表達式1||表達式2: 如果表達式1為真就不會進行表達式2的計算。另外一個短路運算符:?:#include<stdio.h>intmain()(inta=3,b=5;printf(M%d,%d,%d\nu,a<=b,a>=b,a>=3);a=-3;printf(H%d,%d\n'\a>=0&&a<=100,0<=a<=100);printf(M%d,%d\n'\a<0||a>100,b<0||b>100);inty=2010;printf(M%d\nM,!(y%4==0&&y%100!=0||y%400==0));return0;[root@192c2|#a.out0,11,0■位運算位運算有這樣的特性:參加位運算的操作數(shù)轉(zhuǎn)換二進制?按位取反?200000000000000000000000000001010011111111111111111111111111101011可以發(fā)現(xiàn):20按位取反是-21,3按位取反是-4,4按位取反是.5;n按位取反是-(n+1)。-1按位取反是0,-3按位取反是2。?按位與經(jīng)常用來屏蔽某些二進制位(置0)。也可以知道一個數(shù)的某一位是1還是0。3&5:-00000011-00000101… 0001將某位置0:-00011011―11110111-00010011想知道某位是1還是0:-00010111-00000100-00000100如果它=0,就意味著那位是0,如果不=0,就是1。?按位或經(jīng)常用來將某些二進制位置1,也可以知道某個二進制位是1還是0。1與誰按位或就是1;0與誰按位或就是誰。1|x=l;0|x=Xo3|5-00000011-00000101-00000111將某位置1:-00011011-00000100-00011111想知道某位是1還是0:-00010111-11111011-11111111如果它-“11111111,就意味著那位是1,如果不等,就是0。按位異或可以用來將指定的位反轉(zhuǎn)?!?與。異或是1,1與1異或是0。]運算規(guī)則:對應(yīng)的二進制位上的數(shù)字相同,則結(jié)果為0;否則為1。3A5-00000011-00000101-00000110經(jīng)典程序:inta=X,b=Y;a=aAb;[a=XAY]b=aAb;[b=XAYAY=X]a=aAb;[a=XAYAX=XAXAY=Y;位運算符可以交換順序】則a=Y,b=X?左移整數(shù)<<k位(可以是變量或表達式)【對于小數(shù)左移右移沒有意義】10100101?101001010左移的時候右邊的空位補零。右移10100101?1右移的時候左邊空位全補上符號位。正數(shù):左移一位相當于乘以2,右移一位相當于除以2。左移兩位相當于乘以22,右移兩位相當于除以22。#include<stdio.h>intmain()(printfC,%d,%d,%d\n",-20,-1,-0);unsignedintn="l;printf(M%u,%x,%d\n0,n,n,n);intm=-l;printf(H%x,%x\nn,n?3,m?3); [n>m的值并沒改變】printf(M%x,%x\n';n,m);printf(M%x,%x\nM,n?3,m?3);m=200;printf(M%d,%d\nH,m?3,m?3);m=0x3862517b;【一個整數(shù)有4個字節(jié),現(xiàn)在想取出某個字節(jié)的內(nèi)容】printf(M%x\nM,(char)m);printf(,'%x\nM,(char)(m?16));inta=0x12,b=0x34,c=0x56,d=0x78;printf(,'%x\n,\(a?24)|(b?16)|(c?8)|d);return0;|root@192c2|#geebits.c|root@192c2|#a.out-21,0,fTfffTff,-1IffTffff,ffffffffffffffff,fffffffffffffffB,fffffffB1600,257b6212345678|root@192c2|#取地址運算符1>&運算符取地址(取變量或常量的地址,此處的常量指的是const定義的常量)。2>*根據(jù)地址取變量或常量(如*&a就是a變量的值)。3>printf中的%p用來輸出地址。4>取地址取得的是一個變量的開始地址。5>地址是按字節(jié)編號的?!龆禾栠\算符逗號在很多地方是作分隔符的,但有時也用來做運算符。一般形式:表達式1,表達式2,表達式3,…,表達式n求解過程:先求解表達式1,再計算表達式2,…,最后計算表達式n,整個逗號表達式的值是表達式n的值。#include<stdio.h>intmain()(inta;intb;printf(n&a=%p,&b=%p\nH,&a,&b);(*&a)=100;(*&b)=888888;printf(Ha=%d,b=%d\nM,a,b);printf(,,%d\n'\(a=123,b=a+45));printf(,,%d\n'\(b,a));return0;|root@192c2|#geeaddress.c|root@192c2|#a.out&a=0xbfefdea0,&b=0xbfefde9ca=100,b=888888168123|root@192c2|#■條件運算符表達式1?表達式2:表達式3它是C語言中唯一的一個三元運算符。先求解表達式1,若其值為真(非0),則將表達式2的值作為整個表達式的取值,否則將表達式3的值作為整個表達式的取值。取a的絕對值:a<0?-a:a。■自增/自減運算自增和自減運算是最常用于變量的兩種運算符。當然,可以通過下面的方式來完成操作:i=i+l;j=j-l;復(fù)合賦值可以將上面的語句縮短一些: i+=l; j-=l;C語言中,允許使用自增(++)和自減(-)將上面的這些語句變得更短些。i=i+l;i+=l;i++;//++i;前綴:++i-i先運算后使用后綴:i++i-先使用后運算;注意:在同一個表達式中,不要對同一個變量進行多次自增或者自減運算。<2>++/-可以用于浮點數(shù)的計算,很少見。范例:inta=99;printf(M%d\nM,a++);過程分析:先將a的值保存到某位置1,然后算a=a+1,最后打印出位置1的值??梢岳斫獬桑篴++的結(jié)果是a原來的舊值,然后a=a+l。#include<stdio.h>intmain()(inta,b,c,d;a=b=c=d=O;a++;++b;printf(M%d,%d\nu,a,b);printf(M%d,%d\nM,C++,++d);〃后++與前++return0;|root@192c2|#a.out1,10,1|root@192c2|##include<stdio.h>intmain()|inta=0;intb=0;printf(n%d%d%d\nM,b=a+++(a+++2),b,a=b++);printf(M%d%d\nn,a,b);return0;}|root@192c2|#a.out22022[root@192c2|#分析:printf(n%d%d%d\nM,b=a+++(a+++2),b,a=b++);一般來說,會從右往左依次計算,但中間有個b沒有參與運算,暫時跳過,先計算a=b++,再計算b=a+++(a+++2)。先運算a=b,此時a=0,然后把a保存到某位置1中;再算b=b+l;再計算b=a+a+2,此時b=2,然后把b保存到某位置2中;再算++a、++a,此時a=2;再把b保存到某位置3中;最后:printf(M%d%d%d\nn,位置2,位置3,位置1);查看匯編代碼:|root@192c2|#gcc-Sa.c[root@192c2|#via.s.file"a.c''.section .rodata.LCO:.string"%d%d%d\nM.LC1:.string"%d%d\nH.text.globlmain.typemain,?functionmain:leal4(%esp),%ecxandl$-16,%esppushl-4(%ecx)
pushl%ebpmovl%esp,%ebppushl%ecxsubl$36,%espmovl$0,-12(%ebp)[-12(%ebp)是a,此時a=0]movl$0,-8(%ebp)1?8(%ebp)是b,此時b=0]movl-8(%ebp),%eax【把b放到%eax中】movl%eax,-12(%ebp)[a=b,此時a=b=O]movl-12(%ebp),%edx【把a放到%edx中,%edx=O]addl$l,-8(%ebp)[b=b+l,b=l]movl-12(%ebp),%eax【把a放到%eax中】add!$2,%eax[a+2]addl-12(%ebp),%eax[a+a+2]movl%eax,-8(%ebp)[b=a+a+2,b=2]movl-8(%ebp),%ecx【把b放到%ecx中,%ecx=2]addl$l,-12(%ebp)[a=a+l9a=l]addl$l,-12(%ebp)[a=a+La=2]movl%edx,12(%esp)【把。放到12(%esp)中】movl-8(%ebp),%eax【把b放到%eax中,%eax=2]movl%eax,8(%esp)【把2放到8(%esp))中,8(%esp)=2]movl%ecx,4(%esp)【把2放到4(%e§p)中,4(%esp)=2]movlS.LCO,(%esp)callprintfmovl-8(%ebp),%eaxmovl%eax,8(%esp)movl-12(%ebp),%eaxmovl%eax,4(%esp)movl$.LCl,(%esp)callprintfmovl$0,%eaxadd!$36,%esppopl%ecxpop1%ebpleal-4(%ecx),%esp.sizemain,.-main.identMGCC:(GNU)4.1.220080704(RedHat4.1.2-54)M.section.note.GNU-stack,nM,@progbits
■運算符與結(jié)合性優(yōu)先級運算符含義要求運算對象的個數(shù)結(jié)合方向1()圓括號自左至右[]下標運算符->指向結(jié)構(gòu)體成員運算符?給構(gòu)體成員運算符21邏輯非運算符1(單目運算符)自右至左按位取反運算符++自增運算符—自減運算符—負號運算符(類型)類型轉(zhuǎn)換運算符?指針運算符&.取地址運算符siaeof長度運算符3.乘法運算符2(雙目運算符)自左至右/除法運算符%求余運算符4十加法運算符2(雙目運算符)自左至右一城法運算符5?左移運算符2(雙目運算符)自左至右?右移運算符6<<=>>=關(guān)系運算符2(雙目運算符)自左至右
優(yōu)先級運算符含義要求運算對象的個數(shù)結(jié)合方向7==等于運算符2(雙目運算符)自左至右1=不等于運算符8&按位與運算符2(雙目運算符)自左至右9A按位異或運算符2(雙目運算符)自左至右101按位或運算符2(雙目運算符)自左至右11&&邏輯與運算符2(雙目運算符)自左至右12II邏輯或運算符2(雙目運算符)自左至右13??條件運算符3(三目運算符)自右至左14=+=—=*=/=%=>>=<<=A=:=賦值運算符2(雙目運算符)自右至左15逗號運算符(及序求值運算符)自左至右>dayO3AM(格式化輸入控制語句)■scanf()從鍵盤輸入scanf一格式化輸入,根據(jù)指定的格式讀取輸入。scanf(“格式字符串”,地址列表);scanf(',%f%f%f',&sl,&s2,&s3);【輸
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物學(xué)科實驗操作經(jīng)驗交流計劃
- 畫出童年小班藝術(shù)表現(xiàn)計劃
- 優(yōu)化流程的年度工作框架計劃
- 班級心理素質(zhì)提升活動的案例分享計劃
- 2025年中國新型建材行業(yè)市場競爭格局及投資方向研究報告(智研咨詢)
- 2025年鐵紅項目建議書
- 2025年系列自動遙測氣象站項目合作計劃書
- 汽車零件互換性規(guī)則設(shè)定
- 構(gòu)建穩(wěn)定可靠的數(shù)據(jù)庫同步體系
- 三國演義的英雄氣概讀后感
- 發(fā)展?jié)h語 初級讀寫一 第二課 謝謝你
- 部編版六年級語文下冊第一單元大單元教學(xué)任務(wù)單
- 人教版小學(xué)語文1-6年級背誦內(nèi)容完整版
- 2023徐金桂“徐徐道來”(行政法知識點)版
- 《事故汽車常用零部件修復(fù)與更換判別規(guī)范》
- 2024-2030年中國酒類流通行業(yè)發(fā)展動態(tài)及投資盈利預(yù)測研究報告
- 物業(yè)管理如何實現(xiàn)降本增效
- DL-T825-2021電能計量裝置安裝接線規(guī)則
- 信息科技重大版 七年級下冊 互聯(lián)網(wǎng)應(yīng)用與創(chuàng)新 第一單元單元教學(xué)設(shè)計 互聯(lián)網(wǎng)創(chuàng)新應(yīng)用
- 2024年興業(yè)銀行股份有限公司校園招聘考試試題及參考答案
- 2024智慧城市城市交通基礎(chǔ)設(shè)施智能監(jiān)測技術(shù)要求
評論
0/150
提交評論