《C语言程序设计.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计.pdf(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!1/63下载文档可编辑 C 语言程序设计 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!2/63下载文档可编辑 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!3/63下载文档可编辑 第 1 章 基本概念.41.1 C 语言的产生及发展史.41.2 C 语言特点.6C 语言及其程序的基本形式.6第 2 章 数据类型、运算符与表达式.72.1 基本数据类型.72.2 常量与变量.82.3 运算符.102.4 表
2、达式.112.5 逗号运算符与逗号表达式.12第三章 顺序结构.143.2 数据输出.143.2.1 printf 函数的使用.143.3 数据输入.173.4 复合语句.193.4.1 复合语句.193.4.2 空语句.203.5 程序举例.20第 4 章 选择结构.214.1 关系运算与逻辑运算.214.1.1 关系运算.214.1.2 逻辑运算.214.2 if 语句.224.3 条件表达式.254.4 switch 选择结构与 break 语句.26第五章 循环结构.285.1 while 循环.285.2 do while 循环.295.3 for 语句和 for 语句构成的循环.3
3、05.4 循环的嵌套.325.5 break 与 continue 在循环中的应用.33第六章 字符型数据.356.1 字符型常量.356.1.1 字符型常量.356.1.2 转义字符数据的写法.356.1.4 可对字符量进行运算.366.2 字符型变量.366.3 字符的输入与输出.36欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!4/63下载文档可编辑 6.3.1 用 printf 与 scanf 作输出与读取.366.3.2 用 putchar 与 getchar 作字符的输出与读取.37第七章 函数.397.1 库函数.397.2 自定义
4、函数.397.2.1 函数的书写方法.407.2.2 函数的返回值.407.3 函数的调用.417.4 函数的说明.427.5 调用函数与被调用函数之间的数据传递.45第八章 地址与指针.488.1 变量的地址与指针.488.2 指针变量的定义.498.3 指针变量赋值.498.4 对指针变量操作.498.5 移动指针.508.6 函数之间的地址传递.518.7 返回地址的函数叫做指针函数.51第九章 数组.529.1 一维数的定义与引用.529.2 一维数组的访问.529.3 数组的赋值.529.5 一维数组与地址.539.5 二维数组的定义和二维数组元素的引用.579.5.1 二维数组的定
5、义.579.5.2 二维数组的访问.589.5.3 二维数组在定义可以赋值.589.5.4 可以通过赋值,确定行数.589.6 二维数组与指针.599.6.1、二维数组实际上是由一维数组构成:.599.6.2 二维数组名也是二维数组的首地址.599.7 二维数组与函数.60第十章 字符串.6410.1 用一维数组存放字符串.6410.1.1 通过赋初值给一个字符数组赋成字符串.6510.1.2 在程序执行过程中给一维字符数组赋值.6610.2 使指针指向一个字符串.6610.2.1 可通过赋初值,指一个指针指向字符串.66欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭
6、诚为您提供优质的文档!5/63下载文档可编辑 10.2.2 通过赋值运算使指针指向一个字符串.6610.3 字符串的输入与输出.6610.3.1 输入输出字符串的必要条件.6610.3.2 用格式说明符%s 进行整串的输入与输出.6610.3.3 用 gets 和 puts 函数对字符串进行输入与输出.6610.4 字符串数组.6710.5 用于字符串处理的函数.67第十一章 递归函数.70第十二章 C 语言中变量的作用域与变量的存储类型.7012.1 局部变量.7012.2 全局变量.7112.3 局部静态变量.71第十三章 编译预处理和动态存储分配.7213.1 宏替换.7213.2 动态
7、存储分配.7313.2.1 malloc 函数与 free 函数.73第十四章 结构体与共用体.7414.1 用 typedef 说明一个类型.7414.2 结构体类型.7414.2.1 结构体类型声明的格式:.7514.2.2 结构体型的数组、变量、指针的定义.7514.2.3 结构体变量、数组的赋值.7614.2.4 引用结构体变量中的数据.7714.2.5 对结构体成员赋值.7714.2.6 结构体函数之间数据传递.7814.3 链表.81 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!6/63下载文档可编辑 第 1 章 基本概念 本章主要
8、内容 明确 C 语言的产生及发展史 了解 C 语言特点 掌握 C 语言的表述环境 明确 C 语言及其程序的基本形式 1.1 C 语言的产生及发展史 C 语言属于 ALGOL 语言族系,产生于 1972 年.是编程者设计的一种结构化程序设计语言.它首先是为了编写 PDP-11 型计算机上的UNIX 操作系统而产生出来,但后来发展成为一种独立的程序设计语言,并广泛地应用在大型,小型,微型计算机上.1967 年英国剑桥大学的 Matin Richards 对 CPL 语言做了简化,推出了 BCPL 语言。1970 年美国贝尔实验室的 Ken Thompson 以 BCPL 语言为基础,又做了进一步简
9、化,设计出了很简单的而且很接近硬件的 B 语言,并用 B 语言写了第一个 UNIX 操作系统,在 PDP-7 上实现。1972 年至 1973 年间,贝尔实验室的 D.M.Ritchie 在 B 语言的基础上设计出了 C 语言。欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!7/63下载文档可编辑 C 语言的设计者 Dennis M.Ritchie 1973 年,K.Thompson 和 D.M.Ritchie 两人合作把 UNIX 的 90以上用 C 改写,即 UNIX 第 5 版,由此确立了 C 语言的地位。Ritchie 和 Thompson
10、 在开发 UNIX 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!8/63下载文档可编辑 C 语言的设计者 D.M.Ritchie 和 Unix 的设计者 Ken Thompson 接受美国国家技术勋章 C 语言是一种中级语言,它介于高级语言(BASIC,FORTRAN.)和低级语言(汇编语言)之间.它即具有高级语言功能(直接的人-机对话和数学计算),又具有低级语言功能(移位,位处理),从而使其功能大大地增强,成为一种先进的程序设计语言.1.2 C 语言特点 语言简炼 使用的关键字仅为 27 个,而 BASIC 语言为 150 多个.利用符号代替
11、语句,表达简洁.许多工作由大量的库函数完成,并且库函数可以自定义,所 以 C 语言的关键字及其功能是无限的.功能强 它集高级语言的特点和低级语言的特点于一身,即能完成高语言的功能 又能完成低级语言的功能,是一种强功能的语言.由它编写的软件有:UNIX,dBASE III,C 编译.欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!9/63下载文档可编辑 模块化结构 C 语言支持各种库函数和用户定义的函数(模块)相互调用构成程序,完 成功能.并且,不允许嵌套定义,因此,具有很强的模块化结构.移植性好 利用 C 语言编的程序不加改动或稍加改动,就可以由一
12、个环境移植到另 一个环境上.因为,不同计算机上的 C 语言编译代码的80%左右相同.C 语言及其程序的基本形式 这里介绍几个简单的 C 语言程序,从中明确 C 语言及其程序的基本形式。例 1.1 main()printf(“This is a C program.n);本程序的作用是输出以下一行信息,主要说明 C 语言程序的基本组成部分,C 语言程序的具体形式。例.main()/*求两数之和*/int a,b,sum;/*这是定义变量*/a=123;b=456;/*为变量赋初值*/sum=a+b;/*将两个变量的值相加后赋给另一个变量*/printf(“sum is%dn”,sum);/*输出
13、相加后的欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!10/63下载文档可编辑 结果*/本程序的作用是说明一个较为全面的 C 语言程序,以及注释的使用。第 2 章 数据类型、运算符与表达式 本章主要内容 理解数据类型引入的目的、意义和具体类型 明确常量与变量 掌握 C 语言的运算符和表达式表 2.1 基本数据类型 大千世界存在着各种各样、各种类型的数,人们利用不同类型的数去描述不同的事物。然而,哪些“类型”的数据可以在 C 语言中使用?C 语言中允许使用的“类型”又是什么呢?3.1.1 数据类型:某一类数据(值)的特征形式(表示意义、取值范围、符
14、号取向).基本形:整数(int)、浮点(float)、字符(char)、无值(void)。构造(组合、集合)型:数组、结构(struct)联合(union)、枚举(enum)。指针类型 空类型 1.1.整数和整数类型 整数在 C 语言中称为“整型常量”,因为它即表示了值,又表示了一定的意义。欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!11/63下载文档可编辑 类型 字节数 取值范围 signed int 2-32768-32767 Unsigned int 2 0-65535 signed shot int 2-32768-32767 Unsi
15、gned shot int 2 0-65535 long int 4-2147483648-2147483647 Unsigned long int 4 0-4294967295 注:方括弧内的部分是可以省略的。例如:signed shot int 与 shot等价,尤其是 signed 是完全多余的,一般都不写 signed。2.浮点类型(float)类型 字节数 有效数字 取值范围 float 4 6 7-3.4X10(-38)-3.4X10(38)double 8 15 16-1.7X10(-308)-1.7X10(308)long double 16 18-19-1.2X10(-493
16、2)-1.2X10(4932)3.字符类型(char)类型 字节数 意义 char 1 表示一个字符 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!12/63下载文档可编辑 2.2 常量与变量 在 3.1 节学习了几种数据的类型,可以用它们表示客观世界中的数值。那么,如果要表示客观世界中的“事物”(事和物)怎么办?C语言中使用“量”来表达客观事物,其中,自身数值不变的量用“常量”表示,自身数值变化的量用“变量”表示。因此,为了全面地表达客观事物,在 C 语言中则必须使用(定义)常量和变量(表示事和物)。同时,给出它们的类型(表示数值)。3.2.1
17、 常量:程序执行中其值不变的量。类型:一般(短整)常量、长整常量、浮点常量、字符常量、字符串常量。符号常量定义式:#define 符号常量名;例:#define PI 3.14 意义:3.2.2 变量:程序在执行过程中其值变化的量。类型:一般(短整)变量、长整变量、浮点变量、字符变量、字符串变量。定义式:数据类型 变量名;例:int k;意义:定义整型变量 k。3.2.3 变量赋初值 在 C 语言中常需要对变量预先设置初值,可以使用数的三种表示形式:十进制数、八进制数、十六进制数和数据类型为变量赋初值。例 3.1#define PRICE 30 main()int num,total;num=
18、10;total=num*PRICE;printf(“total=%dn”,total);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!13/63下载文档可编辑 本程序的作用是说明常量的定义、赋值和使用。例 3.2 main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);本程序的作用是说明整型变量的定义、赋初值、运算和其值的输出。例 3.3 main()char c1,c2;c1=97;c2=98;printf(“%c%cn”,c1
19、,c2);printf(“%d%dn”,c1,c2);本程序的作用是说明字符型变量的定义、赋初值和输出。例 3.4 main()int a=3;float f=3.1415926;char c=a;printf(“nnn%d%f%cn”,a,f,c);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!14/63下载文档可编辑 本程序的作用是说明整型、字符、浮点变量的定义、赋初值和输出。注:标识符:由字母、数字和下线符构成,标志和识别一定意义的字符串。类型:关键字、特定字、一般标识符(由用户设定)。作用:代表常量、变量、数据类型、函数名字。关键字:在
20、C 语言中,具有严格特定含义的标识符。见教材 P365 附录 B 2.3 运算符 在客观事物使用数和量表示完以后,还要对它们进行处理,进行运算,这就要涉及 C 语言中的运算符。还要表达它们之间的关系,又要用到 C 语言中的表达式。那么 C 语言中提供了哪些运算符和表达式让我们使用呢?3.3.1 运算符 C 语言中的运算符分为以下几类:1.1.算术运算符 +-*/%2.2.关系运算符 =!=3.3.逻辑运算符&|!4.4.位运算符|&5.5.赋值运算符 =6.6.条件运算符?:7.7.逗号运算符 ,8.8.指针运算符 *&9.9.求字节数运算符 sizeof 10.10.强制类型转换 (类型)1
21、1.11.分量运算符变 .-12.12.下标运算符 13.13.其它 函数调用运算符()见教材 P365 附录 C 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!15/63下载文档可编辑 3.3.2 算术运算符 自增、自减算术运算符+i;-i;意义:在使用 i 之前,先使 i 的值加 1(减 1)。i+;i-;意义:在使用 i 之后,使 i 的值加 1(减 1)。例:int m,n,s,t,k=10;m=+k;n=k+;s=-k;t=k-;3.3.3 复合运算符 a+=3;等价于 a=a+3;x*=y+8;等价于 x=x*(y+8);x%=3;等
22、价于 x=x%3;2.4 表达式 表达式:使用运算符将运算(操作)对象连接起来的、符合 C 语法规则的式子。算术表达式、逻辑表达式、字位表达式、强制类型转换表达式、逗号(顺序)表达式、赋值表达式、条件表达式、指针表达式。例 3.5 main()int a,b,c;float d,f=3.1415926;a=b=c=9;d=a/f;printf(“nnn%d%d%d%f n”,a,b,c,f);printf(“n%f n”,d);本程序的作用是说明赋值表达式、算术表达式的使用。欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!16/63下载文档可编辑
23、例 3.6 main()int m=10;n=3;int s,t;s=m/2;t=n%2;printf(“nnn%d%d n”,s,t);本程序的作用是说明除法运算符和取余运算符的区别。例 3.7 main()int i,j,k,l;i=2,j=3;k=i+;l=-j;printf(“%d%d%d%d”,i,j,k,l);本程序的作用是说明自加、自减运算符的使用。例 3.8 main()int num=1,total=11;num+=5;total%=num;printf(n%d%dn,num,total);本程序的作用是说明复合运算符的使用。例 3.9 欢迎您阅读并下载本文档,本文档来源于互
24、联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!17/63下载文档可编辑 main()float x;int i;x=3.6;i=(int)x;printf(“n x=%f i=%dn”,x,i);本程序的作用是说明强制类型转换的问题。2.5 逗号运算符与逗号表达式 以前我们学过+-*/(特别)%(特别)=%要求两边的操作数必须是整数如:5%3 结果为 2 这个运算符通常用作判断一个数是否能被另一个数整除。这节课我们学习逗号运算符,我们通过逗号表达式来看一下逗号运算符是怎么回事。逗号表达的定义:用逗号连接的表达式,叫逗号表达式 格式:表达式 1,表达式 2,表达式 3,表达式 4,表达
25、式 n 逗号表达式的运算顺序:表达式 1 表达式 2 表达式 3 表达式 4表达式 n 逗号表达式结果:最后一个表达式的结果将作为整个表达式的结果。例1、例 1、看如下程序,写出结果#include stdio.h main()int k;k=(2+3,7,0,88);printf(k=%dn,k);/结果是 88 例2、例 2、看如下程序,写出结果#include stdio.h main()欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!18/63下载文档可编辑 int k;k=2+3,7,88;printf(k=%dn,k);/结果是 5 说
26、明:赋值符号的优先级要高于逗号运算符,逗号运算符的优先级在所有的运算符当中是最低的。例 3、看如下程序,写出结果#include stdio.h main()int k,i=5;k=(i+,i+,i+5);/k=(i=i+1),(i=i+1),(i+5);printf(k=%dn,k);/结果为 12 例 4、看如下程序,写出结果#include stdio.h main()int k,i=5;k=i+,i+,i+5;/k=(i=i+1),(i=i+1),(i+5);printf(k=%dn,k);复习以前的知识 运算符+和-运算的规则是一样的,我们以+为例进行讲解。+运算符只能用于单变量身上
27、,如 i+,(a+b)+这样写就不对了。用于单变量身上表示单变量本身自增 1。自增运算符有两种情况,一种作为前缀,别一种作为后缀。一、当+作为前缀或是后缀时,变量执行的结果都是一样的 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!19/63下载文档可编辑 说明:无论是前缀还是后缀,i+(或+i)都是使 i 自增 1(i=i+1)二、+作为前缀与+作为后缀,表达式的值是不一样的 说明:在上面的两个程序中,K 存放的都是自增表达式的值,两个自增表达式的值是不同的。(1)+i K 得到的是 i 自增后的结果,我们用一句话表示:先运算,后取值。(2)(2
28、)i+K 得到的是 i 自增后前的结果,我们用一句话表示:先取值,后运算。总结一下:i+和+i 主要区别只是表达式的值不同,但是他们功能是一样的,都是使 i 自增 1.#include stdio.h main()int i=5;+i;printf(%d n,i);/6#include stdio.h main()int i=5;i+;printf(%d n,i);/6#include stdio.h main()int k,i=5;k=+i;printf(%d%d n,k,i);/6 6#include stdio.h main()int k,i=5;k=i+;printf(%d%d n,k
29、,i);/5 6 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!20/63下载文档可编辑 第三章 顺序结构 在这一章中,我们主要讲 printf 和 scanf 的使用,若在程序中使用printf和scanf,则应在程序的第一行用#include 将”stdio.h”文件包含进来。3.2 数据输出 3.2.1 printf 函数的使用 以前我们上讲过一个例子:#include stdio.h main()double a,b;a=1.2;b=1.2;printf(a=%f,b=%f n,a,b);说明:在上面的 printf 中,存在一个格式符%
30、f,%f 是专门用来输出 double 变量内容,那么上面程序的执行结果:printf 的使用方法:printf(“字符串”,输出的变量);说明:1、双引号中的字符除了格式符(是用来输出变量的)之外,其它字符是原样输出。2、我们主要学习哪些格式符呢?double%f(%lf)float%f int%d long%ld 例 1、写出程序结果 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!21/63下载文档可编辑#include stdio.h main()float x,y;x=33.0;y=66.0;printf(x=%f,y=%f,x,y);例
31、 2 写出程序结果#include stdio.h main()int k;int a=11,b=3;k=a%b;printf(k=%d n,k);例 3 写出程序结果#include stdio.h main()long k;long a=9,b=3;k=a%b;printf(k=%ld n,k);3、printf(“字符串”,输出的变量);该格式中第二部分是可以省略,那么就输出字符串。#include stdio.h main()printf(*Hello World*n);4、可以在%d 之间加上一个数字,用来指定输出数所占的宽度,如%5d,则数占 5 个字符的宽度,字符默认向右对齐。例
32、 1、#include stdio.h main()欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!22/63下载文档可编辑 int a=3;int b=50;int c=500;printf(%5dn,a);printf(%5dn,b);printf(%5dn,c);例 2、#include stdio.h main()int a=3;int b=50;int c=500;int d=5000;printf(%5dn,a);printf(%-5dn,b);printf(%dn,c);printf(%3dn,d);若实际宽度 指定的宽度,则%nd
33、数字默认向右对齐 若实际宽度 指定的宽度,则正常输出 5、对于输出(float 或 double)的%f,可以在%和 f 之间,加上m.n,%m.nf m:是指定整个数所占宽度 n:指定小数位数 如:a=3.145678 若想保留两位小数输出,则%4.2f#include stdio.h main()double a=3.145678;printf(a=%4.2f n,a);/3.15 有时出题人比较懒,他容易将%4.2f 写成%.2f,%.2f 的意思:小数按两位输出,整数部分要原样输出的。#include stdio.h main()double a=300.145678;printf(a
34、=%.2f n,a);/300.15 /%1.2f 是先保证小数位输出,然后整数位原样输出 3.3 数据输入 如何能过键盘给程序中的变量赋值呢?#include stdio.h main()double a,b,area;a=1.2;b=1.2;area=a*b;printf(a=%.2f,b=%.2f,area=%.2f n,a,b,area);通过 scanf 函数给变量赋值,看一下 scanf 函数的使用形式:scanf(“字符串”,变量的地址);说明 1、给变量赋值也要能过格式符 double%lf float%f 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将
35、竭诚为您提供优质的文档!24/63下载文档可编辑 int%d long%ld 现在我们举一个最常见的例子:#include stdio.h main()double a,b,area;scanf(%lf%lf,&a,&b);area=a*b;printf(a=%.2f,b=%.2f,area=%.2f n,a,b,area);注意:scanf(%lf%lf,&a,&b);双引号内的格式符要挨着,不要加一些其它字符,要赋值的变量前加&2、如何给变量赋值#include stdio.h main()double a,b,c,area;scanf(%lf%lf%lf,&a,&b,&c);area=a
36、*b+c;printf(a=%.2f,b=%.2f,c=%.2f,area=%.2f n,a,b,area);1)1 2 3 回车 2)1 回车 2 回车 3 回车 3)1 tab 2 3 总之:数据之间可以任意加空格,回车,Tab,最后用回车表示数据输入结束。3、在 scanf 中,我们可以指定所要读取数的宽度#include stdio.h main()int a,b,c,area;scanf(%3d%2d%4d,&a,&b,&c);area=a*b+c;欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!25/63下载文档可编辑 printf(a
37、=%3d,b=%3d,c=%3d,area=%3d n,a,b,c,area);说明:若在键盘中输入 1234567890 时,此时%3d 读取了 123 赋给了a,%2d 读取了 45 赋给了 b,%4d 读取了 6789 赋给了 c,4、用%*d 可以是跳过一个数#include stdio.h main()int a,b,area;scanf(%d%*d%d,&a,&b);area=a+b;printf(a=%3d,b=%3d,area=%3d n,a,b,area);/若输入 123 456 789 说明:此时第一个%d 读取了 123,遇空格结束,第二%*d 会跳过 456,第三个%
38、d 读取了 789。例 1、#include stdio.h main()int a,b,area;scanf(%3d%*3d%3d,&a,&b);area=a+b;printf(a=%3d,b=%3d,area=%3d n,a,b,area);/若输入 123 456 789 例 2、#include stdio.h main()int a,b,area;scanf(%2d%*3d%2d,&a,&b);area=a+b;printf(a=%3d,b=%3d,area=%3d n,a,b,area);输入 1234567890 说明:读取了 12 送给了 a,跳过 345,读取了 67 赋给了
39、 b.最后注意,同学们在上机的时候总爱出现这样的毛病:#include stdio.h main()欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!26/63下载文档可编辑 int a,b,area;scanf(%d,%d,%d,&a,&b,&c);area=a+b+c;printf(a=%3d,b=%3d,c=%3d,area=%3d n,a,b,c,area);同学们千万要注意:在 scanf 的双引号,一定要按着双引号的字符原样输入,这样才是正确的,如上题:123,456,789#include stdio.h main()int a,b,c
40、,area;scanf(please input a,b,c:%d%d%d,&a,&b,&c);area=a+b+c;printf(a=%3d,b=%3d,c=%3d,area=%3d n,a,b,c,area);此时正确的输入方法是:please input a,b,c:123 12 1 3.4 复合语句 3.4.1 复合语句 复合语句的概念:就是用 括起来的0个或多个语句叫复合语句。复合语句在 C 语言语法上来说,是作为一个整体(也可以说作为一条大的语句)如:#include stdio.h main()int a,b,c,area;scanf(%d%d%d,&a,&b,&c);area=
41、a+b+c;printf(a=%3d,b=%3d,c=%3d,area=%3d n,a,b,c,area);这个 C 语言程序从上到下一共 3 条语句。欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!27/63下载文档可编辑 3.4.2 空语句 空语句:就是一个单分号,空语句也是一条合法的语句。#include stdio.h main()int a,b,c,area;scanf(%d%d%d,&a,&b,&c);area=a+b+c;printf(a=%3d,b=%3d,c=%3d,area=%3d n,a,b,c,area);该程序一共是 5
42、条语句,当计算机执行到第四条语句(空语句)时,计算机什么也不干。3.5 程序举例 例 3.1 从键盘输入两个整数,给 x 和 y 赋值,在程序中使 x 和 y 的值交换,然后再输出交换后的 x 和 y 的值。#include stdio.h main()int x,y,t;scanf(%d%d,&x,&y);t=x;x=y;y=t;printf(x=%d,y=%d n,x,y);例 3.2 输入一个 double 数给 n,输出该数时,要对小数点的第三位进行四舍五入,后输出 n。#include stdio.h main()double n;scanf(%lf,&n);n=n*100;n=n+
43、0.5;n=(int)n;欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!28/63下载文档可编辑 n=n/100;printf(n=%.2f,n);第 4 章 选择结构 4.1 关系运算与逻辑运算 4.1.1 关系运算 关系运算主要是由 =2;printf(12 de zhi%dn,k);/0 k=1=2;printf(1=2 de zhi%dn,k);/0 k=1!=2;printf(1!=2 de zhi%dn,k);/1 4.1.2 逻辑运算 逻辑运算符主要是由&(并且)、|(或者)、!(非)等运算符组成。现在说一下运算规则:&T&T T
44、T&F F F&T F F&F F|T|T T T|F T F|T T F|F F !T 结果为 F!F 结果为 T 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!29/63下载文档可编辑 例 1、(T&T T)#include stdio.h main()int k;k=32&31;printf(%d,k);例 2、(F&T F)#include stdio.h main()int k;k=312&31;printf(%d,k);例 3、(T|F T)#include stdio.h main()int k;k=1312|311;printf(
45、%d,k);例 4、(!T 结果为 F)#include stdio.h main()int k;k=!(1312);printf(%d,k);说明:在逻辑表达式中,若其中一个表达式是非 0 的,那么在逻辑判断中,计算机认为是真#include stdio.h main()欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!30/63下载文档可编辑 int k;k=(1312)&-3;printf(%d,k);4.2 if 语句 if 语句一共和 2 种基本的使用形式,还有 2 种嵌套的使用形式,当然考试主要考两种基本的使 用形式,关于嵌套同学们认识一
46、下就可以了。基本形式 1、1、使用形式:if(条件)语句 2、执行过程:若条件成立,则执行 if 中的语句,否则执行 if 语句后面的语句。3、例 1:从键盘输入两数,输出最大数:#include stdio.h main()int m,n;int max;scanf(%d%d,&m,&n);max=m;if(maxn)max=n;printf(max=%d n,max);例3、例 3、从键盘输入三数给 a,b,c 变量,再输出 a,b,c 变量时,三数是由大到小的顺序输出 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!31/63下载文档可编辑
47、运行:没有达到预期,因为 if 语句中,若条件成立时,同时执行多条语句,多条语句必须用括起来,构成复合语句,才可以。上面程序中,if 后面的多条语句没有被括起来,if 只与最近的语句搭配。正确的写法如下:#include stdio.h main()int a,b,c;int t;#include stdio.h main()int a,b,c;int t;scanf(%d%d%d,&a,&b,&c);if(a b)t=a;a=b;b=t;if(a c)t=a;a=c;c=t;if(b c)t=b;b=c;c=t;printf(%d%d%d n,a,b,c);#include stdio.h
48、main()int a,b,c;int t;scanf(%d%d%d,&a,&b,&c);if(a b)t=a;a=b;b=t;if(a c)t=a;a=c;c=t;if(b c)t=b;b=c;c=t;printf(%d%d%d n,a,b,c);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!32/63下载文档可编辑 scanf(%d%d%d,&a,&b,&c);if(a b)t=a;a=b;b=t;if(a c)t=a;a=c;c=t;if(b n)max=m;else max=n;printf(max=%d n,max);从键盘输入一个整数
49、,若能被 3 整除,打印 Yes,否则打印 No#include stdio.h main()int n;scanf(%d,&n);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!33/63下载文档可编辑 if(n%3=0)printf(Yes);else printf(No);if 语句是一条特殊的语句,所以他可以替换 if 语句中的语句。嵌套形式一:if(条件)if(条件)语句 1 else 语句 2 else 语句 2 嵌套形式二:if(条件)语句 2 else if(条件)语句 1 else 语句 2#include stdio.h mai
50、n()int s;scanf(%d,&s);if(s=60)if(s=90)printf(youxiu n);else printf(jige n);else printf(Faild!n);#include stdio.h main()int s;scanf(%d,&s);if(s=90)printf(youxiu n);else printf(jige n);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!34/63下载文档可编辑 例如:输入一成绩到变量 S 中,根据学生成绩的等级分别输出 ABCDE等。#include stdio.h mai