本節(jié)首先介紹Turbo C程序的基本組成部分; 然后介紹Turbo C的數(shù)據(jù)類型、
變量類型、變量的初始化和賦值; 最后介紹Turbo C的有關(guān)操作。 通過本節(jié)的學(xué)
習(xí), 可以對Turbo C語言有一個初步認識。
1. Turbo C程序的一般組成部分
Turbo C 2.0 象其它語言一樣按其規(guī)定的格式和提供的語句由用戶編寫應(yīng)用
程序。請看下面一段Turbo C源程序。
例1:
/*Example program of Turbo C*/
#include <stdio.h> /*包含文件說明*/
void lgc(void); /*子函數(shù)說明*/
char answer; /*定義全程變量*/
int main() /*主函數(shù)定義*/
{
char a; /*定義局部變量*/
clrscr();
gotoxy(12,3);
puts(“Welcome to use Turbo C2.0!”);
gotoxy(15, 13);
printf(“<Esc>–Exit”);
gotoxy(15, 15);
printf(“<CR>–Continue”);
while(1)
{
a=getch();
if(a==27)
break;
if(a==13)
{
lgc();
if(answer==’y’||answer==’Y’)
{
gotoxy(23,14);
puts(“Please Write to the Company”);
getch();
break;
}
}
}
return(0);
}
void lgc(void)
{
clrscr();
gotoxy(12,8);
printf(“The Excellent Selection!”);
gotoxy(21,12);
printf(“Do you have any question?(Y/N)”);
answer=getche();
}
由例子程序可以看出, Turbo C源程序主要有以下幾個特點:
1. 程序一般用小寫字母書寫;
2. 大多數(shù)語句結(jié)尾必須要用”;”作為終止符, 否則Turbo C 不認為該語句結(jié)
束;
3. 每個程序必須有一個而且只能有一個稱作主函數(shù)的main()函數(shù);
4. 每個程序體 (主函數(shù)和每個子函數(shù), 如上例中的main()函數(shù)和sub()函數(shù))
必須用一對花括號”{“和”}”括起來;
5. 一個較完整的程序大致包括:包含文件(一組#include<*.h>語句)、用戶
函數(shù)說明部分、全程變量定義、主函數(shù)和若干子函數(shù)組成。在主函數(shù)和子函數(shù)中
又包括局部變量定義、若干個Turbo C庫函數(shù)、控制流程語句、 用戶函數(shù)的調(diào)用
語句等;
6. 注釋部分包含在”/*”和”*/”之間, 在編譯時它被Turbo C編譯器忽略。
說明:
1. 象其它一些語言一樣, Turbo C的變量在使用之前必須先定義其數(shù)據(jù)類型,
未經(jīng)定義的變量不能使用。定義變量類型應(yīng)在可執(zhí)行語句前面, 如上例main()函
數(shù)中的第一條語句就是變量定義語句, 它必須放在第一各執(zhí)行語句clrscr()前面。
2. 在Turbo C中, 大、小寫字母是有區(qū)別的, 相同字母的大、小寫代表不同
的變量。
3. Turbo C程序的書寫格式非常靈活, 沒有嚴格限制。
例1的主函數(shù)可寫成:
main(){char c; clrscr(); gotoxy(12,3);
puts(“Welcome to use Turbo C2.0!”); gotoxy(15,13);
printf(“<CR>–Continue”); gotoxy(15,15);…}
這樣寫語法上沒有錯誤, 但閱讀起來不方便, 同時也使得程序?qū)哟尾幻鞔_。
作者建議用Turbo C編程時, 一行一條語句, 遇到嵌套語句向后縮進, 必要時對
程序加上注釋行。這樣可以便程序結(jié)構(gòu)清楚、易于閱讀、維護和修改。
通過以上介紹, 可以得出Turbo C源程序的一般形式為:
包含文件
子函數(shù)類型說明
全程變量定義
main()
{
局部變量定義
<程序體>
}
sub1()
{
局部變量定義
<程序體>
}
sub2()
{
局部變量定義
<程序體>
}
.
.
.
subN()
{
局部變量定義
<程序體>
}
其中sub1(), …, subN()代表用戶定義的子函數(shù), 程序體指Turbo C 2.0
提供的任何庫函數(shù)調(diào)用語句、控制流程語句或其它用子函數(shù)調(diào)用語句等。
1. 數(shù)據(jù)類型
在Turbo C語言中, 每個變量在使用之前必須定義其數(shù)據(jù)類型。Turbo C有以
下幾種類型: 整型(int)、浮點型(float)、字符型(char)、指針型(*)、無值型
(void)以及結(jié)構(gòu)(struct)和聯(lián)合(union)。其中前五種是Turbo C的基本數(shù)據(jù)類型、
后兩種數(shù)據(jù)類型(結(jié)構(gòu)和聯(lián)合)將在第五章介紹。
2.1 整型(int)
一、整型數(shù)說明
加上不同的修飾符, 整型數(shù)有以下幾種類型;
signed short int 有符號短整型數(shù)說明。簡寫為short或int, 字長為2
字節(jié)共16位二進制數(shù), 數(shù)的范圍是-32768~32767。
signed long int 有符號長整型數(shù)說明。簡寫為long, 字長為4字節(jié)共
32位二進制數(shù), 數(shù)的范圍是-2147483648~2147483647。
unsigned short int 無符號短整型數(shù)說明。簡寫為unsigned int, 字長
為2字節(jié)共16位二進制數(shù), 數(shù)的范圍是0~65535。
unsigned long int 無符號長整型數(shù)說明。簡寫為unsigned long, 字長
為4字節(jié)共32位二進制數(shù), 數(shù)的范圍是0~4294967295。
二、整型變量定義
可以用下列語句定義整型變量
int a, b; /*a、b被定義為有符號短整型變量*/
unsigned long c; /*c被定義為無符號長整型變量*/
三、整型常數(shù)表示
按不同的進制區(qū)分, 整型常數(shù)有三種表示方法:
十進制數(shù): 以非0開始的數(shù)
如:220, -560, 45900
八進制數(shù): 以0開始的數(shù)
如:06; 0106, 05788
十六進制數(shù):以0X或0x開始的數(shù)
如:0X0D, 0XFF, 0x4e
另外, 可在整型常數(shù)后添加一個”L”或”l”字母表示該數(shù)為長整型數(shù), 如22L,
0773L, 0Xae4l。
2.2 浮點型(float)
一、浮點數(shù)說明
Turbo C中有以下兩種類型的浮點數(shù):
float 單浮點數(shù)。字長為4 個字節(jié)共32 位二進制數(shù), 數(shù)的范圍是
3.4×10-38E~3.4×10+38E。
double 雙浮點數(shù)。字長為 8個字節(jié)共 64 位二進制數(shù), 數(shù)的范圍是
1.7×10-308E~1.7×10+308E。
說明:
浮點數(shù)均為有符號浮點數(shù), 沒有無符號浮點數(shù)。
二、浮點型變量定義
可以用下列語句定義浮點型變量:
float a, f; /*a, f被定義為單浮點型變量*/
double b; /*b被定義為雙浮點型變量*/
三、浮點常數(shù)表示
例如: +29.56, -56.33, -6.8e-18, 6.365
說明:
1. 浮點常數(shù)只有一種進制(十進制)。
2. 所有浮點常數(shù)都被默認為double。
3. 絕對值小于1的浮點數(shù), 其小數(shù)點前面的零可以省略。如:0.22可寫為.22,
-0.0015E-3可寫為-.0015E-3。
4. Turbo C默認格式輸出浮點數(shù)時, 最多只保留小數(shù)點后六位。
2.3 字符型(char)
加上不同的修飾符, 可以定義有符號和無符號兩種類型的字符型變量, 例如:
char a: /*a被定義為有符號字符變量*/
unsigned char l; /*l被定義為無符號字符變量*/
字符在計算機中以其ASCII碼方式表示, 其長度為1個字節(jié), 有符號字符型數(shù)
取值范圍為-128~127, 無符號字符型數(shù)到值范圍是0~255。因此在Turbo C語言中,
字符型數(shù)據(jù)在操作時將按整型數(shù)處理, 如果某個變量定義成char, 則表明該變量
是有符號的, 即它將轉(zhuǎn)換成有符號的整型數(shù)。
Turbo C中規(guī)定對ASCII碼值大于0x80的字符將被認為是負數(shù)。例如ASCII 值
為0x8c的字符, 定義成char時, 被轉(zhuǎn)換成十六進制的整數(shù)0xff8c 。 這是因當(dāng)
ASCII碼值大于0x80時, 該字節(jié)的最高位為1, 計算機會認為該數(shù)為負數(shù), 對于
0x8c表示的數(shù)實際上是-74(8c的各位取反再加1), 而-74 轉(zhuǎn)換成兩字節(jié)整型數(shù)并
在計算機中表示時就是0xff8c( 對0074 各位取反再加1) 。 因此只有定義為
unsigned char 0x8c轉(zhuǎn)換成整型數(shù)時才是8c。這一點在處理大于0x80的ASCII碼
字符時(例如漢字碼)要特別注意。一般漢字均定義為unsigned char(在以后的程
序中會經(jīng)常碰到)。
另外, 也可以定義一個字符型數(shù)組(關(guān)于數(shù)組后面再作詳細介紹), 此時該數(shù)
組表示一個字符串。
例如:
char str[10];
計算機在編譯時, 將留出連續(xù)10個字符的空間, 即str[0]到str[9]共10個變
量, 但只有前9個供用戶使用。第10個str[9]用來存放字符串終止符NULL即”