收藏 分销(赏)

C语言课件(非常详细).ppt

上传人:可**** 文档编号:751210 上传时间:2024-03-04 格式:PPT 页数:605 大小:17.35MB
下载 相关 举报
C语言课件(非常详细).ppt_第1页
第1页 / 共605页
C语言课件(非常详细).ppt_第2页
第2页 / 共605页
C语言课件(非常详细).ppt_第3页
第3页 / 共605页
C语言课件(非常详细).ppt_第4页
第4页 / 共605页
C语言课件(非常详细).ppt_第5页
第5页 / 共605页
点击查看更多>>
资源描述

1、C C语言程序设计教程语言程序设计教程编写组编写组C语言程序设计2课程介绍课程性质:大学计算机公共基础课(必修)课程内容C语言程序设计的基本方法和技巧预备知识计算机基础教材C语言程序设计教程汪同庆 张 华 杨先娣 主编 机械工业出版社C语言程序设计实验教程汪同庆 关焕梅 汤 洁 主编 机械工业出版社C C语言程序设计语言程序设计3授课计划C C语言程序设计语言程序设计周次周次理论内容理论内容实验内容实验内容1第第1讲讲 C语言概述语言概述与理论课对应与理论课对应2第第2讲讲 C语言快速入门语言快速入门与理论课对应与理论课对应3第第3讲讲 基本数据类型基本数据类型与理论课对应与理论课对应4第第4

2、讲讲 输入输出和库函数输入输出和库函数与理论课对应与理论课对应5第第5讲讲 运算符和表达式运算符和表达式与理论课对应与理论课对应6第第6讲讲 语句和算法语句和算法与理论课对应与理论课对应7第第7讲讲 选择结构选择结构与理论课对应与理论课对应8第第8讲讲 循环结构循环结构与理论课对应与理论课对应9第第9讲讲 函数函数与理论课对应与理论课对应10第第10讲讲 作用范围和存储类别作用范围和存储类别与理论课对应与理论课对应11第第11讲讲 数组数组与理论课对应与理论课对应12第第11讲讲 数组数组与理论课对应与理论课对应13第第12讲讲 指针指针与理论课对应与理论课对应14第第13讲讲 字符串字符串与

3、理论课对应与理论课对应15第第14讲讲 结构体结构体与理论课对应与理论课对应16第第15讲讲 编译预处理编译预处理与理论课对应与理论课对应17第第16讲讲 文件文件与理论课对应与理论课对应18*第第17讲讲 高级数据结构(选讲)高级数据结构(选讲)与理论课对应与理论课对应4考试与考核办法学分:3学分学时:72(讲课36+实验36)总评成绩=平时成绩#%+期末考试成绩#%平时成绩:(实验,单元测验)期末考试成绩C C语言程序设计语言程序设计C C语言程序设计教程语言程序设计教程编写组编写组第一讲 C语言概述6第一讲 C语言概述预备知识计算机组成和工作原理计算机语言和程序C语言的简史为什么学习和使

4、用C语言C语言程序的开发过程C语言编程环境C语言编程实验环境C C语言程序设计语言程序设计7计算机计算机(Computer)能进行计算和逻辑判断的设备在一组指令(instructions)程序(programs)的控制下处理数据硬件(Hardware)组成计算机的各种物理部件键盘、鼠标、显示器、内存、硬盘、光驱等等软件(Software)计算机中运行的程序和数据C语言概述语言概述8计算机的组成计算机包括六大部件输入单元(Input unit)从输入设备(键盘、鼠标)获得数据输出单元(Output unit)把数据输出到输出设备(显示器、打印机等)内存(Memory unit)临时存储正在处理的

5、数据和运行的程序可以快速地访问容量不大C语言概述语言概述9计算机的组成中央处理单元(Central processing unit,CPU)算术逻辑单元(Arithmetic and logic unit,ALU)进行算术运算和逻辑判断控制器(Control unit)管理和协调计算机的其它部件辅助存储器(Secondary storage unit)保存需长期存储的数据和非活动的程序保存时间长价格便宜、容量大例如硬盘、光盘、磁带C语言概述语言概述10计算机的工作原理六大部件紧密协作C语言概述语言概述11计算机的工作原理CPU负责执行程序从内存中读取一条指令执行该指令从内存中读取下一条指令并执

6、行一个主频为1GHz的CPU可以在一秒钟内进行大约一亿次这样的操作 CPU有自己的工作区:包括若干个寄存器(Registers)CPU只能理解有限的指令(CPU的指令集)指令能够完成的任务是具体的例如,把一个数从内存移动到某一个寄存器C语言概述语言概述12计算机程序和语言存储在计算机中的一切内容都是二进制的数字形式数据:数、字符、图片、声音、动画等等指令计算机程序确切告诉计算机如何完成某项任务的指令序列就是一套程序计算机语言用来编写程序C语言概述语言概述#include#include void main()float a,b,c,p,disc,q,x1,x2;scanf(%f%f%f,&a,

7、&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=%f,x2=%f,x1,x2);01100011000001100110010111001100000011000001101101100011000001100110010111001100000011000001101113机器语言数字形式的指令码就是机器语言(Machine language)用机器语言编写的程序能够被计算机直接理解和执行但是,编写程序非常费力例如,编写程序完成两个数相加的任务需要以下几步把地址为2000的内存单元中的数复

8、制到寄存器1;把地址为2004的内存单元中的数复制到寄存器2;把寄存器2中的数与寄存器1中的数相加,结果保留在寄存器1中;把寄存器1中的数复制到地址为2008的内存单元中。C语言概述语言概述01100011000001100110010111001100000011000001101114汇编语言符号化的指令码就是汇编语言(Assembly language)例如,完成两个数相加的汇编语言程序汇编语言程序必须被翻译成机器语言程序才能被执行汇编程序(Assembler)充当“翻译”C语言概述语言概述ldreg n1,r1把变量把变量n1的值复制到寄存器的值复制到寄存器1(r1););ldreg

9、n2,r2把变量把变量n2的值复制到寄存器的值复制到寄存器2(r2););add r1,r2把把r2中的数与中的数与r1中的数相加,结果保留在中的数相加,结果保留在r1中;中;store r1,sum把把r1中的数复制到变量中的数复制到变量sum。15高级语言高级语言(High-level language)使用数学符号和类似英语的单词例如,完成两个数相加的C语言程序从多方面提高了编程效率不必考虑CPU的指令集不必考虑CPU实现特定任务的精确步骤采用接近人类思考问题的方式去书写程序高级语言程序必须被编译程序(Compiler)翻译成机器语言程序才能被执行C语言概述语言概述sum=n1+n2;1

10、6C语言的简史C语言的起源美国贝尔实验室的Dennis Ritchie在1972年开发的用于设计UNIX操作系统其前身是B语言(Ken Thompson于1970年为第一个UNIX系统开发的语言)C语言的标准美国国家标准化组织(ANSI)于1983年成立了一个委员会(X3J11),以确定C语言的标准。该标准(ANSI C)于1989年被正式采用,即C89。最新的标准是C99标准。目前,大多数C语言编译器没有完全实现C99的所有修改。C语言概述语言概述17为什么学习和使用C语言C语言的特点C语言是一种强大而灵活的语言,可以用来编写任意复杂的程序。C语言简洁、紧凑,使用方便、灵活。C语言程序效率高

11、、运行速度快。C语言是可移植的。C语言很适合结构化程序设计,因而要求用户以功能模块的方式来思考问题。C语言具有自我扩展能力。C语言概述语言概述18为什么学习和使用C语言C与C+(C加加,see-plus-plus)贝尔实验室于二十世纪八十年代在C语言的基础上开发的。C+是C语言的超集,包含了C语言的所有内容,同时增加了面向对象编程方面的内容。C与Java(爪哇)Sun公司于1995年发布的面向对象编程语言。Java也是基于C语言的。C与C#(see-sharp)微软在2000年6月与.NET平台一同推出。C#也是从C语言派生的一种面向对象语言。C语言概述语言概述19C语言程序的开发过程一般分成

12、五个步骤定义程序目标设计程序编写代码编译运行、测试和调试程序C语言概述语言概述20C语言程序的开发过程定义程序目标在开始解决问题之前,程序的开发人员必须彻底了解问题的是什么,对即将要创建的程序要做的事情有个清晰的想法。这需要仔细考虑以下问题程序需要什么信息程序需要执行哪些计算和操作程序应该报告什么信息例如,计算任意一个圆环的面积提出问题,明确目标圆环是什么?如何计算?计算精度?C语言概述语言概述21C语言程序的开发过程设计程序决定程序如何去解决问题。需要考虑如何给程序提供必要的数据程序中如何表示数据用什么方法来处理数据程序如何组织程序怎样报告结果完成这个程序需要多长时间应该用一般的概念考虑设计

13、中的问题,而不是考虑具体的代码。C语言概述语言概述22C语言程序的开发过程编写代码编写代码来实现前面的设计,即用某一门语言来表示程序设计。需要开发人员熟练掌握该语言的知识。可以在草稿纸上勾画自己的想法或书写代码,但最终必须将代码输入计算机。输入代码所采用的机制则取决于具体的编程环境。一般来说,需要使用文本编辑器(例如Windows的记事本程序)来创建一种文件,称为源文件源文件包含程序设计的C语言表示形式(称为源程序或源代码)C语言概述语言概述23C语言程序的开发过程编译把C语言源程序转换成机器语言表示的程序。这种程序可以直接被计算机理解和执行,所以称之为可执行程序,放在可执行文件中。编译的具体

14、细节取决于使用的编程环境。C语言分两步完成这一工作:编译和链接。编译器将源代码转换为目标代码,并存在目标文件中。链接器将目标代码与其他代码结合起来生成可执行文件。这种把编译和链接分开来做的方法便于程序的模块化。可以分别编译程序的各个模块,然后用链接器把编译过的模块结合起来。这样,如果需要改变一个模块,则不需要重新编译所有其他模块。C语言概述语言概述24C语言程序的开发过程运行、测试和调试程序运行包含可执行程序的文件,观察运行的结果。在不同的系统中运行程序的方式可能不同。例如,Windows的控制台和资源管理器。应该对程序进行仔细的检查,看程序是否在做该做的事。比较好的做法是为验证程序的正确性设

15、计一个测试计划。越早做越好,因为它有助于理清程序员的思路。程序中的错误被称为bug,调试(Debug)就是要发现并修正错误。C语言概述语言概述25C语言的编程环境开发程序的具体操作取决于使用的编程环境因为C语言是可移植的,所以它在许多环境中都是可用的。例如UNIX、Linux、Windows和MS-DOS。C语言编程环境包括一系列程序。编辑器编译器链接器运行和调试环境C语言概述语言概述Hello.cHello.objHello.exe编辑器编辑器源代码源代码编译器编译器目标代码目标代码链接器链接器可执行代码可执行代码启动代码启动代码库代码库代码执行执行如果有错如果有错如果有错如果有错如果有错如

16、果有错26C语言的编程环境编辑器使用一个文本编辑器程序输入源代码,并将代码保存在源文件中。一般,C程序的源文件名称的扩展名是.c例如welcometoyou.c和Hello.c。该名称应该遵循特定的操作系统的命名规则。例如,MS-DOS要求基本名包含的字符数不能大于8,所以welcometoyou.c不是合法的DOS文件名。Windows允许长文件名,所以welcometoyou.c是合法的Windows文件名。C语言概述语言概述Hello.c编辑器编辑器源代码源代码27C语言的编程环境编译器编译器接收源文件,生成目标文件,扩展名为.obj或.o。编译器还会检查输入的程序是否是有效的C语言程序

17、。如果编译器发现错误,就会报告出错,且不能生成可执行程序。这时就必须修改错误,然后再编译。显然,为了能迅速找到错误,理解特定编译器的报错信息是一项有用的技能。C语言概述语言概述Hello.cHello.obj编辑器编辑器源代码源代码编译器编译器目标代码目标代码如果有错如果有错28C语言的编程环境链接器目标代码虽然已经是机器代码,但还不能被执行。缺少下面两个东西启动代码:相当于程序和操作系统之间的接口。库函数的代码:库文件中包含许多函数的目标代码。链接器的作用就是将这三个元素(目标代码、启动代码和库代码)结合起来,并将它们放在一个文件中,即可执行文件,扩展名为.exe或.out。C语言概述语言概

18、述Hello.objHello.exe目标代码目标代码链接器链接器可执行代码可执行代码启动代码启动代码库代码库代码如果有错如果有错29WINDOWS的C语言编程环境Windows的C语言编程环境Windows并不包含C编译器,所以需要获得并安装一个C编译器。许多现代的编译器都是集成开发环境(或叫IDE)的一部分。包括一个编辑器、编译器、链接器和包括一个符号调试程序在内的运行支持系统。许多软件厂商都提供了基于Windows的集成开发环境Microsoft公司的Visual C/C+Borland公司的C/C+BuilderMetrowerks公司的Code Warrior目前,大多数IDE把C和

19、C+编译器结合在一起。C语言概述语言概述30DOS的C语言编程环境DOS的C语言编程环境基于DOS的IDE Borland公司的Turbo CBorland公司的Borland C+许多Windows上的IDE也提供了在DOS命令行环境中编程的命令行工具。C语言概述语言概述31C语言编程实验环境简介上机实验环境简介举例演示Visual C+6.0的基本操作启动创建源文件构建工程(编译、链接)运行程序C语言概述语言概述32小结C是一种通用的程序设计语言,具有许多突出的优点。程序设计的初学者应该严格按照C语言程序的开发过程进行训练,以便尽快掌握程序设计的基本原则。C是一种需要编译的高级语言。进行C

20、语言编程的具体操作依赖于所使用的编程环境。程序设计是一门实践性很强的课程,在学习过程中必须十分重视实验环节。C语言概述语言概述C C语言程序设计教程语言程序设计教程编写组编写组第二讲 C语言快速入门34第二讲 C语言快速入门C语言程序的基本结构C语言的字符集和关键字Visual C+6.0编程环境C C语言程序设计语言程序设计35C语言程序的基本结构一个简单的C语言程序问题:在屏幕上显示一行文字:“Hello World!”源程序运行结果C语言快速入门语言快速入门/*在屏幕上显示在屏幕上显示Hello World!*/#include void main()/*定义主函数定义主函数*/prin

21、tf(Hello World!n);Hello World!36C语言程序的基本结构一个简单的C语言程序程序结构分析C语言快速入门语言快速入门/*在屏幕上显示在屏幕上显示Hello World!*/#include void main()/*定义主函数定义主函数*/printf(Hello World!n);注释部分注释部分以增加程序的可读性。以增加程序的可读性。不被执行。不被执行。37C语言程序的基本结构一个简单的C语言程序程序结构分析C语言快速入门语言快速入门/*在屏幕上显示在屏幕上显示Hello World!*/#include void main()/*定义主函数定义主函数*/prin

22、tf(Hello World!n);预处理命令预处理命令 程序中包含某一文件内容。程序中包含某一文件内容。“stdio.h”为标准输入输出函为标准输入输出函数头文件名。数头文件名。38C语言程序的基本结构一个简单的C语言程序程序结构分析C语言快速入门语言快速入门/*在屏幕上显示在屏幕上显示Hello World!*/#include void main()/*定义主函数定义主函数*/printf(Hello World!n);函数函数 C程序由函数组成。程序由函数组成。一个一个C程序有且仅有一个主函数程序有且仅有一个主函数(main函数)。函数)。39C语言程序的基本结构一个简单的C语言程序程

23、序结构分析C语言快速入门语言快速入门/*在屏幕上显示在屏幕上显示Hello World!*/#include void main()/*定义主函数定义主函数*/printf(Hello World!n);函数说明函数说明 说明函数类型、函数名和函数参数。说明函数类型、函数名和函数参数。40C语言程序的基本结构一个简单的C语言程序程序结构分析C语言快速入门语言快速入门/*在屏幕上显示在屏幕上显示Hello World!*/#include void main()/*定义主函数定义主函数*/printf(Hello World!n);函数体函数体 包括变量说明和语句执行部分。包括变量说明和语句执行

24、部分。41C语言程序的基本结构一个简单的C语言程序程序结构分析C语言快速入门语言快速入门/*在屏幕上显示在屏幕上显示Hello World!*/#include void main()/*定义主函数定义主函数*/printf(Hello World!n);函数调用语句函数调用语句 格式输出函数格式输出函数printf()。输出输出“Hello world!”。Hello World!42C语言程序的基本结构含有算术运算的C语言程序问题:求方程 的根(设 )。源程序C语言快速入门语言快速入门#include#include void main()float a,b,c,p,disc,q,x1,x

25、2;scanf(%f%f%f,&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=%f,x2=%f,x1,x2);43C语言程序的基本结构含有算术运算的C语言程序程序结构分析C语言快速入门语言快速入门#include#include void main()float a,b,c,p,disc,q,x1,x2;scanf(%f%f%f,&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=

26、%f,x2=%f,x1,x2);预处理命令预处理命令44C语言程序的基本结构含有算术运算的C语言程序程序结构分析C语言快速入门语言快速入门#include#include void main()float a,b,c,p,disc,q,x1,x2;scanf(%f%f%f,&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=%f,x2=%f,x1,x2);函数函数 一个主函数(一个主函数(main函数)。函数)。45C语言程序的基本结构含有算术运算的C语言程序程序结构分析C语言快速入门语言

27、快速入门#include#include void main()float a,b,c,p,disc,q,x1,x2;scanf(%f%f%f,&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=%f,x2=%f,x1,x2);函数说明部分函数说明部分46C语言程序的基本结构含有算术运算的C语言程序程序结构分析C语言快速入门语言快速入门#include#include void main()float a,b,c,p,disc,q,x1,x2;scanf(%f%f%f,&a,&b,&c);

28、p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=%f,x2=%f,x1,x2);函数体函数体 变量说明部分变量说明部分 执行部分执行部分47C语言程序的基本结构含有算术运算的C语言程序程序结构分析C语言快速入门语言快速入门#include#include void main()float a,b,c,p,disc,q,x1,x2;scanf(%f%f%f,&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(

29、x1=%f,x2=%f,x1,x2);运行程序运行程序 键盘输入键盘输入a、b、c的值;的值;屏幕显示屏幕显示x1和和x2的值。的值。1 0-4x1=2.000000,x2=-2.00000048C语言程序的基本结构包含多个函数的C语言程序问题:求|a|+|b|的值。源程序C语言快速入门语言快速入门#includefloat absv(float x)float y;y=x=0?x:-x;return y;void main()float a,b,c;printf(input a,b:n);scanf(%f%f,&a,&b);c=absv(a)+absv(b);printf(|a|+|b|=%

30、fn,c);49C语言程序的基本结构包含多个函数的C语言程序程序结构分析C语言快速入门语言快速入门#includefloat absv(float x)float y;y=x=0?x:-x;return y;void main()float a,b,c;printf(input a,b:n);scanf(%f%f,&a,&b);c=absv(a)+absv(b);printf(|a|+|b|=%fn,c);程序由两个函数组成:程序由两个函数组成:absv函数函数 main函数函数50C语言程序的基本结构包含多个函数的C语言程序程序结构分析C语言快速入门语言快速入门#includefloat a

31、bsv(float x)float y;y=x=0?x:-x;return y;void main()float a,b,c;printf(input a,b:n);scanf(%f%f,&a,&b);c=absv(a)+absv(b);printf(|a|+|b|=%fn,c);调用调用absv函数求绝对值。函数求绝对值。51C语言程序的基本结构包含多个函数的C语言程序程序结构分析C语言快速入门语言快速入门#includefloat absv(float x)float y;y=x=0?x:-x;return y;void main()float a,b,c;printf(input a,b

32、:n);scanf(%f%f,&a,&b);c=absv(a)+absv(b);printf(|a|+|b|=%fn,c);运行程序运行程序 屏幕显示提示信息;屏幕显示提示信息;键盘输入键盘输入a、b的值;的值;屏幕显示屏幕显示a、b绝对值之和。绝对值之和。input a,b:-5 13|a|+|b|=18.00000052C语言程序的基本结构C语言程序的基本结构小结C语言快速入门语言快速入门一一个个C程程序序由由一一个个或或多多个个函函数数组成成,但但有有且且仅有有一一个个主主函函数数(main函数);函数);main函数是程序函数是程序执行的入口,可置于程序的任何位置。行的入口,可置于程序

33、的任何位置。程程序序中中可可以以有有预处理理命命令令(如如:include 命命令令)。预处理理命命令令通通常常放放在程序的最前面。在程序的最前面。每个每个语句以分号句以分号结尾;尾;预处理命令、函数理命令、函数头和花括号和花括号“”之后不之后不能加分号。能加分号。函数包括函数的函数包括函数的说明部分和函数体;函数体包括明部分和函数体;函数体包括变量量说明部分和明部分和执行部分;函数体由一行部分;函数体由一对花括号花括号“”括起来。括起来。括在括在/*/内的文本内的文本为注注释。一行可以写几个一行可以写几个语句,一个句,一个语句也可以写在多行上。句也可以写在多行上。程序区分大小写字母。一般程序

34、区分大小写字母。一般变量、量、语句等用小写字母句等用小写字母书写;符号常写;符号常量、宏名等用大写字母量、宏名等用大写字母书写。写。标识符和保留字之符和保留字之间须加空格以示分隔。加空格以示分隔。53C语言的字符集C语言源程序中使用的字符来自C语言的字符集。字符集(Character set)来自ASCII表52个大小写字母(Letters)A B C D E F G H I J K L M N O P Q R S T U V W X Y Za b c d e f g h i j k l m n o p q r s t u v w x y z10个数字(Digits)0 1 2 3 4 5 6

35、 7 8 9空白符(Blanks)空格符、制表符、回车符、换行符图形符号(Graphic characters)!#%&*(_)-+=|;:,./?C语言快速入门语言快速入门54C语言的关键字关键字(Keywords)是C语言中的词汇。也称为保留字(Reserved words)类型说明int、long、short、float、double、char、unsigned、signed、const、void、volatile、enum、struct、union语句定义if、else、goto、switch、case、do、while、for、continue、break、return、defaul

36、t、typedef存储类别说明auto、register、extern、static长度运算符sizeofC语言快速入门语言快速入门55C语言的标识符标识符(Identifiers)是程序中引用对象的名称。用来标识变量、符号常量、数组、函数、结构体、共用体、自定义类型等。命名规则只能包括大小写字母、数字和下划线;首字符必须是字母或下划线;一般内部标识符的前31个字符有效,而外部标识符的前6个字符有效;(视具体编译器的规定)不能与关键字相同。C语言快速入门语言快速入门countcount,student_namestudent_name,sumsum,test13test13,_number_n

37、umber,Sum Sum M.JohnM.John,$123$123,hi!hi!,12xyz12xyz,voidvoid56VISUAL C+6.0编程环境举例演示Visual C+6.0的基本操作创建工作区创建工程(程序)并添加到工作区创建源文件并添加到工程构建工程(编译、链接)运行程序C语言快速入门语言快速入门57程序的测试与调试程序错误语法错误未遵循C的语法规则。编译器可以检查。运行时错误在程序运行时执行了无法处理的操作。逻辑错误程序不能按照预期的方式运行,不能产生预期的结果。C语言快速入门语言快速入门58程序的测试与调试程序测试审查和运行程序,检测程序是否存在错误。测试步骤在编译前

38、仔细检查程序的源代码,看看是否有明显的错误。查看编译器发现的语法错误。对于运行时错误和逻辑错误可以采用正确输出测试。想找出所有错误是不切实际的。C语言快速入门语言快速入门59程序的测试与调试程序调试隔离和修正错误。调试方法采用手工方式来跟踪程序。在程序中的关键点放置输出语句来显示变量的值。使用调试器。C语言快速入门语言快速入门60小结C程序的基本结构C语言程序是由一个或多个函数组成的。函数可以是标准库函数和自定义的函数。C语言的语句可以包含一个表达式,也可以包含一个函数调用,以一个分号作为结束标志。C语言中的变量在使用之前必须先声明,通过声明语句中为变量指定一个名字和数据类型。可以通过赋值运算

39、改变变量的值。C语言可以使用scanf()函数和printf()函数输入和输出数据。C语言快速入门语言快速入门61小结编译器可以发现程序中的语法错误,但是程序中的运行时错误和逻辑错误只有在程序运行时才表现出来。检测运行时错误和逻辑错误的一种简单实用的方法是跟踪程序的运行状态,即程序每执行一步之后所有或主要变量的值。C语言快速入门语言快速入门C C语言程序设计教程语言程序设计教程编写组编写组第三讲 基本数据类型63第三讲 基本数据类型引例变量与常量预备知识内储存器的组织数据类型基本数据类型整数类型字符浮点类型C C语言程序设计语言程序设计64引例引例问题计算任意一个圆的面积。源程序(cw02-0

40、1.c)基本数据类型基本数据类型#include void main()float r,area;/定义变量定义变量 scanf(“%f”,&r);/读取输入的半径读取输入的半径 area=3.14*r*r;/计算圆的面积计算圆的面积 printf(“area=%f”,area);/输出输出1area=3.140000areararea=r265变量与常量数据(Data)程序需要使用数据。数据是信息的载体。数据有多种形式:数、字符、图片等。常量(Constants)在程序运行之前可以预先设定,并在整个运行过程中没有变化的数据。例如引例中的圆周率3.14。变量(Variables)在程序运行过程

41、中可能变化或被赋值的数据。例如引例中的半径和面积。基本数据类型基本数据类型66数据类型数据类型的作用决定数据的存储方式和占用的存储空间的大小。决定可以进行的操作。C语言的数据类型基本类型整型(integer),字符型(character),浮点型(floating-point),枚举类型(enumeration)构造类型结构体(structure),共用体(union),数组(array)指针类型(pointer)空类型(void)基本数据类型基本数据类型67位、字节和字内存储器的组织基本数据类型基本数据类型位(位(bitbit):最小的:最小的存储单位,可以容纳存储单位,可以容纳两个值之一,

42、即两个值之一,即0或或1。200020012002字节(字节(ByteByte):基本:基本的存储单位,的存储单位,8位。位。字(字(wordword):自然的:自然的存储单位,包含若干存储单位,包含若干个字节。例如个字节。例如32位机位机的一个字就是的一个字就是32位。位。地址地址:以字节为:以字节为单位从单位从0开始编开始编号。号。68整数的存储方式有符号的正整数在内存中以二进制补码形式存放。正整数的补码与原码相同。例如:10基本数据类型基本数据类型符号位符号位0 0 0 0 0 0 0 00 0 0 0 1 0 1 00000000000001010RAM数轴数轴0215-1=32767

43、可表示的数的范围可表示的数的范围-215=-3276869整数的存储方式有符号的负整数在内存中以二进制补码的形式存放。例如:-10基本数据类型基本数据类型符号位符号位1 1 1 1 1 1 1 11 1 1 1 0 1 1 01111111111110110RAM-10的原码的原码1 0 0 0 0 0 0 00 0 0 0 1 0 1 01 1 1 1 1 1 1 11 1 1 1 0 1 0 11 1 1 1 1 1 1 11 1 1 1 0 1 1 0按位取反按位取反加一后得到加一后得到 -10的补码的补码符号符号位不位不变变70整数的存储方式无符号整数所有二进制位都存放数值。例如:65

44、535基本数据类型基本数据类型1 1 1 1 1 1 1 11 1 1 1 1 1 1 11111111111111111RAM0216-1=65535可表示的数的范围可表示的数的范围71整数的类型C语言提供多种整数类型为程序员提供了针对不同用途的多种选择。基本数据类型基本数据类型类型名称类型说明符字节数数值范围基本整型基本整型signed int4-2147483648 2147483647短整型短整型signed short int2-3276832767长整型长整型signed long int4-2147483648 2147483647无符号基本整型无符号基本整型unsigned i

45、nt404294967295无符号短整型无符号短整型unsigned short int2065535无符号长整型无符号长整型unsigned long int404294967295C标准只规定:标准只规定:short int long最大最小值参考最大最小值参考仅供参考,实际值与所仅供参考,实际值与所使用的操作系统、编译使用的操作系统、编译系统、机器有关。系统、机器有关。72整型常量整型常量有三种形式:十进制(decimal)整数12 65 65535八进制(octal)整数:带前缀 0(zero)014 0101 0177777十六进制(hexadecimal)整数:带前缀 0 x 或

46、0X0 xc 0 x41 0 xffff默认类型是int,即有符号的基本整型。可以加上后缀 u 或 U 表示无符号整数,或者 l 或 L 表示长整数。0 xb5Lu基本数据类型基本数据类型73RAM整型变量声明变量(Declaration)变量在使用之前必须被声明。声明语句的格式:举例基本数据类型基本数据类型,.;int counter;int width,height;short x,y;long number;变量声明创建了变变量声明创建了变量:为变量分配了量:为变量分配了存储空间。存储空间。height74整型变量初始化(Initialize)变量为变量赋一个初始值。可以在声明语句中初始

47、化变量。举例变量获得值的方法直接赋值输入初始化基本数据类型基本数据类型int counter=0;int width=352,height=288;初始化式初始化式RAM288height75整型变量输出变量的值可以使用printf()函数。与int类型对应的格式说明符是%d。举例(cw02-02a.c)基本数据类型基本数据类型#include void main()int a,b;a=32767;b=-32768;printf(a=%d,b=%dn,a,b);a=32767,b=-3276876整数的溢出溢出整数太大,超出了整数类型的数值范围。使用printf()时与unsigned int

48、类型对应的格式说明符是%u。举例(cw02-02b.c)基本数据类型基本数据类型#include void main()int a,b;unsigned c,d;a=2147483647;b=a+1;c=4294967295;d=c+1;printf(a=%d,b=%dn,a,b);printf(c=%u,d=%u,c,d);a=2147483647,b=-2147483648c=4294967295,d=0?77整数的溢出溢出结果分析结论a+1 的结果(2147483648)超出了基本整型变量 b 所能容纳(表示)的数值范围(-21474836482147483647)。请分析d的结果。基本

49、数据类型基本数据类型0 1 1 1 1 1 1 1.1 1 1 1 1 1 11 0 0 0 0 0 0 0.0 0 0 0 0 0 0a(2147483647)1 0 0 0 0 0 0 0.0 0 0 0 0 0 0a+1(2147483648)b(-2147483648)12加正数加正数减正数减正数78字符的存储方式字符编码计算机使用一种数字编码(整数)来表示字符,每一个字符都对应一个特定的整数。常用的编码是ASCII(美国信息交换用标准码)。7位二进制数,十进制码值范围从0到127。一般用一个字节保存,最高位为0。字符的存储方式与整数相同举例字母A的ASCII码值为65,那么在内存中以

50、65的二进制形式存储,且占一个字节。基本数据类型基本数据类型0100000101000001RAM79字符的类型和字符变量C语言的字符类型:char占一个字节;可视为一个有符号的整数。举例(cw02-03.c)基本数据类型基本数据类型#include void main()char c1,c2;/声明字符变量声明字符变量 c1=97;/把一个整数赋值给字符变量把一个整数赋值给字符变量 c2=c1-32;/字符变量可以进行算术运算字符变量可以进行算术运算 printf(c1=%c,c2=%cn,c1,c2);printf(c1=%d,c2=%dn,c1,c2);c1=a,c2=Ac1=97,c2

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服