程序設計語言(C) 課程概述 第一章 C語言基礎課件_第1頁
程序設計語言(C) 課程概述 第一章 C語言基礎課件_第2頁
程序設計語言(C) 課程概述 第一章 C語言基礎課件_第3頁
程序設計語言(C) 課程概述 第一章 C語言基礎課件_第4頁
程序設計語言(C) 課程概述 第一章 C語言基礎課件_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程序設計語言(C)課程概述本課程的目的:掌握基本的語法,掌握基本的編程技術,為后續(xù)課程的進一步學習打下良好的基礎。C與C++的基本關系:C++完全兼容C。上機環(huán)境的選擇:TruboC或者VisualC++6.0教材內容的取舍及補充:會有極其少量的內容略過,并且補充部分內容。本課程和計算機等級考試二級C的關系:兩者并不等同,學習課程對考試非常有幫助,但是不是以考試為目標。本課程中涉及C語言與C++的不同之處會給大家指出。[本章重點]學會創(chuàng)建一個簡單VisualC++6.0控制臺程序,掌握C語言的基本數(shù)據(jù)類型以及常量、變量的含義和用法,各種運算符的運算規(guī)則、優(yōu)先級、結合性,各種表達式的含義和用法。[本章難點]理解C語言基本數(shù)據(jù)類型、常量、變量、運算符、表達式的概念及在程序中的用法。

計算機語言(ComputerLanguage)是用于人與計算機之間通訊的語言,是人與計算機之間傳遞信息的媒介。開始使用機器語言來編程,后來為了減小編程的難度,產生了匯編語言。匯編語言的實質和機器語言是相同的,都是直接對硬件操作,只不過容易識別和記憶,所以匯編語言有時又稱為偽機器語言,機器語言和匯編語言被稱為“低級語言”。隨著程序規(guī)的不斷擴大,匯編語言越來越不能滿足人們需要,20世紀50年代,出現(xiàn)了“高級語言”。

它接近人們習慣使用的自然語言和數(shù)學語言。高級語言是目前絕大多數(shù)編程者的選擇,和匯編語言相比,它將許多相關的機器指令合成為單條指令,大大簡化了程序中的指令,同時由于省略了很多細節(jié),編程者也就不需要有太多的專業(yè)知識,更易為人編寫,而且程序的平臺無關性使程序可以方便地被移植到網絡上的不同機器、不同平臺。從計算機編程語言的發(fā)展過程我們可以看出,編程語言的功能越來越強大,程序員的編程工作越來越容易。

在1970年,AT&T貝爾實驗室的KenThompson設計出B語言,1972年美國的DennisRitchie在B語言的基礎上設計發(fā)明了另一種語言,取名為C語言,隨著微型計算機的日益普及,出現(xiàn)了許多C語言版本。

C++是從C語言發(fā)展演變而來的,首先是一個更好的C引入了類的機制,最初的C++被稱為“帶類的C”。1983年正式取名為C++,從1989年開始C++語言的標準化工作,于1994年制定了ANSIC++標準草案,于1998年11月被國際標準化組織(ISO)批準為國際標準,成為目前的C++。目前,有多種開發(fā)環(huán)境供開發(fā)人員選擇使用。提出以下幾點建議:初學者開始一定要調整好自己的心態(tài),不要急于求成,不用怕學不會。不少人在學習之前,可能就聽到了不少人說這門課非常難學。的確,這門課是比較難入門并且不容易學,但肯定能學會。剛開始學習時,應順著教材一步一步的走,先記憶教材上的知識,等到以后學習的內容逐漸增多,再逐漸加深理解,遵循由易入門,逐漸深入的學習方法。勤學多練。不管是初學者還是已經能熟練運用者,在學習新的內容時總會遇到不容易懂的知識點,這時可以采取的方法是多經典書籍推薦C++常見教材C++經典書籍推薦C語言常見教材C語言編程環(huán)境的使用集成開發(fā)環(huán)境(IDE)非常復雜,只需要掌握基本的功能。建立工程時和添加源文件時不要選錯。在機房上機應將文件保存到硬盤其它分區(qū),盡量不要保存在C盤。下機前,保存好文件,便于下次上機繼續(xù)使用。學會基本的調試技術。書寫程序時應遵循的規(guī)則:

各個單詞之間要用空格或其他分界符分開。一條語句占一行,每一條語句都必須以“;”結尾,但預處理命令,函數(shù)頭和花括號“}”之后不加分號。{}都是成對出現(xiàn)的,相匹配的大括號在同一列,括起來的語句,通常表示程序的某一層次結構,內部再嵌套{}時,應進行縮進排列,以便看起來層次清晰,增加程序的可讀性;縮進是指程序在書寫時不要將

程序的每一行都由第一列開始,在適當?shù)牡胤郊舆M一些空行或空格,它同注釋一樣,也是為了提高程序的可讀性。邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性,注釋的內容要清楚、明了,含義準確,防止注釋二義性,注釋行與代碼行盡量分行書寫。嚴格區(qū)分大小寫,兩個詞只有在包括大小寫都完全相同的情況下才代表同一目標(一)基本字符集

字符是組成語言的最基本的元素。C語言字符集由字母、數(shù)字、空格、標點和特殊字符組成。在字符常量、字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號,在其他部分只能使用由字符集中的字符組成的符號。字母:小寫字母a~z共26個,大寫字母A~Z共26個數(shù)字:0~9共10個空白符:空格符、制表符、換行符等統(tǒng)稱為空白符。空白符只在字符常量和字符串常量中起作用,在其它地方出現(xiàn)時,只起間隔作用,編譯程序對它們忽略不計。因此在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當?shù)牡胤绞褂每瞻追麑⒃黾映绦虻那逦院涂勺x性。標點和特殊字符:!#%^&*_(下劃線)+=-~<>/\'",.;()[]{}標識符命名的基本規(guī)則

標識符命名盡量做到顧名思義,盡量用英文表達出標識符的功能。變量命名要符合“匈牙利法則”,即開頭字母用變量的類型,其余部分用變量的英文意思或其英文意思的縮寫,盡量避免用中文的拼音,要求每個單詞的第一個字母應大寫,對于變量作注釋時可緊跟在變量的后面說明變量的作用,例如用變量cStudentName代表學生的名字,用變量cTeacherName代表教師的名字;函數(shù)的命名應該盡量用英文表達出函數(shù)完成的功能,遵循動賓結構的命名法則,函數(shù)名中動詞在前,例如用DrawPicture命名繪圖函數(shù)的名字。關鍵字

關鍵字是由C語言規(guī)定的具有特定意義的字符串,程序員只能按系統(tǒng)已定義好的用法去使用,因此通常也稱為保留字。C語言的關鍵字分為以下3類:類型說明符用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結構的類型,常用的類型說明符有autoboolcharclassconstenumexternfloatfriendintlongnamespaceprivateprotectedpublicregistershortsignedstaticstructtemplatetypedeftypenameunionunsignedvirtualvoid

等。

語句定義符用于表示一個語句的功能,常用的語句定義符有breakcasedefaultdo

等。預處理命令字用于表示一個預處理命令,在程序中使用時前面都以“#”來引導,常用的預處理命令字有defineincludeundef等。分隔符

在C語言中采用的分隔符有逗號和空格兩種,一定要英文標點狀態(tài)下輸入。逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量。空格多用于語句各單詞之間,作間隔符。在關鍵字,標識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤,例如把intiStudentNum寫成intiStudentNum,編譯器會把intiStudentNum當成一個標識符處理,其結果就會出錯。注釋符C/C++語言的注釋符有///**/共三個。注釋有兩種書寫方式:一種是以“//”開始的行,則該行為注釋;另一種是以“/*”開始,從該標志起,直到遇到結束注釋標志“*/”,在“/*”和“*/”之間的內容全是注釋,這個方式常用于注釋內容較多的情況。程序編譯時,不對注釋作任何處理。注釋可出現(xiàn)在程序中的任何位置。在調試程序時,對暫不使用的語句也可用注釋符括起來,待調試結束后再去掉注釋符。常量和變量在程序運行過程中,其值不能被改變的量稱為常量(包括字面常量(直接常量)和符號常量)。其值可以改變的量稱為變量。一個變量應該有一個名字,在內存中占據(jù)一定的存儲單元。在該存儲單元中存放變量的值。存儲單元在程序中可以根據(jù)需要賦予不同的數(shù)值,所以變量值是可以變化的,但是變量必須先定義后使用。常量和符號常量

常量區(qū)分為不同的類型,如12,0,-3為整型常量,4.6、-1.23為實型常量,‘a’,‘d’為字符常量。常量一般從其字面形式即可判別。這種常量稱為字面常量或直接常量。可以用一個標識符代表一個常量,稱為符號常量,即標識符形式的常量。請注意符號常量不同于變量,它的值在其作用域內不能改變,也不能再被賦值。如:#defineprice30數(shù)據(jù)類型

—整型數(shù)據(jù)及取值范圍類型 說明符 位數(shù) 數(shù)值范圍 短整 short 16 -32768~32767基本 int 32 -231~(231-1)長整 long 32 -231~(231-1)無符號

unsignedshort 16 0~65535

unsignedint 32 0~(232-1)

unsignedlong 32 0~(232-1) 數(shù)據(jù)類型——實型數(shù)據(jù)floatv,r,h;r=2.5;h=3.2;v=3.14159*r*r*h數(shù)據(jù)類型

——字符型數(shù)據(jù)字符常量單引號括起來的一個字符,如:'a','D','?','$'字符變量用來存放字符常量

例:charc1,c2;

c1='a';

c2='A';字符數(shù)據(jù)在內存中的存儲形式以ASCII碼存儲,占1字節(jié),用7個二進制位字符數(shù)據(jù)的使用方法字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運算。字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。字符串常量例:"CHINA"

"a"

'a'所以:charc;

c="a";CHINA\0a

\0aPage37數(shù)據(jù)類型

——字符型數(shù)據(jù)數(shù)據(jù)類型

——布爾型數(shù)據(jù)布爾型變量的說明:

例:boolflag;布爾型數(shù)據(jù)的取值:

只有false和true兩個值變量的定義數(shù)據(jù)類型變量名標識符1,變量名標識符2,……;boolflag;//定義了一個布爾變量flaginta,b,c;//定義了三個整型變量a、b、ccharc5,c6;//定義了兩個字符變量c5、c6關于變量定義需要說明的是:1)在同一個程序塊中,或者說在一對{}的同一層次內,不能有兩個相同的變量名。2)沒有字符串變量類型,字符串是用字符類型的數(shù)組或指針來定義,在以后學習。3)變量的定義比較自由,可以隨時定義,但一般在程序開始位置或函數(shù)體語句前面定義。4)在不同位置定義的變量,作用范圍不同。使用變量前對變量賦值的過程稱為變量初始化,可以在定義變量時同時初始化變量,例如:inta=10,b=20;//定義了二個整型變量a、bcharc5=’d’;//定義了一個字符變量c5,charc6=’\n’;//定義了一個字符變量c6,初值為

//換行符也可以在定義以后對變量進行賦值定義變量以后再賦值,例如:inta,b;//定義了三個整型變量a、bcharc5;//定義了字符變量c5a=10;b=20;//a、b、c初值分別為10、20、30算術運算符與算術表達式基本算術運算符

+-*/(若整數(shù)相除,結果取整)%(取余,操作數(shù)為整數(shù))優(yōu)先級與結合性先乘除,后加減,同級自左至右++,--(自增、自減)例:i++;--j;簡單的賦值運算符"="舉例

n=n+5表達式的類型:等號左邊對象的類型表達式的值:等號左邊對象被賦值后的值i=m=n=8//變量i、m、n的值都為8,

//表達式的值也為8,

//此表達式等價于i=(m=(n=8))復合的賦值運算符有10種復合運算符:

+=,-=,*=,/=,%=,

<<=,>>=,&=,^=,|=例

a+=3等價于a=a+3

x*=y+8等價于x=x*(y+8)關系運算關系運算是比較簡單的一種邏輯運算,優(yōu)先次序為:

<<=>>===!=

優(yōu)先級相同(高)

優(yōu)先級相同(低)關系表達式是一種最簡單的邏輯表達式其結果類型為bool,值只能為true(非0)或false(0)。例如:a>b,c<=a+b,x+y==3邏輯運算邏輯運算符

!(非)&&(與)||(或)

優(yōu)先次序:高→低邏輯表達式

例如:(a>b)&&(x>y)

其結果類型為bool,值只能為true(非0)或false(0)條件運算符一般形式表達式1?表達式2:表達式3表達式1必須是bool類型執(zhí)行順序先求解表達式1,若表達式1的值為true,則求解表達式2,表達式2的值為最終結果若表達式1的值為false,則求解表達式3,表達式3的值為最終結果注意:條件運算符優(yōu)級高于賦值運算符,低于邏輯運算符表達式2、3的類型可以不同,條件表達式的最終類型為2和3中較高的類型。例:x=a>b?a:b;①②逗號運算格式表達式1,表達式2求解順序及結果先求解1,再求解2,最終結果為表達式2的值例a=3*5,a*4最終結果為60運算符優(yōu)先級括號++,--,sizeof*,/,%+,-==,!=位運算&&||?:賦值運算逗號運算低高運算時的自動轉換

進行算術運算時計算機將數(shù)據(jù)類型從低類型到高類型進行轉換charshortintlongfloatdouble

低高賦值運算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會自動將右值轉換為左值的類型。強制類型轉換語法形式:類型說明符(表達式)或(類型說明符)表達式強制類型轉換的作用是將表達式的結果類型轉換為類型說明符所指定的類型。需要說明的是在強制類型轉換時,得到一個所需類型的中間變量,原來變量的類型未發(fā)生變化。表達式的書寫

表達式的書寫應注意以下幾點:表達式要在同一行書寫,計算公式要分解為正確的表達式。例如:數(shù)學中計算數(shù)a的平方在C語言編程時的寫法是:a*a或者用計算冪的函數(shù)pow(),所需頭文件是<math.h>,寫法是pow(a,2)。乘號*不能省略,也不能用·

代替。表達式中只能使用圓括號,不能使用其它括號。書寫比較復雜的表達式時,要盡量多寫括號,把運算的優(yōu)先級固定住,避免出現(xiàn)表達式二義性。

表達式語句格式:表達式;表達式語句與表達式的區(qū)別:表達式可以包含在其它表達式中,而語句不可。例:if((a=b)>0)t=a;不可寫為:if((a=b;)>0)t=a;復合語句將多個語句用一對大括號包圍,便構成一個復合語句例如{ sum=sum+i; i++;} 數(shù)據(jù)的輸入輸出的概念

在編程時,數(shù)據(jù)的輸入輸出是相對計算機而言,數(shù)據(jù)的輸入就是把外部的數(shù)據(jù)傳輸?shù)接嬎銠C中,數(shù)據(jù)的輸出是把計算機中的數(shù)據(jù)傳輸?shù)酵獠浚畛R姷妮斎朐O備是鍵盤,輸出設備是屏幕。在編程時,有多種方法實現(xiàn)數(shù)據(jù)的輸入輸出。在有圖形界面的程序中數(shù)據(jù)的輸入輸出一般是用控件來實現(xiàn),如標簽、文本框、表格、報表控件等來實現(xiàn)的。C++語言的輸入輸出要使用頭文件:#include”iostream.h”向標準輸出設備(顯示器)輸出例:intx,y;cout<<“x=“<<x<<“y=”<<y;從標準輸入設備(鍵盤)輸入例:intx,y;cin>>x>>y;或者cin>>x;cin>>y;或者使用頭文件:#include”iostream”usingnamespacestd;//使用命名空間C語言的輸入輸出要包含頭文件:#include"stdio.h"stdio.h是standardinput&output的縮寫輸入使用scanf()函數(shù),輸出使用printf()函數(shù)

printf函數(shù)的一般格式為printf(格式控制,輸出表列)

如:printf(“%d,%c\n”,i,c);括弧內包括兩部分:(1)“格式控制”是用雙引號括起來的字符串,也稱“轉換控制字符串”,它包括兩種信息:①格式說明,由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數(shù)據(jù)轉換為指定的格式輸出。格式說明總是由“%”字符開始的。②普通字符,即需要原樣輸出的字符。例如上面printf函數(shù)中雙引號內的逗號、空格和換行符。(2)“輸出表列”是需要輸出的一些數(shù)據(jù),可以是表達式。不同類型數(shù)據(jù)用不同的格式字符。常用的如下:d格式符。用來輸出十進制整數(shù)。

%d,按整型數(shù)據(jù)的實際長度輸出。(2)c格式符,用來輸出一個字符。如:

char

c='a';

printf("%c",c);輸出字符‘a’,請注意:“%c”中的c是格式符,逗號右邊的c是變量名,不要搞混。(3)s格式符,用來輸出一個字符串例如:printf("%s","china")輸出“china”字符串(不包括雙引號)。輸入的一般形式scanf(格式控制,地址表列)“格式控制”的含義同printf函數(shù);“地址表列”是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。用scanf函數(shù)輸入數(shù)據(jù)。voidmain(){

int

a,b,c;

scanf("%d%d%d",&a,&b,&c);

printf("%d,%d,%d\n",a,b,c);}&a、&b、&c中的“&”是“地址運算符”,&a指a在內存中的地址。上面scanf函數(shù)的作用是:按照a、b、c在內存的地址將a、b、c的值存進去。變量a、b、c的地址是在編譯連接階段分配的。“%d%d%d”表示按十進制整數(shù)形式輸入數(shù)據(jù)。輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可以用回車鍵、跳格鍵tab。下面輸入均為合法:①3

4

5②3

45③3(按tab

溫馨提示

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

評論

0/150

提交評論