C語(yǔ)言基本知識(shí)點(diǎn)歸納
C語(yǔ)言基本知識(shí)點(diǎn)歸納
引導(dǎo)語(yǔ):C語(yǔ)言既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。以下是小編分享給大家的C語(yǔ)言基本知識(shí)點(diǎn)歸納,歡迎閱讀!
一、C語(yǔ)言知識(shí)點(diǎn)歸納:
1、C語(yǔ)言程序是由多個(gè)函數(shù)構(gòu)成的。
2、每個(gè)C語(yǔ)言程序中有且只有一個(gè)main函數(shù)。
3、C語(yǔ)言不使用行號(hào),無(wú)程序行的概念。
4、程序中可使用空行和空格。
5、C語(yǔ)言程序格式常用鋸齒形書(shū)寫(xiě)格式。
6、C語(yǔ)言程序中可加任意多的注釋?zhuān)⑨屝问?*……*/,并且注釋形式不能嵌套,即不能注釋里面又有另一個(gè)注釋。//行注釋是C++當(dāng)中新增加的內(nèi)容。
7、引用C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù),一般要用文件包含預(yù)處理命令將其頭文件包含進(jìn)來(lái)。
8、用戶自定義的函數(shù),必須先定義后使用。
9、變量必須先定義后使用。
10、變量名,函數(shù)名必須是合法的標(biāo)識(shí)符,標(biāo)識(shí)符習(xí)慣用小寫(xiě)字母,C語(yǔ)言是字母大小寫(xiě)敏感的語(yǔ)言。
11、不能用關(guān)鍵字來(lái)命名變量和函數(shù)。
12、C語(yǔ)言的語(yǔ)句都是以分號(hào)結(jié)尾的。
13、計(jì)算機(jī)中使用的進(jìn)制數(shù)是二進(jìn)制數(shù),而不是十進(jìn)制數(shù),因?yàn)槎M(jìn)制只有兩個(gè)數(shù)碼,運(yùn)算簡(jiǎn)單便于硬件實(shí)現(xiàn),同時(shí)二進(jìn)制便于邏輯運(yùn)算。將十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)應(yīng)分為整數(shù)部分轉(zhuǎn)換和小數(shù)部分轉(zhuǎn)換,整數(shù)部分轉(zhuǎn)換可采用基數(shù)除法來(lái)實(shí)現(xiàn),小數(shù)部分轉(zhuǎn)換可采用基數(shù)乘法來(lái)實(shí)現(xiàn)。八進(jìn)制和十六進(jìn)制也是C語(yǔ)言中經(jīng)常表示數(shù)據(jù)的進(jìn)制,因?yàn)樗鼈兣c二進(jìn)制之間的轉(zhuǎn)換非常方便,但要注意他們不是計(jì)算機(jī)中使用的進(jìn)制。
14、機(jī)器數(shù)的表示形式有原碼、反碼和補(bǔ)碼幾種形式,計(jì)算機(jī)中通常使用補(bǔ)碼的形式來(lái)表示一個(gè)數(shù),因?yàn)檠a(bǔ)碼運(yùn)算可以連同符號(hào)位一起參與運(yùn)算,這便于運(yùn)算器的設(shè)計(jì)與實(shí)現(xiàn)。
二、編程過(guò)程中初學(xué)者極易犯的錯(cuò)誤:
1、書(shū)寫(xiě)標(biāo)識(shí)符時(shí),忽略了大小寫(xiě)字母的區(qū)別。例如把變量a寫(xiě)成A。
2、忽略了變量的類(lèi)型,進(jìn)行了不合法的運(yùn)算。例如floata,b;printf(“%d”,a%b);,其中%運(yùn)算只能是整形變量或常量。
3、將字符常量與字符串常量混淆。例如charc;c=”a”;,應(yīng)該是c=’a’;
4、語(yǔ)句末尾忘記加分號(hào)。
5、容易多加不需要的分號(hào),例如{inta,b;printf(“%d,%d”,a,b);};這里花括號(hào)外是不能加分號(hào)的。
6、將C語(yǔ)句寫(xiě)在{}的外面。
7、變量未定義就使用。
8、在執(zhí)行部分定義變量。在TC下,函數(shù)由生命部分和執(zhí)行部分組成,并且這兩部分不能交叉,也就是說(shuō),不能在C語(yǔ)言中間定義變量。下面程序中,變量b的定義放到了執(zhí)行部分。
voidmain()
{
inta;
a=10;
intb;
b=a;
}
但要記住VC6.0中沒(méi)有這樣的規(guī)定,只要變量定義在前,使用在后就行。
9、給變量賦值時(shí)忽視了變量的表示范圍。例如charch=130;char類(lèi)型的取值范圍是-128~127,這里130超出了ch的表示范圍。
10、定義變量時(shí),變量名之間用了空格或分號(hào)分隔。例如:intab;應(yīng)改為:inta,b;
11、輸入字符常量時(shí)漏掉單引號(hào),認(rèn)為A、B就是’A’、’B’。例如charch=A;
12、C語(yǔ)句末尾的分號(hào)用了中文的分號(hào)(;)而不是英文的(;),導(dǎo)致編譯錯(cuò)誤。
13、誤將字母o當(dāng)成數(shù)字零0。
14、編程中經(jīng)常漏掉}、)、’、”。
15、定義變量時(shí)數(shù)據(jù)類(lèi)型名與變量名之間無(wú)空格。例如inta;
16、對(duì)于float型變量,使用%運(yùn)算符。
17、對(duì)表達(dá)式進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí)漏掉了(),例如:int(3.2+a),應(yīng)該為:(int)(3.2+a)。
18、賦值運(yùn)算符的左邊使用表達(dá)式:例如:a+b=30;或者是30=a+b;
19、語(yǔ)序顛倒。例如下列程序中初學(xué)者會(huì)誤認(rèn)為程序的輸出為a=21:
main()
{
inta,b;
a=b+1;
b=20;
printf(“a=%d”,a);
}
20、#include或#define命令用分號(hào)結(jié)束。
#開(kāi)頭的是預(yù)處理命令,而不是C語(yǔ)句,因此,不用用分號(hào)結(jié)尾。例如#include;就是錯(cuò)誤的,多了個(gè)分號(hào)。
21、利用scanf函數(shù)輸入變量值時(shí)漏掉取地址符&。
22、利用printf函數(shù)和scanf函數(shù)時(shí),格式控制符與表達(dá)式類(lèi)型不一致,或數(shù)量不相等。例如:
inta,b;
scanf(“%d”,&a,&b);//格式控制符與表達(dá)式的數(shù)量不相等
printf(“a=%d,b=%f”,a,b);//%f應(yīng)改為%d。
23、調(diào)用scanf函數(shù)輸入浮點(diǎn)數(shù)時(shí)規(guī)定了精度。
例如:
floatf;
scanf(“%5.2f”,&f);//應(yīng)改為scanf(“%5f”,&f);
24、對(duì)算數(shù)表達(dá)式取地址。
取地址運(yùn)算符&只能用于變量。
下面做法是錯(cuò)誤的:
inta,b;
scanf(“%d”,&(a+b));//錯(cuò)誤
25、利用printf打印單引號(hào)、雙引號(hào)、反斜杠時(shí),沒(méi)有在這些字符前利用反斜杠構(gòu)成轉(zhuǎn)義字符。
例如printf(”youshouldsay”bye”!”);
應(yīng)改為:printf(”youshouldsay”bye”!”);
三、C語(yǔ)言編程習(xí)慣。
1、一行只放一條語(yǔ)句。盡管C語(yǔ)言允許在一行放置多條語(yǔ)句,但一行只放一條語(yǔ)句有助于程序的調(diào)試。
2、養(yǎng)成隨時(shí)給程序加注釋的習(xí)慣。一邊別的程序員或自己日后對(duì)程序的快速理解。
3、程序的書(shū)寫(xiě)要有層次感,及鋸齒形。
4、編寫(xiě)函數(shù)時(shí),變量定義部分和函數(shù)的執(zhí)行部分之間增加一空行,或者在程序的執(zhí)行部分按照完成的功能塊增加相應(yīng)的空行,會(huì)增加程序的易讀性。
5、為變量起有意義的.名字,既可以幫助程序員讀懂程序,也可以避免變量的重復(fù)亂用,導(dǎo)致程序的邏輯錯(cuò)誤。
6、在運(yùn)算符和賦值符號(hào)的兩邊加上一個(gè)空格會(huì)增加程序的易讀性。
例如a=a+b;寫(xiě)成a=a+b;更好。
C語(yǔ)言基本算法: 1.交換(兩量交換借助第三者)
例1、任意讀入兩個(gè)整數(shù),將二者的值交換后輸出。
main()
{int a,b,t;
scanf("%d%d",&a,&b);
printf("%d,%d ",a,b);
t=a; a=b; b=t;
printf("%d,%d ",a,b);}
程序中加粗部分為算法的核心,如同交換兩個(gè)杯子里的飲料,必須借助第三個(gè)空杯子。
假設(shè)輸入的值分別為3、7,則第一行輸出為3,7;第二行輸出為7,3。
其中t為中間變量,起到“空杯子”的作用。
注意:三句賦值語(yǔ)句賦值號(hào)左右的各量之間的關(guān)系!
例2、任意讀入三個(gè)整數(shù),然后按從小到大的順序輸出。
main()
{int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b){ t=a; a=b; b=t; }
if(a>c){ t=a; a=c; c=t; }
if(b>c) { t=b; b=c; c=t; }
printf("%d,%d,%d ",a,b,c);}
2.累加
累加算法的要領(lǐng)是形如“s=s+A”的累加式,此式必須出現(xiàn)在循環(huán)中才能被反復(fù)執(zhí)行,從而實(shí)現(xiàn)累加功能!癆”通常是有規(guī)律變化的表達(dá)式,s在進(jìn)入循環(huán)前必須獲得合適的初值,通常為0。
例1、求1+2+3+……+100的和。
main()
{int i,s;
s=0; i=1;
while(i<=100)
{s=s+i;
i=i+1;
}
printf("1+2+3+...+100=%d ",s);}
程序中加粗部分為累加式的典型形式,賦值號(hào)左右都出現(xiàn)的變量稱(chēng)為累加器,其中“i = i + 1”為特殊的累加式,每次累加的值為1,這樣的累加器又稱(chēng)為計(jì)數(shù)器。
3.累乘
累乘算法的要領(lǐng)是形如“s=s*A”的累乘式,此式必須出現(xiàn)在循環(huán)中才能被反復(fù)執(zhí)行,從而實(shí)現(xiàn)累乘功能!癆”通常是有規(guī)律變化的表達(dá)式,s在進(jìn)入循環(huán)前必須獲得合適的初值,通常為1。
例1、求10!
[分析]10!=1×2×3×……×10
main()
{int i; long c;
c=1; i=1;
while(i<=10)
{c=c*i;
i=i+1;
}
printf("1*2*3*...*10=%ld ",c);}
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 yyfangchan@163.com (舉報(bào)時(shí)請(qǐng)帶上具體的網(wǎng)址) 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除