首先介绍Turbo C程序的基本组成部分; 然后介绍Turbo C的数据类型、变 9&n9J^3L
量类型、变量的初始化和赋值; 最后介绍Turbo C的有关操作。通过本节的学习,可 &zdS9e-fF
以对Turbo C语言有一个初步认识。 d_yvG.#C
mgAjD.
1. Turbo C程序的一般组成部分 yYA*5
7^A
V`^*Z}d9
Turbo C 2.0 象其它语言一样按其规定的格式和提供的语句由用户编写应用程 ,t9EL 21
序。 请看下面一段Turbo C源程序。 例1: @N4_){s*
ws'e
.Vbd-jr'M
n1."Qix0
/*Example program of Turbo C*/ u7L?9
#include /*包含文件说明*/ dLiiJ6pl*
void lgc(void);/*子函数说明*/ tYu<(Z(l)
char answer;/*定义全程变量*/ 'x*C#mt
int main()/*主函数定义*/ bY" zK',m
{ $oBs%.Jp
char a;/*定义局部变量*/ >Ku4Il+36
clrscr(); :?6HG_9X
gotoxy(12,3); ~)U50.CH
puts("Welcome to use Turbo C2.0!"); &Hb%Q! ^Kb
gotoxy(15,13); Z<nNk.G
printf("--Exit"); lYG`)#T
gotoxy(15,15); NN*L3yx
printf("--Continue"); jIubJQR~
while(1) }?s-$@$R
{ 23gN;eD+m6
a=getch(); FEjO}lTK
if(a==27) *7xcwjeP
break; V~*Gk! +f
if(a==13) l=CAr
{ XV]N}~h o`
lgc(); sgfqIe1
if(answer=='y'||answer=='Y') %R0 Wq4}
{ GW,EyOE+~
gotoxy(23,14); NUV">i.(
puts("Please Write to the Company"); {rc3`<%
getch(); Q,KNZxT,q
break; hIe .Mv-I)
} .-Lrrk)R+
} >v+1v
} a
!VWWUTm?
return(0);}void lgc(void){ 0/R;g~q@
clrscr(); f .O^R~,
gotoxy(12,8); Kb%Y%j
printf("The Excellent Selection!"); =XR~I
gotoxy(21,12); W=+n|1
printf("Do you have any question?(Y/N)"); @xWWN
answer=getche();} Bb/if:XS
?'> .>
[c,V=:Cq
;'S,JGpvT
由例子程序可以看出,Turbo C源程序主要有以下几个特点: 3FiK/8mu
A6z,6v6
1. 程序一般用小写字母书写;
d$$5&a
q} e#L6cM
2. 大多数语句结尾必须要用";"作为终止符,否则Turbo C 不认为该语句 >(RkoExO/
结束; _
$F=A
w+)${|N?
3. 每个程序必须有一个而且只能有一个称作主函数的main()函数; <:9ts@B
.LDZqWr-
4. 每个程序体(主函数和每个子函数,如上例中的main()函数和sub()函数)必须用一对花括号" //7YtK6
{"和"}"括起来; h4`8C]
S_P&Fv
5. 一个较完整的程序大致包括:包含文件(一组#include<*.h>语句)、 <=.6Z*x+
用户函数说明部分、全程变量定义、主函数和若干子函数组成。在主函数和子函数 <2pp6je\0s
中又包括局部变量定义、 若干个Turbo C库函数、控制流程语句、用户函数的调用 6Z_V,LD9L
语句等; a|t~&\@
/a1uG]Mt
w%])
6. 注释部分包含在"/*"和"*/"之间,在编译时它被Turbo C编译器忽略。 (<Cq_Kw
t\Vng0
说明: )E9!m
2.v{W-D[
v9f+ {Y%-
1. 象其它一些语言一样,Turbo C的变量在使用之前必须先定义其数据类 jEBn"]\D
型,未经定义的变量不能使用。定义变量类型应在可执行语句前面,如上例main()函 oMbd1uus
数中的第一条语句就是变量定义语句,它必须放在第一各执行语句clrscr()前面。 : s
*
|5~Oh`w
rI$NNk'A
2. >?^oxB"<Gc
在Turbo C中, 大、小写字母是有区别的,相同字母的大、小写代表不同的变量。 5M5Bm[X
|S8$NI2
3. :!aLa}`@
Turbo C程序的书写格式非常灵活,没有严格限制。 fI`Ez!w0
IWv(GQx
例1的主函数可写成: g{N}]_%Uh
kY]"3a
/b,>fK^
main(){char c;clrscr();gotoxy(12,3); m*y&z'e\
puts("Welcome to use Turbo C2.0!");gotoxy(15,13); S`s]zdUTP
printf("--Continue");gotoxy(15,15);...} ^%f8JoB
'h$1
z$X5
&wQ;J)13
这样写语法上没有错误,但阅 edL2ax
读起来不方便, 同时也使得程序层次不明确。 Ze0qRLuH!
v2x+_K}J
}b1G21Dc!
作者建议用Turbo C编程时,一行一条 !>9s
语句,遇到嵌套语句向后缩进,必要时对程序加上注释行。这样可以便程序结构清楚、 pT,8E(*l2
易于阅读、维护和修改。通过以上介绍,可以得出Turbo C源程序的一般形式为: QM(xMq
包含文件 38w^="-T
子函数类型说明 lj<Sa
全程变量定义 p-s\D_
main() xa)p,
{ =;Q/bD->
局部变量定义 $z$^
yjL
<程序体> $@Vn+|
Ix
} cSPQ
NYU:
sub1() FJ0I&FyWs
{ Jr5S8c|"
局部变量定义 9QU\J0c/
<程序体> z6`0Uv~
} -E}X`?WhD
sub2() /b=C
{ ;^N
lq3N
局部变量定义 #da{3>z:
<程序体> 9dNB_
} ,b5'<3\
. t'2A)S
. BH'*I
yv
. ~v8X>XDL?T
subN() xL15uWk-
{ *O[/KR%
局部变量定义 B?BOAH
<程序体> UNDl&C2vz
} qm_l#
u6
rO#w(]
其中sub1() ,...,subN()代表用户定义的子函数,程序体指Turbo C 2.0提供的 jRg/N_2'2
任何库函数调用语句、控制流程语句或其它用子函数调用语句等。 i|{psA
ZLzc\>QX
[63\2{_^v
2. 数据类型 4. R(`#f
,&BNN]k
在Turbo C语言中, 每个变量在使用之前必须定义其数据类型。Turbo C有以下 +2iD9X{$MX
几种类型:整型(int)、浮点型(float)、字符型(char)、指针型(*)、无值型(void) 1{N+B#*<[X
以及结构(struct)和联合(union)。其中前五种是Turbo C的基本数据类型、后两种 .2%t3ul[
数据类型(结构和联合)将在第五章介绍。 =AO
(
]njNSn
2.1 整型(int) mh8fJ6j29N
u[**,.Ecg
一、整型数说明 TU6s~
!H\;X`W|~D
1 iox0
加上不同的修饰符,整型数有以下几种类型; 3@" :&
AUD)=a>
signed short int 有符号短整型数说明。简写为short或int,字长为2 @XJ7ff&
n$2oM5<
字节共16位二进制数,数的范围是-32768~32767。 WK$\#>T
3VLwY!2:
signed long int 有符号长整型数说明。简写为long,字长为4字节共 ?kR1T0lKkE
32位二进制数,数的范围是-2147483648~2147483647。 NFTv4$5d
unsigned short int 无符号短整型数说明。简写为unsigned int,字长 rXW.F'=K6
为2字节共16位二进制数,数的范围是0~65535。 4w+AOWjd
unsigned long int 无符号长整型数说明。简写为unsigned long,字长 qy'-'UlIr
为4字节共32位二进制数,数的范围是0~4294967295。 K9zr]7;th
vb^fx$V
二、整型变量定义 rN9qH
9]v,3'QI
!L.R"8!
可以用下列语句定义整型变量 )B]s.w
int a,b;/*a、b被定义为有符号短整型变量*/ vb[0H{TT2
unsigned long c;/*c被定义为无符号长整型变量*/ '9!_:3[d\]
0J+WCm`
三、整型常数表示 S${%T$>
:fj>JF\[
按不同的进制区分,整型常数有三种表示方法: vD8pVR+
十进制数:以非0开始的数 %%K3J<5
如:220,-560,45900 }Nr6oUn
八进制数:以0开始的数 XncX2E4E
如:06;0106,05788 Z}t;:yhR
十六进制数:以0X或0x开始的数 MiZ<v/L2
如:0X0D,0XFF,0x4e ow'G&<0b
另外, 可在整型常数后添加一个"L"或"l"字母表示该数为长整型数, 如22L, HrE, K\^
0773L,0Xae4l。 )n)AmNpq
7G+!9^
2.2 浮点型(float) S*<J y(:n
一、浮点数说明 ou-#+Sdd
,marNG
:,l16{^
Turbo C中有以下两种类型的浮点数: VEy]vr}
float 单浮点数。字长为4 个字节共32 位二进制数,数的范围是 =6U5^+|d
3.4x10-38E~3.4x10+38E。 x1Gx9z9
double 双浮点数。字长为 8个字节共 64 位二进制数,数的范围是 C<=rnIf'
1.7x10-308E~1.7x10+308E。 4^r6RS@z
=Xvm#/
+d#8/S*
说明: IM1&g7Qs2
浮点数均为有符号浮点数,没有无符号浮点数。 =Fc]mcJ69
[\3ZMH
*
二、浮点型变量定义 >/74u/&
rA
={;`
se.HA
可以用下列语句定义浮点型变量: A5j?Yts
float a,f;/*a,f被定义为单浮点型变量*/ J&j5@
double b;/*b被定义为双浮点型变量*/ by+xK~>
LilK6K
三、浮点常数表示 B:X%k/{
S"*k#ao
j1`<+YT<#
例如:+29.56,-56.33,-6.8e-18,6.365 `^Ll@Cx"
说明: &wlD`0v
1. 浮点常数只有一种进制(十进制)。 G2N0'R"
2. 所有浮点常数都被默认为double。 8SU0q9X.
3. 绝对值小于1的浮点数, 其小数点前面的零可以省略。如:0.22可写为.22,- 0uD3a-J
0.0015E-3可写为-.0015E-3。 O#k; O*s'
4. Turbo C默认格式输出浮点数时,最多只保留小数点后六位。 |= cc >]
X'b3CS4
2.3 字符型(char) cO]w*Hti
rmggP(
2pmj*Y3"8
加上不同的修饰符,可以定义有符号和无符号两种类型的字符型变量,例如: .u\$wJ9Ai
char a:/*a被定义为有符号字符变量*/ (.=ig
X
unsigned char l;/*l被定义为无符号字符变量*/ 7>z {2D
字符在计算机中以其ASCII码方式表示,其长度为1个字节,有符号字符型数取值 J;~YD$
范围为-128~127,无符号字符型数到值范围是0~255。因此在Turbo C语言中,字符型 Aa_@&e
数据在操作时将按整型数处理,如果某个变量定义成char,则表明该变量是有符号的, [;Ih I
即它将转换成有符号的整型数。 T;3qE1c
Turbo C中规定对ASCII码值大于0x80的字符将被认为是负数。例如ASCII 值为 FS5iUH+5
0x8c的字符,定义成char时,被转换成十六进制的整数0xff8c 。这是因当ASCII码值 =~J VU
大于0x80时,该字节的最高位为1,计算机会认为该数为负数,对于0x8c表示的数实际 iDcTO}
上是-74(8c的各位取反再加1) ,而-74 转换成两字节整型数并在计算机中表示时就 %Mj,\J!
是0xff8c( 对0074 各位取反再加1) 。因此只有定义为unsigned char 0x8c转换成 aAe`o2Xs
整型数时才是8c。这一点在处理大于0x80的ASCII码字符时(例如汉字码) 要特别注 <.Zh{"$qo
意。一般汉字均定义为unsigned char(在以后的程序中会经常碰到)。 OK v2..8
另外,也可以定义一个字符型数组(关于数组后面再作详细介绍),此时该数组表 J-/w{T8:
示一个字符串。 5wW5
n5YS
bM"?^\a&Q