首先介绍Turbo C程序的基本组成部分; 然后介绍Turbo C的数据类型、变 ('k9X cTPP
量类型、变量的初始化和赋值; 最后介绍Turbo C的有关操作。通过本节的学习,可 Fd86P.Df
以对Turbo C语言有一个初步认识。 ]?6Pt:N2
&.l^> #
1. Turbo C程序的一般组成部分 hGy[L3{
1.tAl6]
Turbo C 2.0 象其它语言一样按其规定的格式和提供的语句由用户编写应用程 F1)5"7f
序。 请看下面一段Turbo C源程序。 例1: ,r8#-~A6,A
vR3\E"Zi
YO'aX
bEKh U\@=J
/*Example program of Turbo C*/ Lc#GBaJ
#include /*包含文件说明*/ .0Kc|b=w
void lgc(void);/*子函数说明*/ Uc;~q-??#
char answer;/*定义全程变量*/ 0,/I2!dF?
int main()/*主函数定义*/ jQrj3*V
{ 85T"(HhT
char a;/*定义局部变量*/ yT~rql
clrscr(); ~ \]?5
nj
gotoxy(12,3); l+a1 `O
puts("Welcome to use Turbo C2.0!"); -tZ~&1"
gotoxy(15,13); RY
.@_{
printf("--Exit"); .He}f,!f<
gotoxy(15,15); ^6On^k[|fw
printf("--Continue"); l0 8vF$k|d
while(1) xG(xG%J
{ bu9.HvT'
a=getch(); J%u,qF}h
if(a==27) 'Qh1$X)R7a
break; F[v:&fle
if(a==13) BW:HKH.k
{ ]9N&I/-
lgc(); Mbp7%^E"A
if(answer=='y'||answer=='Y') #CV]S4/^
{ r~z'QG6v/
gotoxy(23,14); iInWw"VbKe
puts("Please Write to the Company"); k2@]nW"S
getch(); 'u:-~nSX)
break; Nq%ir8hE
} 3K=%I+G(4
} p0[+Zm{#l
} .VCF[AleS
return(0);}void lgc(void){ D5bPF~q
clrscr(); byFO^pce
gotoxy(12,8);
l*?_ @
printf("The Excellent Selection!"); %tMx48'N
gotoxy(21,12); lSg[7lt
printf("Do you have any question?(Y/N)"); W,|+Dl
answer=getche();} FUarI5#fwF
kuI~lBWI
`a%MD>R_Lg
g#MLA5%=u
由例子程序可以看出,Turbo C源程序主要有以下几个特点: Gp{,v
5Xf]j=_
1. 程序一般用小写字母书写; ;I&XG
v\[+
2. 大多数语句结尾必须要用";"作为终止符,否则Turbo C 不认为该语句 o_1N "o%
结束; kO5lLqE
UE{$hLI?g
3. 每个程序必须有一个而且只能有一个称作主函数的main()函数; 1ysQvz
Mf2F LrAh
4. 每个程序体(主函数和每个子函数,如上例中的main()函数和sub()函数)必须用一对花括号" q3<kr<SP
{"和"}"括起来; En:>c
:KgH7s}
5. 一个较完整的程序大致包括:包含文件(一组#include<*.h>语句)、 DXo]O}VF
用户函数说明部分、全程变量定义、主函数和若干子函数组成。在主函数和子函数 jsQHg2Vd
中又包括局部变量定义、 若干个Turbo C库函数、控制流程语句、用户函数的调用 z %Bzf~N9
语句等; O%3Hp.|!
<PVwf`W.
W6Mq:?+ D
6. 注释部分包含在"/*"和"*/"之间,在编译时它被Turbo C编译器忽略。 '4nJ*Xa
&JXb) W
说明: ME$J42
~o>Gm>5!HH
Zwm/ c]6`
1. 象其它一些语言一样,Turbo C的变量在使用之前必须先定义其数据类 drMMf[
型,未经定义的变量不能使用。定义变量类型应在可执行语句前面,如上例main()函 H %c6I
数中的第一条语句就是变量定义语句,它必须放在第一各执行语句clrscr()前面。 {#:31)P
M.K^W `
XC5/$3'M&
2. $&=xw _
在Turbo C中, 大、小写字母是有区别的,相同字母的大、小写代表不同的变量。 EJ>&\Iq
fZezDm(Q
3. +J|H~`
Turbo C程序的书写格式非常灵活,没有严格限制。 pB4Uc<e
4EHrd;|
例1的主函数可写成: >1(J
hJ$9Hb
z)S6f79`Q
main(){char c;clrscr();gotoxy(12,3); f"KrPx!^b
puts("Welcome to use Turbo C2.0!");gotoxy(15,13); \XPGA uEo
printf("--Continue");gotoxy(15,15);...} <^\rv42'(2
hbOXR.0z
Z4EmRa30 p
这样写语法上没有错误,但阅 veHe
读起来不方便, 同时也使得程序层次不明确。 w`;HwK$ ,
fz\Q>u'T
K Ax=C}9
作者建议用Turbo C编程时,一行一条 }b1FB<e]
语句,遇到嵌套语句向后缩进,必要时对程序加上注释行。这样可以便程序结构清楚、 ":_II[FPY
易于阅读、维护和修改。通过以上介绍,可以得出Turbo C源程序的一般形式为: o]~\u{o#.
包含文件 d)emTXB(
子函数类型说明 h7E~I
J
全程变量定义 g"Y_!)X
main() fO$){(]^
{ dYwkP^KB
局部变量定义 PR
Mg6
<程序体> 4WJY+)
} p_h/hTi
sub1() 8ix_<$%
{ |)+
SG>-
局部变量定义 t|$jgM
<程序体> $8)XN-%(
} ~g\~x
sub2() rNR7}o~ qo
{ &yvvea]
局部变量定义 F)(^c
<程序体> 0eNdKE
} %W"u4
NT7
. <@<bX
. ? Bpnnwx
. a$"nNm D?
subN() .P$m?p#
{ ]:Gy]qkO
局部变量定义 4kjfYf@A
<程序体> ,\s`T O
} Z-U u/GjB
@QQ%09*
其中sub1() ,...,subN()代表用户定义的子函数,程序体指Turbo C 2.0提供的 )A$"COM4
任何库函数调用语句、控制流程语句或其它用子函数调用语句等。 >I|8yqbfm
st;iGg
b2OwLt9
2. 数据类型 GLn=*Dh#
r*+~(83k
在Turbo C语言中, 每个变量在使用之前必须定义其数据类型。Turbo C有以下 3)y1q>CQf
几种类型:整型(int)、浮点型(float)、字符型(char)、指针型(*)、无值型(void) 9h amxi
以及结构(struct)和联合(union)。其中前五种是Turbo C的基本数据类型、后两种 E ?Mgbd3
数据类型(结构和联合)将在第五章介绍。 I&{T 4.B:U
[zx|3wWAX-
2.1 整型(int) l S)^8
'9zW#b
一、整型数说明
E.h
0&UG=q
PjeI&@
加上不同的修饰符,整型数有以下几种类型; TKR#YJQ?K
$<v4c5r]O
signed short int 有符号短整型数说明。简写为short或int,字长为2 dS ojq6M
-K 'UXoU1
字节共16位二进制数,数的范围是-32768~32767。 UZI:st
taE
p
signed long int 有符号长整型数说明。简写为long,字长为4字节共 WR{m?neE_N
32位二进制数,数的范围是-2147483648~2147483647。 fAgeF$9@
unsigned short int 无符号短整型数说明。简写为unsigned int,字长 rO7_K>g?
为2字节共16位二进制数,数的范围是0~65535。 )&@YRT\c?8
unsigned long int 无符号长整型数说明。简写为unsigned long,字长 rx2)uUbR
为4字节共32位二进制数,数的范围是0~4294967295。 9j:]<?D,A
kk /#&b2
二、整型变量定义 XM`GK>*aC(
?$|tT\SFV
!0W(f.A{K
可以用下列语句定义整型变量 ;OlnIxH(W
int a,b;/*a、b被定义为有符号短整型变量*/ 1'qXT{f/~
unsigned long c;/*c被定义为无符号长整型变量*/ k( :Bl
6G2~'zqPc~
三、整型常数表示 E`o_R=%
/_0B5,6R
按不同的进制区分,整型常数有三种表示方法: iT}>a30]B
十进制数:以非0开始的数 pUHgjwT'U
如:220,-560,45900 "E\vdhk
八进制数:以0开始的数 ,VS\ mG/}s
如:06;0106,05788 %JM$]
十六进制数:以0X或0x开始的数 i1cd9
如:0X0D,0XFF,0x4e 0vqVE]C
另外, 可在整型常数后添加一个"L"或"l"字母表示该数为长整型数, 如22L, Wx:v~/r
0773L,0Xae4l。 I=kqkuW
ZaYiby@Ci
2.2 浮点型(float) g8Ex$,\,
一、浮点数说明 ,Z~`aHhr
!T,<p
.dU91> ~Ov
Turbo C中有以下两种类型的浮点数: /o9it;
float 单浮点数。字长为4 个字节共32 位二进制数,数的范围是 NftnbsTmy
3.4x10-38E~3.4x10+38E。 "z{/*uM2<
double 双浮点数。字长为 8个字节共 64 位二进制数,数的范围是 @P7'MiP]K
1.7x10-308E~1.7x10+308E。 (%X *b.n=
I _KHQ&Z*
FBXktSg
说明: )/jDt dI
浮点数均为有符号浮点数,没有无符号浮点数。 gy}3ZA*F
K=N&kda
二、浮点型变量定义 dHDtY$/_
nK;d\DO
y||
n9
可以用下列语句定义浮点型变量: t`8Jz~G`
float a,f;/*a,f被定义为单浮点型变量*/ R4'.QZ-x
double b;/*b被定义为双浮点型变量*/ 3+Lwtb}XPF
Gd
4S7JE
三、浮点常数表示 ;\7`G!q
I6^y` 2X
k* C69
例如:+29.56,-56.33,-6.8e-18,6.365 l$gJ^Wf2gY
说明: 4;6"I2;zfG
1. 浮点常数只有一种进制(十进制)。 =3035{\
2. 所有浮点常数都被默认为double。 nX (bVT4i
3. 绝对值小于1的浮点数, 其小数点前面的零可以省略。如:0.22可写为.22,- }k VC]+
0.0015E-3可写为-.0015E-3。 }dN\bb{#
4. Turbo C默认格式输出浮点数时,最多只保留小数点后六位。 tx5bmF;b)
".>#Qp%
2.3 字符型(char) BQ6$T&
u&l;\w
`,V&@}&"n
加上不同的修饰符,可以定义有符号和无符号两种类型的字符型变量,例如: }ppApJT
char a:/*a被定义为有符号字符变量*/ jWUrw
unsigned char l;/*l被定义为无符号字符变量*/ 9K&$8aD
字符在计算机中以其ASCII码方式表示,其长度为1个字节,有符号字符型数取值 ^UvL1+
范围为-128~127,无符号字符型数到值范围是0~255。因此在Turbo C语言中,字符型 0XA\Ag\`G
数据在操作时将按整型数处理,如果某个变量定义成char,则表明该变量是有符号的, 8WytvwB}
即它将转换成有符号的整型数。 2U[/"JL
Turbo C中规定对ASCII码值大于0x80的字符将被认为是负数。例如ASCII 值为 >)WE3PT/O"
0x8c的字符,定义成char时,被转换成十六进制的整数0xff8c 。这是因当ASCII码值 ~T@E")uR
大于0x80时,该字节的最高位为1,计算机会认为该数为负数,对于0x8c表示的数实际 Yb5U^OjyJ
上是-74(8c的各位取反再加1) ,而-74 转换成两字节整型数并在计算机中表示时就 e8`d<U
是0xff8c( 对0074 各位取反再加1) 。因此只有定义为unsigned char 0x8c转换成 4BMu0["6|s
整型数时才是8c。这一点在处理大于0x80的ASCII码字符时(例如汉字码) 要特别注 f/sz/KC]~
意。一般汉字均定义为unsigned char(在以后的程序中会经常碰到)。 2!6hB sEr
另外,也可以定义一个字符型数组(关于数组后面再作详细介绍),此时该数组表 (f&V 7n
示一个字符串。 +PYV-@q
gv eGBi
|B(,53
例如: 791v>h
char str[10]; Q,.dIPla
计算机在编译时, 将留出连续10个字符的空间,即str[0]到str[9]共10个变量, @wXYza0|d
但只有前9个供用户使用。第10个str[9]用来存放字符串终止符NULL即"\0",但终止 =#2%[kG q
符是编编译程序自动加上的,这一点应特别注意。 NN7KwVg
&- p(3$jn7
二、字符常数表示 ~~{lIO)&