C語言的基本構成
C語言的基本構成
知識點:C語言的注釋;關鍵字;書寫風格;常量和變量
重要程度:★★★★
1、C語言的良好風格
用C語言編寫的程式,稱為C語言源程式,簡稱C程式。
本節将通過一個簡單的C程式例子,向大家介紹C語言的一些基本構成和如何寫出風格良好的程式,使讀者對C語言有一個初步的認識。
例1:計算兩個整數之和的C程式
#include "stdio.h"
main( ) /*求兩數之和*/
{
int a,b,sum; /*變量說明*/
a=10; /*把整數10指派給變量a */
b=20; /*把整數20指派給變量b */
sum=a+b; /*把兩數之和指派給變量sum */
printf("a=%d,b=%d,sum=%d\n",a,b,sum); /*把計算結果輸出到使用者螢幕上*/
}
好的風格: 1. 花括号獨占一行,有對應關系的花括号在同一列;
2. 有層次關系的代碼有必要的縮進;
3. 一條語句獨占一行
4. 有适當的注釋
2、關于注釋的說明(考點一)
² 程式中以“/*”開頭并且以“*/”結尾的部分表示程式的注釋部分。
² 注釋可以加在程式的任何位置。
² 注釋是為了提高程式的可讀性而增加的,不屬于C語言。
² /*/*ddddddd*/*/ 這樣的注釋不是合法的。注釋是從“/*“開始到”*/“結束的。以該例為準,屬于注釋的就是/* */兩個之間的/*ddddddd,是以最後剩下的*/就是多餘了。
例1: 閱讀以下程式,想一想結果是多少?
main( )
{ int a=0,b=0;
a =10; /*給a指派
b=20; 給b指派 */
printf("a+b=%d\n",a+b); /*輸出計算結果*/
}
這是2006年9月全國計算機等級考試二級考試的第19題。需要特别注意的是,程式第三行“/*”開始的注釋部分,直到第四行末尾才結束。是以上面的程式等價于以下的程式:
main( )
{ int a=0,b=0;
a =10;
printf("a+b=%d\n",a+b);
}
3、辨別符(考試重點)
在C語言中用于辨別名字的有效字元序列稱為辨別符。辨別符可以用作常量名、變量名、符号名、函數名和後面要學到的指針名、數組名等。C語言中辨別符的命名規則如下:
1)辨別符隻能由字母、數字和下劃線組成;
2)辨別符的第一個字元必須是字母或下劃線。
3)辨別符區分大小寫字母。如int與Int是兩個完全不同的辨別符。
合法的辨別符:
a x sum spels program ab1 _to file_5 a1b2c3 _2 B3
非法的辨別符:
ab12# (含有不合法的字元“#”)
a1-c (含有不合法的字元“-”)
ab c (空格不是合法辨別符)
pr (“p”不是字母,為不合法辨別符字元)
23ab (第一個字元不能為數字)
C語言的辨別符分為如下三類:
1)關鍵字
關鍵字是具有特定含義的、專門用來說明C語言特定成分的一類辨別符。關鍵字均由小寫字母構成。Int 就不是關鍵字。
2)預定義辨別符
預定義辨別符(如printf,scanf,sin,isalum等)和編譯預處理指令名(如define,include等)。注意,預定義辨別符可以作為“使用者辨別符”使用。
3)使用者辨別符(考試重點)
不能是關鍵字;隻能由字母、數字和下劃線組成;第一個字元必須是字母或下劃線。
Int可以作為使用者辨別符,int就不可以作為使用者辨別符。
考點:1. 識别哪些是(或不是)辨別符
2. 識别哪些是(或不是)使用者辨別符
例2: 以下不能定義為使用者辨別符的是
A) scanf B) Void C) _3com_ D) int
分析:本題答案選D。因為int是關鍵字,關鍵字不能作為使用者辨別符。答案(A)的scanf雖然是預定義辨別符,但是預定義辨別符可以作為使用者辨別符使用。(B)中Void的第一個字元V大寫,它與關鍵字void是兩個不同的辨別符,故它可以作為使用者辨別符。(C)中的_3com_符合辨別符的命名規則,且不是關鍵字,故可以定義為使用者辨別符。
例3:以下不合法的使用者辨別符是
A) j2_KEY B) Double C) 4d D)_8_
分析:本題答案選C。答案(A)是一個使用者辨別符,符合辨別符的命名規則。答案(B)也是使用者辨別符,需要注意的是,它與關鍵字double是兩個不同的辨別符。答案(D)是使用者辨別符,由數字和下劃線組成,且第一個字元為下劃線。隻有答案(C)是不合法的使用者辨別符,因為它的第一個字元是數字,不符合辨別符的命名規則。
- 辨別符的常見錯誤:
1. 數字開頭
2. 包含減号“-”
3. 使用者辨別符使用的是關鍵字
4、常量。
C語言中,還有另外一種常量是用辨別符命名的,稱為符号常量。下面程式的PI就是符号常量。
例4: 計算圓面積的C語言程式
#define PI 3.14159
main( )
{ float r,area;
r=12.5;
area=PI*r*r;
printf("area=%f\n",area);
}
程式的第一行是宏定義,以後遇到PI就用其後的内容——3.14159來原樣替換。這裡的PI就是一個符号常量。通常,符号常量用大寫字母表示,但這并不是文法上的要求,隻不過用大寫字母書寫符号常量,便于辨認。當進行宏定義後,程式中隻要用到相應的數值常量都可以用符号常量代替,這就給程式的修改提供了友善。例如,如果需要進一步提高圓周率的精度,可以直接修改宏定義中的數值常量:
#define PI 3.1415926
這樣,程式中隻要用到PI的地方,其值都自動變為3.1415926。
5、變量
與常量對應的是變量。顧名思義,變量就是在程式的運作過程中其值可以改變的量。例1中的a,b都是變量,它們是由使用者定義的辨別符,變量的命名必須遵循辨別符的命名規則。
用盒子的理論來描述:
1) 變量就是盒子,裡面裝的内容可以改變。
2) 通過指派語句就可以改變盒子裡的内容。
3) 每次使用盒子時,盒子裡都應該有确切的内容而不能是不确定的值。
4) 每次使用盒子時,都是用的現在盒子裡裝的内容。以前裝過什麼内容沒有任何影響。