《C程序设计》讲义(非计算机专业).doc_第1页
《C程序设计》讲义(非计算机专业).doc_第2页
《C程序设计》讲义(非计算机专业).doc_第3页
《C程序设计》讲义(非计算机专业).doc_第4页
《C程序设计》讲义(非计算机专业).doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

程序设计第1章 语言概述一、语言的优点语言具有强大的功能。许多著名的系统软件,都是由语言编写的。归纳起来语言具有下列优点:.语言是中级语言它把高级语言的基本结构和语句与低级语言的实用性结合起来。语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。系统设计软件汇编语言中级语言应用软件高级语言.语言目标程序的质量较高、比较适合编制系统程序.语言是面向函数的语言、语言是以函数形式提供给用户的,这些函数可方便的调用。.语言易移值、具有扩充系统功能.语言具有良好的模块结构.语言有丰富的运算符、实用表达式和先进的数据结构与控制结构、表达能力强且灵活.语言程序书写简炼、易学易写二、语言缺点:.运算符的优先顺序不符合日常习惯。.复合语句多层嵌套时语句括号匹配情况不够醒目。.弱类型转换具有潜在的不安全因素。三、语言程序介绍C语言象其它语言一样按其规定的格式和提供的语句由用户编写应用程序。请看下面几段C语言源程序。书上例【1.1】(P4): main() printf(“This is a c program.n”); 主函数main() 输出函数 输出内容 n 分号 函数内容用 printf()双引号内字符串换行符 语句 大括号括起来 原样输出 引号内结束符 本程序执行结果,输出以下一行字串:This is a c program.书上例【1.2】(p4):求a变量 与 b变量之和main() int a,b,sum; * 定义整数变量a、b、sum */a=123;b=456; /* a变量赋值123,b变量赋值456 */sum=a+b; *变量a和b之和赋值给变量sum *printf(“a add b is %d”,sum); /*输出sum变量的值*/ /* “a add b is”为输出字串 打印格式%d说明变量sum输出为十进制整数*/程序运行结果:a add b is 579由例【1.2】程序可以看出:程序编制四个步骤:(1).变量定义(2).变量赋值(3).数据处理(4).数据输出。C语言源程序主要有以下几个特点:.程序一般用小写字母书写;.大多数语句结尾必须要用“;”作为终止符,否则C语言不认为该语句结束;.每个程序必须有一个,而且只能有一个称作主函数的main()函数;.每个程序体(主函数和每个子函数,如上例中的main()函数)必须用一对花括号“”和“”括起来;.注释部分包含在/*和*/之间,在编译时它被C语言编译器忽略。说明:.象其它一些语言一样,C语言的变量在使用之前必须先定义其数据类型,未经定义的变量不能使用。定义变量类型应在可执行语句前面,如上例main()函数中的第一条语句就是变量定义语句。.在C语言中,大、小写字母是有区别的,相同字母的大、小写代表不同的变量。.C语言程序的书写格式非常灵活,没有严格限制。本章主要习题:p12【1.1】【1.2】【1.3】【1.4】第2章 程序的灵魂算法(略)一个程序应包含两方面:对数据的描述、对操作的描述程序算法数据结构程序设计方法语言工具和环境算法是是灵魂;数据结构是是加工对象;语言是工具,编程需要采用合适的方法算法:为解决问题而采用的方法和步骤计算机算法可分为两大类别:数值运算算法和非数值运算算法算法的特性:有穷性:一个算法应包含有限的操作步骤,而不能是无限的。确定性:算法中每一个步骤都有应当是确定的,而不应当是含糊的、模棱两可的有零个或多个输入有一个或多个输出有效性算法的表示:用自然语言表示用流程图表示用流程图表示用伪代码表示用计算机语言表示结构化程序设计方法:自顶向下逐步细化模块化设计结构化编码结构化程序设计基本结构:顺序结构选择结构循环结构书上例题:p4【1.1】【1.2】本章主要习题:p37【2.1】【2.2】【2.3】【2.4】第3章 数据类型、运算符和表达式本章介绍C语言的数据类型、变量类型、变量的初始化和赋值;最后介绍C语言的有关操作。通过本章的学习,可以对C语言有一个初步认识。一、数据类型在C语言中, 每个变量在使用之前必须定义其数据类型。C语言有以下几种类型: 短整型(short int)整型( int) 长整型(long int) 单精度(float) 实型(浮点型) 双精度(double)基本类型 字符型(char) 无值型(void) (第8章介绍)数据类型 枚举(enum) (第11章介绍 略) 数组 (第7章介绍)构造类型 结构(struct) (第11章介绍) 共同体(联合)(union) (第11章介绍 略)指针类型(*) (第10章介绍)空类型二、常量和变量 常量和符号常量常量:其值不能被改变的量。 整数常量 如:12、0、-3 实型常量 如:4.6、-1.23常量的类型 字符常量 如:a、d、F 符号常量符号常量: 书上例3.1 p39例子中的PRICE即标识符形式的常量注:符号常量不同于变量,它的值在其作用域(例中主函数)内不能改变,也不能再被赋值。PRICR=40是错误的,习惯上用大写。 变量变量:其值能被改变的量。变量说明(定义)C语言规定所有变量在使用前都必须加以说明。变量说明的形式如下: 类型 ;这里类型是指C语言的有效数据类型。变量表是一个或多个标识符名,每个标识符之间用逗号“,”分隔,最后语句结束符分号“;”。例如:int i, j, k; 定义三个整数变量i、j、k标识符所谓标识符是指常量、变量、语句标号以及用户自定义函数的名称。C语言标识符的定义十分灵活。作为标识符必须满足以下规则:. 所有标识符必须由一个字母(az, AZ)或下划线( _ )开头;. 标识符的其它部分可以用字母、下划线或数字(09)组成;. 大小写字母表示不同意义, 即代表不同的标识符;. 标识符一般尽量不要超过8个字符;. 标识符不能使用C语言的关键字(如命令单字)。三、整型数据(int)整型数说明加上不同的修饰符,整型数有以下几种类型; 简写 说明 字长 数的范围 short或int 有符号短整型数 2 -3276832767 long 有符号长整型数 4 -21474836482147483647注:无符号整型数说明(略)整型变量定义可以用下列语句定义整型变量int a, b; /* a、b被定义为有符号短整型变量范围-3276832767*/long c; /* c被定义为长整型变量范围-21474836482147483647*/整型常数表示 十进制数: 以非0(零)开始的数 如:220, -560, 45900按不同的进制区分 八进制数: 以0(零)开始的数(略)整型常数表示方法 十六进制数: 以0X或0x开始的数(略)另外,可在整型常数后添加一个“L”或“l”字母表示该数为长整型数。四、实型(浮点)数据(float)浮点数说明C语言中有以下两种类型的实型(浮点)数据: 类型 说明 字长 有效数字位 数的范围 float 单精度浮点数 4 6 7 10-37 10+38 double 双精度浮点数 8 15 16 10-307 10+308 注:长双精度实数(略)实型变量定义可以用下列语句定义实型变量:float a, f; /* a, f被定义为单精度实型变量,有效数字位6 7*/double b; /* b被定义为双精度实型变量,有效数字位15 16*/实型常数表示例如: +29.56, -56.33, -6.8e-18, 6.365说明:. 实型常数只有一种进制(十进制)。. 所有实型常数都被默认为double。. 绝对值小于1的实数,其小数点前面的零可以省略。如:0.22可写为.22。. C语言默认格式输出实数时,最多只保留小数点后六位。五、字符型数据(char)字符常数表示字符常量是用单引号括起来的一个字符。能用符号表示的字符可直接用单引号括起来表示,如a,9,Z,也可用该字符的ASCII码值表示,例如十进制数85表示大写字母U。另外,C语言中有些常用的字符用以下特殊规定来表示如:规定符 含义t 制表键(8格)n 换行其它略对于字符串常量, 一般用双引号括起来表示, 如“a”,“Hello Turbo 2.0”。字符型变量定义字符变量是用来存放字符常量(一个字符)char a; /*a被定义为有符号字符变量取值范围为-128127*/字符在计算机中以其ASCII码方式表示,其长度为1个字节字符型数据在操作时将按整型数处理,如果某个变量定义成char,则表明该变量是有符号的,即它将转换成有符号的整型数。另外,也可以定义一个字符型数组(关于后面数组章节再作详细介绍),此时该数组表示一个字符串。六、变量的初始化和赋值变量的初始化变量的初始化:是指变量在被说明的同时赋给一个初值。例如: int a=0, b=1, c;变量的赋值变量赋值:是给已说明的变量赋给一个特定值。. 整型变量和浮点变量这两种变量采用下列格式赋值 变量名表达式;说明: C语言中允许给多个变量赋同一值时可用连等的方式。例如:int a, b, c;a=b=c=0; /*同时给a,b,c赋值*/注:错误写法 int a=b=c=0;(可写为int a=0,b=0,c=0;或同上面先定义,再赋值). 字符型变量字符型变量赋值。 变量名字符常量;(或整数)例如:char a0, a1, a2; /*定义字符型变量a0, a1, a2*/a0=b; /*将字母b赋给a0*/a1=50; /*将数字2(十进制ASCII值为50赋给a1*/. 赋值语句中的数据类型转换类型转换是指不同类型的变量混用时的类型改变。在赋值语句中,类型转换规则是:等号右边的值转换为等号左边变量所属的类型。例如:int i, j; /*定义整型变量*/float f, g=2.58; /*定义浮点型变量*/f=i*j; /*i与j的乘积是整型数,被转换成为浮点数赋给f*/i=g; /*g中的浮点型数转换成为整型数赋给i*/由于C语言按上述数据类型转换规则,因此在作除法运算时应特别注意。例如:main() float f;int i=15;f=i/2;printf(“f=%f”,f);上面程序经运行后,输出f=7 并不等于准确值7.5。正确的程序应该是:main() float f;int i=15;f=i/2.0;printf(“f=%f”,f);也可直接将i定义为浮点数。七、运算符C语言 的运算符非常丰富,主要分为三大类:算术运算符关系运算符与逻辑运算符按位运算符(略)除此之外,还有一些用于完成特殊任务的运算符。 基本的算术运算符C语言的算术运算符如下: 操作符 作用 + 加, 一目取正 - 减, 一目取负 * 乘 / 除 *两整数相除商为整数无小数 % 取模 *两整数取模为两整数相除的余数 - 减1 + 加1 . 一目和双目操作一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。双目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。在 C语言中加、减、乘、除、取模的运算与其它高级语言相同。需要注意的是除法、取模、自增和自减等运算。例如:15/2 是15除以2商为整数部分715%2 是15除以2为余数部分1对于取模运算符“%”, 不能用于浮点数。另外,由于C语言中字符型数会自动地转换成整型数,因此字符型数也可以参加双目运算。例如:main() char m,n; /*定义字符型变量*/m=c, /*给m赋小写字母c*/n=m+A-a; /*将c中的小写字母变成大写字母B后赋给n*/ASCII值差32 m变量的值是小写 c+32ASCII值是大写C的值.上例中m=c即m=98,由于字母A和a的ASCII码值分别为65和97。这样可以将小写字母变成大写字母,反之,如果要将大写字母变成小写字母,则用c+ a-A进行计算。. 强制类型转换运算符可以利用强类型运算符,将一个表达式转换成所需类型。格式:(变量类型名)(表达式)例:(int)(x+y)把x+y表达式的值转换成整数(变量x,y本身的类型没变)注:括号加在变量类型上。. 自增、自减运算符在C语言 中有两个很有用的运算符,在其它高级语言中通常没有。这两个运算符就是增1和减1运算符“+”和“-”,运算符“+”是操作数加1,而“-”则是操作数减1。例如:x=x+1 可写成x+, 或+xx=x-1 可写成x-, 或-xx+(x-)与+x(-x)在上例中没有什么区别, 但x=m+和x=+m却有很大差别。x=m+ 表示将m的值赋给x后, m加1。 x=m; m=m+1;x=+m 表示m先加1后, 再将新值赋给x。m=m+1;x=m;步骤:先计算前缀(变量左面的+或-)再计算表达式的值然后计算后缀(变量右面的+或-)例:当a=5,b=7时,求x=+a+b+;先计算前缀(变量左面的+或-) 求 +a 即求 a=a+1=5+1 得a=6再计算表达式的值 求x=a+b 即求 x=6+7 得x=13然后计算后缀(变量右面的+或-)求b+ 即求 b=b+1=7+1 得b=8 关系运算符和逻辑运算符(第5章 选择结构程序设计章节讲授) 按位运算符(略) C语言的特殊运算符.复合的赋值运算符C语言中有一特殊的简写方式,它用来简化一种赋值语句,适用于所有的双目运算符。其一般形式为: = 相当于 = 例如:a=a+b 可写成 a+=ba=a&b 可写成 a&=ba=a/(b-c) 可写成 a/=b-c.“,”逗号运算符与逗号表达式“,”运算符用于将多个表达式串在一起,“,”运算符的左边总不返回,最右边表达式的值才是整个表达式的值。 , 最右边的值才是整个表达式的值。例如:main() int x,y;x=50;y=(x=x-5,x/5);上面程序执行后y值为9,因为x的初始值为50,减5后变为45,45除5为9赋给y。.“?”条件运算符(第5章 选择结构程序设计章节讲授).“&”和“*”运算符(第10章 指针章节讲授) C语言运算符的优先级(了解)C语言运算符的优先次序(书P375)C语言 规定了运算符的优先次序即优先级。当一个表达式中有多个运算符参加运算时,将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低,同一行优先级相同。例如:表达式 104&!(10099)|34&!(10099)&3=5 的值为0书上例题:p39【3.1】p50【3.6】p51【3.7】本章主要习题:p65【3.5】【3.7】【3.9】【3.10】【3.12】第4章 最简单的程序设计顺序程序设计本章主要介绍C语言标准输入输出函数。通过本章的学习可以使读者掌握C语言的屏幕输出、键盘输入并能进行一些简单的程序的编写。一、语言概述语言的语句可分为以下五类1.控制语句 完成一定的控制功能2.函数调用语句 由一次函数调用加分号构成3.表达式语句 由一个表达式构成一个语句4.空语句 只有分号5.复合语句 用 把一些语句括起来二、程序的三种基本结构1.顺序结构2.选择结构3.循环结构三、赋值语句赋值语句是由赋值表达式后加上一个分号构成i=i+1 赋值表达式i=i+1; 赋值语句四、数据输入与输出非格式化输入输出函数putchar()、getchar()非格式化输入输出函数可以由下面讲述的标准格式化输入输出函数代替,但这些函数编译后代码少,相对占用内存也小,从而提高了速度,同时使用也比较方便。putchar()函数:输出一个字符格式: putchar(字符变量) getchar()函数:输入一个字符,要按回车键格式: 字符变量getchar() 注:这二个函数需要头文件#include “stdio.h” 格式输出函数printf()(重点)printf()函数是格式化输出函数,用于向标准输出设备(屏幕)按规定格式输出信息。printf()函数的调用格式为: printf(”,);其中格式化字符串包括叁部分内容:一部分是正常字符,这些字符将按原样输出另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。再一部分是转义字符,以“”开始,后跟一个或几个规定字符,一般用来确定输出位置。其中参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,而且在类型上按前后顺序一一对应,否则将会出现意想不到的错误。. 需掌握的格式化规定符 符号 作用 %d 十进制有符号整数 %f 浮点数 %s 字符串 (第8章数组) %c 单个字符 说明:. 可以在“%”和字母之间插进数字表示最大场宽。例如: %3d 表示输出3位整型数,不够3位右对齐。%9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。%8s 表示输出8个字符的字符串,不够8个字符右对齐。注:如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。如果浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。. 可以在“%”和字母之间加小写字母l,表示输出的是长型数。例如: %ld 表示输出long整数%lf 表示输出double浮点数例1#include 头文件:其中包括全部标准输入输出库函数main() char c=A;int a=1234; float f=3.141592653589;printf(“a=%dn”,a); /*结果输出十进制整数a=1234*/printf(“a=%6dn”,a); /*结果输出6位十进制数前面补空格a= 1234*/printf(“a=%2dn”,a); /*a超过2位, 按实际值输出a=1234*/printf(“f=%fn”,f); /*输出浮点数7位有效数,小数位6位f=3.141593*/printf(“f=6.4fn”,f); /*输出6位(包括小数点)其中小数点后4位的浮点数f=3.1416*/printf(“c=%cn”,c); /*输出字符c=A*/ 格式输入函数scanf()scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。其调用格式为: scanf(”,); 格式化字符串包括以下三类不同的字符:. 格式化说明符:格式化说明符与printf()函数中的格式说明符基本相同。. 空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。. 非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的地址,而不是变量本身。这与printf()函数完全不同,要特别注意。各个变量的地址之间同“,”分开。例1:main() int i,j;printf(“i j=?n”); /*显示输入提示信息i j=?*/scanf(“%d%d”,&i,&j); /*两个格式符中间无分隔*/输入的两个数之间空格分隔,如在程序执行后显示i j=后输入123 456(也可以是用回车符或tab键分隔)例2:main() int i,j;printf(“i ,j=?n”); /*显示输入提示信息i,j=?*/scanf(“%d,%d”,&i,&j); /*两个格式符中间分隔是逗号*/输入的两个数之间逗号分隔,如在程序执行后显示i,j=后输入123,456注:格式化输入scanf()和输出函数printf()都包含在stdio.h中,但可以省略头文件# include 或# include “stdio.h”书上例题:p71【4.1】【4.2】书上例题:p74【4.3】【4.4】【4.5】【4.7】【4.8】书上例题:p79【4.9】【4.10】【4.11】【4.12】本章主要习题:p84【4.1】【4.2】【4.3】【4.8】【4.9】第5章 选择结构程序设计一、关系运算符和逻辑运算符. 关系运算符关系运算符是比较两个操作数大小的符号。C语言的关系运算符如下:、=、99 返回110(2+10) 返回0!1&0 返加0. 逻辑运算符逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。C语言的逻辑运算符如下: 操作符 作用 & 逻辑与 | 逻辑或 ! 逻辑非 关系表达式&关系表达式2 有假出假,全真出真,关系表达式|关系表达式2 有真出真,全假出假 !关系表达式 相反(真出假,假出真)二、 条件语句if条件语句的引入大大地增强了语言的描述功能,使得我们可以编制出一些较复杂的和具有一定实用价值的程序;同时也增加了程序编制的复杂性和灵活性。从而开始触及程序设计。学习方法:多看:认真阅读每一个例题,细心体会其中分析问题的思路和处理问题的方法,掌握程序设计的一些基本技巧。勤编:只有通过自己多动手编程序,并上机调试。才能将他人的东西消化、吸收,并且不断摸索积累和丰富自己的经验,提高程序设计能力。条件语句一般形式为: 表达式 真(非0) 假(0) 语句1 语句2 if (表达式) 语句1; else 语句2;所谓表达式是指关系表达式和逻辑表达式的结合式,关于表达式前面已作过介绍。注意:. 条件执行语句中“else 语句 2;”部分是选择项,可以缺省,此时条件语句变成:表达式 真(非0) 假(0)if(表达式) 语句1; 语句1 表示若表达式的值为非 0则执行语句 1,否则跳过语句 1继续执行。. 如果语句1或语句2有多于一条语句要执行时,必须使用大括号“”和“”把这些语句包括在其中,此时条件语句形式为:if(表达式)语句体1;else语句体2;. 条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其原因主要是不知道哪个if对应哪个else。例如:if(x20|x-10)if(yx)printf(Good);elseprintf(Bad);对于上述情况,C语言2.0规定:else语句与最近的一个if语句匹配,上例中的else与if(yx)相匹配。为了使else与if(x20|x20|x-10) if(yx)printf(Good);elseprintf(Bad);. 可用阶梯式if-else-if结构。阶梯式结构的一般形式为:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;else语句n;三、“?”条件运算符“?”运算符是一个三目运算符,其一般形式是: ?:; “?”运算符的含义是: 先求表达式1的值为真,则求表达式2如果表达式1的值为假,则求表达式3并把它作为整个表达式的值。例如:main() int x, y;x=50;y=x70?100:0; &如果x70 ,y将被赋值100。如果xb”,显示“ab) printf(“ab”); /*如果a的值大于b的值,打印“ab”*/else printf(“a=b”); /*否则打印“a=b”*/【例题2】键盘输入一个整数,如果输入数的值为1,屏幕显示“one”,当值为2时,屏幕显示“twe”,当值为3时,屏幕显示“three”,当值为其它时,屏幕显示“Error”,。用if语句嵌套编写:main() int test;scan(“%d”,&test); /* 键盘输入一个整数至test变量*/if (test=1) /* 如果变量test值为1*/printf(“one”); /* 输出为字符串one*/else if (test=2) /* 否则如果变量test值为2*/printf(“twe”); /* 输出为字符串two*/else if (test=3) /* 否则如果变量test值为3*/printf(“three”); /* 输出为字符串three*/else printf(“Error”);/* 否则输出为字符串Error*/用switch语句编写:main() int test;scan(“%d”,&test); /*键盘输入一个整数至test变量*/switch(test) /*变量为整型数的开关语句*/ case 1: /*如果输入为1,则转移至该处*/printf(“one”); /*输出为字符串one表示1*/break; /*退出开关语句*/case 2: /*如果输入为2,则转移至该处*/printf(“twe”); /*输出为字符串two表示2*/break; /*退出开关语句*/case 3: /*如果输入为3,则转移至该处*/printf(“three”); /*输出为字符串three表示3*/break; /*退出开关语句*/default: /*如果输入为1,2,3,以外的数,则转移至该处*/printf(“Error”); /*输出为字符串Error表示错误*/break; /*最后的语句break;可以省略*/书上例题:p93【5.1】【5.2】书上例题:p95【5.3】书上例题:p98【5.4】书上例题:p103【5.7】本章主要习题:p104【5.4】【5.5】【5.6】第6章 循环控制本章重点:掌握三种基本的循环语句:for语句、while语句和do-while语句。特别是循环语句的执行过程。掌握组织循环的一些基本方法,逐步提高程序设计的技能。一、循环语句 for循环 for(;) for循环是开界的。它的一般形式为:初始化:总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式:是一个关系表达式,它决定什么时候退出循环;增量:定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用“;”分开。 for(i=1;i=10;i+) 循环体语句例如:i = 1i10时,结束循环。框图如下:例:计算S=1+2+3+100main() int i, s=0;for (i=1; i=100; i+) * 循环变量i从1至100,每次增值1 */s=s+i; *每次循环加一个新的i值计算 s=1+2+3+100的值 */printf(“s=%dn”,s); * 循环结束,打印输出“s=5050” */例:计算并打印 5!=1*2*3*4*5=120main() int i, t=1;printf(“5!=”); * 打印输出“5!=” */for (i=1; i=5; i+) * 循环从1至5 */ t=t*i; * 累乘,计算 5!的值 */printf(“*%d”,i); * 循环打印输出,*1*2*3*4*5 */printf(“=%dn”,t); * 打印输出“=120” */例:键盘输入整数n,计算打印 n!的值main() int i,n;long t=1; * 变量t要定义为长整型,因为短整型int最大值为32767 */printf(“n=”); * 显示输入提示“n=” */scanf(“%d”,&n); * 键盘输入整数n */for (i=1; i=n; i+) * 循环变量i从1至n */t=t*i; * 累乘,计算 n!的值 */printf(“%d!=%ldn”,n,t); * 输出,例输入n为5,则输出5!=120 */注意:. for循环体中语句可以为一个以上的语句,要用大括号“”和“”将参加循环的语句括起来。. for循环体中的“初始化”、“条件表达式”和“增量”都是选择项,即可以缺省,但中间的两个“;”不能缺省。. for循环可以有多层嵌套。例:main() int i, j, k;printf(“i j kn”);for (i=0; i2; i+)for(j=0; j2; j+)for(k=0; k2; k+)printf(“%d %d %dn”,i,j,k);输出结果为:i j k0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1注:外循环走得慢,内循环走得快(外循环走一步,内循环走一圈,从初值至终值) while循环(当型循环)while()while循环的一般形式为:while 循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。例:main() int i;i=1; /*i初始化1*/while(i=10) /*判断i小于10吗,大于10结束循环*/ printf(“%dn”,i); /*输出i的值并换行*/i=i+1; /*i增值1*/上例中,while 循环是以检查i是否为小于等于10,因其事先被初始化为1,所以条件为真,进入循环先输出i的值,然后i增值1,继续特循环,当i增值后为11时,条件为假, 循环便告结束。与for循环一样,while 循环总是在循环的头部检验条件,这就意味着循环如果初值就不符合循环条件,

温馨提示

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

评论

0/150

提交评论