單元程序設(shè)計基礎(chǔ)知識_第1頁
單元程序設(shè)計基礎(chǔ)知識_第2頁
單元程序設(shè)計基礎(chǔ)知識_第3頁
單元程序設(shè)計基礎(chǔ)知識_第4頁
單元程序設(shè)計基礎(chǔ)知識_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單元程序設(shè)計基礎(chǔ)知識主要內(nèi)容2.1數(shù)據(jù)表示2.1.1數(shù)據(jù)類型〔難點〕2.1.2常量〔重點〕2.1.3變量〔重點〕2.2數(shù)據(jù)操作2.2.1運算符與表達(dá)式〔重點難點〕2.2.2類型轉(zhuǎn)換〔難點〕2.3算法與三種根本程序構(gòu)造2.3.2三種根本程序構(gòu)造〔重點難點〕程序設(shè)計根底問題引入通過編程解決問題,其本質(zhì)是對數(shù)據(jù)的操作,這些數(shù)據(jù)可能是數(shù)學(xué)問題中的數(shù)值〔整數(shù)或小數(shù)〕,可能是信息處理中的文字〔字符或字符串〕,也可能是更復(fù)雜的數(shù)據(jù)或文件那么在C語言中如何表示這些數(shù)據(jù)?如何對數(shù)據(jù)間的運算進(jìn)展描述?【引例】根據(jù)三角形的三個邊長,計算三角形的面積,其計算公式為:area=〔其中a、b、c為三角形的三個邊長,s=(a+b+c)/2〕試分析:在這個問題中涉及哪些數(shù)據(jù):;其中量有:;未知量有:。abc2.1數(shù)據(jù)表示

2.1.1數(shù)據(jù)類型2.1.2常量

2.1.3變量

2.1.1數(shù)據(jù)類型2.1數(shù)據(jù)表示計算機處理數(shù)據(jù)信息時,需要明確數(shù)據(jù)到底是什么類型,以便分配適宜的存儲空間,并按照相應(yīng)的規(guī)那么進(jìn)展操作。所以在程序編寫時要對數(shù)據(jù)進(jìn)展明確的類型說明。2.1.1數(shù)據(jù)類型2.1數(shù)據(jù)表示程序演示

運行結(jié)果:【例2-1】計算并輸出半徑為r的圓的面積。#include<stdio.h> //包含標(biāo)準(zhǔn)輸入輸出頭文件voidmain() //主函數(shù){

floatr,area;//數(shù)據(jù)準(zhǔn)備,定義半徑r和面積areaprintf("請輸入半徑:");//提示語scanf("%f",&r); //輸入半徑值rarea=*r*r; //數(shù)據(jù)計算,將結(jié)果賦值給area

printf("該圓的面積為:%f.\n",area);//輸出面積值}數(shù)據(jù)類型:r,area為float〔實型〕變量:r,area常量3.14〔π〕根本數(shù)據(jù)類型有三種:整型(int)字符型(char)實型單精度型〔float〕雙精度型double)2.1.1數(shù)據(jù)類型2.1數(shù)據(jù)表示1.整型2.1.1數(shù)據(jù)類型2.1數(shù)據(jù)表示名稱符號存儲空間數(shù)的范圍短整型short2字節(jié)(16位)-32768~+32767(-215~+215-1)基本整型int2字節(jié)(16位)-32768~+32767(-215~+215-1)4字節(jié)(32位)-2147483648~+2147483647(-231~+231-1)長整型long4字節(jié)(32位)-2147483648~+2147483647(-231~+231-1)無符號短整型unsignedshort2字節(jié)(16位)0~65535(0~216-1)無符號基本整型unsignedint2字節(jié)(16位)0~65535(0~216-1)4字節(jié)(32位)0~4294967295(0~232-1)無符號長整型unsignedlong4字節(jié)(32位)0~4294967295(0~232-1)2.浮點型

浮點型又分為單精度和雙精度。其符號表示、所占存儲空間大小、有效數(shù)字及數(shù)的范圍如表。

2.1.1數(shù)據(jù)類型2.1數(shù)據(jù)表示名稱符號存儲空間有效數(shù)字?jǐn)?shù)的絕對值范圍單精度浮點型float4字節(jié)(32位)6~73.4×10-38~3.4×1038雙精度浮點型double8字節(jié)(64位)15~161.7×10-308~1.7×10308程序的構(gòu)造特點字符型數(shù)據(jù)涵蓋了ASCII碼字符集中每一個字符,包括可直接顯示的字符和32個控制字符,見附錄A。字符型用char表示,占存儲空間1個字節(jié)〔8位〕,實際上存放的是該字符所對應(yīng)的ASCII碼值〔一個整數(shù)〕,所以字符型和整型的關(guān)系非常特殊,二者經(jīng)?!盎齑瞑?,如’A’+1代表字母’B’。2.1.1數(shù)據(jù)類型2.1數(shù)據(jù)表示2.1.2常量2.1數(shù)據(jù)表示常量按照數(shù)據(jù)類型來分有:整型常量浮點型常量字符常量字符串常量按照表現(xiàn)形式來分有:直接常量符號常量1.直接常量(1)整型常量整型常量有十進(jìn)制、八進(jìn)制和十六進(jìn)制三種表示方式,如表2-3所示。

2.1.2常量2.1數(shù)據(jù)表示表示方式前置符號標(biāo)志構(gòu)成示例十進(jìn)制無0~9、正負(fù)號65,-57八進(jìn)制00~7、正負(fù)號032,027,-033十六進(jìn)制0x或0X0~9,a~f(或A~F)、正負(fù)號0x101,0Xff整型常量默認(rèn)為根本整型,可以在整型常量后加小寫字母l或大寫字母L得到相應(yīng)的長整型常量。例30000為int型65536為longint型例(1)20023L(2)06708302(3)0x200xfff0xh31.直接常量(2)浮點型常量浮點型常量有十進(jìn)制小數(shù)和指數(shù)形式兩種表示方式。

2.1.2常量2.1數(shù)據(jù)表示表示方式符號標(biāo)志構(gòu)成示例規(guī)則十進(jìn)制小數(shù)小數(shù)點.0~9、正負(fù)號和小數(shù)點1.23,.23,-1.必須有唯一的小數(shù)點指數(shù)字母e或E0~9、正負(fù)號、e或E1.23e3,1.23E3字母e或E前必有數(shù),e或E后必為整數(shù)eEe2e3、、e是不合法的指數(shù)形式(3)字符型常量用單撇引號括起來的單一字符稱之為字符型常量。轉(zhuǎn)義字符表示時以反斜杠“\〞作為標(biāo)志符號。字符型常量在內(nèi)存中占1個字節(jié)。2.1.2常量2.1數(shù)據(jù)表示例如:1.'a','B','9','*'是合法的直接字符常量。2.單引號、雙引號和反斜杠等具有特殊用途的字符只能用轉(zhuǎn)義字符表示,即'\''、'\"'、'\\'。3.'\n','\030','\x19'是合法的轉(zhuǎn)義字符常量,分別代表回車換行、↑、和↓等控制字符。2.1.2常量2.1數(shù)據(jù)表示表示形式含義\n回車換行(將光標(biāo)移到下一行開頭)\t橫向跳格(Tab)\b退格(將光標(biāo)前移一列)\a警告(產(chǎn)生聲音提示信號)\\輸出反斜杠\\’輸出單引號’\

"輸出雙引號”\dddddd為1至3為八進(jìn)制數(shù),如’\101’代表A,’\37’代表▼符號\xhhHh為1至2位十六進(jìn)制數(shù),如’\x1E’代表▲符號1.直接常量(3)字符型常量--常見的轉(zhuǎn)義字符及其含義如表2-5所示

2.1.2常量2.1數(shù)據(jù)表示1.直接常量(4)字符串常量字符串常量就是用雙撇引號括起來的一串字符序列,字符串中含有的字符個數(shù)是該字符串的長度。字符串存儲時,每個字符占1個字符,并在字符串的結(jié)尾自動加上一個字符串完畢標(biāo)志’\0’,因此字符串的存儲長度比字符串的字符個數(shù)多1。a

a\0例

‘a(chǎn)’“a”例空串“”\02.符號常量符號常量標(biāo)識符通常大寫,以便和其他標(biāo)識符相區(qū)別。另外,宏定義命令和頭文件包含命令一樣都屬于編譯預(yù)處理,需要寫在程序開頭位置。

2.1.2常量2.1數(shù)據(jù)表示#define符號常量標(biāo)識符常量值

#include<stdio.h> #definePI3.14//定義符號常量PI代表voidmain() {floatr,area; printf("請輸入半徑:");scanf("%f",&r); area=PI*r*r; printf("該圓的面積為:%f.\n",area);}2.1.2常量2.1數(shù)據(jù)表示【例2-4】使用符號常量實現(xiàn)【例2-1】——計算并輸出半徑為r的圓的面積。#define符號常量標(biāo)識符常量值【隨堂練習(xí)2-1】1.判斷以下常量表示正確與否?整型常量:32768、037、081、0x4f、0xAH字符型常量:'a'、'101'、65、'\x21'2.字符串常量“Howareyou?\n〞的字符串長度為()個字節(jié),它占用的存儲空間為()個字節(jié)。3.“d:\windows\info.txt〞在C語言程序設(shè)計時應(yīng)描述為()。4.在編程處理物理力學(xué)相關(guān)運算時,常將重力加速度G定義為符號常量,其定義語句可描述為()。2.1.2常量2.1數(shù)據(jù)表示1.變量〔1〕概念:在程序運行過程中其值可以改變的量稱為變量〔2〕變量定義的一般格式為:類型標(biāo)識符變量名1,變量名2,…,變量名n;2.1.3變量2.1數(shù)據(jù)表示注意:變量必須先定義,后使用。數(shù)據(jù)類型,即決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標(biāo)識符例:inta,b,c;floatdata;例1intstudent;stadent=19;/*Undefinedsymbol‘statent’infunctionmain*/

1.變量〔3〕【例2-5】1).floatr,area;2).doublea,b,c;3).inti=1,s;4).longm,k;5).charch;

2.1.3變量2.1數(shù)據(jù)表示變量定義后,系統(tǒng)會根據(jù)變量的類型分配相應(yīng)的存儲空間。

注意區(qū)分變量名與變量值…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3隨機數(shù)1.變量〔4〕【隨堂練習(xí)2-2】1.以下變量定義中合法的是:〔1〕longdo=0xfd;〔2〕intmax=min=0;〔3〕doublef,inta;〔4〕charch="A";2.1.3變量2.1數(shù)據(jù)表示數(shù)據(jù)操作2.2.1運算符與表達(dá)式2.2.2類型轉(zhuǎn)換

運算符:在運算數(shù)據(jù)時,用來表示各種運算的符號

1.運算符的種類1)算術(shù)運算符+-*/%++--2)關(guān)系運算符><==>=<=!=3)邏輯運算符!&&||4)位運算符>><<~|^&5)賦值運算符=及其擴展賦值6)條件運算符?:7)逗號運算符

,8)指針運算符*&2.2.1運算符與表達(dá)式數(shù)據(jù)操作

2.2.1運算符與表達(dá)式數(shù)據(jù)操作運算符含義舉例結(jié)果說明+加法運算符a+ba與b的和無-減法運算符a-ba與b的差無*乘法運算符a*ba與b的乘積由于鍵盤無×號,乘法運算以*代替。/除法運算符a/ba除以b的商由于鍵盤無÷號,除法運算以/代替。注意:兩個整數(shù)相除的結(jié)果為整數(shù),如3/2的結(jié)果為1,舍去小數(shù)部分。%求余運算符a%ba除以b的余數(shù)求余運算%僅用于整數(shù)間的運算,若存在負(fù)整數(shù),則余數(shù)的正負(fù)號與被除數(shù)相同,如-3%2的結(jié)果為-1。++自增1運算符a++或++a使a的值加1++和--為單目運算,且只能用于單一變量運算++a和--a,是在使用a之前,先使a的值加1或減1a++和a--,是在使用a之后,再使a的值加1或減1--自減1運算符a--或--a使a的值減11.算術(shù)運算符和表達(dá)式

1.算術(shù)運算符和表達(dá)式

【例2-6】分析程序輸出結(jié)果。#include<stdio.h> voidmain() {inta=3,b=-5,i=2,j=2;

printf("%d,%d,%d,%d,%d\n",a+b,a-b,a*b,a/b,a%b);printf("%d,%d,%d,%d\n",a++,b--,++i,--j);printf("%d,%d,%d,%d\n",a,b,i,j);}2.2.1運算符與表達(dá)式數(shù)據(jù)操作程序演示

運行結(jié)果:2.賦值運算符和表達(dá)式2.2.1運算符與表達(dá)式數(shù)據(jù)操作簡單賦值運算符:=復(fù)合賦值運算符:+=-=*=/=%=x*=y+8x=x*(y+8)x%=3x=x%3s+=is=s+3說明:賦值運算符左側(cè)必須是變量,不能是常量或表達(dá)式賦值運算時,賦值號右邊表達(dá)式值自動轉(zhuǎn)換成其左邊變量的類型例inti;floatj;i=2.56;//結(jié)果i=2;j=i;//;例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達(dá)式值為5,a,b,c值為5//b=5;a=5//表達(dá)式值11,c=6,a=11//表達(dá)式值10,a=10,b=4,c=6//表達(dá)式值5,a=5,b=10,c=2(1)不同類型數(shù)據(jù)運算時,自動轉(zhuǎn)換成同一類型,再進(jìn)展計算.doublefloatLongunsignedintchar,short低高說明:必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換2.2.2類型轉(zhuǎn)換數(shù)據(jù)操作(2)也可以對數(shù)據(jù)類型進(jìn)展強制轉(zhuǎn)換例(int)(x+y)(int)x+y(double)(3/2)(int)2.6說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d〞,x,i);}結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時可能發(fā)生2.2.2類型轉(zhuǎn)換數(shù)據(jù)操作【隨堂練習(xí)2-3】;intb;b=(int)a;,執(zhí)行該語句后,變量b的值為3,變量a的值還是,并且變量a的類型也不改變,依舊是double類型。2.有定義語句:charch='M';,寫出將變量ch變?yōu)樾懽帜傅谋磉_(dá)式:

。2.2.1類型轉(zhuǎn)換數(shù)據(jù)操作2.3算法與三種根本程序構(gòu)造2.3.1算法及其描述

2.3.2三種基本程序結(jié)構(gòu)1.算法的概念對于計算機程序可處理的問題來說,程序中所用到的數(shù)據(jù)以及對這些數(shù)據(jù)的類型和數(shù)據(jù)組織形式的描述稱之為“數(shù)據(jù)構(gòu)造〞.對數(shù)據(jù)處理所采用的方法和步驟等操作的描述稱為“計算機算法〞。作為程序設(shè)計人員,必須認(rèn)真考慮和設(shè)計數(shù)據(jù)構(gòu)造和操作步驟〔即算法〕。著名計算機科學(xué)家沃思〔NikiklausWirth〕提出一個公式:2.3.1算法及其描述2.3算法與三種根本程序構(gòu)造程序=數(shù)據(jù)構(gòu)造+算法

2.3.1算法及其描述2.3算法與三種根本程序構(gòu)造圖形符號名稱含義起止框算法的起點和終點,是任何流程圖比不可少的輸入、輸出框數(shù)據(jù)的輸入和輸出操作處理框各種形式數(shù)據(jù)的處理判斷框判斷條件是否成立,成立時在出口處標(biāo)注“是”或“Y”,不成立時標(biāo)注“否”或“N”特定過程一個特定過程,如函數(shù)流程線連接各個圖框,表示執(zhí)行的順序連接點表示與流程圖其它部分相連流程圖符號

下面對【例2-1】的算法描述改用流程圖的方法表示

2.3.1算法及其描述2.3算法與三種根本程序構(gòu)造開始結(jié)束計算圓的面積areaarea=3.14*r*r輸入半徑r值輸出面積值area1.順序構(gòu)造順序構(gòu)造指算法的實現(xiàn)過程按照相應(yīng)的步驟依次順序執(zhí)行,直至完畢。順序構(gòu)造是最簡單的一種根本構(gòu)造。2.3.2三種基本程序結(jié)構(gòu)2.3算法與三種根本程序構(gòu)造1.順序構(gòu)造

2.3.2三種基本程序結(jié)構(gòu)2.3算法與三種根本程序構(gòu)造開始結(jié)束計算圓的面積areaarea=3.14*r*r輸入半徑r值輸出面積值area2.選擇構(gòu)造又稱為分支構(gòu)造,此構(gòu)造中必包含一個條件判斷,根據(jù)判斷結(jié)果從兩種或多種路徑中選擇其中的一條執(zhí)行。2.3.2三種基本程序結(jié)構(gòu)2.3算法與三種根本程序構(gòu)造2.選擇構(gòu)造

2.3.2三種基本程序結(jié)構(gòu)2.3算法與三種根本程序構(gòu)造結(jié)束計算圓的面積areaarea=3.14*r*rr是否合

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論