C语言源程序.doc

上传人:豆**** 文档编号:33454349 上传时间:2022-08-11 格式:DOC 页数:14 大小:90KB
返回 下载 相关 举报
C语言源程序.doc_第1页
第1页 / 共14页
C语言源程序.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《C语言源程序.doc》由会员分享,可在线阅读,更多相关《C语言源程序.doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流C语言源程序【精品文档】第 13 页C语言程序设计1、程序运行从main()函数开始,也从main()函数结束。2、函数是C程序的基本单位,由函数头和函数体组成。3、C语言源程序是由函数组成,它们的数目可以有多个。4、在C语言源程序中,是必须有一个函数名为main的函数。main()后的小括号()没有任何内容,它不可以省略。5、C程序中的语句用分号结束,在一个程序行上可以有多个语句,一个C语句能写在多个程序行上。6、函数体是由一对大括号围起来语句序列组成。小括号是函数的标志。二、C语言的组成元素1、命令、函数和变量等是组成程序的基本对象,每一个程序对象都

2、需要一个名字来标识,程序对象的名称就是标识符。2、在C语言中,标识符分为用户标识符和系统标识符。3、用户标识符是指在程序中由程序员为变量、函数、数组等程序对象自行命名的标识符。4、系统标识符是指C语言编译系统内部预定义的用于表示命令数据内型的标识符,又称保留字符。5、基本字符集英文字母:az和AZ。阿拉伯数字:09。其他字符:()、 、+、-、*、/、%、=、=、!=、!、&、+、-、+=、-=、*=、/=、%=。它们是由12个字符组成。用作C语言的运算符;还包括:空格、换行符,回车符,单双引号,大括号,逗号,分号,反斜线,它们在程序中起到分隔和定界作用。6、标识符:是用于标识命令;变量、函数

3、,数组,数据类型等程序对象名称的字符序列。7、组成标识符的合法字符有:字母,数字,下划线,三种,数字不能作首字符。三、执行C语言程序1、单击“开始”“程序”“附件”“命令提示符”。2、按功能键激活菜单,执行“File”“NEW”(ALT+回车)全屏。3、为保存,输入程序文件名。4、+运行 有输入:等待输入回车通过 无输入:返回到编辑未通过:回车F6修改F3(打开)一、对数据进行分类基本整型int(长度)2(范围)-3276832767长整形long (长度)4(范围)-2147484364821474843647 无符号整型unsigned(长度)2(范围)065535实型单精度float(长

4、度)4(范围) 3.4e-383.4e+38双精度double(长度)8(范围)1.7e-3081.7e+308字符型char(长度)1二、正确书写C语言中常量1、表示形式:小数形式:只有一个小数点,两边至少一边有数字。2、指数形式:(科学计数法)e(E)的前后都有数字,e后的数字必须为整数。3、转义字符:以反斜线(”)开头的字符序列人表示一个字符。4、字符常量:是用单引号()括起的一个字符列外,它仍表示一个字符。5、字符串常量:是双引号(” ”)括起的字符序列(可以是转义字符)。6、定义符号常量:一般格式:#define 标识符 常量三、在程序中使用变量1、概念:变量是在 程序运行过程中其值

5、可发生变化的数据对象。2、组成:变量包括:变量名,数据类型、变量值。3、变量名是一个合法的用户自定义标识符,是对对应内存单元的符号化地址,通过” & 变量名”的形式可获得该变量所对应内存单元中存储的数据值(物理地址)。4、在程序中使用变量必须先定义后使用,使用前置初值。5、定义变量要指出类型和名称,其一般格式为:类型标识符、变量名列表。6、符号” = ”的作用是给变量賦初值,称赋值号。赋值号把它右边的值赋值给它左边的变量。7、未赋值变量其值不确定,不能参加运算,所以参加运算前要设置它的初始值。8、类型标识符: 类型名称,如int ,float,char等,变量名列表是用逗号” , ”分隔。9、

6、为变量预置初始值有:初始化和赋初值两种,变量初始化是在定义变量后,在使用之前的赋值操作。初始化:int x=1,y=2,z=3;(再同一语句行上)赋初值:int x,y,z; x=1;y=2;z=3;(不再同一语句行上)一、计算算术表达式的值1、运算符:用来特定的符号来表示具体操作。2、“ /” 名称除号,操作数2个,任意类型,运算规则:如果两个操作数为整数,商为整数(舍弃小数部分,不进行四舍五入;只要其一为实数,商为实型,6位小数)。3、取模运算(“%”)必须为整数;模的符号和被除数符号相同;被除数小于除数,模等于被除数。4、表示:用运算符将操作数连接起来组成的句子。5、优先级:是指在表达式

7、中运算符执行的先后 。6、结合性:是操作数于运算符结合的方向,左结合、右结合。做结合是:指从左向右结合执行运算;右结合是:指从右向左结合执行运算。7、强制转换:通过类型转换运算符来将表达式值的类型转换为所需的数据类型,一般格式(类型标识符)表达式 如:(int)fv的值为int型,(float)x/y是把x的 转换成实型后再除以y。二、给变量赋值1、赋值操作的本质是:向变量对应 内存单元写入数据既改变变量的 。变化遵守“新来旧去”的原则,未重新赋值的变量保持它原来的 。三、计算自增自减表达式的 1、确定自增自减运算表达式的简单方法是:观察表达式中变量和运算 的位置关系,凡变量在前,则表达式 值

8、为变量自增(或自减)之前的值;凡变量在后,则表达式的值为变量自增(或自减)之后的值。2、自增自减运算操作中包含有赋值操作,因此,不能对常量和表达式进行自增自减运算。3、不论是前缀形式还是后缀形式的自增自减表达式执行后,对变量的影响都是相同 ,区别仅在表达式不同。四、比较两个数的大小1、任何C语言表达式 结果都可以视为逻辑值。非“0”值为真,“0”值为假。2、字符串不能直接用关系运算符进行大小关系比较运算。3、数值数据(整型和实型)按数值大小进行比较,字符以它的ASCLL码大小进行比较。4、高优先级组:、=、=。低优先级组:=、!=。5、关系运算符的结合性为左结合。五、表达复杂的条件1、形如A&

9、B&C用&连接成的串联表达式,如果表达式A为假,则不再计算表达式B和C,以此类推。2、形如ABC用连接成的串联表达式,如果表达式A为真,则不再计算表达式B和C,以此类推。3、逻辑运算符的优先级由高到低的顺序是:!&4、逻辑表达式结果为真 ,sh值为1;结果为假其值为0。六、计算逗号表达式1、从左向右依次计算各子表达式的值,然后取最右边表达式的 。2、常量和变量也可成为表达式,它们是表达式的特例。3、逗号表达式的一般格式为: 表达式1,表达式2,表达式3;.一、为程序输入数据1、在输入数据时,数据都是以字符的形式输入的,经过格式转换说明符转换成对应数据类型了类型;分隔非字符型数据的字符有:空格、

10、水平制表符、换行符,它们统称为空白字符。2、多个字符变量输入数据时格式控制串中没有使用任何普通字符,则输入字符时不使用任何分隔符。3、scanf(格式控制串,变量地址列表);参数用逗号分隔;格式控制串由一个%和一个字母组成,被称为格式转换说明符:%d(整型)int、%f(实型)float,double、%c(字符型)char。4、scanf()函数工作过程:扫描格式控制串,遇到格式转换说明符时,把键盘输入转换相对应类型数据存入对应地址所指的变量中,遇到普通字符则要原样输。二、输出程序中的数据1、在printf()函数的格式控制串中出现的普通字符将原样输出到显示器屏幕上。2、%s格式转换符用于输

11、出字符串。3、实数在输出时,printf()函数自动保留6位小数,不足补0,超过四十五入。4、输出函数printf()的一般格式:printf(格式控制串,数据项列表);格式串由格式转换说明符和普通字符组。5、printf()函数工作扫描格式串,遇到格式转换说明符时,把对应的数据项按指定的格式输出;遇到普通字符则原样输出。6、在格式字符d前加L用于输出long型数据。算法的表示一、C语言语句类别于作用1、说明语句:用于定义变量或声明函数。(在函数体最前面,集中说明)2、表达式语句:在表达式后加上分号,它的功能是完成运算,有用的表达式语句能够在执行后改变变量的值。3、空语句:单独的一个分号。4、

12、函数调用语句:用于实现对函数的调用。变量名=函数名(实参表);ch=getchar();5、块语句:用花括号括起的多条语句。6、控制语句:由控制命令和被控制的语句组成,实现流程控制。常用的有if、switch、while、for、break、retrun、continue等。二、流程图符号表示的操作开始输入xx0y_x=-x输出x的绝对值结束三、结构化程序的基本结构1、顺序结构:按语句先后顺序依次执行,没有执行不到的语句,每天语句只执行一次。2、分支结构(选择):if或switch(根据条件真假来选择执行语句)。3、特点:只有一个入口;只有一个出口;结构的每部分都有机会被执行;不存在死循环。4

13、、模块化程序设计要在软件设计开始时把待开发的系统划分成若干相互独立的,简单容易实现的子系统。这种方法被称为“自顶而下逐步细化”的程序设计分析方法。5、程序设计的一般步骤:分析问题 确定算法编写程序调试程序、程序流程控制一、顺序结构程序的执行特点1、顺序结构程序的执行特点是:按照语句在程序中排列的先后顺序依次执行。2、顺序结构程序中的每一条语句必须执行且只能执行一次,没有执行不到或重复执行的语句。3、过程:认真读题;预编命令;确定变量类型;有无数据输入(赋值);核心语句:输入;赋初值;运算;输出。二、设计顺序结构1、交换a、b两个变量的关键代码是:t=a;a=b;a=t;也可以不使用中间变量来完

14、成,关键代码是:a=a+b;b=a-b;a=a-b;3、字母大小写转换:大写字母=小写字母-32;反之,小写字母=大写字母+32。4、分离一个3位的整数x的个十百位上的数字的关键代码:d0=x%10;d1=x/10%10;d2=x/100;算法:把每一位上的数字当做个位去求:y=x%10(求个位)改变被除数(缩小10倍);x=x/10(求被除数)分支结构一、分支流程控制语句if语句1、分之结构程序中有两个或两个以上的执行路径,每个执行路径称为一个分支。在执行时,根据分支条件选择执行一条,其它分支忽略。2、C语言使用if命令和switch命令来实现程序的分支流程控制。3、执行过程:如果表达式的值

15、为真(不为0),执行语句;if下只能控制一条语句。否则跳过语句。如:输x绝对值。#include“stdio.h”main() int x;scanf(“%d”,&x);if(x0)x=-x;elsex=x;printf(“%dn”,x);4、if.else语句一般格式:if(表达式)语句1else语句25、执行过程:先计算if后“表达式”判断值为真假,如为真执行“语句1”,否则执行“语句2”。然后执行else后面的语句。6、else不可单用,必须与if配对使用。if、else只能控制一条语句。7、if与else之间有多条语句时,这几条语句也必须用花括号围成块语句。如果之间只有一条语句,不要漏

16、掉语句的结束标志分号( ;)。例子(1)如:判断输入年份是否为闰年(被4整除,不能被100整除或400整除)。#include“stdio.h”main() int y;scanf(“%d”,&y);if(y%4=0&y%100!=0)printf(“%d是闰年”,y);elseif(y%400=0)printf(“%d是闰年”,y);elseprintf(“%d是闰年”,y);或 int y;for(y=1500;yc)m=b;a=b;b=m;if(ac)m=a;a=c;c=m;if(bc)m=b;b=c;c=m;printf(“%f%f%fn”,a,b,c);2、输入x,y两个数,输出较大

17、者。#include“stdio.h”main()int x,y;scanf(“%d%d”,&x,&y);if(xy)printf(“%dn”,x);elseprintf(“%d”,y);一、认识while语句1、循环条件:while命令后面括号中的表达式称为循环条件。2、循环体:在每次循环周期均要执行一次语句,称为循环体。可以是简单语句,块语句,空语句。3、循环控制变量:在循环条件中控制条件真假的变量。称为循环控制变量,通常决定循环体的执行次数。4、对循环控制变量做了3个工作:循环控制变量赋初值,写出正确循环条件,循环控制变量的更新。5、执行过程:第一步:计算表达式的值,如果表达式的值为真,

18、则执行第二步开始一次循环周期;否则转入第三步,结束循环。第二步:执行语句。语句执行完后结束本次循环周期,重返第一步。第三步:结束循环,执行循环后面语句。二、认识do.while语句1、语句部分可以是一条语句,也可以是块语句。整个do.while循环在语法上被看成一条语句。while后面必须以分号结束。2、不论循环条件真假,do.while语句的循环体总要执行一次。3、执行过程:执行do下面的语句(循环体),开始一个循环周期,计算while括号中的表达式(循环体条件),如果表达式为真,结束本次循环,重返回步,开启下一个循环周期,否则转 入第步。结束dowhile循环,流程转到循环结构外第一条语句

19、。如:#include”stdio.h” main() int n=10;(赋初值)doprintf(“%d”,n);n=n-2; 循环体while(n0);(条件)三、认识for语句1、for语句一般格式:for(表达式1;表达式2;表达式3;)语句2、for语句后面3个表达式作用是:循环变量赋初值,循环测试条件,循环变量更新。3、执行步骤:计算表达式1计算表达式2,如果结果为真,转第三步,如果结果为假转第五步。执行for下面的语句部分(循环体),执行完后转第四步。计算表达式3,结束本次循环周期,转回第二步,开始下一次循环。结束循环,执行for语句后续语句。表达式1表达式 2表达式 34、用

20、for语句实现1*3*.15之积。#include”stdio.h”main() longs=0;int x; for(x=1;x=15;x=x+2) S=s*xprintf(“s=%d”, s)四、认识循环嵌套1、一个循环语句的循环体中包含另外一个循环,称为循环嵌套或嵌套或嵌套循环。内嵌的循环还可以再嵌套循环,从而构成多重循环。2、在嵌套循环中,外层循环中,外层循环体执行的每一个周期中,内层循环语句都完整地执行一遍。只有当外层循环条件为假时,才结束整个嵌套循环。3、执行:外循环开始,外循环被执行一次,内循环执行一遍。4、执行过程:当m值为1时,进入外层循环的第一个周期,进入循环体后执行的第一

21、条语句就是for语句。内层循环重复25次周期,每次周期都输出m*n的值。当m为1时,n从1变到5,并输出结果为第一行的内容。内层循环结束后,执行外层循环体的下一条输出语句,输出换行符。外层循环体执行完后,m更新为2,进入外层循环第2个周期。重复上述操作,当m的值为6时,使得外层循环条件为假终止整个循环程序结束。五、认识循环辅助语句1、break语句在循环结构中的作用是提前结束包含它的循环语句的执行,使程序流程转向到该循环语句后面的语句。2、continue语句是提前结束本次循环周期的执行而开始下一个循环周期。3、break语句能于循环语句或switch语句中,而continue语句能用于循环语

22、句中。4、break语句和continue语句只能控制直包含它的循环语句的执行流程,一般于if语句配合使用,不单独使用。结束本次循环周期后,对于while语句和do.while语句,它的下一步操作是计算while中的循环条件表达式;对于for语句,则执行表达式3。#include”stdio.h”main() int num; for(num=10;num=19;num+)if(num%2=0) comtinue;printf(“%dn”,num);九、数组考察数组1、数组:是一组有序的连续的类型相同的变量集合。2、数组元素:构成数组的数据。如a0、a1、a5。3、数组长度:数组元素的个数。(

23、中括号中的值)4、下标:数组元素在数组中的位置序号,是从0开始的数字。5、下标变量:数组名(用户标识符)下标。(个数)6、数组的维:在数组中确定数组元素所需下标个数。7、数组长度、下标用方括号括起,下标必须为整型表达式。8、下标变量和基本数据类型的变量具有相同的特征,可执行基本变量的各种操作。9、一维数组定义格式:类型标识符 数组名整型常量表达式;如:int array10;10、数组的三个特性:数组元素类型相同,数组长度固定,数组存储时占用连续的内存单元。如: int a10,i; for(i=0;i10;i+1) ai=i; for(i=0;i10;i+) printf(“a%d=%d”,

24、i,ai);11、初始化:在定义数组的同时指定数组元素的初始值。12、一维数组初始化一般格式:类型标识符 数组名整型常量表达式=初始值列表;13、访问数组一般格式:数组名下标表达式14、部分元素初始化,系统自动为没有初始值的元素初始化为0,初始值表中数据的个数不能超过数组长度。定义数组时,不能省略数组长度。在程序中合理地使用数组1、在求一个数组中最大值和最小值过程,将第0号元素的值假定为最大和最小的初值。2、求最大最小值: int a30,i max,min sum=0; float ave; for(i=0;i=30,i+)scanf(“%d”,&ai);sum=sum+ai max=min

25、=a0; for(i=1;i30;i+) if(maxai) min=ai; ave=sum/30.0 printf(“%d%d%d%fn”,min,max,sum,ave); 用字符数组处理字符串1、字符数组初始化时可用字符常量列表,也可以直观的使用字符串常量。使用字符串常量时要注意其后的结束符“0” (不输入也不输出)也是字符数组的元素。2、输入字符串时,系统会自动在字符串末尾加上结束符“0”;遇到第一个“0”结束符,不输出“0” 。 3、与格式转换说明符“%S”对应的输入,输出项是字符数组名,输入的第一个非空白字符到下一个空白字符之前的字符序列作为有效字符输入。4、gets()函数输入的

26、第一个非空白字符到回车之前的字符序列转换为字符串。5、gets(字符数组)、 gets字符数组:函数一次只能输入输出一个字符串。scanf() 、printf() :一次可以输入输出多个字符。 6、在调用字符串处理函数时,在程序前面必须设置一个相关文件包含预编处理命令,即#include“string.h”十、函数一、考察函数1、c语言的函数分为两类:库函数和自定义函数。库函数是系统提供,用户不用自己定义而直接使用。如:printf,scanf()函数自定义函数是用户按需要编写的完成相应功能的程序段。2、turbo C的库函数程序代码存储在扩展名为LIB的库文件中;库函数原型说明(函数类型、函

27、数名、参数类型及个数)存放在一个或多个扩展名为h的头文件中;在程序中使用库函数必须在源程序开始处使用预编处理命令include包含相应文件,格式为:#include“文件名”。2、一般格式:类型标识符 函数名(函数形参说明表)声明部分语句部分 函数包括两部分:函数头和函数体。3、定义函数:类型标识符:指定函数返回值的数据类型。如果不返回值,则要把函数类型定义为void。函数名:是一个个合法的用户标识符,用于在程序中区分不同。形式参数:在函数后面小括号中的变量称为形式参数,简称 形参形参用于从函数外部接收数据,函数也可以没有形参。函数体:是一对花括号括起来了语句序列,实现函数功能。它由声明部分和

28、执行部分组成。空函数:是指定义函数时函数体为空的函数。4、在同一个程序中,函数名不能相同,小括号是函数标志不能省略。5、说明形参的数据类型时,必须一个形参变量使用一个类型标识符,多个形参说明之间用逗号分隔。形参只能是变量,不能是常量或表达式。函数体语句语句无论多少必须用花括号括起来。6、return语句格式:return;或return表达式;作用:结束函数的执行,把流程控制返回到调用函数中,并结束函数调用语句的执行,向调用函数返回“表达式”的值。7、形参的作用:接收调用函数中传递的数据。8、定义函数时,高数类型要与函数返回值类型一致,若不一致,return语句返回值类型将自动转化为函数定义的

29、类型。9、没有return语句或不带表达式的return语句的函数将调用函数返回一个不确定的值。一个函数中可以使用多个return语句,但一次只能返回一个值。在程序中使用函数1、调用函数一般格式:无参函数:函数名()有参函数:函数名(参数列表)在调用函数时,必须给被调函数提供形参函数所声明类型数据,这些数据被称为实际参数,简称实参。实参可以是常量,变量和表达式。(形参不能是变量)2、调用函数两种方式:函数语句方式:把调用函数作为一个独立的语句,这种方式通常用于调用有返回值的函数。函数表达式方式:函数调用出现在一个表达式中,这种方式通常用于调用有返回值的函数。函数返回值可参加表达式的运算。,无返

30、回值函数不能用此方式调用。3、函数声明一般格式:类型标识符 函数名(参数类型1,参数类型2,.);4、关于函数声明:被调函数的类型为int或char时,可以不对被用函数进行声明,而直接调用。当被调用函数定义在调用函数之前时,可以不对被调用函数进行声明。在源程序开始处集中地对所有函数进行了声明,则在调用函数中不必再对被调函数做声明。#include的作用就是对将要使用的库函数进行声明。三、在函数之间实现数据1、当函数实参是基本数据类型时,实参向形参的数据传递规则是“单向的值传递”,即数据只能由实参传递给形参。2、函数不调用时,形参变量不占用内存单元。发生函数调用时,系统才会为形参变量分配内存单元

31、。调用结束时,形参变量所占用内存单元被系统自动释放。离开调用函数后,就不能再使用形参变量。3、被调函数形参为基本数据类型时,实参与形参在内存不同存储单元,当实参把值传递给形参时,形参不同的内存单元中进行操作,因此形参值变化不会引起实参值的变化。4、函数实参是数组名时,向形参数组传递的是该数组的首地址。形参和实参占用相同的内存单元,所以形参数组值改变后,实参数组值也跟着改变。实参是数组元素时,也遵守“单向的值传递”规则。5、函数形参是数组时,调用函数时必须使用数组名作实参。在说明形参数组时,可以不指定数组长度,调用函数时必须和形参一一对应,类型一致。变量的作用域二、考察局部变量的作用域1、在函数

32、外部定义的变量称为全局变量,其默认作用域从定义变量的程序行开始到本源程序文件结束。2、全局变量的默认初始值为0,数组初始值也为0。3、程序运行时,系统为全局变量分配存储单元,直到程序结束才释放分配存储空间。4、不同函数中可以定义同名的局部变量,他们除名字相同外,没有任何联系。5、实参和形参也可以同名,他们分别属于不同函数中的局部变量。三、制定变量的使用策略1、如果大量使用全局变量,则可能出现空间占用而不用的情况,从而降低内存的利用率。数组的特性一、质数1、质数是除1和它本身外再也没有一个数能被它整除的整数。2、for语句中控制循环次数的变量i应该赋初值为2,表示从2开始判断。3、在设置for语

33、句的判断条件时,可以有以下三种:im 表示循环测试范围是【2,m-1】;im/2 表示循环测试范围是【2,m/2】;i*im 表示循环测试范围是【2,m】;二、水仙花数int i,j,k,n;printf(“_”);scanf(“%d”,&n);if(n999)printf(“输入数据错误n”);elsei=n%10;j=n/10%10;k=n/100;if(i*i*i+j*j*j+k*k*k=n)printf(“%dn”,n);三、完数1、一个数恰好等于它的因子只和。如6=1+2+3.int n,j;scanf(“%d”,&n);s=0;for(j=1;jn/2;j+)if(n%j=0)s=s+j;if(s=n)printf(“%d是一个完数”,n);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 家庭教育

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com