《c语言入门与提高1.ppt》由会员分享,可在线阅读,更多相关《c语言入门与提高1.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言入门与提高郝庆晋2023/1/161什么是程序?n程序(Program)是一个精确说明如何进行计算的指令(Instruction)序列。n人和计算机交换信息所用的语言,称为计算机语言。2023/1/1622023/1/163自然语言和形式语言自然语言和形式语言n什么是自然语言?n什么是形式语言?n两者区别和联系:n歧义性n冗余性n与字面意思的一致性2023/1/164指令分类n输入:从键盘、文件或者其它设备获取数据。n输出:把数据显示到屏幕,或者存入一个文件,或者发送到其它设备。n基本运算:执行最基本的数学运算(加减乘除)和数据存取。n测试和分支:测试某个条件,然后根据不同的测试结果执行
2、不同的后续指令。n循环:重复执行一系列操作。2023/1/165编程的本质n把复杂的任务分解成子任务,把子任务再分解成更简单的任务,层层分解,直到最后简单得可以用以上所述指令来完成。2023/1/166程序调试n 编译时错误n 运行时错误n 逻辑错误和语义错误2023/1/167C语言的历史nC语言是由UNIX的研制者丹尼斯里奇(Dennis Ritchie)和肯汤普逊(Ken Thompson)于1970年研制出的B语言的基础上发展和完善起来的。n1973年,Unix操作系统的内核正式用C语言改写,这是C语言第一次应用在操作系统的内核编写上。n目前,C语言编译器普遍存在于各种不同的操作系统中
3、,例如UNIX、MS-DOS、Microsoft Windows及Linux等。2023/1/168C语言的特点nC语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。2023/1/169C语言特点nC语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。n传递参数是以值传递(Pass-by-value),也可以通过指针来传递参数(Pass-by-address)。n不同的变量类型可以用结构体(struct)组合在一起。n只有32个保留字(reserved
4、keywords),使变量、函数命名有更多弹性。n部份的变量类型可以转换,例如整形和字符变量。n通过指针(pointer),C语言可以容易的对存储器进行低级控制。n编译预处理(preprocessor)让C语言的编译更具有弹性。2023/1/1610C语言的编译执行过程2023/1/1611第一个C语言程序n#include n/*main:generate some simple output*/n int main(void)n n printf(Hello,world.n);n return 0;n 2023/1/1612如何编译和运行?n$gcc-o test $./a.outn He
5、llo,world.2023/1/1613程序的结构n C程序由函数构成。n 一个函数由两个部分组成:说明部分 函数名、类型、参数及类型说明 函数体 变量的定义及执行部分n书写格式自由:一般用小写字母,语句以分号结束,分号是语句的必要组成部分,一行上可以写几条语句,一条语句也可以写在几行上。2023/1/1614程序的结构n C程序总是从main函数开始执行,并且一定有且仅有一个主函数,主函数名必须是main。n C语言本身不带输入输出语句,必须通过调用库函数来实现输入输出。n 以/*/之间的内容是注释,不影响程序的执行,可增加程序的可读性。2023/1/1615代码风格n好的代码风格要求缩进
6、整齐,每个语句一行,适当留空行2023/1/1616常量、变量和数据类型常量、变量和数据类型2023/1/1617数据类型nC语言里常用的数据类型有整型、实型、字符型、数组、结构体类型、指针类型等。数据类型丰富是C语言的特点之一。如:nint 整型nchar 字符型nfloat 单精度浮点型ndouble 双精度浮点型2023/1/1618常量和变量的概念常量:在程序运行过程中其值不能变的量。包括直接常量和符号常量。符号常量的定义:#define 标识符 常量变量:程序运行过程中其值可以改变的量,系统为程序中的每一个变量开辟一个存储单元2023/1/1619变量n字母开头,后跟字母、数字和下划
7、线组成。nC语言中的关键字不能作为变量名n注意:变量必须先定义后使用;变量中存放的只能是数据,而且只能是一个数据,往变量中存放数据的操作称为赋值;2023/1/1620变量n变量的“名”和变量的“值”不同,变量的“名”是该变量所代表的存储单元的标志,而变量的“值”是指存储单元中的内容。2023/1/1621整型常量n三种形式表示:n十进制:如 123 60 0n八进制:以0开始,如 0123n十六进制:以0 x开始,如0 x1232023/1/1622不同进制之间的换算n十进制:n123=1102+2101+3100n二进制:n(A3A2A1A0)2=A323+A222+A121+A02020
8、23/1/1623字符型常量n单引号括起来的一个字符。如:a n字符常量的值是一个数字值。如字符常量 0 ,其ASCII为48,所以存储的实际值为48。n字符常量可以象整数一样参与运算。n 如:a +32023/1/1624字符常量另一种形式转义字符形式n转义字符 功能 ASCII记号 转义字符 功 能 ASCII记号n a 响铃 BEL 反斜杠字?n b 退格 BS 单引号字符 n f 走纸换页 FF “双引号字符 n n 换行 NL?问号?n r 回车 CR ooo13位8进制数 ooon t 横向跳格 HT xhh12位16进制数 hhn v 纵向跳格 VT2023/1/1625字符串常
9、量n双引号括起来的字符序列。如How are you,0等n字符串在存储时末尾被自动加上 字符0n字符常量与只包含一个字符的字符串常量的区别?2023/1/1626字符型变量n字符型变量中存放ASCII字符集中的任何一个字符,字符变量在内存中占一个字节。n定义格式:n char 变量名1,变量名2,;n 如:n char a,b;n a=97-32;b=a+2;2023/1/1627n整数常量还可以在末尾加u或U表示“unsigned”,加l或L表示“long”,加ll或LL表示“long long”,例如0 x1234U,98765ULL等。2023/1/1628PC机上整数类型大小(bit
10、)2023/1/1629PC机上的Linux浮点数情况对于每种类型,上面的行代码数字位数,下面行代表指数的范围(以10为基数)2023/1/1630类型转换nInteger Promotionn在一个表达式中,凡是可以使用int或unsigned int类型做右值的地方也都可以使用有符号或无符号的char型、short型和Bit-field。如果原始类型的取值范围都能用int型表示,则其类型被提升为int,如果原始类型的取值范围用int型表示不了,则提升为unsigned int型,这称为Integer Promotion2023/1/1631类型转换nUsual Arithmetic Con
11、version:n如果有一边的类型是long double,则把另一边也转成long double。n否则,如果有一边的类型是double,则把另一边也转成double。n否则,如果有一边的类型是float,则把另一边也转成float。n否则,两边应该都是整型,对a和b做Integer Promotion2023/1/1632类型转换n由赋值产生的类型转换:n如果赋值或初始化时等号两边的类型不相同,则编译器会把等号右边的类型转换成等号左边的类型再做赋值2023/1/1633类型转换n强制类型转换:n程序员也可以通过类型转换运算符(Cast Operator)自己规定某个表达式要转换成何种类型,这称为显式类型转换(Explicit Conversion)或强制类型转换(Type Cast)2023/1/1634变量的作用域n文件作用域n函数作用域n代码块作用域n原型作用域2023/1/1635存储类型n变量的存储类型是指存储变量的内存类型主要包括:n自动变量n静态变量n寄存器变量2023/1/16361、求三个整数的最大值,最小值2、输入一个华氏温度,要求输出摄氏温度,公式为c=5(F-32)/93、atof、itoa函数声明 float 环境变量静态.动态区别