首先介绍Turbo C程序的基本组成部分; 然后介绍Turbo C的数据类型、变 oe1$;K>.7
量类型、变量的初始化和赋值; 最后介绍Turbo C的有关操作。通过本节的学习,可 VL@eR9}9K
以对Turbo C语言有一个初步认识。 `yua?n
^14a[ta/'
1. Turbo C程序的一般组成部分 5uvFCY./c
5cSqo{|En
Turbo C 2.0 象其它语言一样按其规定的格式和提供的语句由用户编写应用程 j
!rQa^
序。 请看下面一段Turbo C源程序。 例1: G+W0X
!L55S03
sy+tLDMd
e_t""h4D
/*Example program of Turbo C*/ ,wH]|`w
#include /*包含文件说明*/ R(cM4T.a
void lgc(void);/*子函数说明*/ %b3s|o3An
char answer;/*定义全程变量*/ J*"G*x#u
int main()/*主函数定义*/ &6#Ft]6~
{ jf~-;2
char a;/*定义局部变量*/ Hyz:i)2
clrscr(); ]c$)0O\O
gotoxy(12,3); }>~]q)]
puts("Welcome to use Turbo C2.0!"); Z'4oE
)
gotoxy(15,13); ;=E!xfp5U
printf("--Exit"); i.6+CA
gotoxy(15,15); 1usLCG>w{
printf("--Continue"); %Ig3udcY?
while(1) T!Eyq,]
{ 4lpkq
a=getch(); Zdll}nO"E
if(a==27) B|6_4ry0U
break; $Z{Xt*
if(a==13) OykYXFv*
{ *Bm
_
lgc(); zDx*R3%
if(answer=='y'||answer=='Y') ubQZTA x
{ I<^&~==
gotoxy(23,14); q[MZSg
puts("Please Write to the Company"); Dt\rMSjZ9
getch(); 7,&M6<~
break;
]pP:
} ,f?+QV\T.
} G [$u`mxV^
} y?@(%PTp
return(0);}void lgc(void){ Rx%SeM2
clrscr(); t}q\.
gotoxy(12,8); ;@l5kdZx`
printf("The Excellent Selection!"); !,zRg5Wp4
gotoxy(21,12); ;ro%Wjg`}
printf("Do you have any question?(Y/N)"); eY#_!{*Wn
answer=getche();} TG@ W:>N(
q7ubRak
1^_V8dm)
3}9c0%}F
由例子程序可以看出,Turbo C源程序主要有以下几个特点: WXX)_L$2
2E*h,Mo
1. 程序一般用小写字母书写; o"-*,:Qe
2{fPQQ;#
2. 大多数语句结尾必须要用";"作为终止符,否则Turbo C 不认为该语句 $F/Uk;*d!
结束; ;>Q.r{P
A4`3yy{0-
3. 每个程序必须有一个而且只能有一个称作主函数的main()函数; n+9rx]W,
-J\R}9 lIm
4. 每个程序体(主函数和每个子函数,如上例中的main()函数和sub()函数)必须用一对花括号" X4{O/G
{"和"}"括起来; 0G}]d17ho
\1R<GBC4
5. 一个较完整的程序大致包括:包含文件(一组#include<*.h>语句)、 bIP%xl
Vp
用户函数说明部分、全程变量定义、主函数和若干子函数组成。在主函数和子函数 AIX?840V
中又包括局部变量定义、 若干个Turbo C库函数、控制流程语句、用户函数的调用 >y{oC5S
语句等; MWZH-aA(.
t],5{UF
Z.rR)
6. 注释部分包含在"/*"和"*/"之间,在编译时它被Turbo C编译器忽略。 "ukiuCfVuW
KKJ)BG?qZ
说明: ,ctm;T1H+
E/IoYuB
v3]mZ}W$
1. 象其它一些语言一样,Turbo C的变量在使用之前必须先定义其数据类 uk=f /nT
型,未经定义的变量不能使用。定义变量类型应在可执行语句前面,如上例main()函 ?&rt)/DV,
数中的第一条语句就是变量定义语句,它必须放在第一各执行语句clrscr()前面。 yirQ
W&`{3L
DL]\dD
2. E@%9u#
在Turbo C中, 大、小写字母是有区别的,相同字母的大、小写代表不同的变量。 .Mb<.R3
5eJMu=UpR
3. \~~y1.,U.
Turbo C程序的书写格式非常灵活,没有严格限制。 Oi-=
Fp
!Pf6UNN'
例1的主函数可写成: h5^qo ^;g7
w+W!dM
R?L?6~/q
main(){char c;clrscr();gotoxy(12,3); (YC{BM}
puts("Welcome to use Turbo C2.0!");gotoxy(15,13); &@rXt!
printf("--Continue");gotoxy(15,15);...} >^N{
c]1\88
+]dh`8*8>1
这样写语法上没有错误,但阅 3GVS-?
读起来不方便, 同时也使得程序层次不明确。 b<E+5;u
E hw2o-s^
Yx3ivjX.>
作者建议用Turbo C编程时,一行一条 -XNawpl`
语句,遇到嵌套语句向后缩进,必要时对程序加上注释行。这样可以便程序结构清楚、 TnXx;v
易于阅读、维护和修改。通过以上介绍,可以得出Turbo C源程序的一般形式为: VV$4NV&`Q
包含文件 up==g
子函数类型说明 KJ#SE|
全程变量定义 e gdbv
main() r<9G}9
{ A!uO7".E
局部变量定义 ?ytY8`PC
<程序体> R8bKE(*rxj
} [~{'"-3L0
sub1() _MLbJ
{ f~t5[D(\Q,
局部变量定义 x +]ek
<程序体> o*sss
} dC(5I{I|
sub2() u8r<B4k
{ J?"v;.K|hU
局部变量定义 q{CD:I:-
<程序体> Dt:NBN
} \&\U&^?
. ~i
UG2 4v
. ~+S,`8-P
. \N[2-;[3
subN() +F]=Z
{ Z>PS>6
局部变量定义 p)Fi{%bc
<程序体> wJF(&P
} }uiD8b{I
vlC$0P
其中sub1() ,...,subN()代表用户定义的子函数,程序体指Turbo C 2.0提供的 ~?zu5,vb
任何库函数调用语句、控制流程语句或其它用子函数调用语句等。 g&r3;
!QlCt>{
?
J/NYV
2. 数据类型 V='A;gs
w0P Atu
在Turbo C语言中, 每个变量在使用之前必须定义其数据类型。Turbo C有以下 .L9n
几种类型:整型(int)、浮点型(float)、字符型(char)、指针型(*)、无值型(void)
xV"~?vD
以及结构(struct)和联合(union)。其中前五种是Turbo C的基本数据类型、后两种 t~%( Zu>S
数据类型(结构和联合)将在第五章介绍。 O`Y@U?^N
2$b JMx>
2.1 整型(int) d+p^fBz
/BwG\GhM
一、整型数说明 #'4Psz
L| ]fc9W:
#xh
M&X
加上不同的修饰符,整型数有以下几种类型; d>O/Zal
A"/|h].
signed short int 有符号短整型数说明。简写为short或int,字长为2 V3<#_:;
w1LZ\nA<
字节共16位二进制数,数的范围是-32768~32767。 .UYhj8
*^:s!F
signed long int 有符号长整型数说明。简写为long,字长为4字节共 K0|:+s@u
32位二进制数,数的范围是-2147483648~2147483647。 Uf9L*Z'6il
unsigned short int 无符号短整型数说明。简写为unsigned int,字长 7c83g2|%
为2字节共16位二进制数,数的范围是0~65535。 JC#5CCz
unsigned long int 无符号长整型数说明。简写为unsigned long,字长 5!BW!-q
为4字节共32位二进制数,数的范围是0~4294967295。 yCwe:58
xy]oj
二、整型变量定义 S@Aw1i p
@M6F?;
<vt}+uMzXv
可以用下列语句定义整型变量 {E.A?yej9
int a,b;/*a、b被定义为有符号短整型变量*/ vCUbbQz
unsigned long c;/*c被定义为无符号长整型变量*/ F{Oaxn
4'"WD0
三、整型常数表示 0,B"p
/4;Sxx-
按不同的进制区分,整型常数有三种表示方法: Sa@T#%oU
十进制数:以非0开始的数 "JE->iD
如:220,-560,45900 OHt^e7\
八进制数:以0开始的数 H.[nr:
如:06;0106,05788 eQ*zi9na
十六进制数:以0X或0x开始的数 sl:1P^b
如:0X0D,0XFF,0x4e #'n.az=1
另外, 可在整型常数后添加一个"L"或"l"字母表示该数为长整型数, 如22L, n. vrq-
0773L,0Xae4l。 Hc-up.?v'v
|uI~}pSG
2.2 浮点型(float) gAgF$H .
一、浮点数说明 (gIFuOGi>
<sSH^J4QqX
]|u7P{Z"R
Turbo C中有以下两种类型的浮点数: \jb62Jp
float 单浮点数。字长为4 个字节共32 位二进制数,数的范围是 S VypR LVB
3.4x10-38E~3.4x10+38E。 pG22Nx
double 双浮点数。字长为 8个字节共 64 位二进制数,数的范围是 DVf}='en8
1.7x10-308E~1.7x10+308E。 D=K{(0{"/,
6 X'#F,M
v]rbm}uU9
说明:
yYrFk^
浮点数均为有符号浮点数,没有无符号浮点数。 FAX[|p
|T]&8Q)S
二、浮点型变量定义 .m.Ga|;
'6\ZgOO9
wd3OuDrU
可以用下列语句定义浮点型变量: ?f6SKC
float a,f;/*a,f被定义为单浮点型变量*/ E)wf'x
double b;/*b被定义为双浮点型变量*/ 85$ WH
{,1>(
三、浮点常数表示 }R%*J
3Pp+>{2_?
?zfm"o
例如:+29.56,-56.33,-6.8e-18,6.365 1 ^30]2'_
说明: CugZ!>;^
1. 浮点常数只有一种进制(十进制)。 f>e0l'\
2. 所有浮点常数都被默认为double。 !yr4B"kz
3. 绝对值小于1的浮点数, 其小数点前面的零可以省略。如:0.22可写为.22,- C6Cr+TScH
0.0015E-3可写为-.0015E-3。 O*Y ? :
t
4. Turbo C默认格式输出浮点数时,最多只保留小数点后六位。 ya[f?0b0
YV} "#
2.3 字符型(char) My Ky*wD
lBm`W]3T
1OqVV?oz
加上不同的修饰符,可以定义有符号和无符号两种类型的字符型变量,例如: x-W~&`UU
char a:/*a被定义为有符号字符变量*/ Vbe@S?u-
unsigned char l;/*l被定义为无符号字符变量*/ Ep:hObWG)
字符在计算机中以其ASCII码方式表示,其长度为1个字节,有符号字符型数取值 [lVfhXc&
范围为-128~127,无符号字符型数到值范围是0~255。因此在Turbo C语言中,字符型 y%x:~.
数据在操作时将按整型数处理,如果某个变量定义成char,则表明该变量是有符号的, ;?q}98-2
即它将转换成有符号的整型数。 jatlv/,
Turbo C中规定对ASCII码值大于0x80的字符将被认为是负数。例如ASCII 值为 IP@3R(DS%
0x8c的字符,定义成char时,被转换成十六进制的整数0xff8c 。这是因当ASCII码值 %*o
大于0x80时,该字节的最高位为1,计算机会认为该数为负数,对于0x8c表示的数实际 =vvd)og
上是-74(8c的各位取反再加1) ,而-74 转换成两字节整型数并在计算机中表示时就 k+*pg4'
是0xff8c( 对0074 各位取反再加1) 。因此只有定义为unsigned char 0x8c转换成 ?k($Tc&Q
整型数时才是8c。这一点在处理大于0x80的ASCII码字符时(例如汉字码) 要特别注 g^x=y
意。一般汉字均定义为unsigned char(在以后的程序中会经常碰到)。 g$zGiqzMK
另外,也可以定义一个字符型数组(关于数组后面再作详细介绍),此时该数组表 byMy-v;
示一个字符串。 Ryh 0r
<&g