C语言程序设计课件_第1页
C语言程序设计课件_第2页
C语言程序设计课件_第3页
C语言程序设计课件_第4页
C语言程序设计课件_第5页
已阅读5页,还剩487页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C語言程式設計

第1章

C語言概述1.1C語言的發展過程

C語言是在

70

年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的“THECPROGRAMMINGLANGUAGE”一書。通常簡稱為《K&R》,也有人稱之為《K&R》標準。但是,在《K&R》中並沒有定義一個完整的標準C

語言,後來由美國國家標準協會(AmericanNationalStandardsInstitute)在此基礎上制定了一個C

語言標準,於一九八三年發表。通常稱之為ANSIC。

1.2C語言的版本目前最流行的C語言有以下幾種:

·MicrosoftC

或稱

MSC·BorlandTurboC

或稱

TurboC·AT&TC這些C語言版本不僅實現了ANSIC標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。

1.3C語言的特點1·

C語言簡潔、緊湊,使用方便、靈活。一共只有32個關鍵字2·

運算符豐富。共有34種。C把括弧、賦值、逗號等都作為運算符處理。從而使C的運算類型極為豐富,可以實現其他高級語言難以實現的運算。3·數據結構類型豐富。4·具有結構化的控制語句。5·語法限制不太嚴格,程式設計自由度大。6.生成目標代碼品質高,程式執行效率高。7.與組合語言相比,用C語言寫的程式可移植性好

1.4C語言的字元集字元是組成語言的最基本的元素。C語言字元集由字母,數字,空格,標點和特殊字元組成。在字元常量,字串常量和注釋中還可以使用漢字或其他可表示的圖形符號。8.

C語言允許直接訪問物理地址,能進行位(bit)操作,能實現組合語言的大部分功能,可以直接對硬體進行操作。因此有人把它稱為中級語言。

1.3C語言的特點3.空白符空白字元、跳位字元、換行符等統稱為空白符。空白符只在字元常量和字串常量中起作用。在其他地方出現時,只起間隔作用,編譯程序對它們忽略不計。因此在程式中使用空白符與否,對程式的編譯不發生影響,但在程式中適當的地方使用空白符將增加程式的清晰性和可讀性。1.4C語言的字元集1.字母

小寫字母a~z共26個 大寫字母A~Z共26個2.數字

0~9共10個4.標點和特殊字元在使用識別字時還必須注意以下幾點:

(1)標準C不限制識別字的長度,但它受各種版本的C語言編譯系統限制,同時也受到具體機器的限制。例如在某版本C中規定識別字前八位有效,當兩個識別字前八位相同時,則被認為是同一個識別字。

(2)在識別字中,大小寫是有區別的。例如BOOK和book是兩個不同的識別字。

(3)識別字命名應儘量有相應的意義,以便於閱讀理解,作到“見名知意”。1.5C語言辭彙在C語言中使用的辭彙分為六類:識別字,關鍵字,運算符,分隔符號,常量,注釋符等。1.識別字在程式中使用的變數名、函數名、標號等統稱為識別字。除庫函數的函數名由系統定義外,其餘都由用戶自定義。C規定,識別字只能是字母(A~Z,a~z)、數字(0~9)、下劃線(_)組成的字串,並且其第一個字元必須是字母或下劃線。2.關鍵字關鍵字是由C語言規定的具有特定意義的字串,通常也稱為保留字。用戶定義的識別字不應與關鍵字相同。C語言的關鍵字分為以下幾類:(1)類型說明符用於定義、說明變數、函數或其他數據結構的類型。如前面例題中用到的int,double等(2)語句定義符用於表示一個語句的功能。如例1.3中用到的ifelse就是條件語句的語句定義符。(3)預處理命令字用於表示一個預處理命令。如前面各例中用到的include。3.運算符C語言中含有相當豐富的運算符。運算符與變數,函數一起組成運算式,表示各種運算功能。運算符由一個或多個字元組成。autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortstatic

signedsizofstructswitchtypedefunionvoid

unsigned

volatilewhile

C語言的關鍵字1.5C語言辭彙5.常量

C語言中使用的常量可分為數字常量、字元常量、字串常量、符號常量、轉義字元等多種。在後面章節中將專門給予介紹。4.分隔符號

在C語言中採用的分隔符號有逗號和空格兩種。逗號主要用在類型說明和函數參數表中,分隔各個變數。空格多用於語句各單詞之間,作間隔符。在關鍵字,識別字之間必須要有一個以上的空白字元作間隔,否則將會出現語法錯誤,6.注釋符C語言的注釋符是以“/*”開頭並以“*/”結尾的串。在“/*”和“*/”之間的即為注釋。程式編譯時,不對注釋作任何處理。注釋可出現在程式中的任何位置。注釋用來向用戶提示或解釋程式的意義。在調試程式中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調試結束後再去掉注釋符。1.6簡單的C程式介紹【例1.1】main(){

printf("世界,您好!\n");}main是主函數的函數名,表示這是一個主函數每一個C根源程式都必須有,且只能有一個主函數(main函數)函數調用語句,printf函數的功能是把要輸出的內容送到顯示器去顯示,printf函數是一個由系統定義的標準函數,可在程式中直接調用Main()函數的函數體,每一個函數都有一個函數體【例1.2】#include<math.h>#include<stdio.h>main(){

doublex,s;

printf("inputnumber:\n");

scanf("%lf",&x);

s=sin(x);

printf("sineof%lfis%lf\n",x,s);

}include稱為檔包含命令,擴展名為.h的檔稱為頭檔這兩行稱為預處理命令行。預處理命令還有其他幾種,其意義是把尖括弧<>或引號""內指定的檔包含到本程式來,成為本程式的一部分。

函數體的聲明語句,C語言規定,根源程式中所有用到的變數都必須先聲明,後使用數據類型說明符,在這聲明了兩個雙精度的實型變數X和S鍵盤輸入語句,表示從鍵盤上輸入一個數據後,放到X單元的存儲地址中,也就是X用於接收從鍵盤上輸入的數據賦值語句,其作用是:調用sin函數並把函數值送到變數s中函數的執行部分,一個C函數是由聲明部分和執行部分所構成2./*…………….*/為注釋部分。4.{}是程式段的括弧3.

;是語句的結束符6.

函數的執行一定從main()開始。7.

程式中用到的變數都要事先定義。C的程式結構綜述1.#include<stdio.h>,預處理命令,其作用是提供標準輸入輸出函數。5.C程式有且僅有一個主函數main()。【例1.3】intmax(inta,intb);

/*函數說明*/main()

/*主函數*/{

intx,y,z;

/*變數說明*/

intmax(inta,intb);

/*函數說明*/

printf("inputtwonumbers:\n");

scanf("%d%d",&x,&y);

/*輸入x,y值*/

z=max(x,y);

/*調用max函數*/

printf("maxmum=%d",z);

/*輸出*/}intmax(inta,intb)

/*定義max函數*/{

if(a>b)returna;elsereturnb;

/*把結果返回主調函數*/

}1.7輸入和輸出函數1.8TurboC2.0集成開發環境的使用主菜單在TurboC2.0主螢幕頂上一行,顯示下列內容:FileEditRunCompileProjectOptionsDebugBreak/watch除Edit外,其他各項均有子菜單,只要用Alt加上某項中第一個字母,就可進入該項的子菜單中。中間窗口為編輯區,用於根源程式的編輯資訊窗

口:用於顯示執行編譯之後,系統給出相關的錯誤提示資訊參考行

:給出各功能鍵所對應的操作8.1File菜單

Load:裝入一個檔,可用類似DOS的通配符(如*.C)來進行列表選擇。也可裝入其他擴展名的檔,只要給出檔案名(或只給路徑)即可。該項的快捷鍵為F3。Pick:將最近裝入編輯窗口的8個檔列成一個表讓用戶選擇,

選擇後將該程式裝入編輯區。其快捷健為Alt-F3。New:新建檔,缺省檔案名為NONAME.C,存盤時可改名。Save:將編輯區中的檔存盤,若檔案名是NONAME.C時,將詢問是否更改檔案名,其快捷鍵為F2。Writeto:更名寸盤命令,若該檔已存在,則詢問要不要

覆蓋。Directory:顯示目錄及目錄中的檔,並可由用戶選擇。Changedir:顯示當前默認目錄,用戶可以改變默認目錄。Osshell:暫時退出TurboC2.0到DOS提示符下,

此時可以運行DOS命令,

若想回到

TurboC2.0中,只要在DOS狀態下鍵入EXIT即可。Quit:退出命令,返回到DOS操作系統中,其快捷鍵為Alt+X。8.2Edit菜單

與編輯有關的功能鍵如下F1

獲得TurboC2.0編輯命令的幫助資訊;F5

擴大編輯窗口到整個螢幕;F6

在編輯窗口與資訊窗口之間進行切換;F10

從編輯窗口轉到主菜單。常用編輯命令簡介:PageUp

向前翻頁PageDn

向後翻頁Home

將游標移到所在行的開始End

將游標移到所在行的結尾Ctrl+Y

刪除游標所在的一行Ctrl+T

刪除游標所在處的一個詞Ctrl+KR

讀檔Ctrl+KW

存檔8.3

Run菜單

Run:運行由Project/Projectname項指定的檔案名或當前編輯區的檔。如果對上次編譯後的源代碼未做過修改,則直接運行到下一個中斷點(沒有中斷點則運行到結束)。否則先進行編譯、連接後才運行,其熱鍵為Ctrl+F9Programreset:中止當前的調試,釋放分給程式的空間,其熱鍵為Ctrl+F2

Gotocursor::調試程式時使用,選擇該項可使程式運行到游標所在行。游標所在行必須為一條可執行語句,否則提示錯誤。其熱鍵為F4

Traceinto:在執行一條調用其他用戶定義的子函數時,若用Traceinto項,則執行長條將跟蹤到該子函數內部去執行,其熱鍵為F7Stepover:執行當前函數的下一條語句,即使用戶函數調用,執行長條也不會跟蹤進函數

內部,其熱鍵為F8Userscreen:顯示程式運行時在螢幕上顯示的結果。其熱鍵為Alt+F5

8.4Compile菜單

CompiletoOBJ:將一個C原始檔案編譯生成.OBJ目標檔,

同時顯示生成的檔案名。其熱鍵為

Alt+F9

MakeEXEfile:此命令生成一個.EXE的檔,並顯示生成的.EXE檔案名。LinkEXEfile:把當前.OBJ檔及庫檔連接在一起生成.EXE檔Buildall:重新編譯專案裏的所有檔,並進行裝配生成.EXE檔Getinfo:獲得有關當前路徑、原始檔案名、原始檔案位元組大小、編譯中的錯誤數目、可用空間等資訊,

8.5

Project菜單

Projectname:專案名具有.PRJ的擴展名,其中包括將要編譯、連接的檔案名Breakmakeon:由用戶選擇是否在有Warining、Errors、FatalErrors時或Link之前退出Make編譯Autodependencies:當開關置為on,編譯時將檢查原始檔案與對應的.OBJ檔日期和時間,否則不進

行檢查Clearproject:清除Project/Projectname中的專案檔案名8.6

Options菜單

1、Compiler:本項選擇又有許多子菜單,可以讓用戶選擇硬體配置、存儲模型、調試技術、

代碼優化、對話資訊控制和宏定義。2、Linker:本菜單設置有關連接的選擇項,它有以下內容⑴.Mapfilemenu

選擇是否產生.MAP檔。⑵.Initializesegments是否在連接時初始化沒有初始化的段。⑶.Devaultlibraries是否在連接其他編譯程序產生的目標檔時去尋找其缺省庫。⑷.Graphicslibrary

是否連接graphics庫中的函數。⑸.Warnduplicatesymbols當有重複符號時產生警告資訊。⑹.Stackwarinig是否讓連接程式產生Nostack的警告資訊。

⑺.Case-sensitivelink是否區分大、小寫字。3.

Environment:菜單規定是否對某些檔自動存盤及製錶鍵和螢幕大小的設置Messagetracking:Currentfile

跟蹤在編輯窗口中的檔錯誤。Allfiles跟蹤所有檔錯誤。Off

不跟蹤。Keepmessage

:編譯前是否清除Message窗口中的資訊。Configautosave:選on時,在Run,Shell或退出集成開發環境之前,如果TurboC2.0的配置被改過,

則所做的改動將存入配置檔中。選off時不存。Editautosave:是否在Run或Shell之前,自動存儲編輯的原始檔案。Backupfile:是否在原始檔案存盤時產生後備檔(.BAK檔)。Tabsize:設置製錶鍵大小,默認為8。Zoomedwindows:將現行活動窗口放大到整個螢幕,其熱鍵為F5。Screensize設置螢幕文本大小。4.Directories:規定編譯、連接所需檔的路徑,有下列各項,如圖所示:Includedirectories:包含檔的路徑,多個子目錄用";"分開。Librarydirectories:庫檔路徑,多個子目錄用";"分開。Outputdirectoried:輸出檔(.OBJ,.EXE,.MAP檔)的目錄TurboCdirectoried:TurboC

所在的目錄Pickfilename:定義加載的pick檔案名,

如不定義則從currentpickfile中取按Alt+D可選擇Debug菜單,該菜單主要用於查錯EvaluateExpression要計算結果的運算式。Result顯示運算式的計算結果。Newvalue賦給新值。Findfunction在運行TurboCdebugger時用於顯示規定的函數

Refreshdisplay如果編輯窗口偶然被用戶窗口重寫了可用此恢復編輯窗口的內容

Callstack:該項不可接觸。而在TurboCdebuger

時用於檢查堆疊情況8.7Debug菜單

本章主要掌握以下這些知識要點。1、C語言根源程式的基本框架與書寫要求。這一部分內容要深刻理解和熟練掌握,特別是三大區域的相對順序,對於掌握C語言程式的基本結構非常有用。2、瞭解C語言的結構特點以及輸入輸出函數的使用方法3、熟悉C語言程式的編譯環境以及該環境下的各項菜單功能,能正確的設置操作環境,並掌握調試程式的一般方法。4、C語言可以使用的字元。一定要掌握C語言可以使用哪些字元,不能使用哪些字元,如何構成識別字(即識別字號的構造方法),這幾乎是每次考試的必考內容;

4、瞭解什麼是程式。本章小結課堂同步:做做與練練

【練1.1】試題分析選擇正確的選項:一個c語言程式總是從_______位置開始執行的。A)程式開頭B)第一個函數C)主函數D)第一條語句。本題考核了主函數的作用:總是從它開始運行。正確答案是C。

課堂同步:做做與練練

【練1.2】試題分析選擇正確的選項:以下敘述中不正確的選項是:A)無論注釋內容的多少,在對程式編譯時都被忽略。B)注釋語句只能位於某一語句的後面。C)注釋語句必須用/*和*/括起來。D)在注釋符“/”和“*”之間不能有空格本題考核了注釋語句的用法。答案是B。

2.1C語言的數據類型C語言提供的數據結構,是以數據類型形式出現的。具體分類如下:1.基本類型分為整型、實型(又稱浮點型)、字元型和枚舉型四種。2.構造類型分為數組類型、結構類型和共用類型三種。3.指針類型在第10章仲介紹。4.空類型C語言中的數據,有常量和變數之分,它們分別屬於上述這些類型。本章將介紹基本類型中的整型、實型和字元型三種數據。2.2常量與變數3.2.1常量1.常量的概念在程式運行過程中,其值不能被改變的量稱為常量。

常量可以從字面形式即可判斷-字面常量或直接常量。2.常量的分類

(1)整型常量(如12、0、-3為整型常量)(2)實型常量(4.6、-1.23為實型常量)(3)字元常量(’a’、’d’字元常量)(4)符號常量。3.符號常量:用一個識別字來代表常量,即給某個常量取個有意義的名字,這種常量稱為符號常量。如:#definePI3.1416使用符號常量的好處:(1)含義清楚、見名知意。(2)修改方便、一改全改。L1:符號常量應用2.2.2變數1.變數的概念在程式運行過程中,其值可以被改變的量稱為變數。2.變數的兩個要素#definePI3.14main(){floatarea;area=10*10*PI;printf("area=%f\n",area);}結果:area=314.0000002.2常量與變數(1)變數名。每個變數都必須有一個名字──變數名,變數命名遵循識別字命名規則。(2)變數值。在程式運行過程中,變數值存儲在內存中。在程式中,通過變數名來引用變數的值。C語言中變數:“先定義,後使用”。也就是說,C要求對所有用到的變數做強制定義。3.識別字命名規則(1)有效字元:只能由字母、數字和下劃線組成,且以字母或下劃線開頭。(2)有效長度:隨系統而異,但至少前8個字元有效。如果超長,則超長部分被捨棄。例如,由於student_name和student_number的前8個字元相同,有的系統認為這兩個變數,是一回事而不加區別。在TCV2.0中,變數名(識別字)的有效長度為1~32個字元,缺省值為32。2.2常量與變數(3)C語言的關鍵字不能用作變數名。注意:C語言對英文字母的大小寫敏感,即同一字母的大小寫,被認為是兩個不同的字元。習慣上,變數名和函數名中的英文字母用小寫,以增加可讀性。思考題:在C語言中,變數名total與變數名TOTAL、ToTaL、tOtAl等是同一個變數嗎?識別字命名的良好習慣──見名知意:所謂“見名知意”是指,通過變數名就知道變數值的含義。通常應選擇能表示數據含義的英文單詞(或縮寫)作變數名,或中文拼音字頭作變數名。例如,name/xm(姓名)、sex/xb(性別)、age/nl(年齡)、salary/gz(工資)。2.2常量與變數2.3整型數據2.3.1整型常量1.三種表示形式整型常量即整常數,在C語言中可用三種形式表示:(1)十進位(數碼取值:0~9)。例如10、36。(2)八進制(以數字0開頭,數碼取值:0~7)例如012。(3)十六進制(以數字0+小/大寫字母x開頭,數碼取值:A~F或a~f)。例如0x36,0X5A。課堂練習:判斷以下常量是否合法?9A、0X6G、029,等等類型匹配規則為:一個整型常量,可以賦給能容納下其值的整型變數。例如,其值在-215--(215-1)的整型常量,可以賦給int型變數和longint型變數;其值在-231--(231-1)的整型常量,就只能賦給longint型變數。2.3.2整型變數

1.整型數據在內存中的存放形式(二進位)2.分類

根據佔用記憶體位元組數的不同,整型變數又分為4類:(1)基本整型(類型關鍵字為int)。(2)短整型(類型關鍵字為short[int])。(3)長整型(類型關鍵字為long[int])。(4)無符號整型。無符號型又分為無符號基本整型(unsigned[int])、無符號短整型(unsignedshort)和無符號長整型(unsignedlong)三種,只能用來存儲無符號整數。佔用記憶體位元組數與值域

上述各類型整型變數佔用的記憶體位元組數,隨系統而異。在16位操作系統中,一般用2位元組表示一個int型變數,且long型(4位元組)>int型(2位元組)≥short型(2位元組)。2.3整型數據顯然,不同類型的整型變數,其值域不同。佔用記憶體位元組數為n的(有符號)整型變數,其值域為:-2n*8-1~(2n*8-1-1);無符號整型變數的值域為:0~(2n*8-1)。

例如,PC機中的一個int型變數,其值域為-22*8-1~(22*8-1-1),即-32768~32767;一個unsigned型變數的值域為:0~(22*8-1),即0~65535。(看書上p43表)

3.整型變數的定義

變數說明的一般形式為:類型說明符變數名識別字,變數名識別字,...;例如:

inta,b,c;(a,b,c為整型變數)

longx,y;(x,y為長整型變數)

unsignedintp,q;(p,q為無符號整型變數)

不同種類的整型數據可以進行算術運算(P44)L2.c4.整型數據的溢出(P44)L3.c2.3整型數據2.4實型數據3.4.1實型常量的表示方法1、十進位小數形式。由數字0~9和小數點組成(必須有小數點)。例如:.123、123.、123.0、0.02、指數形式。格式:aEn。(a:十進位數n:階碼(只能為整數,可以帶符號))例如:123e3、123E3都是實數的合法表示。1)字母e或E之前必須有數字,e後面的指數必須為整數。例如:e3、2.1e3.5、.e3、e都不是合法的指數形式。2)規範化的指數形式。在字母e或E之前的小數部分,小數點左邊應當有且只能有一位非0數字。用指數形式輸出時,是按規範化的指數形式輸出的。例如:2.3478e2、3.0999E5、6.46832e12都屬於規範化的指數形式。

3)實型常量都是雙精度,如果要指定它為單精確度,可以加尾碼f(實型數據類型參看實型變數部分說明)。2.4.2實型變數1、實型數據在內存中的存放形式:一個實型數據一般在內存中占4個位元組(32位)。

2、實型變數的分類實型變數分為:單精確度(float)、雙精度(double)。單精確度:其類型說明符為float單精確度說明符雙精度:double雙精度說明符。在TurboC中單精確度型占4個位元組(32位)記憶體空間,其數值範圍為3.4E-38~3.4E+38,只能提供七位有效數字。雙精度型占8個位元組(64位)記憶體空間,其數值範圍為1.7E-308~1.7E+308,可提供16位有效數字。2.4實型數據實型變數說明的格式和書寫規則與整型相同。

類型說明符變數名識別字,變數名識別字,...例如:floatx,y;(x,y為單精確度實型量)

doublea,b,c;(a,b,c為雙精度實型量)說明

(1).實型常數不分單、雙精度,都按雙精度double型處理。(2).實型常量可以賦值給一個float、double、longdouble型變數。根據變數的類型截取實型常量中相應的有效數字。書中P47,P48(3).實型數據的舍入誤差L4.c2.4實型數據2.5字元型數據2.5.1字元常量1.字元常量的定義用一對單引號括起來的單個字元,稱為字元常量。例如,A’、‘1’、‘+’等。字元常量的特點:字元常量只能用單引號括起來,不能用雙引號或其他括弧字元常量只能是單個字元,不能是字串。字元可以是字元集中任意字元。但數字作為字元型參與數值運算時數字的值就不是它的ASCII值。如‘5’和5是不同的。‘5’是字元常量,參與運算用‘5’的ASCII值53。L5.c2.轉義字元C語言還允許使用一種特殊形式的字元常量,就是以反斜杠“\”開頭的轉義字元。

看書上表p48注意:如果反斜杠或單引號本身作為字元常量,必須使用轉義字元:‘\\’、‘\’‘。分析書上例題(p49)L6.c2.5.2字元變數字元變數的類型關鍵字為char,一般佔用1位元組記憶體單元。1.變數值的存儲

字元變數用來存儲字元常量。將一個字元常量存儲到一個字元變數中,實際上是將該字元的ASCII碼值(無符號整數)存儲到記憶體單元中。例如,charch1,ch2; /*定義兩個字元變數:ch1,ch2*/ch1=’a’;ch2=’b’;/*給字元變數賦值*/2.5字元型數據2.特性字元數據在內存中存儲的是字元的ASCII碼──一個無符號整數,其形式與整數的存儲形式一樣,所以C語言允許字元型數據與整型數據之間通用。(1)一個字元型數據,既可以字元形式輸出,也可以整數形式輸出。

[L7.c]字元變數的字元形式輸出和整數形式輸出。/*程式功能:用字符形式和整數形式輸出字元變數*/

main()

{charch1,ch2;

ch1='a';ch2='b';printf(“ch1=%c,ch2=%c\n”,ch1,ch2);

printf(“ch1=%d,ch2=%d\n”,ch1,ch2);

}

程式運行結果:

ch1=a,ch2=b

ch1=97,ch2=982.5字元型數據(2)允許對字元數據進行算術運算,此時就是對它們的ASCII碼值進行算術運算。

[L8.c]字元數據的算術運算。

/*程式功能:字元數據的算術運算*/

main()

{charch1,ch2;

ch1=‘a’;ch2=‘B’;

/*字母的大小寫轉換*/

printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32);

printf(“ch1=%d,ch2=%d\n”,ch1-32,ch2+32);}2.5字元型數據2.5.4字串常量1.字串常量的概念和字串長度字串常量是用一對雙引號括起來的若干字元序列。例如,“Howdoyoudo.”、“Goodmorning.”等,都是字串常量,其長度分別為14和13(空格也是一個字元)。

如果反斜杠和雙引號作為字串中的有效字元,則必須使用轉義字元。例如:(1)C:\msdos\v6.22→"C:\\msdos\\v6.22"

(2)Isay:"Goodbye!"→"Isay:\"Goodbye!\""2.5字元型數據2.字串的存儲C語言規定:在存儲字串常量時,由系統在字串的末尾自動加一個‘\0’作為字串的結束標誌。注意:在根源程式中書寫字串常量時,不必加結束字元‘\0’,否則畫蛇添足。

如果有一個字串為“CHINA”,則它在內存中的實際存儲如下所示:CHINA\0

最後一個字元'\0'是系統自動加上的,它佔用6位元組而非5位元組記憶體空間。2.5字元型數據綜上所述,字元常量'A'與字串常量"A"是兩回事:(1)定界符不同:字元常量使用單引號,而字串常量使用雙引號;(2)字元常量只能是單個字元,字串常量則可以含一個或多個字元。(3)可以把一個字元常量賦予一個字元變數,但不能把一個字串常量賦予一個字元變數。(4)字元常量占一個位元組的記憶體空間。字串常量占的記憶體位元組數等於字串中字元數加1。增加的一個位元組存放字元‘\0’(ASCII值為0),這是字串的結束標誌。2.5字元型數據2.6變數賦初值1.定義時賦初值inta,b,c=3;charc=‘a‘;2.用賦值語句floata,b,c;a=1;b=2;c=3;2.7各類數值型數據間的混合運算一.在C語言中,整型、實型和字元型數據間可以混合運算(因為字元數據與整型數據可以通用)。如果一個運算符兩側的運算元的數據類型不同,則系統按“先轉換、後運算”的原則,轉換的方法有兩種:自動轉換(隱式轉換);強制轉換。1、自動轉換(隱式轉換)自動轉換發生在不同類型數據進行混合運算時,由編譯系統自動完成。轉換規則:(參看下頁圖示)(1)類型不同,先轉換為同一類型,然後進行運算。(2)圖中縱向的箭頭表示當運算對象為不同類型時轉換的方向。可以看到箭頭由低級別數據類型指向高級別數據類型,即數據總是由低級別向高級別轉換。即按數據長度增加的方向進行,保證精度不降低。(3)圖中橫向向左的箭頭表示必定的轉換(不必考慮其他運算對象)。如字元數據參與運算必定轉化為整數,float型數據在運算時一律先轉換為雙精度型,以提高運算精度(即使是兩個float型數據相加,也先都轉換為double型,然後再相加)。(4)賦值運算,如果賦值號“=”兩邊的數據類型不同,賦值號右邊的類型轉換為左邊的類型。這種轉換是截斷型的轉換,不會四捨五入。L9.c2.7各類數值型數據間的混合運算2、強制轉換強制轉換是通過類型轉換運算符來實現。一般形式:(類型說明符)運算式功能:把運算式的結果強制轉換為類型說明符所表示的類型。例如:(int)a將a的結果強制轉換為整型量。(int)(x+y)將x+y的結果強制轉換為整型量。(float)a+b將a的內容強制轉換為浮點數,再與b相加說明:(1)類型說明和運算式都需要加括弧(單個變數可以不加括弧)(2)無論隱式轉換,強制轉換都是臨時轉換,不改變數據本身的類型和值。2.7各類數值型數據間的混合運算L10.c:強制類型轉換main(){floatf=5.75;printf("(int)f=%d\n",(int)f);/*將f的結果強制轉換為整型,輸出*/printf("f=%f\n",f);/*輸出f的值*/}結果:(int)f=5f=5.7500002.7各類數值型數據間的混合運算2.8.1C運算符簡介運算符:狹義的運算符是表示各種運算的符號。C語言運算符豐富,範圍很寬,把除了控制語句和輸入/輸出以外的幾乎所有的基本操作都作為運算符處理,所以C語言運算符可以看作是操作符。C語言豐富的運算符構成C語言豐富的運算式(是運算符就可以構成運算式)。運算符豐富、運算式豐富、靈活。在C語言中除了提供一般高級語言的算術、關係、邏輯運算符外,還提供賦值運算符,位操作運算符、自增自減運算符等等。甚至數組下標,函數調用都作為運算符。2.8算術運算符和算術運算式C的運算符有以下幾類:

本章節主要介紹算術運算符(包括自增自減運算符)、賦值運算符、逗號運算符,其他運算符在以後相關章節中結合有關內容陸續進行介紹。2.8.2算術運算符和算術運算式

1、基本的算術運算符+(加法運算符。如3+5)-(減法運算符或負值運算符。如5-2,-3)*(乘法運算符。如3*5)/(除法運算符。如5/3,5.0/3)%(模運算符或求餘運算符,%要求兩側均為整型數據。如7%4的值為3)。除了負值運算符-單目運算符外,其他都是雙目運算符。說明:(1)兩個整數相除的結果為整數,如5/3的結果為1,舍去小數部分。但是如果除數或被除數中有一個為負值,則舍入的方向是不固定的,多數機器採用“向0取整”的方法(實際上就是舍去小數部分,注意:不是四捨五入)。L11.c2.8算術運算符和算術運算式3.8算術運算符和算術運算式(2)如果參加+,-,*,/運算的兩個數有一個為實數,則結果為double型,因為所有實數都按double型進行計算。(3)求餘運算符%,要求兩個運算元均為整型,結果為兩數相除所得的餘數。求餘也稱為求模。一般情況,餘數的符號與被除數符號相同。例如:-8%5=-3;8%-5=3L12.c2.8算術運算符和算術運算式I、算術運算式算術運算式:用算術運算符和括弧將運算對象(也稱運算元)連接起來的、符合C語法規則的式子,稱為算術運算式。運算對象可以是常量、變數、函數等。例如,下麵是一個合法的C算術運算式。a*b/c-1.5+’a’

注意:C語言算術運算式的書寫形式與數學運算式的書寫形式有一定的區別:(1)C語言算術運算式的乘號(*)不能省略。例如:數學式b2-4ac,相應的C運算式應該寫成:b*b-4*a*c。(2)C語言運算式中只能出現字元集允許的字元。例如,數學πr2相應的C運算式應該寫成:PI*r*r。(其中PI是已經定義的符號常量)2.算術運算式和運算符的優先順序與結合性(3)C語言算術運算式只使用圓括號改變運算的優先順序(不要指望用{}、[])。可以使用多層圓括號,此時左右括弧必須配對,運算時從內層括弧開始,由內向外依次計算運算式的值。II、算術運算符的優先順序與結合性(P.375附錄)C語言規定了進行運算式求值過程中,各運算符的“優先順序”和“結合性”。(1)C語言規定了運算符的“優先順序”和“結合性”。在運算式求值時,先按運算符的“優先順序別”高低次序執行。如運算式:a-b*c等價於a-(b*c),“*”運算符優先順序高於“-”運算符。2.8算術運算符和算術運算式(2)如果在一個運算對象兩側的運算符的優先順序別相同,則按規定的“結合方向”處理。例如:a-b+c,到底是(a-b)+c還是a-(b+c)?(b先與a參與運算還是先於c參與運算?)附錄可知:+/-運算優先順序別相同,結合性為“自左向右”,即就是說b先與左邊的a結合。所以a-b+c等價於(a-b)+c。左結合性(自左向右結合方向):運算對象先與左面的運算符結合。右結合性(自右向左結合方向):運算對象先與右面的運算符結合。

(3)在書寫多個運算符的運算式時,應當注意各個運算符的優先順序,確保運算式中的運算符能以正確的順序參與運算。對於複雜運算式為了清晰起見可以加圓括號“()”強制規定計算順序。2.8算術運算符和算術運算式3.強制類型轉換運算符(略)4.自增、自減運算符:I.作用

自增運算使單個變數的值增1,自減運算使單個變數的值減1。II.用法與運算規則

自增、自減運算符都有兩種用法:

(1)前置運算──運算符放在變數之前:++變數、--變數

先使變數的值增(或減)1,然後再以變化後的值參與其他運算,即先增減、後運算。

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

變數先參與其他運算,然後再使變數的值增(或減)1,即先運算、後增減。2.8算術運算符和算術運算式III.說明(1)自增、自減運算,常用於迴圈語句中,使迴圈控制變數加(或減)1,以及指針變數中,使指針指向下(或上)一個地址。(2)自增、自減運算符,不能用於常量和運算式。例如,5++、--(a+b)等都是非法的。(3)在運算式中,連續使同一變數進行自增或自減運算時,很容易出錯,所以最好避免這種用法。5.有關運算式使用中的問題說明(P58-59)2.8算術運算符和算術運算式1、賦值運算符、賦值運算式賦值運算符:賦值符號“=”就是賦值運算符。賦值運算式:由賦值運算符組成的運算式稱為賦值運算式。一般形式:〈變數〉〈賦值符〉〈運算式〉賦值運算式的求解過程:將賦值運算符右側的運算式的值賦給左側的變數,同時整個賦值運算式的值就是剛才所賦的值。賦值的含義:將賦值運算符右邊的運算式的值存放到左邊變數名標識的存儲單元中。2.9賦值運算符和賦值運算式例如:x=10+y;執行賦值運算(操作),將10+y的值賦給變數x,同時整個運算式的值就是剛才所賦的值。說明:(1)賦值運算符左邊必須是變數,右邊可以是常量、變數、函數調用或常量、變數、函數調用組成的運算式。例如:x=10y=x+10y=func()都是合法的賦值運算式。(2)賦值符號“=”不同於數學的等號,它沒有相等的含義。(“==”相等)例如:C語言中x=x+1是合法的(數學上不合法),它的含義是取出變數x的值加1,再存放到變數x中。2.9賦值運算符和賦值運算式(3)賦值運算時,當賦值運算符兩邊數據類型不同時,將由系統自動進行類型轉換。轉換原則是:先將賦值號右邊運算式類型轉換為左邊變數的類型,然後賦值。(4)C語言的賦值符號“=”除了表示一個賦值操作外,還是一個運算符,也就是說賦值運算符完成賦值操作後,整個賦值運算式還會產生一個所賦的值,這個值還可以利用。2.賦值運算式的求解過程是:l

先計算賦值運算符右側的“運算式”的值l

將賦值運算符右側“運算式”的值賦值給左側的變數。l

整個賦值運算式的值就是被賦值變數的值。2.9賦值運算符和賦值運算式例如:分析x=y=z=3+5這個運算式。根據優先順序:原式

x=y=z=(3+5);根據結合性(從右向左):

x=(y=(z=(3+5)))

x=(y=(z=3+5))z=3+5:先計算3+5,得值8賦值給變數z,z的值為8,(z=3+5)整個賦值運算式值為8;y=(z=3+5):將上面(z=3+5)整個賦值運算式值8賦值給變數y,y的值為8,(y=(z=3+5))整個賦值運算式值為8;x=(y=(z=3+5)):將上面(y=(z=3+5))整個賦值運算式值8賦值給變數,z的值為8,整個運算式x=(y=(z=3+5))的值為8。最後,x,y,z都等於82.9賦值運算符和賦值運算式運算步驟:序號運算式變數及值運算式的值

1

z=3+5z(8)82y=(z=3+5)y(8)83x=(y=(z=3+5))x(8)8

3、複合賦值運算符在賦值符“=”之前加上某些運算符,可以構成複合賦值運算符,複合賦值運算符可以構成賦值運算式。C語言中許多雙目運算符可以與賦值運算符一起構成複合運算符,即:+=,-=,*=,/=,%=,<<=,>>=,&=,|=,^=將賦值運算式作為運算式的一種,使賦值操作不僅可以出現在賦值語句中,而且可以以運算式的形式出現在其他語句中。2.9賦值運算符和賦值運算式複合賦值運算式一般形式:

<變數><雙目運算符>=<運算式>

等價於:<變數>=<變數><雙目運算符><運算式>例如:n+=1等價於n=n+1x*=y+1等價於x=x*(y+1)注意:賦值運算符、複合賦值運算符的優先順序比算術運算符低。4、賦值運算符、賦值運算式舉例(1)

a=5(2)

a=b=5(3)

a=(b=4)+(c=3)(4)

假如a=12,分析:a+=a-=a*a2.9賦值運算符和賦值運算式假如a=12,分析:a+=a-=a*aa+=a-=a*a

a+=a-=(a*a)

a+=(a-=(a*a))

a+=(a=a-(a*a))

a+=(a=a-a*a)

a=a+(a=a-a*a)2.9賦值運算符和賦值運算式C語言提供一種用逗號運算符“,”連接起來的式子,稱為逗號運算式。逗號運算符又稱順序求值運算符。1.一般形式運算式1,運算式2,……,運算式n2.10逗號運算符和逗號運算式例如:3+5,6+82.求解過程自左至右,依次計算各運算式的值,“運算式n”的值即為整個逗號運算式的值。例如,逗號運算式“a=3*5,a*4”的值=60:先求解a=3*5,得a=15;再求a*4=60,所以逗號運算式的值=60。又例如,逗號運算式“(a=3*5,a*4),a+5”的值=20:先求解a=3*5,得a=15;再求a*4=60;最後求解a+5=20,所以逗號運算式的值=20。2.10逗號運算符和逗號運算式2.基本類型的分類及特點

類型說明符位元組數值範圍字元型char1C字元集基本整型int2-32768~32767

短整型shortint2-32768~32767

長整型longint4-231~231-1

無符號型unsigned20~65535

無符號長整型unsignedlong40~232-1

單精確度實型float410-38~10+38

雙精度實型double810-308~10+308本章小結

1.C的數據類型

基本類型,構造類型,指針類型,空類型3.常量首碼、尾碼

首碼:八進制整常數加0十六進制整常數加0X或0x

尾碼?長整型加?L或l4.常量類型

整數,長整數,無符號數,浮點數,字元,字串,符號常數,轉義字元。5.數據類型轉換·自動轉換在不同類型數據的混合運算中,由系統自動實現轉換,由少位元組類型向多位元組類型轉換。不同類型的量相互賦值時也由系統自動進行轉換,把賦值號右邊的類型轉換為左邊的類型。·強制轉換由強制轉換運算符完成轉換。課堂同步:做做與練練

1、C語言中的數據的基本類型包括()

A、整型、實型、字元型和邏輯型

B、整型、實型、字元型和結構體C、整型、實型、字元型和枚舉型

D、整型、實型、字元型和指針型2、在C語言中,不合法的int型常量是(

)A、32767 B、0678 C、0XABC D、32768L3.1C語句概述C程式的結構:

C語句可分為以下五類:1、運算式語句2、函數調用語句3、控制語句4、複合語句5、空語句C程式的執行部分是由語句組成的程式的功能也是由執行語句實現的1、運算式語句:運算式語句由運算式加上分號“;”組成。其一般形式為:運算式;執行運算式語句就是計算運算式的值。例如:

x=y+z;賦值語句;

y+z;加法運算語句,但計算結果不能保留,無實際意義;

i++;自增1語句,i值增1。提示3.1C語句概述執行函數語句就是調用函數體並把實際參數賦予函數定義中的形式參數,然後執行被調函數體中的語句,求取函數值2、函數調用語句:由函數名、實際參數加上分號“;”組成。其一般形式為:函數名(實際參數);3.1C語句概述3、控制語句:控制語句用於控制程式的流程,以實現程式的各種結構方式。它們由特定的語句定義符組成。C語言有九種控制語句。可分成以下三類:條件判斷語句:if語句、switch語句;迴圈執行語句:dowhile語句、while語句、for語句;轉向語句:break、goto、continue、return語句。

{x=y+z;a=b+c;printf(“%d%d”,x,a);

}3.1C語句概述4、複合語句:把多個語句用括弧{}括起來組成的一個語句稱複合語句。在程式中應把複合語句看成是單條語句,而不是多條語句。例如:是一條複合語句。複合語句內的各條語句都必須以分號“;”結尾,在括弧“}”外不能加分號。本語句的功能:只要從鍵盤輸入的字元不是回車則重新輸入。這裏的循環體為空語句。5、空語句:只有分號“;”組成的語句稱為空語句。空語句是什麼也不執行的語句。空語句可用來作空循環體。while(getchar()!='\n');例如:其展開之後的一般形式為:

變數=變數=…=運算式;例如:

a=b=c=d=e=5;3.2賦值語句賦值語句是由賦值運算式再加上分號構成的運算式語句。其一般形式為:變數=運算式;賦值語句的功能和特點都與賦值運算式相同。它是程式中使用最多的語句之一。1、在賦值符“=”右邊的運算式也可以又是一個賦值運算式,因此,可以有其右的表述形式

變數=(變數=運算式);按照賦值運算符的右接合性,因此實際上等效於:

e=5;d=e;c=d;b=c;a=b;3.2賦值語句如下述說明是錯誤的:inta=b=c=52、注意在變數說明中給變數賦初值和賦值語句的區別。3、在變數說明中,不允許連續給多個變數賦初值。給變數賦初值是變數說明的一部分,賦初值後的變數與其後的其他同類變數之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。例如:inta=5,b,c;必須寫為:

inta=5,b=5,c=5;而賦值語句允許連續賦值。4、注意賦值運算式和賦值語句的區別。討論下述語句哪個是合法的?if((x=y+5)>0)z=x;if((x=y+5;)>0)z=x;合法的:語句的功能是,若運算式x=y+5大於0則z=x非法的:因為x=y+5;是語句,不能出現在運算式中3.3

數據輸入輸出的概念因此原始檔案開頭應有以下預編譯命令:

#include<stdio.h>或

#include”stdio.h”stdio是standardinput&outupt的意思。在C語言中,所有的數據輸入/輸出都是由庫函數完成的。因此都是函數語句。在使用C語言庫函數時,要用預編譯命令

#include其作用是:將有關“頭檔”包括到原始檔案中。使用標準輸入輸出庫函數時要用到:“stdio.h”檔考慮到printf和scanf函數使用頻繁,系統允許在使用這兩個函數時可不加#include<stdio.h>

#include”stdio.h”3.4字元數據的輸入輸出3.4.1putchar函數(字元輸出函數)

1、格式:putchar(字元變數)2、功能:在標準輸出設備上,輸出指定的字元*一次調用只能輸出一個字元*加上分號成為字元輸出語句*使用時在程式開頭用編譯命令#include”stdio.h”頭檔編譯預處理3、說明putchar('A');(輸出大寫字母A)putchar(x);(輸出字元變數x的值)putchar(‘\101’);(也是輸出字元A)#include<stdio.h>voidmain(){charc;printf("inputacharacter\n");c=getchar();putchar(c);}1、格式:getchar();2、功能:從鍵盤上輸入一個字元通常把輸入的字元賦予一個字元變數,構成賦值語句,如:

charc;0.2c=getchar();3、說明【例4.2】輸入單個字元。3.4.2getchar函數(鍵盤輸入函數)3.4字元數據的輸入輸出4、程式最後兩行可用下麵兩行的任意一行代替:

putchar(getchar());printf(“%c”,getchar());使用getchar函數還應注意幾個問題:1、getchar函數只能接受單個字元,輸入數字也按字元處理。輸入多於一個字元時,只接收第一個字元。2、使用本函數前必須包含檔“stdio.h”。3、在TC螢幕下運行含本函數程式時,將退出TC螢幕進入用戶螢幕等待用戶輸入。輸入完畢再返回TC螢幕。3.4字元數據的輸入輸出3.5格式輸入與輸出

3.5.1printf函數(格式輸出函數)

printf函數稱為格式輸出函數,其關鍵字最末一個字母f即為“格式”(format)之意。其功能是按用戶指定的格式,把指定的數據顯示到顯示器螢幕上。在前面的例題中我們已多次使用過這個函數。printf函數調用的一般形式為:

printf(“格式控制字串”,輸出表列)其中格式控制字串用於指定輸出格式。格式控制串可由格式字串和非格式字串兩種組成。格式字串是以%開頭的字串,在%後面跟有各種格式字元,以說明輸出數據的類型、形式、長度、小數位數等。

非格式字串在輸出時原樣照印,在顯示中起提示作用。

輸出表列中給出了各個輸出項,要求格式字串和各輸出項在數量和類型上應該一一對應。3.5格式輸入與輸出

在TurboC中格式字串的一般形式為:

[標誌][輸出最小寬度][.精度][長度]類型1、格式字串格式字元意義d以十進位形式輸出帶符號整數(正數不輸出符號)o以八進制形式輸出無符號整數(不輸出首碼0)x,X以十六進制形式輸出無符號整數(不輸出首碼Ox)u以十進位形式輸出無符號整數f以小數形式輸出單、雙精度實數e,E以指數形式輸出單、雙精度實數g,G以%f或%e中較短的輸出寬度輸出單、雙精度實數c輸出單個字元s輸出字串類型字元用以表示輸出數據的類型,其格式符和意義如下表所示:3.5格式輸入與輸出

1.標誌:標誌字元為-、+、#、空格四種,其意義下表所示:標志意義-結果左對齊,右邊填空格+輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號#對c,s,d,u類無影響;對o類,在輸出時加首碼o;對x類,在輸出時加首碼0x;對e,g,f類當結果有小數時才給出小數點2.輸出最小寬度:若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0。3.精度:精度格式符以“.”開頭,後跟十進位整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。5、長度格式符為h,l兩種,h表示按短整型,l表示按長整型。3.5格式輸入與輸出

main(){inta=15;floatb=123.1234567;doublec=12345678.1234567;chard='p';printf("a=%d,%5d,%o,%x\n",a,a,a,a);printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);printf("c=%lf,%f,%8.4lf\n",c,c,c);printf("d=%c,%8c\n",d,d);}格式應用舉例main(){inti=8;printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);}3.5格式輸入與輸出

main(){inti=8;printf("%d\n",++i);printf("%d\n",--i);printf("%d\n",i++);printf("%d\n",i--);printf("%d\n",-i++);printf("%d\n",-i--);}這兩個程式的區別是用一個printf語句和多個printf語句輸出。但從結果可以看出是不同的。為什麼結果會不同呢?就是因為printf函數對輸出表中各量求值的順序是自右至左進行的。

先對最後一項“-i--”求值,結果為-8,然後i自減1後為7。再對“-i++”項求值得-7,然後i自增1後為8。再對“i--”項求值得8,然後i再自減1後為7。再求“i++”項得7,然後i再自增1後為8。再求“--i”項,i先自減1後輸出,輸出值為7。最後才求輸出表列中的第一項“++i”,此時i自增1後輸出8。但是必須注意,求值順序雖是自右至左,但是輸出順序還是從左至右,因此得到的結果是上述輸出結果。main()/*程式3*/{inti,j,k1,k2;intk3,k4,k5;i=3;k1=(i++)+(i++)+(i++);printf(“k1=%d\n”,k1);i=3;

k2=(++i)+(++i)+(++i);printf(“k2=%d\n”,k2);i=3;j=4;k3=i+++j;printf(“k3=%d\n”,k3);結果為:k1=9k2=18k3=7k4=7k5=84,3

i=3;j=4;k4=(i++)+j;printf(“k4=%d\n”,k4);i=3;j=4;k5=i+(++j);printf(“k5=%d\n”,k5);i=3;printf(“%d,%d\n”,i,i++);}3.5格式輸入與輸出

程式舉例3.5.2scanf函數(格式輸入函數)

3.5格式輸入與輸出

scanf函數稱為格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變數之中。scanf函數的一般形式為:

scanf(“格式控制字串”,地址表列);其中,格式控制字串的作用與printf函數相同,但不能顯示非格式字串,也就是不能顯示提示字串。地址表列中給出各變數的地址。地址是由地址運算符“&”後跟變數名組成的。

例如:

&a,&b

分別表示變數a和變數b的地址。1、scanf函數的一般形式變數的地址和變數值的關係為:在賦值運算式中給變數賦值,如:

a=567則,a為變數名,567是變數的值,&a是變數a的地址。3.5格式輸入與輸出

但在賦值號左邊是變數名,不能寫地址,而scanf函數在本質上也是給變數賦值,但要求寫變數的地址,如&a。這兩者在形式上是不同的。&是一個取地址運算符,&a是一個運算式,其功能是求變數的地址。main(){inta,b,c;printf("inputa,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);}【例4.7】由於scanf函數本身不能顯示提示串,故先用printf語句在螢幕上輸出提示,請用戶輸入a、b、c的值。執行scanf語句,則退出TC螢幕進入用戶螢幕等待用戶輸入。用戶輸入789後按下回車鍵,此時,系統又將返回TC螢幕。在scanf語句的格式串中由於沒有非格式字元在“%d%d%d”之間作輸入時的間隔,因此在輸入時要用一個以上的空格或回車鍵作為每兩個輸入數之間的間隔。3.5格式輸入與輸出

格式字串的一般形式為:

%[*][

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论