C語言知識復習_第1頁
C語言知識復習_第2頁
C語言知識復習_第3頁
C語言知識復習_第4頁
C語言知識復習_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言知識復習第一章C語言程序基礎

第一節(jié)、C語言的基礎知識C語言編寫的程序稱為源程序,又稱為編譯單位。C語言書寫格式是自由的,每行可以寫多個語句,可以寫多行。一個C語言程序有且只有一個main函數(shù),是程序運行的起點。第一章C語言程序基礎

第二節(jié)、C語言的編譯過程每個C語言程序寫完后,都是先編譯,后鏈接,最后運行。(.c---.obj---.exe)這個過程中注意.c和.obj文件時無法運行的,只有.exe文件才可以運行。(??迹。┑谝徽翪語言程序基礎

第三節(jié)、標識符1.標識符:(必考內容)合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯了。并且第一個必須為字母或則是下劃線。第一個為數(shù)字就錯了。2.標識符分為關鍵字、用戶標識符。關鍵字:不可以作為用戶標識符號。maindefinescanfprintf都不是關鍵字。迷惑你的地方If是可以做為用戶標識符。因為If中的第一個字母大寫了,所以不是關鍵字。第一章C語言程序基礎

第四節(jié)、進制的轉換十進制轉換成二進制、八進制、十六進制。二進制、八進制、十六進制轉換成十進制。二進制、八進制、十六進制之間的轉化。第一章C語言程序基礎

第五節(jié)、整型數(shù)據(jù)整型常量:整數(shù)或表示整數(shù)的符號a.用#define定義符號常量。b.整型有八、十、十六進制,沒有二進制。八進制規(guī)定要以0開頭。018的數(shù)值是非法的,八進制是沒有8的,逢8進1。十六進制規(guī)定要以0x開頭。c.整型一般是2個字節(jié),長整形一般是4個字節(jié),區(qū)分4和4L。d.整型數(shù)據(jù)取值范圍。2.整型變量:存儲整數(shù)的數(shù)值量。變量的定義和初始化。

第一章C語言程序基礎

第六節(jié)、實型數(shù)據(jù)實型常量:小數(shù)或表示小數(shù)的符號a.用#define定義符號常量。b.有十進制和指數(shù)形式兩種表示方法。指數(shù)表示,e前e后必有數(shù),e后必為整數(shù)。c.實型單精度4字節(jié),雙精度8字節(jié),區(qū)分4.0和4.0f。d.單精度有效位數(shù)7位,雙精度有效位數(shù)15位。2.實型變量:存儲小數(shù)的數(shù)值量。變量的定義和初始化。

第一章C語言程序基礎

第七節(jié)、字符數(shù)據(jù)字符常量:單引號引的單個字符,’21’、’1’a.用#define定義符號常量。b.以ASCII存儲,每個字符數(shù)據(jù)占1字節(jié)。c.字符a與字符串a(chǎn)的區(qū)別d.字符是可以進行算術運算的,記?。?0'-0=48大寫字母和小寫字母轉換的方法:'A'+32='a'相互之間一般是相差32。第一章C語言程序基礎

e.轉義字符分為一般轉義字符、八進制轉義字符、十六進制轉義字符。一般轉義字符:背誦\0、\n、\’、\”、\\。八進制轉義字符:

‘\141’是合法的,前導的0是不能寫的。十六進制轉義字符:’\x6d’才是合法的,前導的0不能寫,并且x是小寫。2.實型變量:存儲字符的數(shù)值量。變量的定義和初始化。

第一章C語言程序基礎

第八節(jié)、運算符和表達式算術表達式:+,-,*,/,%,一定要注意:“/”兩邊都是整型的話,結果就是一個整型。3/2的結果就是1;“%”符號請一定要注意是余數(shù),%符號兩邊要求是整數(shù)。賦值表達式:表達式的值是最左邊的數(shù)值,a=b=5;該表達式為5,常量不可以賦值;intx=y=10:錯,定義時,不可以連續(xù)賦值;intx,y;x=y=10;對,定義完成后,可以連續(xù)賦值;左右兩側類型不同,右向左轉化。第一章C語言程序基礎

復合的賦值表達式:inta=2;a*=2+3;運行完成后,a的值?。自加、減表達式:假設a=5,++a(是為6),a++(為5);++在前先加后用,++在后先用后加;假設a=5,--a(是為4),a--(為5);--在前先減后用,--在后先用后減。逗號表達式:優(yōu)先級別最低,表達式的數(shù)值逗號最右邊的那個表達式的數(shù)值。z=(2,3,4)這個時候z的值為4。z=2,3,4這個時候z的值為2。第一章C語言程序基礎

類型轉化:默認轉化,低字長向高字長轉化;強制轉化,一定是(int)a不是int(a),注意類型上一定有括號的。(int)(a+b)和(int)a+b的區(qū)別。前是把a+b轉型,后是把a轉型再加b。第一章C語言程序基礎

第九節(jié)、數(shù)據(jù)輸出使用printf函數(shù)時,要在最前面加上#include“stdio.h”printf可以只有一個參數(shù),也可以有兩個參數(shù)。(考過)printf(“第一部分”,第二部分);把第二部分的變量、表達式、常量以第一部分的形式展顯示輸出。printf(“a=%d,b=%d”,12,34)一定要按格式要求一模一樣顯示出來。在黑色屏幕上面顯示為a=12,b=34。(考過)第一章C語言程序基礎

intx=12,y=34;charz=‘a(chǎn)’;printf(“%d”,x,y);printf(“%c”,z);結果為:?一定要記住的(??迹?d

int;%cchar;%ldlongint;%s字符串;%ffloat(默認小數(shù)6位);%o八進制整型;%lfdouble;%#o帶前導的八進制整型;%%輸出一個百分號;%x十六進制整型;%#x帶前導的十六進制;第一章C語言程序基礎

printf(“%f”,1.25);printf(“%5.3f”,1.25);printf(“%3.1f”,1.25);輸出結果?intx=017printf(“%d”,x);printf(“%o”,x);printf(“%#o”,x);printf(“%x”,x);printf(“%#x”,x);輸出結果?第一章C語言程序基礎

第十節(jié)、數(shù)據(jù)輸入使用Scanf函數(shù)時,要在最前面加上#include“stdio.h”scanf(“a=%d,b=%d”,&a,&b)(必考)一定要記住是以第一部分的格式在終端輸入數(shù)據(jù),必須一模一樣。輸入數(shù)據(jù)21,68的正確格式?scanf(“%d,%d”,x,y);這種寫法絕對錯誤,scanf的第二個部分一定要是地址,正確寫法scanf(“%d,%d”,&x,&y)。第一章C語言程序基礎

輸入時候字符和整數(shù)的區(qū)別(??迹篿ntx;scanf(“%d”,&x);這個時候輸入1,特別注意表示的是整數(shù)1scanf(“%c”,&x);這個時候輸入1,特別注意表示的是字符‘1’ASCII為整數(shù)48。putchar,getchar函數(shù)的考查:

chara=getchar()是沒有參數(shù)的,從鍵盤得到你輸入的一個字符給變量a。putchar(‘y’)把字符y輸出到屏幕中。第二章選擇結構程序設計

關系表達式:a、表達式的數(shù)值只能為1(表示為真),或0(表示假)。如9>8這個關系表達式是真的,所以9>8這個表達式的數(shù)值就是1。如7<6這個關系表達式是假的,所以7<6這個表達式的數(shù)值就是0。intx=1,y=0,z=2;x<y<z是真還是假?(容易出錯)b、等號和賦值的區(qū)別。一定記住“=”就是賦值,“==”才是等號。c、優(yōu)先級><>=<=高于==!=第二章選擇結構程序設計

邏輯表達式:表達式的數(shù)值只能為1(表示為真),或0(表示假),操作數(shù)0表示假,非0表示真。A、共有&&||!三種邏輯運算符號。B、!>&&>||優(yōu)先的級別。C、

掌握運算規(guī)則,注意短路現(xiàn)象。(常考)詳細請見書上例子,一定要會做例1和例2D、表示x小于0大于10的方法。第二章選擇結構程序設計

if語句a.單分支的if語句:if(a<b)t=a;雙分支的if語句:if(a<b)min=a;elsemin=b;多分支if語句:if(a==t)printf(“a”);elseif(b==t)printf(“b”);elseif(c==t)printf(“c”);elsepritnf(“d”);嵌套的if語句:if(a<b)

if(b>c)printf(“ok!”);第二章選擇結構程序設計

else是與最接近的if且沒有else的語句匹配。交換的程序寫法:t=x;x=y;y=t;if(a<b)t=a;a=b;b=t;if(a<b){t=a;a=b;b=t;}兩個的區(qū)別(??迹﹊nta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;請問b的值是多少?第二章選擇結構程序設計

4.條件表達式:表達式1?表達式2:表達式3當表達式1的數(shù)值是非0時,才采用表達式2的數(shù)值做為整個運算結果,當表達式1的數(shù)值為0時,就用表達式3的數(shù)值做為整個的結果。inta=1,b=2,c=3,d=4,e=5;k=a>b?c:d>e?d:e;求k的數(shù)值時多少第二章選擇結構程序設計

5.switch語句(必考)a.執(zhí)行的流程b.注意有break和沒有break的差別c.switch(x)x:是整型常量,字符型常量,枚舉型數(shù)據(jù)。{case1:….不可以是變量。case2:….}第三章循環(huán)程序設計

三種循環(huán)結構:a.for();while();do-while()三種。b.for循環(huán)當中必須是兩個分號,千萬不要忘記。c.do-while()循環(huán)的最后一個while();的分號一定不能夠丟。do-while循環(huán)是至少執(zhí)行一次循環(huán)。d.寫程序的時候一定要注意,循環(huán)一定要有結束的條件,否則成了死循環(huán)。2.嵌套循環(huán)就是有循環(huán)里面還有循環(huán),這種比較復雜,要一層一層一步一步耐心的計算,一般記住兩層是處理二維數(shù)組的。第三章循環(huán)程序設計

3.break和continue的差別break:break就退出整個一層循環(huán)。continue:繼續(xù)循環(huán)運算,但是要結束本次循環(huán),就是循環(huán)體內剩下的語句不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,進行新一輪的循環(huán)。4.while((c=getchar())!=’\n’)和while(c=getchar()!=’\n’)的差別(考過)5.每行輸出五個的寫法:for(i=1;i<=100;i++){printf(“%d”,i);

if(i%5==0)printf(“\n”);}第三章循環(huán)程序設計

6.如何整除一個數(shù):

i%5==0表示整除5i%2==0表示整除2,同時表示是偶數(shù)!怎么判斷閏年?輸入123,輸出321逆序輸出數(shù)據(jù)?逆序輸出一個三位數(shù)?7.不停的輸入,直到輸入#停止輸入!不停的輸入,直到輸入$停止輸入!

while((x=getchar())!=’#’){}while((x=getchar())!=’$’){}不停的輸入,直到遇到?停止輸入!第三章循環(huán)程序設計

8.常出的題:a.水仙花數(shù)b.斐波那契數(shù)列c.計算派的近似值d.判斷素數(shù)intk=1intk=1;while(--k);while(k--);printf(“%d”,k);printf(“%d”,k);第四章數(shù)組

數(shù)組:存放的類型是一致的。多個數(shù)組元素的地址是連續(xù)的。2.一維數(shù)組的定義。重要考點,定義時數(shù)組的個數(shù)一定是常量。以下哪些定義是正確的?inta[5];inta[1+1;inta[1/2+4];intx=5,inta[x];defineP5inta[P];3.一維數(shù)組的初始化。以下哪些初始化是正確的?inta[5]={1,2,3,4,5};inta[5]={1,2,3,};inta[]={1,2,3,4,5};inta[5]={1,2,3,4,5,6};第四章數(shù)組

4.二維數(shù)組的初始化,以下哪些是正確的?inta[2][3]={1,2,3,4,5,6};inta[2][3]={1,2,3,4,5};inta[2][3]={{1,2,3,}{4,5,6}};。inta[2][3]={{1,2,}{3,4,5}};inta[2][3]={1,2,3,4,5,6,7}inta[][3]={1,2,3,4,5,6};inta[2][]={1,2,3,4,5,6};第四章數(shù)組

5.掌握找到數(shù)組中最大值或最小值的方法(擂臺法)。(見書上例子)掌握元素排序的兩種方法冒泡排序和選擇排序。(見書上例子)可以用字符串初始化字符數(shù)組,數(shù)組元素個數(shù)最少比其存儲字符串長度多1,存儲表示字符串結束的‘\0’。??碱}:a.計算并存儲斐波那契數(shù)列b.找最大值或最小值c.排序d.楊輝三角第四章數(shù)組

9.常用字符串操作函數(shù):a.fputsb.fgetsc.strlend.strcpye.strcmp第五章函數(shù)

函數(shù):是具有一定功能的一個程序塊,是C語言的基本組成單位。函數(shù)不可以嵌套定義。但是可以嵌套調用。函數(shù)名缺省返回值類型,默認為int。C語言由函數(shù)組成,但有且僅有一個main函數(shù)!是程序運行的開始!函數(shù)的定義intadd(intx,inty){returnx+y;}6.函數(shù)的調用add(5,6);第五章函數(shù)

main(){intsum;sum=add(add(7,8),9);/*請問sum的結果是多少?*/}7.函數(shù)的原型聲明intadd(inta,intb);//a,b可以省略int*fun(inta[],intb[]){……}以下這個函數(shù)聲明哪個是正確的?int*fun(int*a,int*b);

int*fun(inta[],intb[]

);int*fun(int*,int*);第五章函數(shù)

8.參數(shù)之間的傳遞(必考)實參和形參之間傳數(shù)值,和傳地址的差別。傳數(shù)值的話,形參的變化不會改變實參的變化。傳地址的話,形參的變化就會有可能改變實參的變化。數(shù)組名作參數(shù)其實質是傳地址。一定要看懂swap函數(shù)9.以下這些庫函數(shù)經(jīng)??嫉?,所以要背誦下來。abs()、sqrt()、fabs()、pow()、sin()其中pow(a,b)是sqrt()是重點,以上庫函數(shù)要加載math.h第五章函數(shù)

10.變量的作用域和生存期按作用域分為:全局、局部。按生存期分為:靜態(tài)、動態(tài)。按作用域和生存期將局部變量分為靜態(tài)局部變量,動態(tài)局部變量。全局變量分為內部變量和外部變量。函數(shù)分為內部函數(shù)和外部函數(shù)。必須記住代碼,輸出1~n全部階乘。第五章函數(shù)

11.記住以下代碼。a.如何判斷a是否為質數(shù):voidiszhishu(inta){for(i=2;i<a/2;i++)

if(a%i==0)printf(“不是質數(shù)”);printf(“是質數(shù)!”);}第五章函數(shù)

b.如何求n階乘:intfun(intn){intp=1;for(i=1;i<=n;i++)p=p*i;returnp;}遞歸代碼會寫嗎?求數(shù)組中所有元素和的遞歸代碼?第六章指針

指針變量的本質是用來放地址,而一般的變量是放數(shù)值的。int*p=&a;*p是a的數(shù)值,p是a的地址。*p++和(*p)++的之間的差別。*p++是地址會變化,取當前值,然后再移動地址;(*p)++是數(shù)值會要變化,取當前值,然后再使數(shù)值增加1。(??迹﹊nt*p,a[]={1,3,5,7,9};p=a;請問*p++和(*p)++的數(shù)值分別為多少?第六章指針

4.指針可以加減一個常數(shù)表示其在內存中位置的變化,注意加減的單位是其指向數(shù)據(jù)的大??;指針可以比較、賦值、兩個指針可以相減,表示兩者間數(shù)組元素的個數(shù)。5、指針訪問數(shù)組元素。(

必考)a.inta[100],*p;p=a;*(a+i),a[i],p[i],*(p+i);b.inta[3][3];(*p)[3];p=a;a[i][j],*(a[i]+j),*(*(a+i)+j),*(p[i]+j),*(*(p+i)+j),p[i][j]第六章指針

6.傳數(shù)值和傳地址(常考)voidfun(inta,intb)voidfun(int*a,int*b){intt;{intt;

t=a;a=b;b=t;t=*a;*a=*b;*b=t;}}main()main(){intx=1,y=3,{intx=1,y=3,

fun(x,y);fun(&x,&y)printf(“%d,%d”,x,y);printf(“%d,%d”,x,y);}}。第六章指針

字符指針,使用字符指針操作字符串。輸出結果?a.char*s=“meikanshu”while(*s){printf(“%c”,*s);s++;}b.charch[]=”iamhandsome”;char*p=ch;問你*(p+2)和*p+2的結果是多少?c..char*s=”iamhandsome”;chart[100];while(*t++=*s++);程序功能?第六章指針

8.函數(shù)返回值是指針int*fun(int*a,int*b{if(*a>*b)returna

elsereturnb;}main(){intx=7,y=8,*max;

max=fun(&x,&y)。

printf(“%d,%d”,)}第六章指針

9.函數(shù)指針的用法,記住下面例子:intadd(intx,inty){....}main(){int(*f)();f=add;printf(“%d”,f(2,3));}第六章指針

10.二級指針:*p:一級指針:存放變量的地址。**q:二級指針:存放一級指針的地址。intx=7;*p為多少?*q為多少?**q為多少?**q=&x的寫法可以嗎?第七章結構體和文件

1、結構體類型的聲明struct類型名{

成員定義};2、結構體變量的定義struct類型名 變量名;或者在說明的時候一起定義;struct類型名{

成員定義}變量名;第七章結構體和文件

結構體變量

溫馨提示

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

評論

0/150

提交評論