c语言入门与提高1_第1页
c语言入门与提高1_第2页
c语言入门与提高1_第3页
c语言入门与提高1_第4页
c语言入门与提高1_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言入门与提高郝庆晋2022-3-231什么是程序?n 程序(Program)是一个精确说明如何进行计算的指令(Instruction)序列。n 人和计算机交换信息所用的语言,称为计算机语言。2022-3-2322022-3-233自然语言和形式语言自然语言和形式语言n 什么是自然语言?n 什么是形式语言?n 两者区别和联系:n 歧义性n 冗余性n 与字面意思的一致性2022-3-234指令分类n 输入: 从键盘、文件或者其它设备获取数据。n 输出: 把数据显示到屏幕,或者存入一个文件,或者发送到其它设备。n 基本运算: 执行最基本的数学运算(加减乘除)和数据存取。n 测试和分支: 测试某个

2、条件,然后根据不同的测试结果执行不同的后续指令。n 循环: 重复执行一系列操作。2022-3-235编程的本质n 把复杂的任务分解成子任务,把子任务再分解成更简单的任务,层层分解,直到最后简单得可以用以上所述指令来完成。2022-3-236程序调试n 编译时错误n 运行时错误n 逻辑错误和语义错误2022-3-237C语言的历史n C语言是由UNIX的研制者丹尼斯里奇(Dennis Ritchie)和肯汤普逊(Ken Thompson)于1970年研制出的B语言的基础上发展和完善起来的。n 1973年,Unix操作系统的内核正式用C语言改写,这是C语言第一次应用在操作系统的内核编写上。n 目前

3、,C语言编译器普遍存在于各种不同的操作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。2022-3-238C语言的特点n C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。2022-3-239C语言特点n C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。 n 传递参数是以值传递(Pass-by-value),也可以通过指针来传递参数(Pass-by-address)。 n 不同的变量类型可以用结构体(stru

4、ct)组合在一起。 n 只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。 n 部份的变量类型可以转换,例如整形和字符变量。 n 通过指针(pointer),C语言可以容易的对存储器进行低级控制。 n 编译预处理(preprocessor)让C语言的编译更具有弹性。2022-3-2310C语言的编译执行过程2022-3-2311第一个C语言程序n #include n /* main: generate some simple output */n int main(void)n n printf( Hello, world.n );n return 0;n

5、2022-3-2312如何编译和运行?n$ gcc -o test $ ./a.outn Hello, world.2022-3-2313程序的结构n C程序由函数构成。n 一个函数由两个部分组成: 说明部分 函数名、类型、参数及类型说明 函数体 变量的定义及执行部分n 书写格式自由:一般用小写字母,语句以分号结束,分号是语句的必要组成部分,一行上可以写几条语句,一条语句也可以写在几行上。2022-3-2314程序的结构n C程序总是从main函数开始执行,并且一定有且仅有一个主函数,主函数名必须是main。n C语言本身不带输入输出语句,必须通过调用库函数来实现输入输出。n 以/* */之间

6、的内容是注释,不影响程序的执行,可增加程序的可读性。2022-3-2315代码风格n 好的代码风格要求缩进整齐,每个语句一行,适当留空行2022-3-2316常量、变量和数据类型常量、变量和数据类型2022-3-2317数据类型n C语言里常用的数据类型有整型、实型、字符型、数组、结构体类型、指针类型等。数据类型丰富是C语言的特点之一。如:n int 整型n char 字符型n float 单精度浮点型n double 双精度浮点型2022-3-2318常量和变量的概念常量:在程序运行过程中其值不能变的量。包括直接常量和符号常量。 符号常量的定义: #define 标识符 常量变量:程序运行过

7、程中其值可以改变的量,系统为程序中的每一个变量开辟一个存储单元2022-3-2319变量n 字母开头,后跟字母、数字和下划线组成。n C语言中的关键字不能作为变量名n 注意: 变量必须先定义后使用; 变量中存放的只能是数据,而且只能是一个数据,往变量中存放数据的操作称为赋值;2022-3-2320变量n 变量的“名”和变量的“值”不同,变量的“名”是该变量所代表的存储单元的标志,而变量的“值”是指存储单元中的内容。2022-3-2321整型常量n 三种形式表示:n 十进制:如 123 60 0n 八进制:以0开始,如 0123n 十六进制:以0 x开始,如0 x1232022-3-2322不同

8、进制之间的换算n 十进制:n 123=1102+2101+3100n 二进制:n (A3A2A1A0)2=A323+A222+A121+A0202022-3-2323字符型常量n 单引号括起来的一个字符。如: a n 字符常量的值是一个数字值。如字符常量 0 ,其ASCII为48,所以存储的实际值为48。n 字符常量可以象整数一样参与运算。n 如: a +32022-3-2324字符常量另一种形式转义字符形式n 转义字符 功能 ASCII记号 转义字符 功 能 ASCII记号n a 响铃 BEL 反斜杠字? n b 退格 BS 单引号字符 n f 走纸换页 FF “ 双引号字符 n n 换行

9、NL ? 问号 ?n r 回车 CR ooo13位8进制数 ooon t 横向跳格 HT xhh12位16进制数 hhn v 纵向跳格 VT2022-3-2325字符串常量n 双引号括起来的字符序列。 如How are you,0等n 字符串在存储时末尾被自动加上 字符0n 字符常量与只包含一个字符的字符串常量的区别?2022-3-2326字符型变量n 字符型变量中存放ASCII字符集中的任何一个字符,字符变量在内存中占一个字节。n 定义格式:n char 变量名1,变量名2,; n 如:n char a,b;n a=97-32;b=a+2;2022-3-2327n 整数常量还可以在末尾加u或

10、U表示“unsigned”,加l或L表示“long”,加ll或LL表示“long long”,例如0 x1234U,98765ULL等。2022-3-2328PC机上整数类型大小(bit)类型类型PC机上的机上的Linux系统系统char8int32short16long32long long642022-3-2329PC机上的Linux浮点数情况类型类型PC机上机上Linux系统系统float6位-37到38double15位-307到308Long double18位-4931到4932对于每种类型,上面的行代码数字位数,下面行代表指数的范围(以10为基数)2022-3-2330类型转换n

11、 Integer Promotionn 在一个表达式中,凡是可以使用int或unsigned int类型做右值的地方也都可以使用有符号或无符号的char型、short型和Bit-field。如果原始类型的取值范围都能用int型表示,则其类型被提升为int,如果原始类型的取值范围用int型表示不了,则提升为unsigned int型,这称为Integer Promotion2022-3-2331类型转换n Usual Arithmetic Conversion:n 如果有一边的类型是long double,则把另一边也转成long double。n 否则,如果有一边的类型是double,则把另一边也转成double。n 否则,如果有一边的类型是float,则把另一边也转成float。n 否则,两边应该都是整型,对a和b做Integer Promotion2022-3-2332类型转换n 由赋值产生的类型转换:n 如果赋值或初始化时等号两边的类型不相同,则编译器会把等号右边的类型转换成等号左边的类型再做赋值2022-3-2333类型转换n 强制类型转换:n 程序员也可以通过类型转换运算符(Cast Operator)自己规定某个表达式要转换成何种类型,这称为显式类型转换(Explicit Conversion)或强制类型转换(Type Cast)2022-3-2334变量的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论