




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機學院:薛磊江計算機程序是指為讓計算機完成某一任務而給它發出的一組有序的指令集合。 在生活中程序往往是對做某事的過程描述,比如你學開車時教練(相當于編寫程序的人)教給你(相當于計算機)啟動步驟:檢查安全帶點火松開手剎觀察后視鏡打轉向燈松離合起步。這就是教練發給你的“執行汽車啟步”的一組有序指令(相當于程序)。只不過這是使用你聽懂的人類自然語言發出的指令,而要讓計算機執行某項任務,就要用計算機語言來發指令了。計算機語言:用來書寫計算機程序(即指令集合)的語言。 計算機程序中的指令是用計算機語言來寫的。計算機語言總的來說分為三類:1、機器語言:由二進制0、1書寫的指令。2、匯編語言:用一些簡潔
2、的英文字母和符號串來替代人類難以理解0、1來書寫指令。如:add、move。3、高級語言:接近于數學語言或人自然語言來書寫指令。前兩種也稱為低級語言。他們各有優缺點。從人的理解角度而言:高級語言最容易理解其次是匯編和機器語言,而從計算機執行速度角度而言正好相反。高級語言又可分為如下幾類:1、從執行方式上分為:編譯型和解釋性語言。2、從編程理念上分為:面向過程和面向對象。常見的編程語言:C、C+、C#、JAVA、VB等。語言開發工具:高級語言需要翻譯成計算機能識別并執行的機器語言,這一過程稱為編譯。不同的語言有不同的編譯工具,即使相同的語言,由于開發編譯工具的公司不同,編譯工具的名稱也有區別。如
3、:Mc,Tc等。這些工具往往集編寫代碼、編譯、調試等功能于一身,所以也稱為IDE(集成開發環境)。關于C語言:C語言是面向過程的高級語言。其主要優點是它兼有高級語言和匯編語言的特點,功能齊全,應用范圍廣泛,非常適合程序語言教學。缺點是不容易支持面向對象技術。如何學習計算機編程語言。 要學好計算機語言主要從掌握關鍵字的用法、控制語句的語法規則、常見問題的算法入手。多讀程序、多做練習。循序漸進,逐步提高。 例1-1:在屏幕上輸出“Hello, World!”#include main() printf(“Hello, World!”);主函數,名字固定主函數,名字固定main()main()函數開
4、始結束,中間為函數體函數開始結束,中間為函數體函數體內的語句函數體內的語句編譯預處理編譯預處理函數與主函數函數與主函數 程序由一個或多個函數組成。 一個程序中必須有、且只能有一個主函數main()。 程序執行從主函數main開始(即程序執行的),在main中結束,其它函數通過嵌套調用得以執行。 函數是由函數名和函數體構成的,函數體由包含。程序語句程序語句 函數主要由語句組成。 用英文分號“;”作為語句終止符。編譯預處理命令編譯預處理命令 預處理命令通常應放在源文件或源序的最前面C程序書寫規定 C程序書寫自由,一行可以寫多條語句,但每條語句要用分號作為結束標記;也可以將一條語句分成多行書寫,但除
5、了控制語句外,其它語句多行書寫要使用續行符“”。 C語言大小寫敏感,即區分大小寫。 C語言忽略兩個語句之間的空行和空格。 可以使用/對單行語句或使用/*/對語句塊進行注釋,包含在/* */中的內容或/后的內容不被編譯。C程序書寫規范 使用TAB鍵縮進。采用縮進書寫能使程序清晰易懂 對齊。對齊 可以避免 丟失,易于檢查。 要有足夠的注釋。以便以后程序的修改和維護。初學者易犯的書寫錯誤 沒注意大小寫,如main()寫成Main()。 每條語句后忘記書寫;或將;寫成;。 丟失“”或沒能合理配對使用“”“”。編輯編輯鏈接鏈接編譯編譯執行執行C程序開發步驟file.exe程序代碼的錄入程序代碼的錄入,生
6、成源程序生成源程序*.c語法分析查錯,語法分析查錯,翻譯生成目標程翻譯生成目標程序序*.obj與其它目標程序與其它目標程序或庫鏈接裝配或庫鏈接裝配,生生成可執行程序成可執行程序*.exeC C語言的數據類型語言的數據類型C語言的基本數據類型類型 符號關鍵字數的表示范圍所占位數整型字符型實型有無(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535
7、有float323.4e-383.4e38 7位有效有double641.7e-3081.7e308 16位有效 有char8-128127無unsigned char80255返回返回常量:程序運行時其值不能改變的量。(常量有普通常量和符號常量)普通常量 整型常量 按進制來分為:十進制、八進制(數字0開頭如:0123)、十六進制(0 x開頭如:0 x3A4) 按類型分為:int(基本整型)、short(短整型)、long(長整型)如:32L 按有無符號分:有符號、無符號(unsigned) 實型常量(實數或浮點數): 普通寫法:3.2、3.0或3.通常情況下,默認的實數常量為double型,
8、如果在實數后加f,如:3.2f,則認為它是float 型。 科學記數法:“數字部分e指數部分”。e或E之前必須有數字,指數必須為整數。如1e2、2.3E-5等。 字符型:用單引號括起來的單個字符或轉義字符(將反斜杠后面的字符轉變成另外的意義)。如:A、3、好。 字符串型:用雙引號(“”)括起的一個或多個字符。(詳細解釋) 注意:單引號、雙引號必須在英文狀態下書寫。符號常量:用標識符代表常量。 關于標識符:用來標識常量、變量、函數等的字符序列。通俗講就是給常量、變量、函數等用字符或字符串起的一個名字。標識符命名規則如下: 只能由字母、數字、下劃線組成,且第一個字符必須是字母或下劃線;不能和保留字
9、沖突;區分大、小寫。 規范:最好見名知義;常量名大寫、變量名小寫。 定義符號常量的格式: #define 標識符 常量 如:define PRICE 30變量:程序運行時中其值可以改變的量。理解變量 在C程序中變量必須先定義后使用,變量定義的格式:數據類型 變量名; ( 數據類型參看表1) 如 int num,a;float scor,height;char sex;變量的使用:變量的使用要注意以下幾個問題1、定義變量后,雖然沒有賦值,但其內容非空。2、定義變量的同時給變量賦值,稱為初始化。如:int a=3,b=3;char=M;注意:不允許 int a=b=3;3、給變量賦值時,變量原來內
10、容被新內容取代。4、給變量賦值時要注意數值范圍、類型匹配和精度問題。如:num=92345678675756;a=3.6 scor=3.1415926;5、在0-127范圍內char類型和int型通假。 char c=A 和int c=65 一致。6、同一個函數體內不允許2個名字完全相同的變量。隱式轉換 什么情況下發生 運算轉換-不同類型數據混合運算時。 賦值轉換-把一個值賦給與其類型不同的變量時。 輸出轉換-輸出時轉換成指定的輸出格式。 函數調用轉換-實參與形參類型不一致時轉換。 運算轉換規則:不同類型數據運算時先自動轉換成同一類型。顯式轉換(強制轉換) 一般形式:(類型名)(表達式)例:(
11、int)(x+y); (int)x+y;(double)(3/2); (int)3.6 說明:強制轉換得到所需類型的中間變量,原變量類型不變 整型、實型(單、雙精度)、字符型數據間可混合運算。整型、實型(單、雙精度)、字符型數據間可混合運算。例如:例如: 10+10+a a+1.5-8765.1234+1.5-8765.1234* *b b 高高 doublefloat doublefloat long long unsigned unsigned 低低 intchar,shortintchar,short表達式:由運算符和相關操作數組成的式子,如:a+b、 a=34、printf(“/d”,
12、 c/m)、等等。表達式后加分號就變成語句。如: a+b; a=34;printf(“%d”, c/m);學習運算符應注意: 運算符功能 與運算量(操作數)關系 要求運算量個數 要求運算量類型 運算符優先級別 結合方向 結果的類型算術運算符和表達式 基本算術運算符: +、 -、 *、 /、 % 結合方向:從左向右 優先級: - 、* / % 、 + -說明: “-”可為單目運算符時,右結合性 兩整數相除,結果為整數 %要求兩側均為整型數據例 : 5/2 = 2 -5/2.0 = -2.5例 :5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()自增、自減運算符
13、+、 - 作用:使變量值加1或減1 種類: 前置 +i, -i (先執行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再執行i+1或i-1) 說明: + - 不能用于常量和表達式,如5+,(a+b)+ + -結合方向: 自右向左 優先級:- - +、 * * / % / %、+ -+ -例 j+k; (j+)+k;例 -i+ -(i+)i=3; printf(“%d”,-i+); 輸出:-3 賦值運算符和表達式 簡單賦值運算符 符號: = = 格式: 變量標識符=表達式 作用:將一個數據(常量或表達式)賦給一個變量。復合賦值運算符 種類:+= += 、 -= -= 、 * *=
14、 =、 /= /=、 %= %=a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2; 說明: 結合方向:自右向左。 優先級: 14。 左側必須是變量,不能是常量或表達式。 賦值轉換規則:使賦值號右邊表達式值自動轉換成其左邊變量的類型。 賦值表達式的值與變量值相等,且可嵌套。例 3=x-2*y; a+b=3;例 float f; int I; i=10; f=I; 則 f=10.0例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)逗號運算符和表達式 形式:表達式1,表達式2
15、,表達式n 結合性:從左向右。 優先級: 15。 逗號表達式的值:等于表達式n的值。 用途:常用于循環for語句中。例 a=3*5,a*4; a=3*5,a*4,a+5例 x=(a=3,6*3); x=a=3,6*a例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); 關系運算符和表達式 關系運算符 種類: = !=。 結合方向:自左向右。 優先級別:(如圖) 關系表達式的值:用1表示真和用0表示假。=!=優先級6(高)優先級7(低)例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc
16、/a=(bc /a=(bc)例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc 關系運算注意:例 若a=0; b=0.5; x=0.3; 則 a=x43 值為 0例 int i=1, j=7,a; a=i+(j%4!=0); 則a=2例 a0 結果為 1 A100 結果為 0例 注意區分“=”與“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);例 應避免對實數作相等或不等的判斷如 1.0/3.0*3.0=1.0 結果為0可改寫為:fabs(1.0/
17、3.0*3.0-1.0)3&2|8b)&(n=cd)條件運算符與表達式 一般形式: expr1 ? expr2 : expr3 執行過程: 功能:相當于條件語句,但不能取代一般if語句 條件運算符可嵌套: 如 x 0 ? 1 : (xb?a:cd?c:d 相當于: ab?a:(cd?c:d) expr1、expr2、expr3類型可不同,表達式值取較高的類型結構化程序設計的三種基本結構:順序結構、選擇結構循環結構。程序設計應遵守結構化原則。C語句的種類: 控制語句 : 完成一定的控制功能。 函數調用語句: 完成函數調用功能。 表達式語句 : 由各種表達式加分號構成。 空語句 : 只有分號的語句
18、。 復合語句 : 由 多個語句 組成。數據I/O在C語言中的實現 I/O是指從計算機輸入設備(如鍵盤、磁盤、掃描儀等)向計算機輸入數據;由計算機向輸出設備(如顯示器、磁盤、打印機等)輸出數據。(本章只介紹鍵盤輸入和屏幕輸出) C語言本身不提供I/O命令,所有的數據IO都是由庫函數完成的。 C程序的“I/O函數” 均放在stdio.h頭文件中,若在程序中使用這些函數必須在函數體外使用#include 將其包含在源程序中。(格式化輸入/輸出函數除外)printf函數(格式輸出函數)1) 作用:向顯示器輸出若干個任意類型的數據。2) 格式:printf(格式控制,輸出表列)3) 說明: 格式控制是用
19、雙引號括起來的字符串,也稱“轉換控制字符串”,它包括兩種信息: 格式說明:由格式說明:由“% %”和格式字符組成。和格式字符組成。 普通字符:即需要原樣輸出的和轉義的字符。普通字符:即需要原樣輸出的和轉義的字符。 輸出表列是需要輸出的數據,可以是常量 、 變量或表達式,也可以沒有,若有多個輸出項,每項用逗號分隔。4)格式字符:對不同類型的數據用不同的格式字符,有以下幾種: d格式符: 用來輸出十進制整數。 %d 按整型數據的實際長度輸出。 %md m為指定的輸出字段的寬度。(右對齊) %ld 輸出長整型數據。 %mld 輸出長整型數據,m為指定的輸出寬度。 o格式符:以8進制形式輸出整數。符號
20、位被作為8進制的一部分輸出,不會輸出帶負號的8進制數。也可分為%o,%mo ,%lo ,%mlo幾種。 x格式符:以16進制形式輸出整數。同樣不會出現負的 16進制數。也可分為%x ,%mx ,%lx ,%mlx幾種。 u格式符:輸出unsigned型數據。以十進制形式輸出。 c格式符:用來輸出一個字符。 s格式符:用來輸出一個字符串。 %s 按字符串原長輸出。 %ms 輸出字符串占m列,右對齊 %-ms 輸出字符串占m列,左對齊 %m.ns 字符串占m列,但只取左端n個字符,右對齊 %-m.ns 字符串占m列,但只取左端n個字符,左對齊 f格式符:用來輸出以小數形式表示的實數。 %f 指定字
21、段寬度,由系統自動指定,整數部分全部輸出,輸出6位 小數,單精度有效位為7位,雙精度有效位為16位。 %m.nf 輸出數據共占m列,其中有n位小數,右對齊。 %-m.nf 輸出數據共占m列,其中有n位小數,(按四舍五入取舍) 左對齊,右補空格。scanf函數(格式輸入函數)1) 作用:輸入任何類型的多個數據。2) 形式:scanf(格式控制,地址表列)3) 說明: 格式控制與printf函數中的格式控制相同。 地址表列是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。例 main( ) int a,b,c;scanf( %d%d%d ,&a,&b,&c);printf( %d,%d
22、,%dn,a,b,c); “& &”是地址運算符,是地址運算符,&a&a指指a a在內在內存中的地址。存中的地址。“%d%d%d”%d%d%d”表示按表示按十進制整數形式輸入數據,輸入十進制整數形式輸入數據,輸入數據時,在兩個數據之間以一個數據時,在兩個數據之間以一個或多個或多個空格空格間隔,也可以用間隔,也可以用回車回車鍵鍵、跳格鍵跳格鍵TabTab,不能用逗號。不能用逗號。4) 格式說明:格式說明符與printf中相似,需要注意的是除了格式說明符外,若有普通字符則要求原樣輸入。另作幾點說明:(1)在scanf中不能用%u說明符,對無符號型數據,以%d,%o,%x格式輸入。(2)可以指定輸入
23、數據所占列數,系統自動按它截取所需數據。 例如:scanf(%3d%3d,&a,&b); 輸入123456 則自動將123a,456b scanf(%3c,&ch); 輸入abc個字符,把第一個字符a賦給ch(3) %后的“*”附加說明符,用來表示跳過它相應的數據。 例如:scanf(%2d%*3d%2d,&a,&b); 輸入 12 345 67 則將12付給a,67付給b,345被跳過。(4) 輸入數據時不能規定精度。如:scanf(“%7.2f”,&a);非法兩個不常用的字符輸入與輸出函數1. putchar函數(字符輸出函數)1) 作用:向終端輸出一個字符。2) 形式:putchar(c); c可以是字符變量或整型變量。2. getchar函數(字符輸入函數)1) 作用:由終端輸入一個字符。2) 形式:getchar( );函數的返回值為輸入的字符。要注意有變量接收。例如:char c;c=getchar();putchar(c);也可以直接寫成: putchar(getchar();簡單順序程序設計例1:輸入一個華氏溫度,要求輸出攝
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國塑料人字拖鞋數據監測研究報告
- 2025至2030年中國變電站動力環境監控系統數據監測研究報告
- 農作物繁育員考試常見問題與試題及答案
- 2024游泳救生員資格考試方向試題及答案
- 農業植保員職業資格考試2024年試題及答案解析
- 職業素養框架構建2024年體育經紀人試題及答案
- 創新教育區塊鏈技術的應用與案例分享
- 以金融為引擎推動全球化的區塊鏈技術進步
- 辦公空間中的化工安全規劃與實施
- 診所業務培訓課件
- 各科室常見疾病
- 《可復制的領導力》讀書分享
- 《智能建造技術與裝備》 課件 第九章 智能生產與智慧工廠
- 黃連素的合成方法研究
- 2023年全國高中數學聯賽北京賽區預賽試題
- 腫瘤介入治療的圍手術期管理
- 金融違反案例
- 工商銀行營銷培訓課件
- 煤礦人員定位系統管理制度
- 全心智造(廈門)體育用品有限公司體育用品制造項目
- 【基于PLC的搬運機器人系統設計(論文)7400字】
評論
0/150
提交評論