《C语言程序设计(第5版)》全套教学课件_第1页
《C语言程序设计(第5版)》全套教学课件_第2页
《C语言程序设计(第5版)》全套教学课件_第3页
《C语言程序设计(第5版)》全套教学课件_第4页
《C语言程序设计(第5版)》全套教学课件_第5页
已阅读5页,还剩1024页未读 继续免费阅读

下载本文档

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

文档简介

第1章

C

语言概述C语言程序设计(第五版)全套可编辑PPT课件01-C语言概述02-C语言基础及顺序结构程序设计03-选择结构程序设计04-循环结构程序设计05-数组06-函数与编译预处理命令07-指针08-结构体和共用体09-文件10-位运算1.1

C语言简介1.2

C

语言程序的基本结构和书写风格1.3

算法及算法的描述1.4

C

语言程序的调试和运行步骤1.5

在VisualC++中运行C语言程序过程第1章

C

语言概述

内容提纲第1章

C

语言概述一、教学目的

►了解

C

语言的由来、特点,C

语言程序的基本结构;

►了解编程风格的重要性,养成良好的编程风格习惯;

►了解

C

语言是按编译方式执行的;

►熟悉和掌握

VC++2010的运行环境。二、教学要求

►掌握

C

语言的特点和基本结构;

►了解算法的概念,掌握用流程图和

N-S

图来描述一个算法;

►掌握

VC++2010集成开发环境基本操作。三、教学重点、难点

►掌握

C

语言程序的基本结构;

►掌握用流程图和

N-S

图正确地描述要解决的实际问题。第1章

C

语言概述

内容提纲1.1

C语言简介1.2C语言程序的基本结构和书写风格1.3算法及算法的描述1.4C语言程序的调试和运行步骤1.5在VisualC++中运行C语言程序过程Youare

here!你在这儿!1.1

C程语言简介•

程序设计语言

程序设计语言是计算机能够理解和识别的一种语言体系,它按照特定的语法规则组织计算机指令,使计算机能够自动进行各种操作处理。•

计算机程序

按照程序设计语言的语法规则组织起来的一组计算机指令被称为计算机程序。1.程序设计语言的发展历程机器语言1.2.汇编语言3.高级语言程序设计语言的分类4.面向对象的语言1.1

C程语言简介1.1

C程语言简介

例如:

1011000

00001111

表示把15送入寄存器AL中的某种型号计算机的指令。

(1)机器语言

机器语言是用0和1组成的机器指令,能被计算机直接识别和执行的语言。

用机器语言编写的程序执行效率虽然比较高,但是,机器语言不易记忆,通用性差。1.1

C程语言简介(2)汇编语言

汇编语言用助记符取代了机器指令,而且助记符与机器指令一一对应,与机器语言相比,汇编语言比较直观、易记忆,但移植性不好。

汇编语言指令表示:MOVAL,15

机器语言指令表示:1011000

00001111

例如:把15送入寄存器AL中的汇编语言和机器语言都是面向机器的程序设计语言一般称为低级语言1.1

C程语言简介(3)高级语言

高级语言使用接近人类自然语言的语句代码来编写计算机程序。由于高级语言与具体的计算机指令系统无关,所以用高级语言编写的程序能在不同型号的计算机上运行,通用性好。1.1

C程语言简介例如:

表示把15送入寄存器AL中的高级语言指令如下:

AL=15;(4)面向对象的语言

随着计算机技术的发展产生了面向对象的语言,其特点是编写程序时只要考虑如何认识问题中的对象和描述对象,而不必具体说明对象中的数据操作。1.1

C程语言简介例如:

VisualC++、Java

语言等就是典型代表。

1963年英国的剑桥大学在ALGOL60的基础上推出了CPL语言,但是CPL语言难以实现。1967年英国剑桥大学的学者对CPL语言作了简化和改进,推出了BCPL语言。1970年美国贝尔实验室的学者以BCPL语言为基础,设计出了简单且接近硬件的B语言。1972年由美国的学者D.M.Ritchie在B语言的基础上设计出了C语言。

1977年D.M.Ritchie发表了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,大大简化了将C语言移植到其他机器上所需要的工作。1978年以后,C语言先后移植到大、中、小、微型计算机上。C语言很快风靡全世界,成为世界上应用最广泛的程序设计语言。2.C

语言的发展历程1.1

C程语言简介3.

C

语言的主要特点(1)C语言基本组成部分紧凑简洁,功能丰富,使用方便、灵活

C语言只有32个关键字和9种控制语句,运算类型极其丰富,表达式类型简洁,语法限制不太严格,程序设计自由度大,且使用一些简单的方法就可以构造出相当复杂的数据类型和程序结构。1.1

C程语言简介(2)C语言是结构化语言

C语言程序主要是由函数构成的,这些函数可方便地调用,并具有多种条件、循环语句控制程序的流向,使程序完全结构化。结构化语言程序清晰、更易于程序设计、调试和维护。(3)C语言允许直接访问硬件

C

语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能。1.1

C程语言简介(4)C语言程序目标代码的质量和效率高

C语言程序编译后生成的目标代码质量高,程序执行效率高。C语言编写的程序一般仅比汇编语言所生成的目标代码效率低10%~20%。(5)C语言适用范围广,可移植性好

C语言程序基本上不做修改就能用于各种型号的计算机和各种操作系统。1.1

C程语言简介C语言的上述特点使其在操作系统开发、操作系统相关软件开发、服务器运维、嵌入式开发中具有广泛的应用。我国目前在许多基础软件,如操作系统、数据库软件、工业软件方面的完全国有化、自主产权化和先进性提升等等方面仍有很多工作要做。这些都要依靠具备扎实的计算机编程基础的专业型青年人才来完成。

因此无论是对普通理工科学生还是信息专业的高等院校学生来说,都应当重视和良好的掌握这门语言。1.1

C程语言简介第1章

C

语言概述

内容提纲1.1

C语言简介1.2C语言程序的基本结构和书写风格1.3算法及算法的描述1.4C语言程序的调试和运行步骤1.5在VisualC++中运行C语言程序过程Youare

here!你在这儿!

预处理命令

#include<stdio.h>

函数的首部

intmain()

函数体开始

{

printf("Let'sstudytheClanguage!\n");

return0;

函数体结束

}一个C语言函数

程序运行结果:Let'sstudytheClanguage!1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构【例1.1】用

C

语言编写一个程序,在屏幕上显示:

Let'sstudytheClanguage!函数体1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构【例1.2】使用

C

语言编写一个程序,求两个数a与b之和。#include<stdio.h>

/*程序需要使用C语言提供的库函数*/intadd(intx,inty)

/*定义函数add(),功能是求两个数x、y之和*/{

intsum; /*定义整型变量sum*/

sum=x+y; /*将x、y之和赋给变量sum*/

return(sum); /*返回sum的值*/}intmain() /*主函数*/{

inta,b,c; /*定义a、b、c三个整型变量*/

a=123; /*把常数123赋给变量a*/

b=456; /*把常数456赋给变量b*/

c=add(a,b); /*调用函数add,并将返回的值赋值给变量c*/

printf("sum=%d\n",c);

/*输出返回的c的值*/

return0;}1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构程序运行结果:sumis:5791.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构(1)函数的首部(2)函数体一个函数由两部分组成

函数的首部:即函数的第一行,包括函数类型、函数名、参数类型和参数名。函数名后面必须跟一对圆括号,函数参数可以没有。

例如:函数类型函数名参数类型参数名int

add(

int

x,

int

y

){

intsum;

sum=x+y;

return(sum);}参数类型参数名1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构没有参数函数类型函数名int

main(

){

inta,b,c;

a=123;

b=456;

c=add(a,b);

printf("sum=%d\n",c);return0;}1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构(1)说明部分(2)执行部分函数体

•函数体

即函数首部下面的大括号{……}内的部分。函数体一般包括说明部分(也称数据定义部分或声明部分)和执行部分,它们都是C语句。·说明部分:

是对函数体要用到的变量进行定义及对其所调用函数的声明。·执行部分:

用于完成函数内部所规定的各项操作。intmain(){

inta,b,c;

intadd(int

x,int

y);

a=123;

b=456;

c=add(a,b);

printf("sum=%d\n",c);

return0;}int

add(int

x,

int

y){

intsum;

sum=x+y;

return(sum);}1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构C语言程序的结构特点:

程序由函数构成,函数有主函数

main()、库函数以及自定义函数三种类型。

一个函数的说明部分在前,执行部分在后,这两部分的顺序不能颠倒,也不能交叉。

一个程序总是从主函数

main()开始执行,无论主函数写在程序的什么位置。

程序的语句都是以分号结尾。

程序中可以有编译预处理命令,其通常应放在程序的最前面。#include<stdio.h>intadd(intx,

inty){

intsum;

sum=x+y;

return(sum);}intmain()

{

inta,b,c;

a=123;

b=456;

c=add(a,b);

printf("sum=%d\n",c);return0;}1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构

为提高程序的可读性,在书写

C

语言程序时应遵循以下规则:

(1)一个说明或一个语句占一行。

(2)用{

}括起来的部分,通常表示了程序的某一层次结构。在使用时尽可能采用左右大括号各占一行,且上、下对齐,以便于检查括号的匹配性。

(3)整个程序采用递缩格式书写。即内层次语句向右边缩进若干空格后书写,同一层语句上、下左对齐,以便看起来更加清晰。1.2C

语言程序的基本结构和书写风格1.2.2

C

语言程序的书写风格1.2C

语言程序的基本结构和书写风格(4)对于数据的输入/输出,运行时最好要出现输入/输出提示信息。

(5)对语句、函数和程序,应加上适当的注释。注释不影响程序的执行,主要用来说明语句、函数和程序的功能、用途或程序实现的方法等,以便提高程序的可读性。注释方法有两种

/*注释内容*/:适用于单行或多行注释//注释内容:适用于单行注释1.2.2

C

语言程序的书写风格#include<stdio.h>

//程序需要使用C语言提供的库函数intadd(intx,inty)

/*定义函数add(),功能是求两个数x、y之和*/{

intsum;

//定义变量sum为整型

sum=x+y;

//将x、y之和赋给变量sum

return(sum);

//返回sum的值}intmain()

/*主函数*/{

inta,b,c;

//定义a、b、c三个整型变量

a=123;

//把常数123赋给变量a

b=456;

//把常数456赋给变量b

c=add(a,b);

//调用函数add,并将返回的值赋值给变量c

printf("sum=%d\n",c);

//输出返回的c的值

return0;}1.2C

语言程序的基本结构和书写风格1.2.1C

语言程序的基本结构1.2C

语言程序的基本结构和书写风格#include<stdio.h>intadd(intx,inty){

intsum;sum=x+y;return(sum);}intmain()

{inta,b,c;a=123;b=456;c=add(a,b);

printf("sum=%d\n",c);return0;}#include<stdio.h>intadd(intx,inty){intsum;sum=x+y;return(sum);}intmain(){inta,b,c;a=123;b=456;c=add(a,b);printf("sum=%d\n",c);

return0;}【例1.3】将例1.2求两个数

a

b

之和的程序,用规范和不规范格式书写。按不规范形式书写程序按规范形式书写程序1.2.2

C

语言程序的书写风格第1章

C

语言概述

内容提纲1.1

C语言简介1.2C语言程序的基本结构和书写风格1.3算法及算法的描述1.4C语言程序的调试和运行步骤1.5在VisualC++中运行C语言程序过程Youare

here!你在这儿!1.3算法及算法的描述·一个程序一般包括以下两方面的内容

(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即“数据结构”。

(2)对数据操作的描述,即操作步骤,也就是“算法”。著名的公式:程序=数据结构+算法无论是什么程序设计方法,或使用什么程序设计语言,程序的本质都是通过“算法”来对“数据”进行加工处理。1.3算法及算法的描述·算法的描述

算法的描述方法多种多样,可以使用自然语言描述,也可以使用专门的算法表达工具进行描述。(1)流程图方式(2)N-S图方式常用的算法的描述方法1.流程图方式流程图是用一些图框表示各种类型的操作,用线表示这些操作的执行顺序。常用的流程图符号的功能:

起止框(a):表示算法由此开始或结束。

处理框(b):表示基本操作处理。

判断框(c):表示根据条件进行判断操作处理。

输入/输出框(d):表示输入数据或输出数据。

流程线(e):表示程序的执行流向。1.3算法及算法的描述1.3算法及算法的描述例如:计算半径为r的圆面积s算法的流程图描述如下:1.3算法及算法的描述例如:判断输入的两个正整数x、y的大小,并输出其中的大数算法的流程图描述如下:2.N-S图方式

去掉带箭头的流程线,算法全部写在一个矩形框内,在该框内还可以包含其他的从属于它的框,或者说,由一些基本的框组成一个大的框。(a)顺序结构(b)选择结构(c)当型循环结构(d)直到型循环结构N-S图中使用的基本符号1.3算法及算法的描述1.3算法及算法的描述例如:计算半径为r的圆面积s算法的N-S图描述如下:1.3算法及算法的描述例如:判断输入的两个正整数x、y的大小,并输出其中的大数算法的N-S图描述如下:【例

1.4】绘制“求3个整型数中的最大数问题”的流程图和N-S图。流程图描述

N-S图描述第1章

C

语言概述

内容提纲1.1

C语言简介1.2C语言程序的基本结构和书写风格1.3算法及算法的描述1.4C语言程序的调试和运行步骤1.5在VisualC++中运行C语言程序过程Youare

here!你在这儿!

C

语言编写的源程序必须经编译、连接生成可执行文件(*.exe),才可以运行。1.4C

语言程序的调试和运行步骤

C

语言源程序的运行步骤1.编辑(edit)

使用一个系统提供的文本编辑器编辑

C

语言源程序,并将其保存为

“.c”

的文件。2.编译(compile)

编译程序会自动分析、检查源程序的语法错误,并报告警告或出错原因。用户可根据报告信息修改源程序,再编译,直到程序正确后,生成目标程序

“.obj”。3.连接(link)生成目标程序后,将目标程序与系统提供的库函数或其他目标程序进行连接,得到最终的可执行文件。连接成功后生成可执行文件“.exe”。4.运行(run)运行程序并检查运行结果的正确性。如果运行结果不正确,应检查程序或算法,重新编辑代码。1.4C

语言程序的调试和运行步骤

本章介绍了

C

语言的由来、特点和

C

语言程序的基本结构,还介绍了在

VisualC++2010

中执行

C

语言程序的编辑、编译、连接及运行步骤。

函数是

C

语言程序的基本单位。一个

C

语言源程序可以由多个函数组成,其中必须有一个,而且只能有一个名为

main()

的主函数。C

语言程序总是从

main()

函数开始执行。

编写规范的程序和养成良好的书写风格,可以提高程序的可读性。

算法是程序设计的关键,可以帮助我们正确地描述要解决的实际问题。本

结参

献1.恰汗·合孜尔.实用计算机数值计算方法及程序设计(C语言版)[M].北京:清华大学出版社,2008.2.韦娜

王俊

袁玲

吴文红等编著.C程序程序设计[M].2版.北京:清华大学出版社,2019.3.占跃华

符传谊

毕传林

主编.C语言程序设计[M].3版.北京:北京邮电大学出版社,2019.4.占跃华

符传谊

主编.C语言程序设计实训教程[M].3版.北京:北京邮电大学出版社.2019.5.赵春晓王丽君编著.C语言程序设计基础[M].北京:清华大学出版社,2017.6.郭伟青赵建锋何朝阳编著.C程序设计[M].北京:清华大学出版社,2007.7.张磊编著.C语言程序设计[M].4版.北京:清华大学出版社,2018.8.金龙海李聪主编.C语言程序设计[M].北京:科学出版社,2012.9.谭浩强编著.C程序设计[M].5版.北京:清华大学出版社,2017.第2章

C语言基础及顺序结构程序设计C语言程序设计(第五版)2.1

C

语言的字符集2.2

C

语言的关键字、标识符和保留标识符2.3

C

语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例第2章

C语言基础及顺序结构程序设计

内容提纲第2章C语言基础及顺序结构程序设计一、教学目的

►了解

C

语言的几种基本数据类型;

►了解不同类型数据间的混合运算规则;

►掌握格式输入

/

输出函数的使用方法;

►会编写一些简单的顺序结构程序。第2章C语言基础及顺序结构程序设计二、教学要求

►掌握

C

语言的几种基本数据类型;

►掌握标识符的概念,熟悉变量和常量先定义后使用的特点;

►熟练掌握各种类型数据的定义与存储特点;

►熟悉整型数据与字符型数据间的关系;

►掌握定义变量的同时,赋初值的方法;

►掌握各种运算符和表达式的含义与使用要点;

►掌握不同类型数据间的混合运算规则;

►掌握

C

语言的基本语句;

►了解

C语言程序的基本结构:顺序结构;

►熟练掌握格式输入/输出函数的使用方法;

►能编写简单的顺序结构程序。第2章

C

语言基础及顺序结构程序设计三、教学重点、难点

►重点:

◘C

语言的几种基本数据类型

不同类型数据间的混合运算规则

◘熟悉整型数据与字符型数据间的关系

►难点:

◘格式输入

/

输出函数的使用方法第2章

C

语言基础及顺序结构程序设

内容提纲2.1

C语言的字符集Youare

here!你在这儿!2.2

C

语言的关键字、标识符和保留标识符2.3

C

语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例2.1

C

语言的字符集•

字符集

字符是组成

C

语言的最基本的元素。C

语言字符集由字母、数字、空白符、下划线、标点符号和特殊字符组成。•

C

语言的字符集的构成

字母:小写字母a~z共26个,大写字母A~Z共26个

数字:0~9共10个

空白符:空格符、制表符和换行符等统称为空白符

④下画线:_

标点符号、特殊字符:+、-、*、/、%、=、>、<、(、)、

[、]、

{、}、!、&、#、^、?、,、.、;、:、'、"、\,以及注释符,转义字符(后面会专门介绍)等。

在编写C语言程序时,只能使用C语言字符集中的字符,且区分大小写英文字母。第2章

C

语言基础及顺序结构程序设

内容提纲2.1

C语言的字符集Youare

here!你在这儿!2.2

C语言的关键字、标识符和保留标识符2.3

C

语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例·关键字

是具有特定含义的、专门用来说明

C

语言的特定成分的一类单词。

关键字都是用小写字母书写,不能用大写字母书写。

关键字不能用于变量名或函数名等其他场合。2.2C

语言的关键字、标识符和保留标识符chardoubleenumfloatintlongshortsignedstructunionunsignedvoidbreakcasecontinuedefaultdoelseforgotoifreturnswitchwhileautoexternregisterstaticconstsizeoftypedefvolatileC语言定义的32个关键字2.2.1关键字·标识符

用于标识名字的有效字符序列称为标识符。·标识符的用途

标识符可用来标识变量名、符号常量名﹑函数名、数组名和数据类型名等。2.2C

语言的关键字、标识符和保留标识符2.2.2标识符2.2C

语言的关键字、标识符和保留标识符2.2.2标识符·标识符的命名应遵循以下规则:

①标识符只能由英文字母、数字和下画线

3

种字符组

成,且第一个字符必须为字母或下画线。

②大小写英文字母被认为是不同的字符。

例如:D

d、BOOK

book

是不同的标识符。

③标识符不能与关键字和保留标识符重名。

④在一个标识符中,各个字符之间不允许出现空格。

⑤标识符的长度可以为任意,它随编译系统的不同而

不同。•

正确的标识符命名:

_3a

x3

PI

musicabD34xzBook_1BOOTBALL•不正确的标识符命名:

a+bG.W.Bush

3s

-3x

int#xyprintfuv定义标识符时应尽量做到“见名知意”,以提高程序的可读性。例如,可用

sum

表示求和、name

表示姓名、max

表示最大值、min

表示最小值等。2.2C

语言的关键字、标识符和保留标识符2.2.2标识符提示:例如:

正弦函数sin(

)、打印函数

printf(

)、预编译处理命令

#define

等。2.2C

语言的关键字、标识符和保留标识符2.2.3保留标识符·保留标识符

保留标识符是系统保留的一部分标识符,通常用于系统定义库函数的名字。第2章

C

语言基础及顺序结构程序设

内容提纲2.1

C语言的字符集2.2

C

语言的关键字、标识符和保留标识符2.3

C语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例Youare

here!你在这儿!·C语言的数据类型C语言对具有相同属性的数据,采用相同的取值范围和相同的操作,这种相同的属性集合称为数据类型。

数据类型决定数据的表示形式、占据存储空间的大小、数据的取值范围和运算方式。2.3C

语言的数据类型基本数据类型是非数据类型的基础非基本数据类型基本数据类型·C

语言数据类型的分类2.3C

语言的数据类型

C

语言的数据类型由+2.3C

语言的数据类型·C语言数据类型及其分类关系第2章

C

语言基础及顺序结构程序设

内容提纲2.1

C语言的字符集2.2

C

语言的关键字、标识符和保留标识符2.3C语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例Youare

here!你在这儿!·常量

所谓常量是指在程序运行的整个过程中,其值始终不变的量。·常量类型的分类2.4常

量2.4常

量2.4.1整型常量十进制整型常量12八进制整型常量3十六进制整型常量整型常量有3

种表示形式1.十进制整型常量

十进制整型常量的数码为

0~9

,数值前面可以有+、-符号。例如:

合法的十进制整型常量:

237,

-568,

65535

不合法的十进制整型常量:

3.(含有小数点,是实数),035(不能有前缀0)

23D(含有非十进制数码

D)2.4常

量十进制整型常量的数值前面不允许加

0注意:2.4.1整型常量2.八进制整型常量

八进制整型常量的表示形式是以数字0开头,由0~7的数字组成。合法的八进制常量:

015(十进制为13),0177777(十进制为65535)

不合法的八进制常量:

256(无前缀0),0128(出现了非八进制数码8)2.4常

量2.4.1整型常量3.十六进制整型常量

十六进制整型常量的表示形式是以

0x

0X

开头,由0~9

的数字、A~F

a~f

字母组成。

合法的十六进制整型常量:

0X2A(十进制为42),0XFFFF(十进制为65535)

不合法的十六进制整型常量:

5A(无前缀0X),0X3H(含有非十六进制数码H)

※一个整型常量后面加了后缀l或L,则被认为是longint类型常量,如55与55L

数值上相等,但类型不同,后者为long型。2.4.1整型常量2.4常

量·实型常量

实型常量即为实数,它只有十进制这一种数值。2.4.2

实型常量2.4常

量(1)小数形式(2)指数形式实型常量的两种形式·实型常量1.小数形式

由正号或负号、0~9

的数字和小数点组成,且小数点的前面或后面至少一边要有数字。

例如:-1.85、

0.3456、

120.0、

.426

2.指数形式

由十进制数(尾数)加阶码标志

“e”

“E”

以及阶码(只能是整数,可以带符号)组成。

其一般形式为:

aEn

aen

其中

a

为十进制数,阶码n

为十进制整数(n

为正数时“+”可以省略),其值为

a×10n。2.4.2

实型常量2.4常

量·合法的指数形式:

1.234e12(等于1.234×1012)

3.7E-2(等于3.7×10-2)

2.34e+8(等于2.34×108)·非法的指数形式:

568(无小数点)

e-5(阶码标志“e”之前无数字)

-5(无阶码标志)

58+e5(符号位置不对)

2.7E(无阶码)

6.4e+5.8(阶码不是整数)2.4.2

实型常量2.4常

量·对于实型常量的两种表示形式,系统均默认为是双精度实型常量。

例如:

5.35、5.5e5

的类型均为

double

型·如果一个实型常量的后面加上了

F

f,则被认为是

float

单精度实型常量。

例如:

0.5e2f、3.14159F2.4.2

实型常量2.4常

量·字符常量

字符常量是用单引号括起来的一个字符。

例如:

'a'、'0'、'A'、'-'、'*'

都是合法字符常量

'a'和'A'是不同的字符常量

除了以上形式的字符常量以外,C

语言还定义了一些特殊的字符常量,是以反斜杠

"\"开头的字符序列,称为转义字符。转义字符的意思是将反斜杠

"\"后面的字符转变成另外的意义。2.4常

量2.4.3字符常量字符形式含义ASCII码\n换行,将当前位置移到下一行开头10\t水平位移,跳到下一个tab位置9\b退格,将当前位置移到前一列8\r回车,将当前位置移到本行开头13\f换页,将当前位置移到下一页开头12\\反斜杠字符“\”92\'单引号字符“'”39\"双引号字符“"”34\0空字符0\ddd

1到3位八进制数所代表的ASCII码字符\xhh1到2位十六进制数所代表的ASCII码字符转义字符及其含义2.4.3字符常量2.4常

注意:

①字符常量只能用单引号括起来,不能用双引号或其他括号。

例如:

'a'

'5'

②字符常量只能是单个字符,不能是字符串。

例如:

'xx'、'55'

③数字被定义为字符常量之后就以

其ASCII

码值参与数值运算。2.4常

量2.4.3字符常量【例2.1】分析下面程序的运行结果。

#include<stdio.h>

/*

程序需要使用C语言提供的库函数*/

int

main()

{

printf("China\n\101\t\\\n");

/*调用printf(

)显示字符串*/

return0;

}

程序运行结果:

China

A

\程序中的转义字符有:\n、\101、\t、\\。输出China之后遇到转义字符'\n'进行换行,其后遇八进制转义字符'\101',输出其对应的字符'A',然后遇到转义字符'\t',水平移动到下一个制表位置,再遇转义字符'\\',输出'\',最后遇'\n'进行换行。2.4常

量2.4.3字符常量·字符串常量字符串常量是用双引号括起来的字符序列。

例如,以下是合法的字符串常量:“a”“CHINA”“**402754**”

“”:表示一个空格串

“”:表示什么字符也没有的字符串

“\n”:表示一个具有换行功能的字符串2.4常

量2.4.4字符串常量

字符串常量在内存中存储时,系统自动在每一个字符串常量的尾部加一个“字符串结束标志”,即字符

'\0'(ASCII码值为0)。因此,长度为

n

个字符的字符串常量在内存中要占用

n+1

个字节的空间。

例如,字符串

"A"

"Cprogram"

的长度分别为

1

9(即字符的个数),但在内存中所占的字节数分别为

2

10。2.4常

量2.4.4字符串常量A\0ogra

m\0

Cpr(b)字符串“Cprogram”

的存储形式(a)字符串“A”的存储形式·字符串常量在内存中的存储形式:2.4常

量·字符常量与字符串常量的区别:

①定界符不同

字符常量使用单引号,而字符串常量使用双引号。

例如:

'a'

"a"

②存储要求不同

字符常量存储的是字符的

ASCII

码值,而字符串常量除了要存储字符串常量的有效字符外,还要存储一个字符串结束标志

'\0'。2.4.4字符串常量·符号常量在程序中,如果某个常量多次被使用,则可以使用一个符号来代替该常量,这种相应的符号称为符号常量。用宏定义

#define

来定义符号常量,格式是在#define后面跟一个“标识符”和一个“字符串”,彼此之间用空格隔开。

例如:

#defineN35

#definePI3.1415

※符号常量不是C语句,故末尾不要加分号。※

习惯上,符号常量用大写,变量用小写以示区别。

※符号常量一旦定义,就不能在程序的其他地方给该标识符再

赋值。2.4.5符号常量2.4常

量#include<stdio.h> /*

程序需要使用C语言提供的库函数*/int

main(){

floatr,v,s;

r=2.0; /*将2.0赋值给半径r*/

v=4.0/3.0*3.1415*r*r*r; /*求球的体积v*/

s=4.0*3.1415*r*r; /*求球的表面积s*/

printf("v=%f\ns=%f\n",v,s); /*输出球的体积v和表面积s*/return0;}2.4.5符号常量2.4常

量程序运行结果:v=33.509335s=50.264000【例2.2】编写求一个半径

r=2.0

的球的体积和表面积的程序。球的体积:v=(4/3)Πr³球的表面积:s=4Πr²#include<stdio.h> /*

程序需要使用C语言提供的库函数*/#definePI3.1415 /*定义PI为符号常量,其值为3.1415*/int

main(){

floatr,v,s;

r=2.0; /*将2.0赋值给半径r*/

v=4.0/3.0*PI*r*r*r; /*求球的体积v*/

s=4.0*PI*r*r; /*求球的表面积s*/

printf("v=%f\ns=%f\n",v,s);/*输出球的体积v和表面积s*/return0;}v=4.0/3.0*PI*r*r*r

等效于

v=4.0/3.0*3.1415*r*r*r2.4.5符号常量2.4常

量【例2.2】编写求一个半径

r=2.0

的球的体积和表面积的程序。s=4.0*PI*r*r

等效于

s=4.0*3.1415*r*r第2章

C

语言基础及顺序结构程序设

内容提纲2.1

C语言的字符集2.2

C

语言的关键字、标识符和保留标识符2.3C语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例Youare

here!你在这儿!•

变量

所谓变量是指在程序运行过程中,其值可以改变的量。

例如:

计算圆周长l的

C

语句:

l=2*3.1415*r;l和r都是变量,r可以有不同的值,

l的值跟随r的值改变。2.5.1变量的概念2.5变

量•

变量的3个特征:

►变量名

变量名的命名方式符合标识符的命名规则。

►变量有类型之分

不同类型的变量占用的内存单元(字节)数不同,因此每个变量都有一个确定的类型。

►变量存放值

程序运行过程中用到的变量必须有确切的值,变量在使用前必须赋值,变量的值存储在内存中。2.5.1变量的概念2.5变

量1.变量的定义

常量是可以不经定义直接引用的,而程序中用到的所有变量必须先定义后使用。

变量定义的一般形式为:

数据类型标识符变量名1[,变量名2,变量名3,…,变量名n];

[

]:表示可选项。

例如:

inta;

/*定义a为整型变量*/

floatx,

y,

z;

/*定义x、y、z为单精度实型变量*/

charch;

/*定义ch为字符型变量*/2.5.2

变量的定义与初始化2.5变

量·进行变量定义时,应注意以下几点:

①允许在一个数据类型标识符后,说明多个相同类型的变量,各

变量名之间用逗号隔开。

②数据类型标识符与变量名之间至少用一个空格隔开。

③最后一个变量名之后必须以分号“;”结尾。

④变量定义必须放在变量使用之前,一般放在函数体的开头部分。

⑤在同一个程序中变量不允许重复定义。2.5变

量2.5.2

变量的定义与初始化

例如,以下是不合法的定义:

intx,

y,

z; /*定义x、y、z为整型变量*/

inta,

b,

x; /*变量x被重复定义*/

intu,v /*语句末尾没有;号*/2.变量的初始化

在定义变量的同时可以给变量赋初值,称为变量初始化。

变量初始化的一般形式为:

数据类型标识符变量名1=常量1[,变量名2=常量2,…];

[

]:表示可选项。2.5变量2.5.2

变量的定义与初始化例如:

inta;

//定义a为整型变量

floatx=0,y=0;//定义x、y为实型变量,同时x、y都赋初值为0

charch='a';//定义ch为字符型变量,同时赋初值字符'a'·整型变量整型变量通常可分为4类:一般整型、短整型、长整型和无符号型。其中,无符号型又有无符号整型、无符号短整型和无符号长整型之分。

变量根据类型的不同,所能表示的数值范围,以及所占内存空间的大小也不同。在VC++2010环境下的状况。2.5.3

整型变量符号数据类型类型标识符所占字节数取值范围带符号整型int4-214783648~214783647短整型short或shortint2-32768~32767无符号无符号整型unsigned或unsignedint40~4294967295无符号短整型unsignedshort20~655352.5变

量·实型变量实型变量分为单精度型(float)、双精度型(double)和长双精度型(longdouble)3

种。2.5.4实型变量类型名类型标识符所占字节数有效数字取值范围单精度型float46~7-3.4×10-38~3.4×1038双精度型double815~16-1.7×10-308~1.7×10308※

实型数据的存储形式决定了能提供的有效数字是有限的,有效数字位数以外的数字会被舍去,所以实型数据会存在误差。2.5变

量【例2.3】实型数据的舍入误差分析。#include<stdio.h>int

main(){floata,

b;

/*定义a、b为单精度实型变量*/doublec,

d;

/*定义c、d为双精度实型变量*/a=3.55;/*将3.55赋给单精度实型变量a*/b=12345.678;/*将12345.678赋给单精度实型变量b*/c=3.55;/*将3.55赋给双精度实型变量c*/d=12345.678;/*将12345.678赋给双精度实型变量d*/

printf("a=%f,b=%f\n",

a,

b);

/*以单精度实型形式输出a、b的值*/

printf("c=%f,d=%f\n",

c,

d);

/*以单精度实型形式输出c、d的值*/return0;}由于b是float类型,有效位数为7位,将12345.678赋给b时,输出结果却显示为12345.677734,前面7位数字是有效的,后面数字出现了误差。2.5.4实型变量2.5变

量程序运行结果:a=3.550000,b=12345.677734c=3.550000,d=12345.6780002.5.5

字符变量2.5变

·字符变量

字符变量用来存放字符常量,注意只能存放一个字符。·字符变量的类型标识符:

char例如:

charc1,c2,c3;

c1='a';

//正确:给字符变量赋值字符'a'

c2='6';

//正确:给字符变量赋值字符'6'

c3="a";

//不正确:给字符变量赋值字符串常量"a"1.字符型数据在内存中的存放形式

字符型数据在内存中存储的是ASCII码的二进制形式,一个字符的存储占用一个字节。2.5.5

字符变量2.5变

量例如:

charc1,c2;

c1='a';

c2='b';

在内存中储存的是字符‘a’、

‘b’的ASCII码值97和98的二进制形式。2.字符型数据的使用

由于字符型数据在内存中存放的是字符的ASCII码值,所以也可以把字符型数据看成是整型数据,即字符型和整型可以通用。

字符型数据可以参与算术运算,也可以把整型数据赋值给字符型变量,还可以以整数形式输出。2.5.5

字符变量2.5变

量【例2.4】向字符变量赋以整数。

#include<stdio.h>

int

main(

)

{

charc1,c2;/*定义c1、c2为字符型变量*/

c1=65;

/*

将整数65赋给字符变量c1,相当于c1='A'

*/

c2=67;

/*将整数67赋给字符变量c2,相当于c1='C'*/

printf("%c\t%c\n",c1,c2); /*以字符形式输出c1和c2的值*/

printf("%d\t

%d\n",c1,c2); /*以整数形式输出c1和c2的值*/return0;

}2.5.5

字符变量2.5变

量程序运行结果:A

C65

67字符型数据既可以用字符形式输出(用%c),也可以用整数形式输出(用%d),增加了程序设计的灵活性。【例2.5】字符型和整型变量可以相互赋值。#include<stdio.h>int

main(){

intk; /*定义k为整型变量*/

charch; /*定义ch为字符型变量*/

k='b'; /*将字符'b'赋给整型变量k*/

ch=66; /*将整数66赋给字符变量ch*/

printf("%d,%c\n",k,k);

/*分别以整数和字符形式输出k的值*/

printf("%d,%c\n",ch,ch);

/*分别以整数和字符形式输出ch的值*/return0;}2.5.5

字符变量2.5变

量程序运行结果:

98,b

66,B第2章

C

语言基础及顺序结构程序设

内容提纲2.1

C语言的字符集2.2

C

语言的关键字、标识符和保留标识符2.3

C语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例Youare

here!你在这儿!·运算符用来表示各种运算的符号称为“运算符”。2.6.1运算符2.6C

语言的运算符和表达式(1)按运算符功能(2)按运算对象的多少运算符按其功能和运算对象的个数进行分类·运算符按其运算符功能分类

可以分为算术运算符、关系运算符、逻辑运算符、位运算符和特殊运算符5类。·运算符按其运算对象的多少分类

单目运算符:

仅对一个运算对象进行操作。例如

:-5

双目运算符:对两个运算对象进行操作。例如:

2+3

三目运算符:

对三个运算对象进行操作。例如:5>9?3:-32.6.1运算符2.6C

语言的运算符和表达式•

表达式

用运算符把运算对象连接起来的符合

C

语言语法规则的式子,称为表达式。

例如:

表达式

c/(3*a+b)

中包括+、*、/、(

)

运算符,

运算对象包括3、a、b、c。•

表达式的值

对表达式进行运算,所得到的结果称为表达式的值。

例如:

表达式

2+cos(0)

的值为

3。2.6.2表达式2.6C

语言的运算符和表达式•运算符的优先级

运算符的优先级指多个运算符用在同一个表达式中时先进行什么运算,后进行什么运算。•运算符的结合性

运算符的结合性是指在表达式中若连续出现若干个优先级相同的运算符时,各运算符的运算次序。因而,在

C

语言中有所谓“左结合性”和“右结合性”之说。•关于运算符的结合性详见P222.6.3运算符的优先级和结合性2.6C

语言的运算符和表达式第2章

C

语言基础及顺序结构程序设

内容提纲2.1

C语言的字符集2.2

C

语言的关键字、标识符和保留标识符2.3

C语言的数据类型2.4

常量2.5

变量2.6

C

语言的运算符和表达式2.7

C语言中最基本的运算符和表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例Youare

here!你在这儿!1.基本算术运算符及其表达式•基本算术运算符

温馨提示

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

评论

0/150

提交评论