語言教程當代最優(yōu)秀程序設計_第1頁
語言教程當代最優(yōu)秀程序設計_第2頁
語言教程當代最優(yōu)秀程序設計_第3頁
語言教程當代最優(yōu)秀程序設計_第4頁
語言教程當代最優(yōu)秀程序設計_第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言概 C語言的發(fā)展過 當代最優(yōu)秀的程序設計語 C語言版 C語言的特 面向對象的程序設計語 C和 簡單的C程序介 輸入和輸出函 C源程序的結構特 書寫程序時應遵循的規(guī) C語言的字符 C語言詞 TurboC2.0集成開發(fā)環(huán)境的使 TurboC2.0簡介和啟 TurboC2.0集成開發(fā)環(huán) File菜 Edit菜 Run菜 Compile菜 Project菜 Options菜 Debug菜 Break/watch菜 TurboC2.0的配置文 CC語言是在70年代初問世的。一九七八年由電報公司(AT&T)貝爾正式了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的“THEC但是《K&R中并沒有定義一個完整的標準C語言后來由AmericanNationalStandardsInstitute)在此基礎上制定了一個C語言標準,于一九八三年。通常ANSIC。CUNIX系統(tǒng)。由于C語言的強大功能和各方面的優(yōu)點逐漸為 CMS·BorlandTurboCTurbo1·C語言簡潔、緊湊,使用方便、靈活。ANSIC32個關鍵字9TurboC11 hugeinterruptnear C2·34種。CC的運6·C語言允許直接物理地址,能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,8·C但是,CC寫程序會感到限制少、靈活性大,功能強,但較其他高級語言在學習上要一些。在C的基礎上,一九八三年又由貝爾的BjarneStrou-strup推出了C++。C++進BorlandC++,SymantecC++和VisualC++。再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目C源程序的基本部分和書寫格式。{}mainC源程序都必須有,且只能有一個主函數(shù)(main函數(shù))函數(shù)調(diào)用語句,printfprintf1.2】{doubleprintf("inputnumber:\n");printf("sineof%lfis}include擴展名為.hx的正弦,main行稱為預處理命令(詳見后面)include稱為文件包含命scanf,正弦函includestdio.h文件。需要說明的是,Cscanfprintf這兩個函數(shù)可以省去對其頭文件的包含命1.1printfdouble來說明這兩個變量。說明部分scanfxsin函scanfprintf,在以后要詳細介紹。這里我們scanfprintf這兩個函數(shù)分別稱為格式輸入函數(shù)和格式輸出函數(shù)。其意義是按指定的printf("sineof%lfis其中%lfxs兩個1.3intmax(inta,int /*函數(shù)說明 /*主函數(shù){int /*變量說明intmax(inta,intb); printf("inputtwonumbers:\n"); /*輸入x,y值*/ /*調(diào)用max函數(shù)*/ }intmax(inta,int /*max函數(shù){if(a>b)returna;elsereturn }max函數(shù)。函數(shù)之間是并列關系。可從主函數(shù)中調(diào)用其它函數(shù)。max函數(shù)的功能是比較兩個數(shù),然后把較大的數(shù)返回給主函數(shù)。max函數(shù)是一個用戶自定scanfx,ymaxx,ymaxa,bmaxa,bz,最后在屏z的值。main從書寫清晰,便于閱讀,理解,的角度出發(fā),在書寫程序時應遵循以下規(guī)則用{}括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一a~z26個A~Z260~910外,其余都由用戶自定義。C規(guī)定,標識符只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線a,x, x3,BOOK_1,sum5以下標識符是的: 出現(xiàn)字符 出現(xiàn)字符-(減號CC語言編譯系統(tǒng)限制,同時也受到BOOKbookint,double1.3ifelseinta;寫成inta;CintaC語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉義字符C語言的注釋符是以“/*”開頭并以“*/”結尾的串。在“/*”和“*/”之間的即為注TurboC2.0TurboC2.0windows98DOS窗口下運行。D盤根下建立一個TCTurboC2.0TC下還建立了兩個了LIBINCLUDE,LIB子中存放庫文件,INCLUDE子中存放所DOSwindows98DOS窗口下運行運行TurboC2.0時只要在TC子目錄下鍵入TC并回車TurboC2.0集成開發(fā)環(huán)境。tc.exeTurboC2.0集成開發(fā)環(huán)境。TurboC是Borland公司的產(chǎn)品,Borland公司是一家專門從事軟件開發(fā)、研制的大Turbo系列軟件,如TurboBASIC,TurboPascal,TurboProlog,1987TurboC1.0產(chǎn)品,其中使用了全然一新的集成開發(fā)環(huán)境,即使用了一系列下拉式菜單,將文本編輯、程序編譯、連接以及程序運行,1988年,BorlandTurboC1.5版本,增加了圖形庫和文本窗口函數(shù)庫等,而TurboC2.0則是該公司1989年的。TurboC2.0在原來集成開發(fā)環(huán)境的基礎上增加了查錯功能,Tiny模式下直接生成.COM(數(shù)據(jù)、代碼、堆64K內(nèi)存中)(8087/80287/80387等)BorlandTurboC++,TurboC2.0的集成開發(fā)環(huán)境,并包含了面向對象的基本思想和設計方法。1991年為了適用公Windows3.0版本,BorlandTurboC++作了更新,TurboC的新一代產(chǎn)品BorlandcC++也已經(jīng)問世了。TurboC2.0TurboC2.0集成開發(fā)環(huán)境中后,屏幕上顯示其中頂上一行為TurboC2.0主菜單,中間窗口為編輯區(qū),,最TurboC2.0的主屏幕,TurboC2.0主屏幕頂上一行,顯示下列內(nèi)容FileEditRunCompileProjectOptionsDebugEdit外,其它各項均有子菜單,Alt加上某項中第一個字母,就可進入該項的FileAlt+FFile菜單,如圖File9Load:裝入一個文件,DOS的通配符(如*.C)擴展名的文件,只要給出文件名(或只給路徑)F3,F3即可進入該項,File菜單再選此項。Pick8個文件列成一個表讓用戶選擇,選擇后將該程序裝入編輯區(qū),Alt-F3。New:新建文件,NONAME.C,Save:將編輯區(qū)中的文件存盤,NONAME.C時,將詢問是否更改文件名,其F2。Writeto:可由用戶給出文件名將編輯區(qū)中的文件存盤,若該文件已存在,則詢問要不 中的文件,并可由用戶選擇Changedir:顯示當前默 ,用戶可以改變默 Oss :暫時退出TurboC2.0到DOS提示符下, 此時可以運行DOS命令, 到TurboC2.0中,只要在DOS狀態(tài)下鍵入EXIT即可。QuitTurboC2.0,DOS操作系統(tǒng)中,Alt+X。以上各項可用光標鍵移動色棒進行選擇回車則執(zhí)行。也可用每一項的第一個大寫字母Esc鍵TurboC2.0所有菜單均采用這種方法進行操作,以下不再說明。Edit按Alt+E可進入編輯菜單,若再回車,則光標出現(xiàn)在編輯窗口,wordstar相同,F1鍵獲得有關編輯方法的幫助信息。與編輯有關的功能鍵如下 TurboC2.0 刪除光標所在的一行 塊拷貝 讀文件 TurboC2.0庫函數(shù), TurboC2.0 TurboC2.0雙界符的前匹配符 " 'TurboC2.0在編輯文件時還有一種功能,就是能夠自動縮進,即光標定位和上一個非空字符對齊。在編輯窗口中,Ctrl+OL為自動縮進開關的控制鍵。RunAlt+RRun菜單,RunProject/Projectname項指定的文件名或當前編輯區(qū)的文件。如果對上次編譯后的源代碼未做過修改,則直接運行到下一個斷點(沒有斷點則運行到結束)。否則先進行編譯、連接后才運行,Ctrl+F9。Programreset:中止當前的調(diào)試,釋放分給程序的空間,Ctrl+F2Gotocursor::調(diào)試程序時使用,選擇該項可使程序運行到光標所在行。光標所在行必須為一條可執(zhí)行語句,F4。Traceinto:在執(zhí)行一條調(diào)用其它用戶定義的子函數(shù)時,Traceinto項,則執(zhí)行長條將到該子函數(shù)內(nèi)部去執(zhí)行,F7。Stepover:執(zhí)行當前函數(shù)的下一條語句,即使用戶函數(shù)調(diào)用,執(zhí)行長條也不會進函,F8。CompileAlt+CCompile菜單,CompiletoOBJ:將一個C源文件編譯生成.OBJ目標文件,同時顯示生成的文件名。其Alt+F9。MakeEXEfile:此命令生成一個.EXE的文件,并顯示生成的.EXE文件名。其中.EXE文若沒有項目文件名,PrimaryCfile,LinkEXEfile:把當前.OBJ文件及庫文件連接在一起生成.EXEBuildall:重新編譯項目里的所有文件,并進行裝配生成.EXE文件。該命令不作過時檢(上面的幾條命令要作過時檢查,即如果目前項目里源文件的日期和時間與目標文件相同或更早,則對源文件進行編譯)。PrimaryCfile:當在該項中指定了主文件后,在以后的編譯中,如沒有項目文件名則編譯此項中規(guī)定的主C文件,如果編譯中有錯誤,則將此文件調(diào)入編輯窗口,不管目前窗C文件。ProjectAlt+PProject菜單,Projectname:項目名具有.PRJ的擴展名,其中包括將要編譯、連接的文件名。例一file1.c,file2.c,file3.c組成,3file.exe的執(zhí)行文件,file.prj的項目文件,其內(nèi)容如下:file.prjProjectname項中,以后進行編譯時將自動對項目文件中規(guī)定的三個file.exe文件。如果其中有些文件已經(jīng)編譯成.OBJ件,而又沒有修改過,可直接寫上.OBJfile1.c進行編譯,而直接連接。當項目文件中的每個文件無擴展名時,均按源文件對待,另外,其中的文件也可以是庫文件,但必須寫上擴展名.LIB。BreakmakeonWarining、Errors、FatalErrorsLinkMakeClearprojectProject/ProjectnameRemovemessagesOptionsAlt+OOptions菜單,該菜單對初學者來說要謹慎使用,該菜單有以下幾個內(nèi)CompilerModelDefine:打開一個宏定義框,同戶可輸入宏定義。多重定義可同分號,賦值可用等Codegeneration:它又有許多任選項,這些任選項告訴編譯器產(chǎn)生什么樣的目標代CallingconventionCPascalInstruction 8088/808680186/80286Floating Defaultchar char Mergeduplicatestrings作優(yōu)化用,StandardstackframeTeststackoverflowLine 在.OBJOBJdebuginformation在.OBJOptimizeforUseregistervariableRegisteroptimizationJumpoptimization通過去除多余的跳轉和調(diào)整循環(huán)與開關語句的辦法,壓縮代Indentifierlength說明標識符有效字符的個數(shù),32Nestedcomments onlyANSITurboC2.0Errorstopafter多少個錯誤時停止編譯,25Warningstopafter多少個警告錯誤時停止編譯,100DisyPortabilitywarningANSIViolations了ANSI關鍵字的警告錯誤CommonerrorLesscommonerrorNames(segment)(group)和類(class)的名字,CODE,DATA,Linker:本菜單設置有關連接的選擇項,Map Currentfile在編輯窗口中的文件錯誤Allfiles所有文件錯誤Off不Configautosave選on時,在Run,S或退出集成開發(fā)環(huán)境之前,如果TurboC的配置被改過,offEditautosave:是否在Run或 之前,自動編輯的源文件,,Directories:規(guī)定編譯、連接所需文件的路徑,Includedirectories:包含文件的路徑,多個 Librarydirectories:庫文件路徑,多個 Outputdirectoried:輸出文件(.OBJ,.EXE,.MAP文件) TurboCdirectoried:TurboC所在 Pickfilenamepick文件名,currentpickfileSaveoptions:保存所有選擇的編譯、連接、調(diào)試和項目到配置文件中,缺省的配置文件TCCONFIG.TC。RetriveoptionsTC中TCDebugAlt+DDebug菜單,該菜單主要用于查錯,NewvalueCallstackTurboCdebugerFindfunctionTurboCdebuggerRefreshdisy如果編輯窗口偶然被用戶窗口重寫了可用此恢復編輯窗口的內(nèi)容Break/watchAlt+BBreak/watch菜單,AddwatchDeletewatchEditwatchRemoveall:watchesClearallbreakpointsViewnextbreakpointTurboC2.0TurboC2.0有關信息的文件,TurboC2.0的配置:OptionsOptions/Saveoptions命令,將TC時只要DOS下鍵入:TurboC2.0若設置Options/Environment/Configautosave為on,則退出集成開發(fā)環(huán)境時,當前的設置TurboC2.0TCCONFIG.TC中。TurboC在啟動時會自動尋找這TCINSTTurboC的有關配置TC.EXE中。TurboC在啟動時,若沒有找到配置文件,TC.EXE中的缺省值。程序的—算 算法的概 簡單算法舉 算法的特 怎樣表示一個算 用自然語言表示算 用流程圖表示算 三種基本結構和改進的流程 用N-S流程圖表示算 用偽代碼表示算 用計算機語言表示算 結構化程序設計方 程序的—算對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結構(datastructure(algorithmNikiklausWirth

數(shù)據(jù)結構+算法=4個方面是一個程序涉及人員所應具備的知識。C程序,進行編寫程序的初步訓練,因此,21236。36424。4245120。S1:使t=1S2:使S3:使t×i,tt×i→tS4:使i的值+1i+1→iS5:如果i≤5,S3S4S5如果計算100!只需將S5:若i≤5改成i≤100即可。 如果該求1×3×5×7×9×11,算法也只需做很少的改動:S1:1→tS2:3→iS4:S5:i≤11,S3S5寫成:S5:i<11,S3;2.25080如果,n表示學生學號,ni表示第個學生學號;g表示學生成績,gi表示第個學生成績;S1:S2:如果gi≥80,則打印nigi,否則不打印S3:i+1→iS4:i≤50,S22.320002500年中的每一年是否閏年,將結果輸出。100400整除的年份;y為被檢測的年份,則算法可表示如下:S1:S2:若y4yS3:若y4100yS4:若y100400yy“不是閏年”,S6S7:y≤2500時,S21111...12.4

100S1:sigh=1S2:sum=1S3:S4:sigh=(-S5:term=sigh×(1/deno)S6:term=sum+termS7:deno=deno2.53的正整數(shù),判斷它是不是一個素數(shù)。S1:輸入nS2:S3:niS4:r=0ninS5S5:i+1→in n2.62.15!2.31111...12.92.4

100只有一個1973年學者提出了一種新型流程圖:N-S流程圖。用計算機語言表示算法必須嚴格遵循所用語言的語則2.201×2×3×4×5C{inti,t;}}{intfloatdeno=2.0,sum=1.0,term;{sigh=-sigh;term=sigh/deno;}}數(shù)據(jù)類型、運算符與表達 C語言的數(shù)據(jù)類 常量與變 常量和符號常 變 整型數(shù) 整型常量的表示方 整型變 實型數(shù) 實型常量的表示方 實型變 實型常數(shù)的類 字符型數(shù) 字符常 轉義字 字符變 字符數(shù)據(jù)在內(nèi)存中的形式及使用方 字符串常 符號常 變量賦初 各類數(shù)值型數(shù)據(jù)之間的混合運 算術運算符和算術表達 C運算符簡 算術運算符和算術表達 賦值運算符和賦值表達 逗號運算符和逗號表達 小 C的數(shù)據(jù)類 基本類型的分類及特 常量后 常量類 數(shù)據(jù)類型轉 運算符優(yōu)先級和結合 表達 ··類·C語言中,構造類型有以下幾種:一定的數(shù)據(jù)類型的,應在函數(shù)定義及函數(shù)說明中給以說明,例如在例題中給出的max函數(shù)定義中,函數(shù)頭為:intmax(inta,intb);其中“int”類型說明符即表示該函數(shù)的返回值為整型量。又如在例題中,使用了庫函數(shù)sin,由于系統(tǒng)規(guī)定其函數(shù)返回值為雙精s=sin(x);中,ssin函數(shù)的s說明為雙精度浮點型。但是,也有一類函數(shù),調(diào)用枚舉變量。在程序中,常量是可以不經(jīng)說明而直接的,而變量則必須先定義后使用。ab#define#definePRICE30{intnum,total;total=num*PRICE;}其值可以改變的量稱為變量一個變量應該有一個名字在內(nèi)存中占據(jù)一定的單元。

33單元0230)、23D含有非十進制數(shù)碼)在程序中是根據(jù)前綴來區(qū)分各種進制數(shù)的因此在書寫常數(shù)時前綴弄錯造成結果015(十進制為13)、0101(十進制為65)、 無前綴0X2A(42)、0XA0160)、0XFFFF65535);5A0X)、0X3H含有非十六進制數(shù)碼)數(shù)的范圍也是有限定的。十進制無符號整常數(shù)的范圍為0~65535,有符號數(shù)為-32768~。八進制無符號數(shù)的表示范圍為~。十六進制無符號數(shù)158L158)、358000L012L(十進制為10)、077L(十進制為63)、 L(十進制為65536);0X15L(21)、0XA5L(165)、0X10000L(65536)。158L158158L節(jié)的空間。因此在運算和輸出格式上要予以注意,避免出錯。”或“u358u,0x38Au,235Lu0XA5Lu表示十六進制無符號長A5165。i:inti; 0000000000001010求-10000000000000000000101011111111111101011,得-101111111111110110unsignedint或unsignedunsignedshortunsignedlong01111111111111111111111111111111TurboC2unsigned2short2unsignedshort2long 4unsigned41300000000 inta,b,c;(a,b,c為整型變量)longx,y;x,y為長整型變量unsignedp,q;(p,q為無符號整型變量){inta,b,c,d;unsignedu;}{inta,b;}01111111111111111000000000000000longx,y;inta,b,c,d;}c,d被定義為基本整型,因此最后結果為基本整型。本例說明,不0~9和小數(shù)點組成。aEn(a為十進制數(shù),n為十進制整數(shù))其值為a*10n。E5(3.7E-23.7*10-0.5E7((345無小數(shù)點E7E之前無數(shù)字53.-E3負號位置不對 printf("%f\nprintf("%f\n",356);printf("%f\n",356f);}+1數(shù) 指實型變量分為:單精度(float型、雙精度(double型)和長雙精度(longdouble型)TurboC4(32位3.4E-38~3.4E+38,1.7E+30816比特數(shù)(字節(jié)數(shù)longfloatx,y;(x,y為單精度實型量)doublea,b,c;a,b,c為雙精度實型量)由于實型變量是由有限的單元組成的因此能提供的有效數(shù)字總是有限的如下例{float}注意:1.0/3*31{floata;doubleb;}bTurboC規(guī)定小數(shù)后最多保留六位,其余部double如'5'5是不同的。'5'ASCII98反斜線符71~31~2廣義地講,C語言字符集中的任何一個字符均可用轉義字符來表示。表中的\ddd和\xhh正是為此而ddd和hh分別為八進制和十六進制的ASCII代碼如\101表示字母"A",\102表示字母"B",\134表示反斜線,\XOA{inta=5;b=6; }字符變量用來字符常量,即單個字符字符變量的類型說明符是char。字符變量類型定義的格式和書寫規(guī)則都與整型變量相chara,b1201210111100111100001111001所以也可以把它們看成是整型量。C語言允許對整型變量賦以字符值,也允許對字符{chara,b;}{chara,b;}本例中,a,b被說明為字符變量并賦予字符值,C語言允許字符變量參與數(shù)值運算,字符串常量是由一對雙引號括起的字符序列。例如: ",“Cprogram”"$12.5"BASIC語言不同的。但是可以用1。增加的一個字節(jié)中存放字符"\0"(ASCII0)。這是字符串結束的標志。"Cprogram"Cprogramaaa在程序中常常需要對變量賦初值,以便使用變量。語言程序中可有多種方法為變量提在變量定義中賦初值的一般形式為:1=12=2,……;inta=3;intfloatx=3.2,y=3f,z=0.75;charch1='K',ch2='P';a=b=c=5{inta=3,b,c=5;}int型和long型運算時,intlong型后再進行運算。float單精度量運算的表達式,也double型,再作運算。 floatPI=3.14159;ints,r=5;}doubles為整型,故賦值結果仍為整型,舍去了小數(shù)部分。 (表達式(float) a x+y的結果轉換為整型類型說明符和表達式都必須加括號(單個變量可以不加括號),如把(int)(x+y)(int)x+yxintyfloatf=5.75;}改變。因此,(int)f的值為5(刪去了小數(shù))f5.75。C關系運算符:用于比較運算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)條件運算符:這是一個三目運算符,用于條件求值(?:)求字節(jié)數(shù)運算符:用于計算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)加法運算符“+運算,如-x,-5等具有左結合性。*/}本例中,20/7,-20/720.0/7和-20.0/7由于有實數(shù)}10031算術表達式:用算術運算符和括號將運算對象(也稱操作數(shù))C語(x+r)*8-。y應先與“-x-y運算,然后再執(zhí)行+z的運算。這種自左至右的結合。(類型說明符)(表達式(float) a x+y++1運算符記為“--1。11 i1 i自減1后再參與其它運算。 i參與運算后,i的值再自增1。 i參與運算后,i的值再自減1。i++i--inti=8;}7行輸出-91(8)。inti=5,j=5,p,q;}3i8q的值則不然,q=(++j)+(++j)+(++j)q8。簡單賦值運算符記為“==

C中,把“=都是賦值語句,面各例中我們已大量使用過了0)。inta,b=322;floatx,y=8.88;charc1='k',c2;}本例表明了上述賦值運算中類型轉換的規(guī)則。a為整型,賦予實型量y值8.88后只取整數(shù)8。x為實型,賦予整型量b值322,后增加了小數(shù)部分。字符型量c1賦予a變?yōu)檎停土縝賦予c2后取其低八位成為字符型(b的低八位為 即十進制66,按ASCII碼對應于字符B)。在賦值符“”之前加上其它二目運算符可構成復合賦值符。如+=,-=,*變量雙目運算符=表達式變量= 等價于a=a+5 等價于r=r%p2inta=2,b=4,c=6,x,y;}本例中,y2的值,x是第一個表達式的值。12也可以又是逗號表達式。12nn1C2short2long4 2unsigned448L或l U或u F或f ·強制轉換:最簡單的C程序設計—順序程序設 C語句概 賦值語 數(shù)據(jù)輸入輸出的概念及在C語言中的實 字符數(shù)據(jù)的輸入輸 putchar函數(shù)(字符輸出函數(shù) getchar函數(shù)(鍵盤輸入函數(shù) 格式輸入與輸 printf函數(shù)(格式輸出函數(shù) scanf函數(shù)(格式輸入函數(shù) 順序結構程序設計舉 的認識,為后面各章的學習打下基礎。源程序文件源程序文件源程序文件源程序文件C全局變量函數(shù)函數(shù)預處理命令局部變量執(zhí)行語句函數(shù)體函數(shù)首部 被調(diào)函數(shù)體中的語句,求取函數(shù)值(在后面函數(shù)中再詳細介紹)。printf("CProgram");的語句定義符組成。C語言有九種控制語句。可分成以下三類:循環(huán)執(zhí)行語句:dowhilewhilefor{x=y+z;};intintintif((x=y+5)>0)下述語句是的:if((x=y+5;)>0)x=y+5;“stdio.h”文件,因此源文件開頭應有以下預#include<stdio.h或#includestdiostandardinput&outupt#include<stdio.h或#includeputchar函數(shù)(字符輸出函數(shù)putchar (輸出大寫字母A) putchar(‘\101’);(也是輸出字符A) 或#includechara='B',b='o',c='k';}charc;voidmain(){charprintf("inputacharacter\n");}TCTCTC。其功能是按用戶指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上面的例題中我們已多。不要求在使用printfstdio.h{inta=88,b=89;printf("%d}a,ba,bTurboC doufcs -+#0xe,g,f0。{intfloatb=123. doublec= chard='p';}a“%5d”5,a值為15只有兩位故補三個空格。第八行中以四種格式輸出實型量b的值。其中“%f”和“%lf”格式的輸出相同,說明“l(fā)”符對“f”類型無影響。“%5.4lf”5,精度d,其中“%8c”8p74.5】int}4.6】int}printfprintf對“-i++”值得-7,然后i自增1后為8。再對“i--”值得8,然后i再自減1后7。再求“i++”7,然后i再自增1后為8。再求“--i”項,i先自減1后輸出,輸出值7。最后才求輸出表列中的第一項“++i”i18。scanfstdio.h&a,aba,bC則,a,567&aa求寫變量的地址,如&a&是一個取地址運算符,&ainta,b,c;printf("inputa,b,c\n");}789TCscanf78或789doxufcsscanf("%d%*d當輸入為 3時,把1賦予a,2被跳過,3賦予b1234a,5678bscanf2scanfscanf("%d",a);是scnaf("%d",&a);才是合法的。輸入“12A”時,A即為數(shù)據(jù))時即認為該數(shù)據(jù)結束。 則把'd'a,b,'e'c。scanf("%c%ccharprintf("inputcharactera,b\n");}scanf"%c%c"MNMMNMNcharprintf("inputcharactera,b\n");scanf("%c%c",&a,&b);}scanf"%c%c 其中用非格式符”intprintf("inputanumber\n");}longprintf("inputalonginteger\n");}inputalongcharprintf("inputcharactera,b,c\n");scanf("%c%c%c",&a,&b,&c);}inta;longb;floatf;doubled;charc;}已知三角形的三邊長a,b,c,則該三角形的面積為s(ss(sa)(sb)(ss(a+b+c)/2{floata,b,c,s,area;}4.15ax2+bx+c=0方程的根,a,b,cb2-4ac>0。求根為:bb24acx1

b b2b b2px

x b2b2b2b2 {float}分支結構程 關系運算符和表達 關系運算符及其優(yōu)先次 關系表達 邏輯運算符和表達 邏輯運算符極其優(yōu)先次 邏輯運算的 邏輯表達 if語 if語句的三種形 if語句的嵌 條件運算符和條件表達 switch語 程序舉 <= >=5)==6)!=符,高于賦值運算符。在六個關系運算符中,<,<=,>,>=的優(yōu)先級相同,高于==和!=,==表達式關系運算符 charinti=1,j=2,k=3;floatx=3e+5,y=0.85;}0,0==i+50。&&|| 與運算符&&和或運算符||((&&和||a>b&&邏輯運算的值也為“真”和“假”兩種,用“1”和“0”&&:參與運算的兩個量都為真時,結果才為真,否則為假。5>0&&或運算||:參與運算的兩個量只要有一個為真,結果就為真。兩個量都為假時,結果雖然C編譯在給出邏輯運算值時,以“1”代表“真”,“0”代表“假”。但反過來在判表達式邏輯運算 表達charinti=1,j=2,k=3;floatx=3e+5,y=0.85;}1。ifif第一種形式為基本形式if(intprintf("\ninputtwonumbers: if(max<b)max=b;}max小于bbmaxmaxmaxif(if(1,2inta,printf("inputtwo }前二種形式的ifif(if( if( if(… if(行后續(xù)程序。if-else-if3—35.5】charprintf("inputacharacter: printf("Thisisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thisisadigit\n");elseif(c>='A'&&c<='Z')printf("Thisisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thisisasmallletter\n");printf("Thisisanother}大寫字母,在“a”和“z”之間為小寫字母,其余則為其它字符。這是一個多分ififif(a=5)if(b)ifififififif在嵌套內(nèi)的if語句可能又是if-else型的,這將會出現(xiàn)多個if和多個else的情ifelseintprintf("pleaseinputA,B: if(a>b)printf("A>B\n");elseprintf("A<B\n");else}ifintprintf("pleaseinputA,B: if(a==b)printf("A=B\n");elseif(a>b) } 表達式 表達式2:表達式 12 elsemax=b;a>bamax,printf("\ninputtwonumbers: }switchcasecase1:case2:…}:intprintf("inputintegernumber: switchcase1:printf("Monday\n");case2:printf("Tuesday\n");case3:printf("Wednesday\n");case4:printf("Thursday\n");case5:printf("Friday\n");case6:printf("Saturday\n");case7:printf("Sunday\n");}}以及以后的所有語句,輸出了Wednesday及以后的所有單詞。這當然是不希望的。為什么表達式”只相當于一個語句標號,表達式的值和某標號相等則轉向該標號執(zhí)行,但不能在switchcase言還提供了一種break語句,于跳出switch語句,break語句只有關鍵字break,沒switchintprintf("inputintegernumber: switchcase1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;}}intprintf("inputthreenumbers: }minmaxminfloata,b;charc;printf("inputexpression:a+(-,*,/)b\n");case'+':case'-':printf("%f\n",a-case'*':case'/':printf("%f\n",a/b);break;default:printf("inputerror\n");}}本例可用于四則運算求值。switch循環(huán)控 概 goto語句以及用goto語句構成循 while語 do-while語 for語 循環(huán)的嵌 幾種循環(huán)的比 break和continue語 break語 continue語 程序舉 gotoBASICgotogotogoto其中標號是一個有效的標識符,這個標識符加上一個“:”一起出現(xiàn)在函數(shù)內(nèi)某處,執(zhí)行件時,程序跳到標號處運行。goto語句通常不用,主要因為它將使程序層次不清,且不易讀,但在多層嵌套退出時,goton {inti,sum=0; gotoloop;}}whilewhile(n {inti,sum=0;{}}#include<stdio.h>intprintf("inputastring:\n");while(getchar()!='\n')n++;}whileintprintf("\ninputn: while(n-- }n,n1a++*2do-whilewhile(while(whiledo-whilen {inti,sum=0;{}}6.6】whiledo-while{intsum=0,i;}}{intsum=0,i;}}forCforwhilefor(123)語句103)步;若其值為假(05)步。for循環(huán)變量賦初值總是一個賦值語句,它用來給循環(huán)控制變量賦初值;循環(huán)條件是一個關系表達式,它決定什么時候退出循環(huán);循環(huán)變量增量,定義循環(huán)控制變量每循環(huán)一次后按什么方式變化。這三個部分之間用;分開。for(i=1;i<=100;先給i1,判斷i100,1{sum=sum+i;}1;1;}環(huán)變量增量)”都是選擇項,即可以缺省,但“;”不能缺省。1(循環(huán)變量賦初值)”2(循環(huán)條件)”3(循環(huán)變量增量)”for({inti,j,k;printf("ijk\n");for(i=0;i<2;for(j=0;j<2;j++)for(k=0;k<2;k++)printf(“%d%d%d\n",i,j,}goto型循whiledo-whilewhile和do-while語句之前完for1中實現(xiàn)循環(huán)變量的初始化。breakcontinuebreak無法退出。break在switch中的用法已面介紹開關語句時的例子中碰到,這里不再舉breakif{inti=0;charc; { while(c!=13&&c!=27)*Esc{printf("%c\n",c);} printf("TheNo.is%d\n",}printf("The}breakcontinue{}{}{char {continue;*Escprintf("%c\n",}}1111

求π

{intfloatn,t,pi;}}N-S{intm,i,k;printf(“%disaprimenumber\n”,m);printf(“%disnotaprime}{intm,i,k,n=0;{}}數(shù) 一維數(shù)組的定義和一維數(shù)組的定義方 一維數(shù)組元素的一維數(shù)組的初始 一維數(shù)組程序舉 二維數(shù)組的定義和二維數(shù)組的定 二維數(shù)組元素的二維數(shù)組的初始 二維數(shù)組程序舉 字符數(shù) 字符數(shù)組的定 字符數(shù)組的初始 字符數(shù)組的字符串和字符串結束標 字符數(shù)組的輸入輸 字符串處理函 程序舉 本章小 int float charch[20]; {intfloat}a[5]a505a[0],a[1],a[2],a[3],a[4]。#defineFD5{int}{intn=5;int}int能逐個地使用下標變量,而不能一次整個數(shù)組。for(i=0;i<10;i++){inti,a[10];printf("%d}{inti,a[10];}{inti,a[10];printf("%d",a[i]);printf("\n%d%d\n",a[5.2],a[5.8]);}printfa[5]的值,可以看出當下標不為整數(shù)時將自動取整。……inta[10]={0,1,2,3,4,5,6,7,8,9intintintintint{inti,max,a[10];printf("input10numbers:\n");if(a[i]>max)max=a[i];}maxmaxmax{intprintf("\ninput10numbers:\n");if(q<a[j]){p=j;q=a[j];}a[p]=s;}}}forfor。問題中有很多量是二維的或的,因此C語言允許構造數(shù)組數(shù)組元素有多個下。1][12int3×4置也處于一個平面之中,而不是象一維數(shù)組只是一個向量。但是,實際的硬件器卻是連a[0]a[1]a[2]行。每行中有四個元素也是依次存放。由于數(shù)組aint張王李趙周Caverage為全組各科總平均成績。編程如下:{inti,j,s=0,average,v[3],a[5][3];printf("input

溫馨提示

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

評論

0/150

提交評論