




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計主講人:楊丹、劉斌、張靜常州信息職業技術學院單元一程序設計基礎
教學目標
【知識目標】1.了解C語言的特點,初步熟悉C語言程序開發過程和VC++上機步驟;2.理解語句的概念,了解C語言的可執行語句和return語句;3.領會標識符的命名規則、C函數的定義和結構;4.掌握C語言程序的結構、主函數的結構和程序執行的過程;5.理解函數的定義、調用、聲明及三者之間的關系和區別,理解參數傳遞的過程;單元一程序設計基礎
【知識目標】6.理解和掌握整型常量、實型常量、字符常量、字符串常量及其表示方法和符號常量的定義及使用;7.掌握變量的定義、賦值和初始化;8.了解整型變量、實型變量、字符型變量在內存中的存儲形式、存儲長度和取值范圍;9.弄清自動變量、靜態變量和外部變量的生存周期和作用域;10.熟練掌握算術運算、賦值類運算等各種運算的運算規則、運算符的優先級別和結合方向;11.領會算術表達式、賦值表達式和逗號表達式的值及計算過程。單元一程序設計基礎
教學目標
【能力目標】1.初步熟悉VC++程序開發環境;2.能夠在所編寫的程序中正確的定義和使用變量;3.能夠用C語言表達式表達實際問題,模仿編寫簡單應用問題的程序代碼;4.能夠初步對C語言程序進行調試。引例描述
單元一程序設計基礎
求給定三位整數的各位數碼。對給定的一個三位整數,求出這個三位數的各位上的數碼,如:386,求得的結果是:百位數碼是3,十位數碼是8,個位數碼是6。引例演示
1.1C語言程序開發過程
一、C語言的特點1.使用簡潔、靈活、方便2.運算符豐富、表達能力強3.數據類型豐富4.以函數作為模塊單位5.允許直接訪問物理地址6.生成目標代碼質量高7.可移植性好
1.1C語言程序開發過程
二、程序開發過程
1.編輯2.編譯3.連接4.執行
編輯編譯連接執行編寫輸入源程序
.cpp
.obj
.exe結果1.1C語言程序開發過程
三、VisualC++上機步驟
第一步:進入visualC++6.0用戶界面。第二步:建立項目文件。第三步:建立源程序文件。第四步:編譯源程序。第五步:生成可執行文件。第六步:執行程序。【例1-1】求兩個整數的和的c語言程序如下,對其進行編輯、編譯、連接、執行。1.1C語言程序開發過程
#include<stdio.h>intSum(intx,inty);intmain(){ inta,b,s; printf("請輸入兩個整數:");
scanf("%d%d",&a,&b); s=Sum(a,b); printf("兩個整數和是:%d\n",s); return0;}intSum(intx,inty){ intz; z=x+y;
returnz;}1.2函數及其結構
一、函數的定義(一)語句1.說明語句2.可執行語句⑴表達式語句⑵函數調用語句⑶空語句⑷復合語句⑸流程控制語句
1.2函數及其結構
一、函數的定義(二)函數的定義函數定義的一般格式:返回值類型函數名(參數類型1形式參數1,…,參數類型N形式參數N){ 數據定義部分 數據操作部分
}
標識符的命名規則:以字母或下劃線開頭,由字母、數字、下劃線組成。1.2函數及其結構
二、函數調用1.函數調用的一般格式
被調函數名(實際參數表)其中,實際參數簡稱為實參,實參表可由一個或多個實參組成,但必須與形參的個數和類型一致,兩個實參之間用逗號分隔。2.參數傳遞
在進行函數調用時,把實參的值傳遞給對應的形參,所以,每個實參在函數調用之前都必須有確定的值。3.函數調用的作用1.2函數及其結構
三、函數聲明1.函數聲明的格式
類型標識符函數名(形參表);其中⑴函數聲明是一個說明語句必須在結尾加分號,其它與函數定義中的函數頭完全相同。⑵如果被調用函數寫在主調函數之前,函數聲明可省略不寫,但應該養成書寫函數聲明的良好習慣。2.函數聲明的作用1.2函數及其結構
四、return語句
1.return語句的一般格式
return(表達式);其中⑴一對圓括號可省略不寫。⑵當函數沒有返回值時,表達式甚至整個返回語句可省略不寫。2.return語句的作用
使程序流程從被調函數返回到主調函數的函數調用處,并將被調函數的返回值帶回到函數調用處。1.2函數及其結構
五、主函數的結構C語言的主函數的一般格式:intmain(){ 數據定義 數據輸入 函數調用 數據輸出 return0;}1.2函數及其結構
六、程序的執行過程
C語言程序總是從主函數main()開始執行,依次執行主函數函數體內的每一個可執行語句,直到最后一個右花括號程序才執行完畢。1.2函數及其結構
七、注釋在VC++環境中,注釋有兩種:1.以/*開頭,以*/結束,中間寫待注釋的內容。2.以//開頭,在其后寫待注釋的內容。注釋的作用:增強程序的可讀性和用于對程序進行調試。1.2函數及其結構
【例1-2】以下C語言程序的功能是:對用戶輸入的矩形邊長求矩形的周長。體會函數定義、調用、聲明和注釋的使用,理解程序執行和參數傳遞過程。
程序執行和參數傳遞過程:#include<stdio.h>intPerimeter(intx,inty);//函數Perimeter的聲明intmain(){ intlength,wide,pmt; printf("請輸入矩形的長和寬:"); scanf("%d%d",&length,&wide);//假設用戶輸入53 pmt=;
printf("矩形的周長是:%d\n",pmt); return0;}/*以下是函數Perimeter的定義*/intPerimeter(intx,inty){ intz; z=;
returnz;}lengthwide**pmt*53Perimeter(length,wide)x*y*z*532*x+2*y1616//函數調用161.3數據描述一、常量(一)整型常量及表示法1.十進制整型常量:2.十進制長整型常量:3.八進制整型常量:4.八進制長整型常量:5.十六進制整型常量:6.十六進制長整型常量:用數碼0~9表示的十進制整數在十進制整型常量后加小寫字母l或大寫字母L表示的數以數字0開頭用數碼0~7表示的整數,開頭的數字0代表所表示的數為八進制數在八進制整型常量后加小寫字母l或大寫字母L表示的數以數字0和小寫字母x或大寫字母X開頭,用數碼0~9或小寫字母a~f或大寫字母A~F表示的十六進制整數,0x代表所表示的數為十六進制數在十六進制整型常量后加小寫字母l或大寫字母L表示的數【示例】32,-7等都是十進制整型常量。【示例】64L,65783l等都是十進制長整型常量。【示例】027,036,-015等都是合法的八進制整型常量,而049是不合法的八進制整型常量,因為,049中有數碼9。【示例】032l,057L等都是八進制長整型常量。【示例】0xa8,0X59,-0X39等都是十六進制整型常量,而0xag,2f等都不是合法的十六進制整型常量,因為0xag中有符號g;2f前沒有0x。【示例】0XFFl,0x64L等都是十六進制長整型常量。1.3數據描述一、常量(二)實型常量及表示法1.十進制小數形式:由數碼0~9、正負號和小數點(必須有小數點)組成的十進制小數表示的實數。2.指數形式:由尾數、字母e或E、階碼三部分組成,其中尾數為十進制小數或整數,階碼為1位或2位的十進制(有符號)整數。【示例】3.14,-0.271,0.0,0.,.6等都是十進制小數形式的實型常量。【示例】3.14159e2表示十進制數3.14159×102,31415.9E-2表示十進制數31415.9×10-2,它們都表示十進制小數314.159;1e03表示十進制數1×103,這里的尾數1不能省,而E03,-2e314都是不合法的實型常量,因為E03中缺少尾數;-2e314中階碼是3位整數,超過了階碼的范圍。1.3數據描述一、常量(三)字符型常量及表示法
1.字符型常量:用單引號括起來的單一字符(包括轉義字符)稱為字符型常量。【示例】'a','A','2','\n','\101'等都是字符型常量,其中'\n','\101'都是轉義字符,而''','\'都是不合法的字符型常量,對于單撇號和反斜杠必須用轉義字符來表示。1.3數據描述一、常量(三)字符型常量及表示法
2.轉義字符:⑴以反斜杠“\”開頭后跟一個規定的字母代表一個控制字符;⑵\\代表反斜杠字符“\”,\'代表單撇號字符“'”;⑶以反斜杠開頭后跟1~3位八進制數代表ASCII碼值為該八進制數的字符(此方法可表示ASCII字符集中的任一字符);⑷以反斜杠和小寫字母x開頭,即以\x開頭,后跟1~2位十六進制數代表ASCII碼值為該十六進制數的字符(也可表示ASCII字符集中的任一字符)。
字符形式含義ASCII值(十進制)\n回車換行,將當前光標位置移到下一行的開頭10\t水平跳格(跳到下一個制表區的起始位置)9\b退格,光標前移一列,光標經過位置不變8\r回車(不換行)13\f換頁12\\反斜杠字符 92\′單引號(撇號)字符39\〞雙引號字符34\ddd1到3位8進制數代表的字符\xhh以x開頭的1到2位16進制數代表的字符1.3數據描述一、常量(四)字符串常量及表示法
字符串常量:用雙撇號括起來的字符序列稱為字符串常量,簡稱字符串。字符串中含字符的個數稱為該字符串的長度。【示例】"Howdoyoudo","A","He\154lo.\n"都是字符串常量,它們的長度分別是13,1,7,應注意:\154和\n都是轉義字符,都只代表一個字符。1.3數據描述一、常量(五)符號常量
符號常量的定義方法:在程序的開頭,使用如下的編譯預處理命令:
#define符號常量常量1.3數據描述
【例1-3】符號常量的使用——求圓的面積。
#include<stdio.h>#definePI3.14159doubleArea(doubler);intmain(){ doubleRadii,s; printf("請輸入圓的半徑:"); scanf("%lf",&Radii); s=Area(Radii); printf("半徑為%lf的圓的面積是%lf\n",Radii,s); return0;}doubleArea(doubler){
doubles; s=PI*r*r;
returns;}二、變量變量:在程序運行過程中,其值可以改變的量。(一)變量的定義1.變量的定義變量定義的一般形式 [類別標識符]類型標識符變量名表;1.3數據描述
二、變量存儲類別標識符包括:auto(自動)、register(寄存器)、static(靜態);類型標識符包括:short(短整型)、int(基本整型)、long(長整型)、float(單精度實型)、double(雙精度實型)、char(字符型)等。1.3數據描述
【示例1】inti,j,k;缺省存儲類別標識符系統默認是auto,通過此說明語句定義了3個變量i,j,k都是基本整型變量、都是自動變量。
【示例2】staticfloata,b;通過該說明語句定義了2個變量a,b都為單精度實型變量、都是靜態變量
。二、變量2.變量的賦值變量賦值的一般形式
變量=表達式;作用:把賦值號右端表達式的值賦給賦值號左端的變量,即把賦值號右端表達式的值寫到賦值號左端變量的存儲空間中。1.3數據描述
【示例】a=b+2;把b+2的值賦給變量a,此時,b必須已有確定的值。二、變量3.變量的初始化變量賦值的一般形式
變量=表達式;作用:把賦值號右端表達式的值賦給賦值號左端的變量,即把賦值號右端表達式的值寫到賦值號左端變量的存儲空間中。1.3數據描述
【示例1】inta=5,b;在定義變量a,b的同時給變量a賦值為5,是對變量a進行初始化。【示例2】inta,b; a=5;先定義兩個整型變量a,b,然后給變量a賦值為5,不是初始化。二、變量(二)整型變量1.整型變量的類型標識符⑴有符號基本整型:[signed]int⑵無符號基本整型:unsigned[int]⑶有符號短整型:[signed]short[int]⑷無符號短整型:unsignedshort[int]⑸有符號長整型:[signed]long[int]⑹無符號長整型:unsignedlong[int]注:方括號的內容表示是可選的。
1.3數據描述
【示例1】inta,b;定義變量a,b都是整型變量、都是自動變量。【示例2】unsignedlongc,d;定義變量c,d都是無符號長整型變量、都是自動變量。二、變量(二)整型變量2.整型數據在內存中的存儲形式數據在內存中所占的字節數叫做數據的存儲長度。VC++系統規定:short型數據在內存中占2個字節(16位),以16位二進制數的補碼形式存放;int型和long型數據在內存中占4個字節(32位),以32位二進制數的補碼形式存放。1.3數據描述
二、變量(二)整型變量3.整型數據的取值范圍
1.3數據描述
類型存儲長度取值范圍[signed]short[int]2字節(16位)-32768~32767(-215~215-1)unsignedshort[int]2字節(16位)0~65535(0~216-1)[signed]int4字節(32位)-2147483648~2147483647(-231~231-1)unsigned[int]4字節(32位)0~4294967295(0~232-1)[signed]long[int]4字節(32位)-2147483648~2147483647(-231~231-1)unsignedlong[int]4字節(32位)0~4294967295(0~232-1)二、變量(三)實型變量1.實型變量的類型標識符類型標識符分別是:float(單精度實型)和double(雙精度實型)。2.實型數據的存儲長度、取值范圍和精度1.3數據描述
類型存儲長度取值范圍有效數字精度float4字節±(3.4×10-38~3.4×1038)6~7位6位double8字節±(1.7×10-308~1.7×10308)15~16位6位二、變量(四)字符型變量1.字符型變量的類型標識符⑴(有符號)字符型:[signed]char⑵無符號字符型:unsignedchar2.字符型數據的存儲形式及取值范圍
字符型數據在內存中占1個字節,以其相應的ASCII碼值的8位二進制數(補碼)形式存儲,char型數據的取值范圍是-128~127,unsignedchar型數據的取值范圍是0~255,每一個數值對應一個字符。1.3數據描述
1.3數據描述
【例1-4】將大寫字母轉換為小寫字母。#include<stdio.h>charToLower(charch);intmain(){ charch,low; printf("請輸入一個大寫字母:"); scanf("%c",&ch); low=ToLower(ch); printf("大寫字母%c轉換為小寫字母是%c\n",ch,low); return0;}charToLower(charch){ chartlow; tlow=ch+32; returntlow;}二、變量(五)動態變量1.自動變量
用存儲類別標識符auto定義的變量是自動變量,自動變量的存儲空間是在程序運行時分配的,分配和釋放由系統自動完成。使用時,應注意以下幾點:⑴在定義變量時,缺省存儲類別標識符系統默認是自動變量;⑵自動變量的存儲空間在程序運行期間分配和釋放,稱為動態存儲;1.3數據描述
二、變量(五)動態變量1.自動變量⑶自動變量只在定義它的那個局部范圍內才起作用,稱為局部變量;⑷自動變量在賦值之前,它的值是不確定的;⑸對同一個函數的兩次調用之間,自動變量的值不保留。這是因為,調用一次之后存儲空間被釋放,再調用時,又另分配了存儲空間。2.寄存器變量1.3數據描述
【示例】intmain(){ intx=1; { voidprt(void); intx=3; prt(); printf("2ndx=%d\n",x); } printf("1ndx=%d\n",x);
return0;}voidprt(void){ intx=5;
printf("3ndx=%d\n",x);}【示例】intmain(){ intx;
printf("x=%d\n",x);
return0;}【示例】voidcount(intn);intmain(){ count(1); count(2); return0;}voidcount(intn){ intx=1;
printf("%d:x=%d,",n,x); x=x+2; printf("%d\n",x);}二、變量(六)靜態變量
用標識符static定義的變量是靜態變量。1.靜態變量是在編譯時分配存儲空間,程序運行結束存儲空間才被釋放,稱為永久存儲,即,存在于程序執行的全過程,直到程序執行結束;2.靜態變量的初始化是在編譯時進行的,如果不顯式為靜態變量初始化,系統自動置靜態變量的初值為0(整型)或0.0(實型);1.3數據描述
二、變量(六)靜態變量3.在函數多次被調用的過程中,靜態變量的值具有繼承性,即本次調用的初值是上次調用結束時變量的值;4.靜態局部變量的作用域具有局部性,靜態局部變量的值只能在本函數中使用,但生存周期是永久存儲。1.3數據描述
【示例】voidincrement(void);intmain(){ increment(); increment(); increment(); return0;}voidincrement(void){ staticintx=1; x=x+2; printf("%d\n",x);}【示例】voidincrement(void);intmain(){ intx=5; increment(); printf("1:x=%d\n",x); return0;}voidincrement(void){ staticintx=1;
x=x+2; printf("2:x=%d\n",x);}二、變量(七)外部變量
定義在所有函數體之外的變量稱為外部變量。1.外部變量是在編譯時為其分配存儲空間的,在靜態存儲區中存儲,生存周期是永久存儲,作用域是從定義點到本文件結束;2.外部變量的初始化也是在編譯時進行的,如果不顯式為外部變量初始化,系統自動置外部變量的初值為0(整型)或0.0(實型)。1.3數據描述
一、運算符與表達式1.運算量:參加運算的對象稱為運算量,運算量包括:常量、變量、函數等。2.運算符:用來表示運算的符號稱為運算符或操作符。3.表達式:用運算符把運算量連接起來的符合C語言語法規則的式子稱為表達式。
1.4數據操作
二、算術運算1.單目算術運算(正、負號運算)⑴運算符:+正(取原值),-負(取相反數)。⑵優先級別:+,-同級別,是第2級。⑶結合方向:右結合。1.4數據操作
二、算術運算2.雙目算術運算⑴運算符及運算規則:+(加),-(減),*(乘),/(除),%(求余或模)。%的運算規則是:對于a%b,求a被b除所得的余數,結果的符號與被除數a的符號相同。⑵優先級別:+,-第4級;*,/,%第3級。⑶結合方向:均為左結合。1.4數據操作
二、算術運算2.雙目算術運算⑷運算量的類型與結果類型:
對于+,-,*,/這四種運算,參加運算的兩個運算量可以是整型數據,也可以是實型數據;如果兩個運算量都是整型數據,則結果也是整型數據,如果兩個運算量中至少有一個是實型數據,則結果也是實型數據。對于模運算%,要求參加運算的兩個運算量必須都是整型數據,運算所得的結果也是整型數據。
1.4數據操作
【示例】inta=5,b=2;則a+b的結果為7,a/b的結果為2,而不是2.5。floata=5.0,b=2.0;則a+b的結果為7.0,a/b的結果為2.5。所以,C語言中的除法運算“/”,有兩方面的含義:當運算符兩側的運算量都是整型數據時,結果也是整型數據,此時稱為整除;當運算符兩側的運算量至少有一個是實型數據時,結果是double類型數據,此時稱為除法。【示例】inta=5,b=-5,c=3,d=-3;則a%c的結果為2,b%c的結果為-2,a%d的結果為2,b%d的結果為–2,a%b的結果為0,b%a的結果為0,0%a的結果為0,0%b的結果也為0。因此,對一個正整數求模運算,不論除數是正數還是負數,所得的結果都是非負數;對一個負整數求模運算,不論除數是正數還是負數,所得的結果都是非正數,對0求模運算的結果還是0,即結果的符號與被除數的符號相同。【例1-5】設n是一個兩位整數,用C語言的表達式分別表示n的個位和十位數碼。1.4數據操作
解答:n的個位數碼可表示為n%10;n的十位數碼可表示為n/10。三、賦值類運算1.賦值運算給變量賦值的一般形式:變量=表達式優先級別:賦值運算的優先級別是第14級的,僅高于逗號運算符。結合方向:右結合。賦值表達式:根據運算符的優先級別和結合方向,通過加括號最終化為用賦值號把變量和表達式連接起來的式子稱為賦值表達式。賦值表達式的值為賦值后賦值號左邊變量的值。1.4數據操作
【示例1】inta;a=2;a=a+3;【示例2】inta=3,b;b=a=a+5;三、賦值類運算2.自反算術賦值運算自反算術賦值運算符包括:自反加賦值:+=;自反減賦值:-=;自反乘賦值:*=;自反除賦值:/=;自反模賦值:%=。優先級別:與賦值運算符同級,都是第14級。結合方向:右結合注意:與賦值運算符一樣,自反算術賦值運算符的左邊通常也必須是變量。1.4數據操作
【示例】inta=5,b=3,c;c=b*=a+2;
三、賦值類運算3.自加和自減運算前綴形式:++變量,--變量后綴形式:變量++,變量--
對于前綴形式++i或--i,運算規則是:把i+1或i-1賦給變量i,而表達式(++i或—i)取變量i被賦值后的值,即++i與i=i+1等價或—i與i=i-1等價。對于后綴形式i++或i--,運算規則是:把i+1或i-1賦給變量i,而表達式(i++或i—)取變量i被賦值前的值。優先級別:自加、自減運算符的優先級別是第2級。結合方向:右結合。
1.4數據操作
【示例】inta=2,b=2,c=2,d=2;a++;b--;++c;--d;表達式表達式執行前變量值表達式執行后變量值表達式的值a++232b--212++c233--d211【例1-5】設有定義inta=3,b,c=5;請將以下兩條語句a--;b=a+c;寫成一條語句。1.4數據操作
解答:因為語句b=a+c;中的a使用的是語句a--;執行后a的值,所以,兩條語句可寫成一條語句b=--a+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南陽市宛城區2025屆五年級數學第二學期期末復習檢測試題含答案
- 江蘇省南通市四校聯盟2025屆高考模擬金典卷數學試題(七)試題含解析
- 洛陽職業技術學院《高等數學AⅡ》2023-2024學年第二學期期末試卷
- 江蘇省田家炳中學2025年高三下學期第三次月考試題綜合試題含解析
- 松花粉培訓課件
- 湛江市大成中學高二上學期第一次月考物理試題
- 2025汽車租賃合同 標準版
- 顱內血管畸形護理查房
- 2025吉林油田物資采購合同
- 2025物業管理公司提供耗材服務的合同模板
- 辦公用品供貨服務計劃方案
- 人防工程巡查檢測投標方案
- 高中校本課程-徑向切槽復合循環指令G75教學設計學情分析教材分析課后反思
- 基于PLC的智能家居控制系統設計
- 外研版小學英語單詞表(一起)一至六年級1643
- 渡槽節制網加密測量報告
- 江蘇中能硅業科技發展有限公司硅烷法多晶硅產能替代項目環評報告
- 【中考數學幾何最值模型】第6講 阿氏圓問題 課件
- 鐵路集裝箱平車(F-TR鎖)裝卸作業標準
- 國家開放大學《漢語通論》形考任務1-4+終結性考核參考答案
- 國家安全教育智慧樹知到答案章節測試2023年臨沂職業學院
評論
0/150
提交評論