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