《C語(yǔ)言基礎(chǔ)入門》課件_第1頁(yè)
《C語(yǔ)言基礎(chǔ)入門》課件_第2頁(yè)
《C語(yǔ)言基礎(chǔ)入門》課件_第3頁(yè)
《C語(yǔ)言基礎(chǔ)入門》課件_第4頁(yè)
《C語(yǔ)言基礎(chǔ)入門》課件_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言基礎(chǔ)入門本課程將帶你走進(jìn)C語(yǔ)言的世界,從基礎(chǔ)語(yǔ)法到進(jìn)階應(yīng)用,循序漸進(jìn)地學(xué)習(xí)C語(yǔ)言編程。課程介紹:為什么學(xué)習(xí)C語(yǔ)言?底層控制C語(yǔ)言能讓你直接操控硬件,學(xué)習(xí)如何與計(jì)算機(jī)交互,掌握程序運(yùn)行的底層機(jī)制。廣泛應(yīng)用C語(yǔ)言是許多操作系統(tǒng)、嵌入式系統(tǒng)、游戲引擎和數(shù)據(jù)庫(kù)的核心,掌握C語(yǔ)言可以打開更多職業(yè)發(fā)展機(jī)會(huì)。語(yǔ)言基礎(chǔ)C語(yǔ)言是其他編程語(yǔ)言的基礎(chǔ),學(xué)習(xí)C語(yǔ)言可以幫助你更好地理解其他編程語(yǔ)言的原理。C語(yǔ)言的歷史與發(fā)展誕生于1972年由貝爾實(shí)驗(yàn)室的丹尼斯·里奇(DennisRitchie)發(fā)明,最初用于開發(fā)UNIX操作系統(tǒng)。C++的起源C語(yǔ)言的成功為C++語(yǔ)言的誕生奠定了基礎(chǔ),C++是在C語(yǔ)言的基礎(chǔ)上發(fā)展而來(lái)的面向?qū)ο缶幊陶Z(yǔ)言。持續(xù)發(fā)展C語(yǔ)言經(jīng)歷了多個(gè)版本的演變,不斷完善和擴(kuò)展,成為現(xiàn)代編程領(lǐng)域不可或缺的一部分。C語(yǔ)言的特點(diǎn)與應(yīng)用領(lǐng)域1高效性和可移植性:C語(yǔ)言代碼執(zhí)行效率高,并且易于移植到不同的平臺(tái)上運(yùn)行。2接近硬件:C語(yǔ)言允許開發(fā)者直接訪問(wèn)內(nèi)存和硬件設(shè)備,實(shí)現(xiàn)對(duì)系統(tǒng)底層的控制。3靈活性和可擴(kuò)展性:C語(yǔ)言提供了豐富的功能和特性,可以滿足各種編程需求,并支持自定義數(shù)據(jù)類型和函數(shù)。4應(yīng)用領(lǐng)域廣泛:C語(yǔ)言廣泛應(yīng)用于操作系統(tǒng)、嵌入式系統(tǒng)、游戲開發(fā)、網(wǎng)絡(luò)編程等領(lǐng)域。編程環(huán)境搭建:編譯器選擇MinGWMinGW是Windows平臺(tái)下的一個(gè)GNU編譯器集合,包含GCC編譯器,是入門C語(yǔ)言編程的常用選擇。GCCGCC是GNU編譯器套件,是Linux和Unix平臺(tái)下的標(biāo)準(zhǔn)編譯器,也是跨平臺(tái)編譯器的首選。VSCodeVSCode是一款輕量級(jí)且功能強(qiáng)大的代碼編輯器,支持多種語(yǔ)言和擴(kuò)展,方便編寫和調(diào)試C語(yǔ)言代碼。安裝與配置:MinGW、GCC下載MinGW-w64安裝包,并按照提示進(jìn)行安裝。配置環(huán)境變量,將MinGW的bin目錄添加到系統(tǒng)路徑中,以便在命令行中使用GCC編譯器。打開命令行窗口,輸入gcc-v命令,驗(yàn)證GCC編譯器是否安裝成功。第一個(gè)C程序:Hello,World!#include<stdio.h>intmain(){printf("Hello,World!\n");return0;}程序結(jié)構(gòu)分析:main函數(shù)、頭文件main函數(shù)程序的入口點(diǎn),程序執(zhí)行時(shí)首先進(jìn)入main函數(shù),并從main函數(shù)開始執(zhí)行。頭文件包含標(biāo)準(zhǔn)庫(kù)函數(shù)的聲明,如stdio.h包含了標(biāo)準(zhǔn)輸入輸出函數(shù)的聲明。注釋:?jiǎn)涡凶⑨屌c多行注釋單行注釋使用//符號(hào),從//符號(hào)開始到行末的所有內(nèi)容都被視為注釋。多行注釋使用/*和*/符號(hào),從/*符號(hào)開始到*/符號(hào)結(jié)束的所有內(nèi)容都被視為注釋。數(shù)據(jù)類型:整型(int,short,long)int通常占用4個(gè)字節(jié),用于存儲(chǔ)整數(shù),例如10,-5,0。short通常占用2個(gè)字節(jié),用于存儲(chǔ)較小的整數(shù),例如127,-32768。long通常占用8個(gè)字節(jié),用于存儲(chǔ)較大的整數(shù),例如2147483647,-9223372036854775808。數(shù)據(jù)類型:浮點(diǎn)型(float,double)float通常占用4個(gè)字節(jié),用于存儲(chǔ)單精度浮點(diǎn)數(shù),例如3.14,-2.718。double通常占用8個(gè)字節(jié),用于存儲(chǔ)雙精度浮點(diǎn)數(shù),可以存儲(chǔ)更精確的小數(shù)。數(shù)據(jù)類型:字符型(char)char類型通常占用1個(gè)字節(jié),用于存儲(chǔ)單個(gè)字符,例如'A','b','1'。字符通常用單引號(hào)括起來(lái)。數(shù)據(jù)類型:布爾型(_Bool)_Bool類型用于存儲(chǔ)布爾值,可以取值為true或false,通常占用1個(gè)字節(jié)。布爾值在條件判斷和邏輯運(yùn)算中起著重要作用。變量:聲明與初始化聲明使用數(shù)據(jù)類型和變量名來(lái)聲明一個(gè)變量,例如:intage;charname;floatsalary;初始化在聲明變量的同時(shí)為變量賦予初始值,例如:intage=20;charname='A';floatsalary=10000.00;常量:定義常量(const)使用const關(guān)鍵字來(lái)定義常量,常量一旦定義后就不能被修改,例如:constintPI=3.14159;constcharLETTER='A';運(yùn)算符:算術(shù)運(yùn)算符(+,-,*,/,%)加法(+)用于兩個(gè)操作數(shù)的加法運(yùn)算,例如:intsum=10+5;減法(-)用于兩個(gè)操作數(shù)的減法運(yùn)算,例如:intdifference=10-5;乘法(*)用于兩個(gè)操作數(shù)的乘法運(yùn)算,例如:intproduct=10*5;除法(/)用于兩個(gè)操作數(shù)的除法運(yùn)算,例如:intquotient=10/5;floatquotient=10.0/3;doublequotient=10.0/3.0;運(yùn)算符:關(guān)系運(yùn)算符(==,!=,>,<,>=,<=)等于(==)判斷兩個(gè)操作數(shù)是否相等,例如:if(age==20){...}不等于(!=)判斷兩個(gè)操作數(shù)是否不相等,例如:if(age!=20){...}大于(>)判斷第一個(gè)操作數(shù)是否大于第二個(gè)操作數(shù),例如:if(age>20){...}小于(<)判斷第一個(gè)操作數(shù)是否小于第二個(gè)操作數(shù),例如:if(age<20){...}運(yùn)算符:邏輯運(yùn)算符(&&,||,!)邏輯與(&&)當(dāng)兩個(gè)操作數(shù)都為真時(shí),結(jié)果為真,例如:if(age>=18&&age<=60){...}邏輯或(||)當(dāng)兩個(gè)操作數(shù)中至少有一個(gè)為真時(shí),結(jié)果為真,例如:if(age<18||age>60){...}邏輯非(!)取操作數(shù)的邏輯反,例如:if(!isAdult){...}運(yùn)算符:賦值運(yùn)算符(=,+=,-=,*=,/=)賦值(=)將右邊的值賦給左邊的變量,例如:intage=20;加法賦值(+=)將左邊的變量加上右邊的值,并將結(jié)果賦給左邊的變量,例如:age+=5;等價(jià)于age=age+5;減法賦值(-=)將左邊的變量減去右邊的值,并將結(jié)果賦給左邊的變量,例如:age-=5;等價(jià)于age=age-5;乘法賦值(*=)將左邊的變量乘以右邊的值,并將結(jié)果賦給左邊的變量,例如:age*=5;等價(jià)于age=age*5;輸入與輸出:printf函數(shù)#include<stdio.h>intmain(){printf("Hello,World!\n");return0;}輸入與輸出:scanf函數(shù)#include<stdio.h>intmain(){intage;printf("請(qǐng)輸入您的年齡:");scanf("%d",&age);printf("您的年齡是:%d\n",age);return0;}格式化輸出:%d,%f,%c,%s%d用于輸出整數(shù),例如:printf("%d\n",age);%f用于輸出浮點(diǎn)數(shù),例如:printf("%f\n",salary);%c用于輸出字符,例如:printf("%c\n",name);%s用于輸出字符串,例如:printf("%s\n","Hello,World!");控制語(yǔ)句:if語(yǔ)句#include<stdio.h>intmain(){intage;printf("請(qǐng)輸入您的年齡:");scanf("%d",&age);if(age>=18){printf("您已經(jīng)成年了!\n");}return0;}控制語(yǔ)句:if-else語(yǔ)句#include<stdio.h>intmain(){intage;printf("請(qǐng)輸入您的年齡:");scanf("%d",&age);if(age>=18){printf("您已經(jīng)成年了!\n");}else{printf("您還沒(méi)有成年!\n");}return0;}控制語(yǔ)句:if-elseif-else語(yǔ)句#include<stdio.h>intmain(){intscore;printf("請(qǐng)輸入您的分?jǐn)?shù):");scanf("%d",&score);if(score>=90){printf("優(yōu)秀!\n");}elseif(score>=80){printf("良好!\n");}elseif(score>=70){printf("中等!\n");}else{printf("需要努力!\n");}return0;}控制語(yǔ)句:switch語(yǔ)句#include<stdio.h>intmain(){chargrade;printf("請(qǐng)輸入您的成績(jī)(A,B,C,D,F):");scanf("%c",&grade);switch(grade){case'A':printf("優(yōu)秀!\n");break;case'B':printf("良好!\n");break;case'C':printf("中等!\n");break;case'D':printf("及格!\n");break;case'F':printf("不及格!\n");break;default:printf("輸入錯(cuò)誤!\n");}return0;}循環(huán)語(yǔ)句:for循環(huán)#include<stdio.h>intmain(){for(inti=1;i<=10;i++){printf("%d\n",i);}return0;}循環(huán)語(yǔ)句:while循環(huán)#include<stdio.h>intmain(){inti=1;while(i<=10){printf("%d\n",i);i++;}return0;}循環(huán)語(yǔ)句:do-while循環(huán)#include<stdio.h>intmain(){inti=1;do{printf("%d\n",i);i++;}while(i<=10);return0;}break語(yǔ)句與continue語(yǔ)句break用于立即退出循環(huán),例如:for(inti=1;i<=10;i++){if(i==5){break;}printf("%d\n",i);}continue用于跳過(guò)當(dāng)前循環(huán)的剩余部分,并進(jìn)入下一輪循環(huán),例如:for(inti=1;i<=10;i++){if(i==5){continue;}printf("%d\n",i);}數(shù)組:一維數(shù)組的聲明與初始化聲明使用數(shù)據(jù)類型、數(shù)組名和數(shù)組大小來(lái)聲明一維數(shù)組,例如:intnumbers[5];charletters[10];初始化在聲明數(shù)組的同時(shí)為數(shù)組元素賦予初始值,例如:intnumbers[5]={1,2,3,4,5};charletters[10]={'A','B','C','D','E','F','G','H','I','J'};數(shù)組:二維數(shù)組的聲明與初始化聲明使用數(shù)據(jù)類型、數(shù)組名和數(shù)組大小來(lái)聲明二維數(shù)組,例如:intmatrix[3][4];初始化在聲明數(shù)組的同時(shí)為數(shù)組元素賦予初始值,例如:intmatrix[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};數(shù)組:數(shù)組元素的訪問(wèn)使用下標(biāo)訪問(wèn)數(shù)組元素,下標(biāo)從0開始,例如:numbers[0]=10;printf("%d\n",numbers[2]);matrix[1][2]=5;printf("%d\n",matrix[0][1]);字符串:字符數(shù)組與字符串字符數(shù)組字符串本質(zhì)上是存儲(chǔ)在字符數(shù)組中的字符序列,例如:charname[10]="Alice";字符串字符串以空字符'\0'結(jié)尾,用于標(biāo)識(shí)字符串的結(jié)束,例如:charname[10]="Alice";name[5]='\0';字符串:字符串處理函數(shù)(strlen,strcpy,strcat,strcmp)strlen獲取字符串的長(zhǎng)度,不包括空字符'\0',例如:intlength=strlen("Hello");strcpy將一個(gè)字符串復(fù)制到另一個(gè)字符串中,例如:strcpy(destination,"Hello");strcat將一個(gè)字符串連接到另一個(gè)字符串的末尾,例如:strcat(destination,"World");strcmp比較兩個(gè)字符串,返回值為:0-兩個(gè)字符串相等大于0-第一個(gè)字符串大于第二個(gè)字符串小于0-第一個(gè)字符串小于第二個(gè)字符串,例如:intresult=strcmp("Hello","World");指針:指針的概念與聲明指針是一個(gè)變量,它存儲(chǔ)的是另一個(gè)變量的內(nèi)存地址,例如:intage=20;int*ptr=&age;其中,ptr指向age變量的內(nèi)存地址。指針:指針的運(yùn)算取地址運(yùn)算符(&)獲取變量的內(nèi)存地址,例如:int*ptr=&age;其中,&age獲取age變量的內(nèi)存地址。指針解引用運(yùn)算符(*)訪問(wèn)指針指向的內(nèi)存地址中的值,例如:intage=*ptr;其中,*ptr訪問(wèn)ptr指向的內(nèi)存地址中的值。指針加減運(yùn)算指針可以進(jìn)行加減運(yùn)算,加減的是內(nèi)存地址的偏移量,例如:ptr++;ptr-=2;注意:指針加減運(yùn)算的步長(zhǎng)取決于指針指向的數(shù)據(jù)類型的大小。指針:指針與數(shù)組指針和數(shù)組密切相關(guān),可以使用指針來(lái)訪問(wèn)數(shù)組元素,例如:intnumbers[5]={1,2,3,4,5};int*ptr=numbers;printf("%d\n",*ptr);ptr++;printf("%d\n",*ptr);ptr+=2;printf("%d\n",*ptr);函數(shù):函數(shù)的定義與調(diào)用定義使用函數(shù)名、返回值類型、參數(shù)列表和函數(shù)體來(lái)定義一個(gè)函數(shù),例如:intadd(inta,intb){returna+b;}調(diào)用使用函數(shù)名和實(shí)際參數(shù)來(lái)調(diào)用一個(gè)函數(shù),例如:intsum=add(10,5);函數(shù):函數(shù)的參數(shù)傳遞(值傳遞,地址傳遞)值傳遞將參數(shù)的值復(fù)制一份傳遞給函數(shù),函數(shù)內(nèi)部對(duì)參數(shù)的修改不會(huì)影響原參數(shù)的值,例如:voidswap(inta,intb){inttemp=a;a=b;b=temp;}地址傳遞將參數(shù)的內(nèi)存地址傳遞給函數(shù),函數(shù)內(nèi)部可以通過(guò)指針修改原參數(shù)的值,例如:voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}函數(shù):函數(shù)的返回值函數(shù)可以使用return語(yǔ)句返回一個(gè)值,返回值類型與函數(shù)定義時(shí)的返回值類型一致,例如:intadd(inta,intb){returna+b;}函數(shù):遞歸函數(shù)#include<stdio.h>intfactorial(intn){if(n==0){return1;}else{returnn*factorial(n-1);}}intmain(){intn;printf("請(qǐng)輸入一個(gè)非負(fù)整數(shù):");scanf("%d",&n);intresult=factorial(n);printf("%d的階乘是:%d\n",n,result);return0;}結(jié)構(gòu)體:結(jié)構(gòu)體的定義與聲明#include<stdio.h>structStudent{charname[50];intage;floatscore;};intmain(){structStudentstudent1;strcpy(,"Alice");student1.age=20;student1.score=90.0;printf("學(xué)生信息:\n");printf("姓名:%s\n",);printf("年齡:%d\n",student1.age);printf("成績(jī):%f\n",student1.score);return0;}結(jié)構(gòu)體:結(jié)構(gòu)體成員的訪問(wèn)使用結(jié)構(gòu)體變量名和點(diǎn)運(yùn)算符(.)來(lái)訪問(wèn)結(jié)構(gòu)體成員,例如:="Bob";printf("%d\n",student1.age);結(jié)構(gòu)體:結(jié)構(gòu)體數(shù)組#include<stdio.h>structStudent{charname[50];intage;floatscore;};intmain(){structStudentstudents[3];strcpy(students[0].name,"Alice");students[0].age=20;students[0].score=90.0;strcpy(students[1].name,"Bob");students[1].age=21;students[1].score=85.0;strcpy(students[2].name,"Charlie");students[2].age=22;students[2].score=80.0;for(inti=0;i<3;i++){printf("學(xué)生%d信息:\n",i+1);printf("姓名:%s\n",students[i].name);printf("年齡:%d\n",students[i].age);printf("成績(jī):%f\n",students[i].score);}return0;}結(jié)構(gòu)體:結(jié)構(gòu)體指針使用結(jié)構(gòu)體類型來(lái)聲明一個(gè)指向結(jié)構(gòu)體的指針,例如:structStudent*ptr=&student1;然后可以使用指針來(lái)訪問(wèn)結(jié)構(gòu)體成員,例如:ptr->name="David";printf("%d\n",ptr->age);聯(lián)合體:聯(lián)合體的定義與聲明#include<stdio.h>unionData{inti;floatf;charstr[20];};intmain(){unionDatadata;data.i=10;printf("int:%d\n",data.i);data.f=3.14;printf("float:%f\n",data.f);strcpy(data.str,"Hello");printf("string:%s\n",data.str);return0;}枚舉:枚舉類型的定義與使用#include<stdio.h>enumWeekday{MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY};intmain(){enumWeekdaytoday=MONDAY;printf("今天是星期%d\n",today+1);return0;}預(yù)處理指令:#include使用#include指令包含頭文件,例如:#include<stdio.h>該指令會(huì)將stdio.h文件的內(nèi)容插入到當(dāng)前文件中,從而使用標(biāo)準(zhǔn)輸入輸出函數(shù)。預(yù)處理指令:#define使用#define指令定義常量或宏,例如:#definePI3.14159#defineMAX_SIZE100定義常量可以提高代碼的可讀性和可維護(hù)性。預(yù)處理指令:條件編譯(#ifdef,#ifndef,#else,#endif)#include<stdio.h>#defineDEBUGintmain(){#ifdefDEBUGprintf("調(diào)試信息\n");#endifreturn0;}文件操作:打開文件(fopen)使用fopen函數(shù)打開文件,該函數(shù)需要兩個(gè)參數(shù):文件名和打開模式,例如:FILE*fp=fopen("data.txt","r");其中,fp指向打開的文件的指針,"r"表示以只讀模式

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論