C语言讲义15Word文件下载.docx
《C语言讲义15Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言讲义15Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
#%[]{}由字符集中的字符可以构成C语言进一步的语法成份,如标识符,关键字,特殊的运算符等.^&
*--+=~<
>
/\|.,:
;
?
′〃()
1.2.2
标识符
标识符在程序中用来标识各种程序成份,命名程序中的一些实体,如变量,常量,函数,类型,标号等对象的名字.C语言规定,标识符必须以英文字母或下划线开头,是字母,数字,下划线的序列.以下是合法的标识符:
i,j,k,x,c,a1,a2,op,y_1,zhou_prg,radius,cout,sun,day以下是不合法的标识符:
a.1,1computer,x+y,!
abc,99999,$100,π,3cC语言中的标识符严格区分字母的大小写,标识符abc与标识符ABC是不同的标识符.习惯上,符号常量用大写字母表示,变量名称用小写字母表示.prime,program,sort,max,min,prg_1,
标准C中,标识符的长度可以任意,一般有效长度为8个字符,TurboC中标识符最大长度为32个字符.标识符取名时不能与关键字同名,也不要与系统预先定义的标准标识符(如标准函数)同名.系统使用的一些内部标识符往往以下划线开头,为避免与系统使用的内部标识符发生冲突,用户定义的标识符一般也不要用下划线开头.标识符的名称一般选用相应的英文单词或拼音形式缩写,尽量不要使用简单代数符号,a,c,如b,x,y,z等.最好能"
见名知义"
以提高程序的可读性.标识符大多数采用"
匈牙利"
表示法,即每个单词第一个字母大写,如StudentName,YearMonthDate.由系统预先定义的标识符称为标准标识符,由用户定义的标识符称为自定义标识符.程序设计中往往需根据实际需要定义大量的标识符.标识符必须先定义,后使用.
1.2.3
关键字关键字
关键字又称为保留字,由系统提供,用以表示特定的语法成份,如类型名称int,float,语句特征if,switch,while,运算符号sizeof等,是构成C语言的语法基础.常见关键字有31个,参见附录A.关键字有特定的语法含义,不允许用户重新定义.关键字在程序中像国家的名字一样,绝对不能拼错.
1.2.4
运算符
运算符实际上可以认为是系统定义的函数名字,这些函数作用于运算对象,得到一个结果值.运算符通常由1个或多个字符构成.C语言沿用了大量的常规运算符,如加法运算符"
+"
减法运算符"
"
地址运算符"
&
大于运算符"
>
不等运算符"
!
="
逻辑与运算符"
条件运算符"
?
:
点运算符"
."
字节数运算符"
sizeof"
等.根据运算对象的个数不同,可分为单目运算符,双目运算符和三目运算符,又称为一元运算符,二元运算符和三元运算符.
1.3
例1-1
C程序的结构
在屏幕上输出"
C语言程序设计"
.
/*程序1-1,输出〃C语言程序设计〃*/#include〃stdio.h〃main(){
printf(〃C语言程序设计〃);
}运行结果:
C语言程序设计例1–2求两个整数之和./*程序1-2,求两个整数之和*/#include〃stdio.h〃main(){inta,b;
intsum;
printf(〃请输入两个整数a,b:
〃);
scanf(〃%d,%d〃,&
a,&
b);
sum=a+b;
printf(〃和=%d\n〃,sum);
}输入数据:
1999,5运行结果:
和=2004例1-3求两个数的最大值./*程序1-3,求两个数的最大值*/#include〃stdio.h〃floatmax(x,y)floatx,y;
{floatt;
if(x>
y)elset=y;
return(t);
}main(){floata,b;
floatm;
printf(〃请输入两个数:
scanf(〃%f,%f〃,&
a,&
m=max(a,b);
/*调用求最大值的函数*/printf(〃最大值=%6.2f\n〃,m);
}/*主函数*/t=x;
/*求最大值函数*/
输入数据:
12.1,3.45运行结果:
最大值=12.10
1.3.1
1.函数
(1)C语言程序由若干函数组成.①必须有一个且只能有一个主函数main(),主函数的名字为main.②可以是系统预定义的标准函数,如scanf函数,printf函数等,参见附录C.③大多数函数由程序员根据实际问题的需要进行定义,函数之间是平行的关系.基于此,C语言被称为函数式语言.
(2)函数由函数头(函数的说明部分)与函数体(函数的语句部分)两部分组成.①函数头给出函数的特征描述,包括函数的属性,类型,名字,参数及参数类型.如例1-3中的求最大值函数的函数头:
floatmax(x,y)floatx,y;
/*函数属性缺省,函数类型实型,函数名字max,函数参数x,y,实型*/②函数体给出函数功能实现的数据描述和操作描述,是程序中用花括号括起的若干语句.如例1-1中的函数体:
{printf(〃C语言程序设计〃);
}例1-3中求两个数的最大值函数max的函数体:
{floatt;
y)t=x;
elset=y;
}函数体可以为空,可以没有数据描述部分.由此可以给出理论上最小的C语言程序:
main(){}
语句2.语句
(1)语句是组成程序的基本单位,函数功能的实现由若干条语句完成.说明性语句完成数据描述,执行性语句完成操作描述.
(2)语句由若干关键字加以标识,如if-else语句,do-while语句等.(3)C语言本身没有输入/输出语句,C语言的输入/输出操作由scanf函数和printf函数等库函数完成.(4)C语言语句必须以分号结束.其它3.其它1)预处理命令C程序开始往往含有以"
#"
开头的命令,它们是预处理命令.如例1-1中#include〃stdio.h〃,用以指明包含文件.2)程序注释在程序中还有以"
/*"
开始,以"
*/"
结束的内容,它们是程序中的注释部分,用以帮助阅读程序.
1.3.2
C程序的书写
(1)一行一般写一条语句.当然一行可以写多条语句,一条语句也可以写在多行上.
(2)整个程序采用紧缩格式书写.表示同一层次的语句行对齐,缩进同样多的字符位置.如循环体中的语句要缩进对齐,选择体中的语句要缩进对齐.(3)花括号的书写方法较多,本书采用花括号对齐的书写方式,左边花括号处于第一条语句的开始位置,右边花括号独占一行,与左边花括号对齐.(4)在程序中恰当地使用空行,分隔程序中的语句块,增加程序的可读性.
1.4C程序的实现
1.4.1实现步骤
C程序在计算机上的实现与其它高级语言程序的实现一样,一般要经过编辑,编译,连接,运行四个步骤,如图1-1所示.
(*TurboC*)
编辑
源程序
编译头文件
目标文件
连接库文件
执行文件
运行
图
1-1
1.4.2
程序的执行
C程序的执行总是从主函数main()开始,不管主函数在程序中什么位置.其它函数通过被调用执行.函数中的语句依先后顺序执行,除非改变了程序的执行流程.
1.4.3
TURBOC上机操作
1.启动TurboC只需执行TC.EXE文件,即可启动TurboC,进入TurboC的操作界面.TC是DOS程序,现在一般运行在Windows下的DOS环境.如需使用中文,还需先将计算机置于中文操作系统管理下.用TC加源程序文件名可快速启动TurboC,立即进入编辑操作.
操作界面2.TURBOC操作界面
图1-21)主操作界面
TurboC的主操作界面
TurboC主操作界面由主菜单区,编辑窗口区,信息窗口区及热键区四部分组成.TurboC的操作采用菜单驱动,主菜单包括File(文件操作),Edit(编辑操作),Run(运行操作),Complie(编译操作),Project(工程文件),Options(编译选择)及Debug(跟踪排错)各项.热键区提供常用操作的快速功能键方式,如F1(帮助),F2(保存文件),F3(装入文件),F5(缩放窗口),F6(切换窗口),Alt+F5(用户屏幕),Alt+X(退出TurboC)等.2)主窗口当前操作窗口为主窗口(工作窗口),主窗口为双线框表示,按F6可切换主窗口,按F5可缩放主窗口.3)菜单选择方式一:
按F10进入主菜单区,通过菜单项的大写字母选择相应菜单项,或通过光标控制键(→,←,↑,↓)移动高亮度光棒至相应菜单项,按回车选择相应菜单项.方式二:
用热键ALT加相应菜单项的大写字母,选择相应菜单项.对子菜单项的选择,操作方法类似.
3.编辑编辑在编辑窗口中进行,有多种方式进入编辑环境:
方式一:
选择Edit项.方式二:
选择File项的子项New,用于编辑新程序.方式三:
选择File项的子项Load,装入要修改的程序,用于修改程序.方式四:
启动时采用快速启动方式.TURBOC的编辑操作是Wordstar,WPS等字处理软件编辑操作的子集,它与Wordstar,WPS的编辑操作完全类似.4.编译TURBOC将编译,连接一道完成.按热键F9或选择Compile项进入编译.编译时发生错误,返回编辑步骤,修改程序后,再编译程序.5.运行按热键CTRL+F9或选择Run项下的子项Run,运行计算机中的程序.ALT+F5键或选择Run项按下的子项UserScreen进入用户屏幕,查看程序运行结果.运行时发生错误,返回编辑步骤,修改程序后,再编译,运行程序.对于没编译的程序,选择运行会先自动进行编译操作,再运行程序.6.退出上机过程完成后,按热键ALT+X或选择File项的子项Quit退出TURBOC,返回操作系统状态.退出TURBOC后还可用操作系统命令来显示源程序和运行程序.
习题一
1.简述C语言的主要特点.2.简述标识符的命名方法,并与关键字进行比较.3.简述C语言程序的结构.4.简述C语言程序的实现步骤.5.C语言程序的书写有何特点?
6.注释在程序中有什么作用?
7.下列标识符中,哪些是不正确的标识符?
为什么?
CdoSUM¥1233S(xyz)Co.LtdprintfOK!
maxcomPIlanguagefor_cprg*1
8.抄写例1-3中的程序,注意C语言程序的结构与书写格式.9.上机运行例1-1,例1-2,例1-3的程序,了解上机方法与步骤,熟悉实习环境.
10.模仿例1-1编写程序,输出自己的姓名,性别及年龄.11.模仿例1-2编写程序,求两个整数的积.12.模仿例1-3编写程序,求两个数的最小值.13.编写一个最小的C语言程序,并请上机运行.14.浏览C语言程序设计的相关网站.
第2章
基本数据类型
型
2.1整
2.1.1基本整型
1.类型名称int取值范围2.取值范围-32768~+32767(-215~215-1)数据表示方法3.数据表示方法整型数据的表示方法与数学中的类似,不能有分隔符.C语言允许使用八进制整数与十六进制整数,八进制整数加前导符0(数字),十六进制整数加前导符0x(数字0和字母x).4.运算操作
(1)算术运算包括:
+(加法),(减法),*(乘法),/(除法),%(求余).运算规则除除法外,与数学中的相同.整数的除法运算是整除,结果得到商,如5/3结果为1.对于负数,多数机器采用向零取整法,如5/3结果为1.求余运算又称取模运算,结果得到余数,即a%b等于a(a/b)*b,如5%3结果为2,5%3结果为2.求余运算在许多场合都非常有用,如判断整数a是不是b的倍数,可看a%b是否等于零;
a%10可得到a的个位数字,(a/10)%10可得到a的十位数字,如此可分离一个整数的每一位数字.一般只有除数大于0时,求余运算才有意义.当a小于0时,a%b等于((a)%b).
(2)关系运算包括:
<
(小于),<
=(小于等于),==(等于)!
=(不等于)>
(大于)>
=(大,,,于等于)等六种,运算规则与数学中相同,运算结果为逻辑类型数据.关系运算成立结果为1,不成立结果为0.存储5.存储C标准没有具体规定各类数据存储的字节数,各种机器处理有所不同,一般以一个机器字(Word)
存放1个int数据,PC机上int数据存储用两个字节.机器中用最高位表示数的符号,正数符号位用0表示,负数符号位用1表示.负数在机器中存放的是其补码.6.应用例2-1求两个整数的积./*程序2-1,求两个整数之积*/#include〃stdio.h〃main(){inta,b;
intm;
scanf(〃%d,%d"
&
m=a*b;
printf(〃积=%d\n〃,m);
2000,3运行结果:
积=6000
2.1.2
拓展整型
类型修饰符1.类型修饰符short:
缩短数值所占字节数.long:
扩大数值所占字节数.signed:
有符号位,缺省方式.unsigned:
无符号位.短整型2.短整型短整型类型名称为shortint或short,在TURBOC中,短整型与基本整型相同.长整型3.长整型长整型类型名称为longint或long,取值范围为-231~231-1(-2147483648~2147483647),长整型数据可加后缀L表示,在TURBOC中,存储占4个字节,运算与基本整型相同.4.无符号整型无符号数相对于有符号数的主要区别是数的最高位不做符号处理,而是常规的数字位,表示的数
的绝对范围是有符号数的2倍.相应地,无符号整型有无符号基本整型,无符号短整型和无符号长整型三种.无符号基本整型,类型名称为unsignedint或unsigned,取值范围为0~2161,即0~65535,存储占2个字节.无符号短整型,类型名称为unsignedshortint或unsignedshort,取值,运算,存储与无符号基本整型相同.无符号长整型,类型名称为unsignedlongint或unsignedlong,取值范围为0~2321,即0~4294967295,存储占4个字节.无符号整型常用于处理大整数及地址数据.八进制数与十六进制数一般只用于unsigned类型数据.例2-2整数9的机器表示.作为int:
0000000000001001.作为shortint:
0000000000001001.作为longint:
00000000000000000000000000001001.以上第一位为符号位,表示正整数.以下第一位为正常的数据位,是非符号位.作为unsignedint:
0000000000001001.作为unsignedshortint:
0000000000001001.作为unsignedlongint:
00000000000000000000000000001001.
2.2浮点型
2.2.1单精度型
类型名称1.类型名称float
取值范围2.取值范围绝对值范围为10-38~1038,7位有效数字.数据表示方法3.数据表示方法实数有一般形式和指数形式两种表示方法.一般形式又称小数表示法,是一种常规形式,由整数部分,小数点,小数部分三部分组成.C语言中的实数可以没有小数部分或没有整数部分,如20.,.375.
指数形式由尾数,指数符号e或E,指数三部分组成,尾数是一般形式的实数.指数形式适于表示较大或较小的实数.如2.34e10,2.34e-10,相应于数学中2.34×
1010,2.34×
10-10.运算操作4.运算操作实型数据的运算操作有算术运算和关系运算两大类,运算符同整型,运算规则与数学中实数的运算规则相同,但运算结果可能是一个近似值.实数没有求余运算.存储5.存储4个字节6.应用例2–3求两个实数的积./*程序2-3,求两个实数之积*/#include〃stdio.h〃main(){floata,b;
printf(〃积=%6.3f\n〃,m);
1.1,2.21运行结果:
积=2.431
2.2.2
双精度型
双精度型的类型名称为double或longfloat,较单精度型提高了计算精度,取值的绝对值范围为10308~10308,有效数字为16位.双精度型数的表示方法与运算操作同单精度型数,要占用8个字节存储.计算机中太大的数不能表示,太小的数也不能表示,超出数的表示范围称为溢出,相应有上溢与下溢.对于大的数的处理必须通过间接的方法进行.有不少的实数在机器中只能近似表示.
2.3字符型
2.3.1字符型数据
1.类型名称字符的类型名称:
char.2.取值范围字符型数据的取值范围:
ASCII码字符集中的任何字符.3.数据表示方法用单引号作界定符,将字符引起表示字符数据,如'
a'
'
+'
%'
'
1'
2'
.说明:
(1)单引号字符本身及双引号,反斜杠字符本身由于有特定的含义,不能如此表示,因而需采用其它表示方法.
(2)字符数据本身除了可以直接出现外,还可以通过反斜杠后跟ASCII码来描述.ASCII码可采用三位八进制数或两位十六进制数表示,相应描述形式是\ddd与\xhh(位数不够,加0补位),这种表示方法称为转义表示或转码表示.如此,字符A可表示为'
A'
\101'
\x41'
.尤其是一些特殊的字符只能这样表示,如图形字符'
■'
可表示成'
\376'
单引号,双引号,反斜杠可分别表示成'
\047'
\042'
\1