C語言期末考試必備知識點_第1頁
C語言期末考試必備知識點_第2頁
C語言期末考試必備知識點_第3頁
C語言期末考試必備知識點_第4頁
C語言期末考試必備知識點_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言期末考試必備知識點C語言期末考試必備知識點C語言期末考試必備知識點三部分一、操作對象:數(shù)據(jù)二、操作工具:語句三、完成任務(wù):編程序。將若干個操作按完成任務(wù)的思路進行有序有效組合。書籍能培養(yǎng)我們的道德情操,給我們巨大的精神力量,鼓舞我們前進C語言期末考試必備知識點C語言期末考試必備知識點C語言期末考1三部分一、操作對象:數(shù)據(jù)二、操作工具:語句三、完成任務(wù):編程序。將若干個操作按完成任務(wù)的思路進行有序有效組合。三部分一、操作對象:數(shù)據(jù)2數(shù)據(jù)數(shù)據(jù):1、各種字母、數(shù)字符號的組合、語音、

圖形、圖像等統(tǒng)稱為數(shù)據(jù)。2、數(shù)據(jù)的本質(zhì)是該數(shù)據(jù)的值,這是數(shù)據(jù)有意義的內(nèi)容。3、值的表現(xiàn)形式一串二進制數(shù)字。這個值是按數(shù)據(jù)的表現(xiàn)形式的特點與組成部分存放4、這個值一定有個空間存放。以字節(jié)的倍數(shù)位空間的大小。5、這個空間一定有地址。數(shù)據(jù)數(shù)據(jù):3數(shù)據(jù)類型數(shù)據(jù)使用:就是對數(shù)據(jù)存儲空間的內(nèi)容(數(shù)據(jù)的值)引用(讀操作)和修改(寫操作)數(shù)據(jù)類型(根據(jù)使用方式分):1、常數(shù):

在使用過程中只能用其值不能改變其值2、變數(shù):

在使用過程中只能用其值也能改變其值數(shù)據(jù)類型數(shù)據(jù)使用:就是對數(shù)據(jù)存儲空間的內(nèi)容(數(shù)據(jù)的值)引用(4數(shù)據(jù)的特性常數(shù)變數(shù)值有有引用(讀操作)可以可以修改(寫操作)不行可以存放空間有有空間大小根據(jù)值的大小和形式系統(tǒng)自動分配空間需人工指定空間大小地址有有能夠知道其地址不能能夠(用&運算符)數(shù)據(jù)的特性常數(shù)變數(shù)值有有引用(讀操作)可以可以修改(寫操作)5常數(shù)常數(shù)的表現(xiàn)形式:1、不用符號表示(稱常數(shù)):1232、用符號表示(稱常量):#defineM123常量M的說明:1、定義方式:#defineM1232、定義位置:通常寫在源程序的最前面,僅在#include之后常數(shù)常數(shù)的表現(xiàn)形式:6常數(shù)與常量的使用區(qū)別常數(shù)常量inta[10],i;for(i=0;i<10;i++){a[i]=i;}#defineM10inta[M],i;for(i=0;i<M;i++){a[i]=i;}inta[20],i;for(i=0;i<20;i++){a[i]=i;}#defineM20inta[M],i;for(i=0;i<M;i++){a[i]=i;}修改了兩個地方修改了一個地方常數(shù)與常量的使用區(qū)別常數(shù)常量inta[10],i;#de7變數(shù)變數(shù)的實質(zhì)就是能夠操作(引用(讀)和修改(寫))變數(shù)存放空間中數(shù)值。也就是說只要知道這個空間在哪里(地址)和空間大小我們就能輕易操作該值??臻g的屬性:1、大小2、地址變數(shù)變數(shù)的實質(zhì)就是能夠操作(引用(讀)和修改(寫))變數(shù)存放8變數(shù)的空間大小變數(shù)的數(shù)據(jù)類型決定變數(shù)的空間大小和數(shù)據(jù)各個組成部分在該空間中如何存放。常用的數(shù)據(jù)類型與空間的關(guān)系:整型實型字符型類型名字節(jié)數(shù)類型名字節(jié)數(shù)類型名字節(jié)數(shù)char1float4char1shortint2double8int4unsignedint4long8變數(shù)的空間大小變數(shù)的數(shù)據(jù)類型決定變數(shù)的空間大小和數(shù)據(jù)各個組成9變數(shù)空間的申請變數(shù)空間的申請就是向系統(tǒng)要空間。申請空間的方法有靜態(tài)和動態(tài)兩種。1、靜態(tài)申請空間1)、申請空間。是在編寫程序時就能夠明確空間大小,該空間是在程序一運行就能夠得到的空間。例如inta;2)、獲取空間地址。該空間的地址在運行才能獲取。例如 inta,*p; p=&a;變數(shù)空間的申請變數(shù)空間的申請就是向系統(tǒng)要空間。申請空間的方法10變數(shù)空間的申請2、動態(tài)申請空間1)、申請空間。是在編寫程序時就不能夠明確空間大小,只有在程序運行過程中才知道需要的空間,例如 int*p; p=(int*)malloc(5*sizeof(int));2)、獲取空間地址。如果該空間申請成功了則返回的值就是該空間的地址。例如上例的p變數(shù)空間的申請2、動態(tài)申請空間11存放空間與地址關(guān)系內(nèi)存的編址是按字節(jié)編的,每個字節(jié)都有一個地址。每種數(shù)據(jù)類型、每一批數(shù)據(jù)占用的空間大小是不一樣的,C語言中所指的地址是分配空間的第1個字節(jié)的地址。存放空間與地址關(guān)系內(nèi)存的編址是按字節(jié)編的,每個字節(jié)都有一個地12常數(shù)與變數(shù)存放空間機器指令由操作碼和操作數(shù)兩部分組成。如果操作數(shù)是常數(shù),則操作數(shù)就是這個常數(shù)的值,所以無法獲取常數(shù)的地址。也就是機器指令內(nèi)包含這個數(shù)值。如果操作數(shù)是變數(shù),則操作數(shù)就是這個變數(shù)在內(nèi)存的地址,這個內(nèi)存(即變數(shù)所在內(nèi)存中的幾個字節(jié))才存放這個變數(shù)的值。也就是說機器指令與變數(shù)是分開存放的,所以變數(shù)有獨立的地址,我們在程序運行過程中可以獲取該地址。常數(shù)與變數(shù)存放空間機器指令由操作碼和操作數(shù)兩部分組成。13變數(shù)分類變數(shù)的分類(根據(jù)一次所能表示數(shù)據(jù)個數(shù)分類):1、單個數(shù)據(jù):變量2、一批數(shù)據(jù)(同數(shù)據(jù)類型):數(shù)組3、一批數(shù)據(jù)(不同數(shù)據(jù)類型):結(jié)構(gòu)體變數(shù)的使用原則:1、先定義后使用;2、第一次使用必須是寫數(shù)據(jù),即初始化變數(shù)分類變數(shù)的分類(根據(jù)一次所能表示數(shù)據(jù)個數(shù)分類):14變數(shù)各種定義變量一維數(shù)組二維數(shù)組結(jié)構(gòu)體及結(jié)構(gòu)體變量inta;inta[10];inta[3][4];structstudent{charname[10];intage;};Structstudentstu;Stu稱結(jié)構(gòu)體變量結(jié)構(gòu)體student是自定義的復雜的數(shù)據(jù)類型,必須通過結(jié)構(gòu)體變量發(fā)揮作用。一個結(jié)構(gòu)體定義后,原理上就就可以象基本數(shù)據(jù)類型char、int等一樣的使用,形式上要加上關(guān)鍵字struct變數(shù)各種定義變量一維數(shù)組二維數(shù)組結(jié)構(gòu)體及結(jié)構(gòu)體變量int15變數(shù)的初始化方式一變數(shù)類型初始化變量inta=1;一維數(shù)組inta[10]={0,1,2,3,4,5,6,7,8,9};二維數(shù)組inta[3][4]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};結(jié)構(gòu)體變量structstudent{charname[10];intage;intabc[3]};structstudentstu={“abc”,10,{10,20,30}};說明:1、初始化方式一,就是在定義時同時給出數(shù)據(jù)。2、結(jié)構(gòu)體變量初始化時各分量的初始化完全參見變量與數(shù)組的初始化方法變數(shù)的初始化方式一變數(shù)類型初始化變量inta=1;一維數(shù)16變數(shù)的初始化方式二變數(shù)類型初始化變量inta;a=1;一維數(shù)組inta[10];a[0]=0;二維數(shù)組inta[3][4]a[0][0]=1;結(jié)構(gòu)體變量structstudentstu;stu.age=10;stu.abc[0]=11;說明:初始化方式二,就是在賦值方式。structstudent{charname[10];intage;intabc[3]};變數(shù)的初始化方式二變數(shù)類型初始化變量inta;一維數(shù)組i17變數(shù)的使用(讀與寫)方法一變數(shù)類型程序段訪問方式變量inta,b=2;a=b+1;通過變量名使用數(shù)據(jù)。a=b+1;將分配給b的空間數(shù)值2讀出加1寫入分配給a的空間中一維數(shù)組inta[10];a[3]=0;通過數(shù)組名和下標使用數(shù)據(jù)。a[3]=0;將數(shù)值0寫入分配給a[0]空間中二維數(shù)組inta[3][4]a[1][2]=1;通過數(shù)組名和下標使用數(shù)據(jù)。a[1][2]=1;將數(shù)值1寫入分配給a[1][2]空間中結(jié)構(gòu)體變量structstudentstu;stu.age=10;stu.abc[0]=11;通過結(jié)構(gòu)體變量名.分量名使用數(shù)據(jù)。stu.age=10;將數(shù)值10寫入分配給stu.age空間中說明:方法一就是通過名使用該變數(shù)存放空間的數(shù)值。變數(shù)的使用(讀與寫)方法一變數(shù)類型程序段訪問方式變量int18變數(shù)的使用(讀與寫)方法二說明:方法二就是通過指針變量使用該變數(shù)存放空間的數(shù)值。在講指針之前再提存放空間的屬性:大小和地址大小:是以字節(jié)為單位計量的,一個數(shù)據(jù)占用的空間就是若干個字節(jié),例如int占4個字節(jié)。地址:每個字節(jié)都要地址,空間地址是指該空間的第一個字節(jié)的地址。指針變量:就是存放地址的變量。所以它也有空間,也有對應(yīng)的值??臻g的大小不是我們一般類似int所規(guī)定,而是系統(tǒng)的C語言和操作系統(tǒng)所規(guī)定,即地址總線數(shù)規(guī)定,所以在使用過程中我們一般不考慮指針變量的空間大小和地址。變數(shù)的使用(讀與寫)方法二說明:方法二就是通過指針變量使用該19變數(shù)的使用(讀與寫)方法二變量程序段說明方法一inta,b=2;a=b+1;a=b+1;將分配給b的空間數(shù)值2讀出加1寫入分配給a的空間中方法二&是獲取地址運算符*是對某地址的空間進行操作(讀或?qū)懀﹊nta,b=2,*p1,*p2;p1=&a;p2=&b;*p1=*p2+1;定義2個變量,2個指針變量將a變量空間地址賦給p1將b變量空間地址賦給p2將p2指向空間的值取出(讀操作)+1,然后將和存入(寫操作)p1指向的空間說明:方法二就是通過指針變量使用該變數(shù)存放空間的數(shù)值。變數(shù)的使用(讀與寫)方法二變量程序段說明方法一inta,20變數(shù)的使用(讀與寫)方法二一維數(shù)組程序段說明方法一inta[10];a[3]=0;通過數(shù)組名和下標使用數(shù)據(jù)。a[3]=0;將數(shù)值0寫入分配給a[3]空間中方法二inta[10],*p1;第1種p1=&a[3];*p1=0;將a[3]數(shù)組元素空間地址賦給p1將0存入(寫操作)p1指向的空間第2種p1=&a[0];*(p1+3)=0;將a[0]數(shù)組元素空間地址賦給p1p1+3的和是a[3]的空間地址,即指向a[3],*(p1+3)=0將0寫入a[3]空間第3種數(shù)組名是首指針p1=a;*(p1+3)=0;將數(shù)組首地址(數(shù)組空間地址)賦給p1p1+3的和是a[3]的空間地址,即指向a[3],*(p1+3)=0將0寫入a[3]空間說明:方法二就是通過指針變量使用該變數(shù)存放空間的數(shù)值。變數(shù)的使用(讀與寫)方法二一維數(shù)組程序段說明方法一int21變數(shù)的使用(讀與寫)方法二二維數(shù)組程序段說明方法一inta[3][4];a[1][2]=1;通過數(shù)組名和下標使用數(shù)據(jù)。a[1][2]=1;將數(shù)值1寫入分配給a[1][2]空間中方法二inta[3][4],*p1;第1種p1=&a[1][2];*p1=1;將a[1][2]數(shù)組元素空間地址賦給p1將1寫入p1指向的空間第2種p1=&a[0][0];*(p1+1*4+2)=1;將a[0][0]數(shù)組元素空間地址賦給p1p1+1*4+2的值是a[1][2]的空間地址,即指向a[1][2],*(p1+1*4+2)=1將1寫入a[1][2]空間第3種數(shù)組名是首指針p1=a;*(p1+1*4+2)=1;將數(shù)組首地址(數(shù)組空間地址)賦給p1同第2種說明:方法二就是通過指針變量使用該變數(shù)存放空間的數(shù)值。變數(shù)的使用(讀與寫)方法二二維數(shù)組程序段說明方法一int22變數(shù)的使用(讀與寫)方法二結(jié)構(gòu)體程序段說明方法一structstudentstu;stu.age=10;stu.abc[0]=11;方法二structstudentstu,*p1;第1種p1=&stu;p1->age=10;p1->abc[0]=11;獲取stu的(首)地址相對方法一,僅用p1->代替stu.第2種p1=&stu;(*p1).age=10;(*p1).abc[0]=11;相對方法一,僅用(*p1)代替stu說明:方法二就是通過指針變量使用該變數(shù)存放空間的數(shù)值。注意結(jié)構(gòu)體指針的寫法不同于一般的指針寫法變數(shù)的使用(讀與寫)方法二結(jié)構(gòu)體程序段說明方法一struct23變數(shù)的使用(讀與寫)方法小結(jié)形式空間(字節(jié))空間地址數(shù)值操作變量inta,*p;4a=1;p=&a;*p=1;一維數(shù)組inta[10],*p4*10=40a[3]=12;p=&a[3];*p=12;p=&a[0];*(p+3)=12;p=a;*(p+3)=12;二維數(shù)組inta[3][4];int*p4*3*4a[2][3]=12;p=&a[2][3];*p=12;p=&a[0][0];*(p+2*4+3)=12;p=a;*(p+2*4+3)=12;變數(shù)的使用(讀與寫)方法小結(jié)形式空間(字節(jié))空間地址數(shù)值操作24變數(shù)的使用(讀與寫)方法小結(jié)形式空間空間地址數(shù)值操作結(jié)構(gòu)體structstudent{charname[10];intage;intabc[3]};1*10+4+4=18結(jié)構(gòu)體變量structstudentstu,*p;stu.age=12;[0]=‘a(chǎn)’;p=&stu;(*p).age=12;(*p).name[0]=‘a(chǎn)’;p=&stu;p->age=12;p->name[0]=‘a(chǎn)’;變數(shù)的使用(讀與寫)方法小結(jié)形式空間空間地址數(shù)值操作結(jié)構(gòu)體s25結(jié)構(gòu)體的特性1、結(jié)構(gòu)體是自定義的一種數(shù)據(jù)類型,必須在此基礎(chǔ)上定義結(jié)構(gòu)體變量,對結(jié)構(gòu)體變量才能進行讀寫操作,對結(jié)構(gòu)體是不能進行讀寫操作的。2、結(jié)構(gòu)體可與數(shù)組交叉定義,構(gòu)成復雜的數(shù)據(jù)結(jié)構(gòu),但使用起來非常方便,這是我們從現(xiàn)在開始的學習工作中必須要注意的問題。3、結(jié)構(gòu)體變量可對結(jié)構(gòu)體變量的分量進行讀寫操作,也可以對結(jié)構(gòu)體變量整體進行讀寫操作,而數(shù)組只能對數(shù)組元素進行讀寫操作,不能對數(shù)組整體進行讀寫操作。結(jié)構(gòu)體的特性1、結(jié)構(gòu)體是自定義的一種數(shù)據(jù)類型,必須在此基礎(chǔ)上26數(shù)據(jù)注意常量與枚舉類型數(shù)據(jù)的區(qū)別數(shù)據(jù)注意常量與枚舉類型數(shù)據(jù)的區(qū)別27語句的使用一、賦值語句

簡單、大量使用。二、分支語句

根據(jù)思路需分支。三、循環(huán)語句

必須是處理批量數(shù)據(jù)。找數(shù)據(jù)有規(guī)律,操作數(shù)據(jù)數(shù)據(jù)有規(guī)定。注意循環(huán)的初始條件和結(jié)束條件,并且在循環(huán)的過程中一定要達到結(jié)束條件。語句的使用一、賦值語句28編程序(函數(shù)1)一、何時才能有函數(shù)

當一個程序完成一項任務(wù),而這個任務(wù)需有若干個子任務(wù)共同完成,那么此時就應(yīng)該用函數(shù)方式編寫程序。二、什么樣才能成為一個函數(shù)

通常函數(shù)的功能就是解決一個問題。即完成一個任務(wù)。三、函數(shù)的使用函數(shù)的使用稱為調(diào)用,被使用的函數(shù)稱為被調(diào)用函數(shù),使用函數(shù)的函數(shù)稱為調(diào)用函數(shù)。編程序(函數(shù)1)一、何時才能有函數(shù)29編程序(函數(shù)2)四、調(diào)用函數(shù)與被調(diào)用函數(shù)之間的位置關(guān)系1、函數(shù)必須定義了才能被使用。2、之前。被調(diào)用函數(shù)定義在調(diào)用函數(shù)之前。無需任何說明。3、之后。被調(diào)用函數(shù)定義在調(diào)用函數(shù)之后。必須在調(diào)用函數(shù)之前加函數(shù)說明語句。五、調(diào)用函數(shù)與被調(diào)用函數(shù)之間如何發(fā)生關(guān)系1、調(diào)用函數(shù)通過調(diào)用參數(shù)使被調(diào)用函數(shù)發(fā)生作用。被調(diào)函數(shù)通過返回值的方式將作用結(jié)果返回給調(diào)用函數(shù)。2、調(diào)用參數(shù)可以0個、1個、2個、n個。不能是一批數(shù)據(jù),即不能是一個數(shù)組,可以是一般變量、數(shù)組元素、數(shù)組名、指針、結(jié)構(gòu)體變量。3、返回數(shù)據(jù)只能是0個和1個??梢允且话阕兞俊?shù)組元素、數(shù)組名、指針、結(jié)構(gòu)體變量。編程序(函數(shù)2)四、調(diào)用函數(shù)與被調(diào)用函數(shù)之間的位置關(guān)系30編程序三(變量型傳遞)調(diào)用函數(shù)被調(diào)函數(shù)說明inta,b,m;……m=max(a,b);intmax(inta,intb){intmm;if(a>b)mm=a;elsemm=b;returnmm;}編程序三(變量型傳遞)調(diào)用函數(shù)被調(diào)函數(shù)說明inta,b,31編程序三(數(shù)組型傳遞)調(diào)用函數(shù)被調(diào)函數(shù)說明inta[5]={1,2,3,4,5};Intm;……m=max(a,5);intmax(intb[],intarrmax){inti,mm;mm=b[0];for(i=1;i<arrmax;i++){if(mm<b[i])mm=b[i];}returnmm;}數(shù)組的傳遞是傳遞的數(shù)組首地址,所以必須還有數(shù)組的大小,故一維數(shù)組要傳遞兩個數(shù)據(jù),二維數(shù)組要傳遞三個數(shù)據(jù)(為什么)。編程序三(數(shù)組型傳遞)調(diào)用函數(shù)被調(diào)函數(shù)說明inta[5]32編程序(結(jié)構(gòu)體型傳遞)調(diào)用函數(shù)被調(diào)函數(shù)structstudentstu;……stu.age=10;stu.grade=20;stu=max(stu);structstudentmax(structstudentmm){mm.age=30;mm.grade=mm.grade+20;returnmm;}說明:傳送的參數(shù)和返回的參數(shù)只是一個結(jié)構(gòu)體變量,但該變量中含有若干數(shù)據(jù)。非常重要非常有用編程序(結(jié)構(gòu)體型傳遞)調(diào)用函數(shù)被調(diào)函數(shù)structstud33編程序(各種變量區(qū)別)全局變量、局部變量、static變量的區(qū)別:全局變量局部變量Static局部變量定義位置在程序文件的頭部,函數(shù)外在函數(shù)的頭部,函數(shù)內(nèi)在函數(shù)的頭部,函數(shù)內(nèi)存在周期從程序運行開始到程序運行結(jié)束本次函數(shù)運行開始到本次函數(shù)運行結(jié)束本次函數(shù)運行開始到程序運行結(jié)束使用范圍大家都可以使用,并且值大家共享只有定義的函數(shù)才能使用,每次使用其值重新開始只有定義的函數(shù)才能

溫馨提示

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

評論

0/150

提交評論