c语言的程序灵魂是什么,C语言 第二章 程序的灵魂--算法
《C語(yǔ)言 第二章 程序的靈魂--算法》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言 第二章 程序的靈魂--算法(39頁(yè)珍藏版)》請(qǐng)?jiān)谌巳宋膸?kù)網(wǎng)上搜索。
1、第二章 程序的靈魂-算法,什么是程序? 計(jì)算機(jī)是機(jī)器-在求解某一問(wèn)題時(shí)-需要有相應(yīng)程序-程序是用計(jì)算機(jī)能夠識(shí)別的語(yǔ)言表示出的如何求解問(wèn)題的一段“文章”-因?yàn)闆](méi)有程序的計(jì)算機(jī)是不知如何求解問(wèn)題的。,那如何寫(xiě)出程序呢? 一是:學(xué)習(xí)掌握計(jì)算機(jī)能夠識(shí)別的語(yǔ)言 二是:求解問(wèn)題的方法步驟-算法 三是:將兩者的結(jié)合,即用計(jì)算機(jī)語(yǔ)言將求解問(wèn)題的方法步驟表達(dá)出來(lái)即寫(xiě)出程序。 程序是用計(jì)算機(jī)語(yǔ)言表達(dá)的算法。 程序設(shè)計(jì)首先要進(jìn)行的是算法設(shè)計(jì),2.1 算法的概念 算法就是求解問(wèn)題的方法步驟。算法從時(shí)間和空間兩個(gè)方面有不同的性質(zhì)。 同一個(gè)問(wèn)題有不同的算法,所以評(píng)價(jià)一個(gè)算法就有優(yōu)劣之分。 如:1+2+3+100 時(shí)間性、。
2、可讀性等,2.2 算法舉例 例1:求1*2*n即n! S1:使p=1 S2:使i=2 S3:給定n的值 S4:使p*i,將乘積存入p,表示為p*i=i S5:使i的值增加1,即i+1=i S6:如果i不大于n,返回重新執(zhí)行步驟S4,以及其后的S5和S6,最后得到p的即是n!的值. S7:打印p,即是程序運(yùn)行結(jié)果,例2:求1+1/2+1/3+1/100 如果題目變?yōu)? 1-1/2+1/3-1/100,2.3 算法特性 1、有窮性 2、確定性 3、有效性 4、0或多個(gè)輸入 5、1或多個(gè)輸出,2.4 算法表示 1、用自然語(yǔ)言 2、用流程圖 3、用偽代碼 4、用計(jì)算機(jī)語(yǔ)言 作業(yè): P37 2.2 2.。
3、4(1)、(3)、(8),第三章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式,3.1 C數(shù)據(jù)類型 一個(gè)程序應(yīng)包括兩個(gè)方面的內(nèi)容 1、對(duì)處理數(shù)據(jù)的描述(數(shù)據(jù)結(jié)構(gòu)) 2、對(duì)處理數(shù)據(jù)的操作(算法描述) Wirth提出的公式: 程序=數(shù)據(jù)結(jié)構(gòu)+算法 C提供的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的,由于算法千變?nèi)f化,程序要處理的數(shù)據(jù)(對(duì)象)也是多種多樣,在程序設(shè)計(jì)語(yǔ)言中就將數(shù)據(jù)處分為不同的類型,如數(shù)值型(int、float等)、非數(shù)值型(char等)不同類型數(shù)據(jù)在內(nèi)存的存貯方式上、運(yùn)算方式上都是不同的。所以在對(duì)處理方法描述之前,要對(duì)處理過(guò)程中涉及到的數(shù)據(jù)進(jìn)行類型說(shuō)明。 對(duì)各種類型的數(shù)據(jù),有兩種存在形式即:常量和變量。,C程序要處。
4、理的各種數(shù)據(jù) 一、有類型之分,所以要進(jìn)行類型說(shuō)明,其作用有二,一是知其存貯方法,二是知其運(yùn)算方式。 二、無(wú)論何種類型數(shù)據(jù),在程序中都有兩種出現(xiàn)形式,即常量和變量,3.2 常量與變量 3.2.1常量和符號(hào)常量 常量定義 常量類型:-3,4.6,a 常量的形式:以常量形式直接出現(xiàn); 符號(hào)常量:#define PRICE 35 程序中出現(xiàn)35處可以常量名(符號(hào)) PRICE形式出現(xiàn)。符號(hào)常量名用大寫(xiě),變量名用小寫(xiě)。,3.2.2 變量 其值可以改變的量稱為變量。變量要有一個(gè)名字。變量名和變量值的區(qū)別。 用來(lái)標(biāo)記變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、文件名和有效字符序列稱為標(biāo)識(shí)符。 C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由。
5、字母、數(shù)字和下劃線三種字符組成。且第一個(gè)字符必須是字母或下劃線,長(zhǎng)度的規(guī)定 合法名、大小寫(xiě)被認(rèn)為是不同的字符。,在C語(yǔ)言中,要求對(duì)所有用到的變量作強(qiáng)制定義,也就是“先定義、后使用” 其意義有三: 1、保證變量名使用正確 2、根據(jù)類型分配存貯單元 3、根據(jù)類型判斷其運(yùn)算是否合法,3.3 整型數(shù)據(jù) 3.3.1 整形常量 整形常量即整形數(shù)。有三種形式: 1、十進(jìn)制形式 如123 2、八進(jìn)制形式 以0開(kāi)頭,如0123 3、十六進(jìn)制形式 以0 x開(kāi)頭,如0 x123 3.3.2 整型變量 一、整型變量的分類 1、基本型,以int表示(integer),2、短整型,以short int表示,或short表。
6、示 3、長(zhǎng)整型,以long int表示,或long表示 4、無(wú)符號(hào)型,又分無(wú)符號(hào)整形、短整型和長(zhǎng)整型,分別以u(píng)nsigned int、 unsigned short和unsigned long表示 C規(guī)定各類數(shù)據(jù)所占字節(jié)數(shù)。 二、整型變量的定義 int a,b; unsigned short c,d; long e,f;,三、整型常量的類型 整型常量與整型變量之間的匹配關(guān)系 四、整型量的運(yùn)算 進(jìn)行各種類型的算術(shù)運(yùn)算 3.4 實(shí)型數(shù)據(jù) 3.4.1實(shí)形常量 實(shí)數(shù)在C中又稱浮點(diǎn)數(shù)。實(shí)數(shù)有兩種形式: 1、十進(jìn)制數(shù)形式:它由數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))。,如12.9,34.0或34. 2、指數(shù)形式:。
7、123e3或123E3。注意的是E(或e)之前必須有數(shù)字且E后面指數(shù)必須是整數(shù)。 3.4.2 實(shí)形變量 實(shí)型變量分類與類型說(shuō)明 分為兩類:單精度(float)和雙精度(double) 類型說(shuō)明語(yǔ)句: float x,y; double z;,在一般的系統(tǒng)中,一個(gè)float型數(shù)據(jù)在內(nèi)存中占32位,一個(gè)double型數(shù)據(jù)在內(nèi)存中占64位. 數(shù)據(jù)的范圍和精度、實(shí)型常量不分float和double 實(shí)型量的運(yùn)算 3.5 字符型數(shù)據(jù) 3.5.1字符常量 C的字符常量有兩種形式: 1、C的字符常量是用單引號(hào)(即撇號(hào))括起來(lái)的一個(gè)字符。如A,a等,2、特殊形式的字符常量,就是以開(kāi)頭的字符序列。如n代表一個(gè)“。
8、換行”符。因?yàn)橛行┓秋@示字符難以用一般形式的字符表示,故規(guī)定用這種特殊形式表示。 以開(kāi)頭的特殊字符見(jiàn)表,“轉(zhuǎn)義字符” 自己看例2.3 3.5.2 字符變量 字符變量用來(lái)存放字符常量。只能放一個(gè)字符。字符變量的定義: char c1,c2;,一個(gè)字符變量占用一個(gè)字節(jié)的內(nèi)存空間。 3.5.3 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用方法 字符是以ASCII形式放在內(nèi)存單元中的。由于它在存儲(chǔ)形式上與整數(shù)存貯形式相類似。C就使char數(shù)據(jù)與int數(shù)據(jù)可以通用。 例2.4 main() char c1,c2; c1=97;c2=98; printf(“%c %c”, c1,c2); 其中:“%c”是輸出字符的。
9、格式符,例2.5 main() int i; char c; i=a; c=97; printf(“%c %d”, c,c); 程序執(zhí)行的輸出結(jié)果,3.5.4 字符串常量 字符串常量是一對(duì)雙括號(hào)括起來(lái)的字符序列。如:“How do you do.”,“CHINA”等。 可以輸出一個(gè)字符串,如: printf(“How do you do.”); 要注意的是:“A”與A不同。 在C中沒(méi)有專門(mén)的字符串變量,需要用字符數(shù)組。,3.6 變量賦初值 程序中需要對(duì)一些變量預(yù)先設(shè)置初值。C中可在定義變量時(shí)同時(shí)使變量初值化。 如: int a=4; float h=3.567; char c=a; 它等同于:。
10、 int a; a=4;,3.7 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 數(shù)值型是整型與實(shí)型的總稱。 各類int、float和double數(shù)據(jù)可以混合運(yùn)算。由于char與int型通用,因此,int、float、double與char間可以混合運(yùn)算。 例如: 10+a+1.5-8.68* b 是合法的。 但:在運(yùn)算前,計(jì)算機(jī)要將不同類型的數(shù)據(jù)先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。 轉(zhuǎn)換規(guī)則是:,類型數(shù)據(jù)總結(jié) 一、常量和變量 常量的形式、標(biāo)識(shí)符 二、變量 1、定義(說(shuō)明) 2、內(nèi)存中的存貯形式、導(dǎo)致數(shù)據(jù)范圍(精度) 3、int與char異同點(diǎn) 三、不同類型的數(shù)據(jù)運(yùn)算方式不同,3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 3.8.。
11、1 C運(yùn)算符簡(jiǎn)介 C運(yùn)算符范圍很寬,除了控制語(yǔ)句和輸入輸出以外的幾乎所有操作都作為運(yùn)算符處理。分為下面幾類: 1、算術(shù)運(yùn)算符 2、關(guān)系運(yùn)算符! 3、邏輯運(yùn)算符 ! int i; x=3.6; i=(int)x printf(“x=%f,i=%d”,x,i); ,從上可知:有兩種類型轉(zhuǎn)換,一種是運(yùn)算時(shí)不必用戶指定,而由系統(tǒng)按規(guī)則自動(dòng)進(jìn)行類型轉(zhuǎn)換;另一種是強(qiáng)制類型轉(zhuǎn)換。 四、自增、自減運(yùn)算符 該運(yùn)算符的作用是使變量值增1或減1,如: +i,-i 是一種形 i+,i- 式的表達(dá)式 粗看, +i和 i+都相當(dāng)于i=i+1,但有不同之處,表達(dá)式的值什么,i的值是多少,如i=2,則+i表達(dá)式的值為3,i值。
12、也為3; 而i+表達(dá)式的值為2,i值卻為3 注意: (1)自增自減運(yùn)算符的運(yùn)算對(duì)象只能是變量,不能是常量或表達(dá)式。如5+或 +(a+b)都是不合法的。 (2)+和-的結(jié)合方向是“自右至左”。如:-i+,相當(dāng)于-(i+) 五、有關(guān)表達(dá)式使用中的問(wèn)題說(shuō)明 1、表達(dá)式中包含自加或自減時(shí)的理解,如:若i=3 (i+)+ (i+)+ (i+)=? i=? (+i)+ (+i)+ (+i)=? i=? 2、表達(dá)式的理解問(wèn)題 問(wèn)題一:i+j 編譯系統(tǒng)將其理解為(i+)+j還是i+(+j)呢? 問(wèn)題二: main() int i=3; printf(%d %dn,i,i+);,3.9 賦值運(yùn)算符與賦值表達(dá)式 。
13、一、賦值符號(hào)“=”的作用,將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如:c=k; 二、對(duì)賦值運(yùn)算符兩側(cè)的類型不一致時(shí),類型轉(zhuǎn)移問(wèn)題。 例: main() unsigned a;int b=-1; a=b;printf(“%u”,a); 注:這部分內(nèi)容理解有一個(gè)前提。,三、復(fù)合的賦值運(yùn)算符 在賦值號(hào)之前加上其它運(yùn)算符,構(gòu)成復(fù)合運(yùn)算符。 如:a+=3 理解為 a=a+3 x*=y+8 理解為 x=x*(y+8) ? 四、賦值表達(dá)式 賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子,一般形式為 注意:,(1)賦值運(yùn)算符有兩種 (2)賦值表達(dá)式作用有二。一是使變量得值;二是使“賦值表達(dá)式”得值。 將賦值表達(dá)式做為表達(dá)式的一種 main() int a,b; a=1; b=a+=3; a-=a+=a*a; printf(%d %dn,a,b);,3.10 逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式 逗號(hào)表達(dá)式的一般形式 表達(dá)式1,表達(dá)式2 如:3+5,6+8 a=3*5,a*4 逗號(hào)表達(dá)式求值過(guò)程是:先求表達(dá)式1的值,再求表達(dá)式2的值。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。 式1:x=(a=3,6*a) 式2: x=a=3,6*a,重點(diǎn)內(nèi)容 1、數(shù)據(jù)類型,為什么要進(jìn)行類型說(shuō)明? 2、變量及變量名、標(biāo)識(shí)符 3、表達(dá)式概念(算術(shù)、賦值和逗號(hào))、表達(dá)式求值、運(yùn)算符優(yōu)先級(jí)、運(yùn)算符的結(jié)合性 習(xí)題 3.2, 3.10 ,3.12。
總結(jié)
以上是生活随笔為你收集整理的c语言的程序灵魂是什么,C语言 第二章 程序的灵魂--算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 白术的功效与作用及禁忌
- 下一篇: c语言蓝桥杯矩阵乘法,蓝桥杯 基础练习