




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计(第二版),信息工程学院软件教研室,课程内容:C语言程序设计课:电学4-4,5学时安排:理论讲解48学时,计算机实验24学时,教材:C语言程序设计,谭浩强清华大学出版社,C语言程序设计问题解决与计算机指导,内容,第1章算法,第2章C语言概述,第3章数据类型, 运算符和表达式第4章顺序编程第5章选择结构编程第6章循环控制第10章指针第7章数组第11章结构和社区第8章函数第12章位操作第9章预处理命令第13章文件第1章程序的灵魂算法第1.1章算法概念:解决问题的方法和步骤。 (这是一个解决问题的方法的精确描述)数据结构算法=程序=算法数据结构设计方法语言工具数值运算计算机算法:非数值
2、运算,1.2简单算法示例1:有两个杯子A和B,分别装满酒和醋,它们需要交换(需要借一个空杯子C),A,B,C,酒,醋,酒,A。选择任意一个数字并放入A, 设置一个计数器N=0(表示比较的次数),将下一个数字与A进行比较,并将较大的数字放入A中,N=N 1。 此时,需要判断N是否为9,如果为是,执行,如果为N9(表示9次比较),停止循环。思考:如果题目的数量是1000,程序将如何改变?例3:寻找n!初始化:S=1,T=1,S=ST,T=T 1,如果Tn,返回执行,如果Tn,停止循环,S中的值为n!思考:如果题目改成奇数乘法,程序应该怎么改?如果的终止条件更改为T11,会发生什么情况?结果将是:1
3、3579,示例4:对于大于或等于3的正整数,判断它是否是素数。S1:输入值S2,n:I=2s 3:n除以I,得到余数r S4:如果r=0,这意味着n可以被I整除,然后打印n“不是素数”,算法结束;否则,执行S5:I=i1s 6:如果在-1,返回S3;否则,打印n“是一个质数”。然后结束。或者S6:如果我,回到S3;否则,算法结束。1.3算法1的特征。有限性2。确定性3。无输入或多输入4。一个或多个输出5。有效性1.4算法1的表达式。自然语言人们常用的语言可以是汉字、英语或其他容易理解的文字。缺点:1 .漫长而复杂;2.模糊性;3.它适用于描述顺序执行,但不适用于描述判断、转移和循环语句。其次,
4、流程图使用一些框架来表示各种操作。采用ANSI标准,开始,A=C,B=A,C=B,结束、开始,输入数字A,N=0,输入数字B,AB?B=A,N=N 1,N9?打印a,end,y,n,y,n。优点:1。逻辑清晰,形象易懂。2.流线一目了然,占地面积大,不适合复杂算法。记住:不要忘记画箭头或向后画箭头!3.伪代码是介于自然语言和计算机语言之间的一种文字和符号,没有图形,结构紧凑。例如,打印x的绝对值。如果x为正数,则如果x为正数,则打印x或打印x,否则打印x打印-x、四个或三个基本结构:1。序列结构:2。选择结构:并按顺序执行,根据是否满足条件P选择执行A或B;3.循环结构:边打(边打)边做(边打
5、)。一旦不满足,就不执行。先处决一个,然后审判P2;如果没有,重复执行a,直到P2满意为止。不执行一次,不同的是:直到第一次,然后先执行,然后判断可能不会执行一次循环体;环体三种结构的共同特征至少执行一次:1 .只有一个入口。只有一个出口(指整个建筑)。3.结构的每个部分都有被执行的机会。4.不应该有无休止的循环。由上述三种基本结构组成的算法属于“结构化”算法。V.第二章,C语言概述,2.1 C语言的历史背景C语言是当今世界上最流行和最有前途的高级计算机语言。它集计算和软件开发于一体,兼具高级语言的可读性和低级汇编语言的软件开发功能,是一种编译语言。虽然C语言最初是为编写UNIX操作系统而设计
6、的,但它不依赖于UNIX操作系统,可以在多种操作系统下运行。C语言的发展时代,语言名称,改进的功能,设计者或国家地址,1960ALGOL,面向问题(远离硬件),1963CPL,部分驱动硬件,英国剑桥大学,1967BCPL,直接驱动硬件,但过于简单,英国剑桥大学,1970B,简单,接近硬件,第一个UNIX贝尔实验室,1972-1973 C,是用强大的硬件编写的。贝尔实验室的C、面向对象的VC、可视化编程的C#开发了大量基于快速的应用程序。net平台。2.2 C特性:1 .简洁、紧凑、易于使用和灵活(32个关键字,9个控制语句);2.富操作员(34);3.丰富的数据结构;5.结构化控制声明;不太严
7、格的语法限制;6.编程上的极大自由;6.直接访问物理地址和位操作(位操作、汇编语句的直接写入、asm前缀)程序执行效率很高。效率高)。8.可移植性很好(不需要机器模型和操作系统,可以转换成其他语言)。2.3简单C程序的介绍示例1:输出一个字:main () printf“(这是一个C程序。n”);示例2:计算123 456的值,并输出main() int a,b,suma=123b=456总和=a b。printf(“sum为%dn”,sum);示例3:比较两个数字的大小,并输出大值main()int a,b,c;调用子函数max(),定义max()函数,C语言规则1,C程序由函
8、数组成。至少有一个函数main()可以使用库函数(printf、scanf)或自定义函数(max)。2.函数的两个部分:描述部分和函数体描述部分:包括函数类型、名称、属性、参数和参数类型。函数体:中间部分,包括变量定义和执行部分。3.c程序总是从主函数开始执行,而不考虑它的位置4。5.在每个语句之间使用;分开,最后一句也必须写;6.I/O还使用库函数printf()、scanf()、7/* */来表示注释信息。2.4C程序的计算机步骤1。第一步。输入和编辑源程序2。编译3。连接库函数4。运行目标程序2。Turbo C2.0的主工作文件。Tc.exe集成编译器Tcconfig.tc环境设置文件*
9、。h头文件*。BGI图形显示驱动程序*。LIB库文件*具体步骤见实际操作。OBJ模式启动代码文件,第三章是数据类型、运算符和表达式。3.1 C语言数据类型整数(int)整数短长基本数据类型无符号整数字符类型浮点数据类型双枚举数组类型构造类型结构类型社区类型指针类型空类型、3.2常量和变量I常量:整数常量:12,0,-8实常量:4.6,1.23,-0.9字符常量:A,B,#,3,=符号常量:#定义PRICE 30示例3.1一般情况下,此符号常量用大写字母表示!2.变量:程序运行过程中其值可以改变的量。1.每个变量都有两个特征:任何变量都有一个名字;任何变量都占据一个存储单元。2.变量命名原则:一
10、个变量给出的名称不能与32个保留字重复(P375的上半部分)。它必须以字母或下划线开头,以及由字母、数字或下划线组成的长度不超过32的字符串。应该基于知道你所知道的原则。大写字母和小写字母有不同的含义,被认为是两个不同的字符。通用变量名用小写字母表示。15,学生,二阶和三阶,a,412,1001H,变量名,变量地址,变量值,存储单元,判断下列变量名是否合法:year day # 123.com a _ 12 $ 100 _ abcdef 199y a=B1如果是未定义的变量,将在编译时检查。将给出一条提示消息:函数main中未定义的符号变量名。确定下列变量名是否合法:年日# 123.com a
11、 _ 12 $ 100 _ abcdef 199y a=B1 _ 2 _ 3 u-n int,3.3整数数据1,整数常数1,十进制数:234,-123,等等。每个数字可以是0-9。2.八进制数:从0开始,(128)10=0200。每个数字可以是0-7。3.十六进制数:以0x(128)16=0 X80开始。每个数字都可以是0-9和A-F.2.整数变量1。整数在内存中的存储形式,如10,-10: 10: 2。整数变量用c语言分类。为了更准确地描述整数数据,它们被进一步分为六种类型。主要区别在于整数的范围不同。内存中-10的存储形式:有符号整数16 -32768 32767 216短整数16 -32
12、768 32767 216长整数32 -21亿21亿232无符号整数16 065535 216无符号短整数16 065535 216无符号长整数32042亿232 3。整数变量的定义格式应为:变量1、变量2、变量3;示例3.2注意:它通常在函数的开头定义。4.整数数据溢出在操作过程中,如果变量值超出此类型的范围,就会发生溢出。例3.3,a: 32767 b: -32768,第三,如何判断整数常数的类型。根据给定常数的大小,将哪种类型的变量分配给哪种类型的范围。例如,50000如果一个字母L或L被加在这个常数之后,它必须被认为是一个长整型的常数,也就是说,它应该被赋给一个长整型的变量。例如,43
13、2L,3.4实数1,实数常数1,小数:它由整数部分,小数点和小数部分组成。例如:1.24-0.345.222-234.0 333.0,等等。2.指数形式:由实数部分、E(e)和整数部分组成。用于表示一些相对较大的数值。例如:123 * 1022-123E22注意:E之前必须有一个数字,E之后的数字必须是整数。E12 4.4e1.5 .e5都是非法的。第二,实变量1。内存中真实数据的存储形式(以指数形式)1415926。2.实变量分类浮动单精度32 6-7 10-37-1038双双精度64 15-16 10-307-10308长双长双精度128 18-19 10-4931-104932 3。真实
14、数据的舍入误差示例3.4三。实常数的类型实常数被分配给一个3.5字符数据1。字符常量1。在C语言中,字符常量是用单引号括起来的字符。例如:a,a,3?$,等等。2.对于以“”开头的转义字符,101(65)代表字母A,012(10)代表换行符,x20(32)代表空格字符。示例:main main()printf(“abcderftgn”);printf( htibbjk );结果是:f a b c g d e h j k,2。字符变量char c1,C2;C1=a;C2=b;它在内存中占据一个字节的空间。第三,字符数据在内存中的存储形式字符的ASCII码存储在内存中。内存中的所有数据都以二进制形式存储。例如,字符a的ASCII码是97,字符b的ASCII码是98。C1C2C1C2,所以在C语言的有效范围内,(0127)例3.6在字符数据和整数数据之间是常见的,并且main()char C=130;printf(“% d,%c”,c,c);结果是:-126,因为(130) 10=(1000010) 2=(-126)补码。4.字符串常量字符串常量是用双引号括起来的字符序列。例如,“您好”、“中国”、“a”和“134323.54”,每个字符串都有一个字符结束符号:0,即一个字节宽。在C语言中,没有变量来存储字符串常量,但是必须使用字符数组来存储它们。“一”和“一”之间有本质的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论