




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计,张书源,课程概要,课程类型:专业必修课 课程组成: 1、C语言程序设计 共64课时,每周4课时。4学分。考核方式为笔试。 2、C语言程序设计实验 共32课时,每周2课时。2学分。考核方式为机试。 最终成绩由平时成绩和考试成绩组成。,学习要求,课堂学习与自学相结合 机下练习与上机练习相结合 养成良好的程序书写习惯 以严谨的态度设计和书写程序,第1章 C语言程序设计的概念,1.1 程序与程序设计语言,程序是让计算机完成某个任务所安排的工作步骤。,任 务,程 序,计算机程序设计语言,程序是用计算机程序设计语言来描述的。 1、机器语言: 是计算机可直接识别的语言。 机器语言的指令由二进制数组成。直观性差,现在已经不用它直接编写程序。 比如: 10000000 代表一个加法 10010000 代表一个减法,2、汇编语言: 汇编语言的指令用“助记符”书写。它的指令与机器语言基本上一一对应的。 比如: ADD A, B 表示加法 SUB A, B 表示减法 机器语言和汇编语言都和机器硬件密切相关,称为面向机器的语言。,3、高级语言: 高级语言接近于人类的自然语言,方便了人们的学习和掌握。 高级语言与机器硬件关联小,用它编写的程序通常不需要修改或只需进行少量修改就能用于不同计算机。 第一种高级语言是FORTRAN语言,现在已经有数千种。常用的有C语言、FORTRAN语言、Basic语言、Pascal语言等。,高级语言程序的开发过程,高级语言程序不能被计算机硬件直接识别,必须把它翻译成机器语言程序才能被计算机执行。,分 析 问 题,建 立 模 型,编 写 源 程 序,翻 译,执 行 程 序,1.2 C语言及其标准,C语言是在开发UNIX操作系统过程中产生的,现在已经成为一种通用的程序设计语言。 目前C语言已经成为一种基础语言,很多高级语言都是在C语言的基础上产生的。如:C+、Visual C+、Java、C#等。所以,学习C语言是学习计算机程序设计的起点。,C语言的标准,C语言有多个标准,主要的C标准有: 1、C89:通常称为ANSI C。这是第一个完整的C语言标准,以后的C语言标准都是对它的修订、补充。 2、C90:对C89作了少量的修改。 3、C99:对C标准作了全面修订,是最新的C标准。 本课程基于C99介绍C语言程序设计方法,所以,它与前几年的C语言教材介绍的C语言程序略有不同。,1.3 C语言程序概要,C语言是一种面向过程的程序设计语言,C语言程序的基本部件是函数。 C程序结构:,程序头部,函数,函数,一个简单的C程序,/* ex1_01.c */ #include int main(void) printf(“Hello!”); /* 输出一串字符 */ return 0; /* 返回结果 */ ,int main(void) 主函数 每个C程序必须有一个主函数。计算机执行程序时就是执行主函数中的语句,当主函数中的语句执行完时,这个C程序就执行完了。 主函数的格式:,int main(void) ,return 0; 主函数的结束语句。其功能是向操作系统返回一个结果。但这个结果不会显示出来。 return 0; 语句必须是主函数中的最后一条语句,在它后面的语句不会被执行。,int main(void) return 0; /* 返回结果 */ printf(“Hello!”); /* 这个语句不会执行 */ ,printf(“Hello!”); 输出语句。其功能是在程序的执行窗口中显示一个字符串。 显示的结果不包含“”,所以,该语句的执行结果为:,Hello!,#include 这是一条“编译预处理命令”。 它不是语句,写在C程序的头部,在结束处不用加分号。 本命令的作用是把C系统中的stdio.h文件包含进来。这个文件与输入输出操作有关。 当程序中使用了printf()等函数时需要包含此文件。,/* */ 注释。 它们是程序中说明性的文字,可提高程序的可读性。 注释可写在程序的任何地方,它们不被执行。 注释可以不写,但在程序的适当位置书写注释是一个良好的编程习惯,它对我们阅读、调试程序有很大帮助。,早期的C程序中,主函数可以没有返回值,也不需要return语句。如:,void main() printf(“Hello!”); ,这种写法在有些系统(如DOS、Windows)中是合法有效的,但我们推荐使用前面的更为通用的写法。,main() printf(“Hello!”); ,练习,写一个C程序,在计算机屏幕上输出你的名字。,/* myname.c */ #include int main(void) printf(“张书源”); /* 输出我的名字 */ return 0; /* 返回结果 */ ,常见问题: 1、分号: 每个C语句后应该有分号,其它位置不能有分号。,/* myname.c */; #include ; int main(void); printf(“张书源”); /* 输出我的名字 */ return 0; /* 返回结果 */ ;,2、引号: 字符串应该加引号,程序执行时这个引号不会显示出来。,/* myname.c */ #include int main(void) printf(“张书源”); /* 输出我的名字 */ return 0; /* 返回结果 */ ,3、书写习惯: 书写程序时应该有层次,同一级别的文本应该对齐,低一级别的文本应该缩格。,/* myname.c */ #include int main(void) printf(“张书源”); return 0; ,/* myname.c */ #include int main(void) printf(“张书源”); return 0; ,书写不规范的程序可以使用,但可读性差。应该在一开始就养成良好的书写习惯。,附:C语言程序开发环境,用C语言书写的程序称为C语言源程序,这种程序不能被计算机执行,必须经过编译、链接,生成可执行程序后才能使用。,源程序 .c,目标程序 .obj,可执行程序 .exe,编译,链接,编辑,执行,能够进行C程序编辑、编译、链接的平台称为C语言集成开发环境。常用的有Turbo C 2.0、gcc、Turbo C+ 3.0、Visual C+等。,Visual C+开发环境,Visual C+ 6.0是一个用于开发Visual C+语言的集成开发环境,但它也可以编译、链接C语言程序,所以可以作为C语言的程序的开发平台。 使用方法: 1、启动Visual C+ 6.0。 开始程序Microsoft Visual StudioMicrosoft Visual C+ 6.0,2、建立一个C语言源程序文件。 选择“File(文件)”菜单中的“New(新建)”菜单项。 选择“Files”标签中的“C+ Source File”,输入源程序的文件名(后缀应该使用.c),设置文件存放的路径。 单击OK按钮就打开了C源程序的编辑窗口。,3、编辑C语言源程序。 在编辑窗口中输入C源程序,如果有错误,可以在此进行修改,这个过程称为编辑。,4、编译。 程序输入后,使用“Build(构建)”菜单中的“Compile(编译)”菜单项进行编译。 如果源程序中没有语法错误,会在下面的调试窗口中显示“0 error(s), 0 warning(s)”,表示编译成功,并生成后缀为.obj的目标文件。 error(s)是指程序中存在的错误数量,如果有错误,必须进行修改,然后再重新编译。 warning(s)是警告数量,有警告的程序可以链接和执行,但通常执行的结果可能有问题。,5、链接。 链接是为了生成可执行文件。使用“Build(构建)”菜单中的“Build(构建)”菜单项进行链接。 链接后可生成后缀为.exe的可执行文件。,6、执行。 使用“Build(构建)”菜单中的“! Execute(执行)”菜单项可执行这个程序,结果会显示在一个执行窗口中。,几点说明: 1、如果执行的结果有问题,需要在编辑窗口中修改源程序,然后重新编译、链接、执行。 2、可以用工具栏的按钮进行编译、链接和执行。 3、生成的可执行文件可以脱离开发环境,在操作系统中直接执行。,保存源程序: 使用“File(文件)”菜单中的“Save(保存)”菜单项可以保存当前的源程序。也可以用工具栏中的“保存”按钮进行保存。,打开已存在的源程序: 使用“File(文件)”菜单中的“Open(打开)”菜单项,设置文件路径后,可以打开一个已存在的源程序。也可以用工具栏中的“打开”按钮进行保存。 另外,也可以在磁盘上找到后缀为.c的源文件,双击这个文件图标,可以打开这个文件。,1.3.1 函数,C语言中的函数有三种: 1、主函数 函数名为 main()。 每个C程序中有且仅有一个主函数。程序执行时执行的就是主函数中的语句。,2、标准库函数: 标准库函数是C编译系统预定义的一些函数,可直接在程序中调用。 printf()就是一个标准库函数,它的功能是向执行窗口输出内容。 标准库函数在后缀为.h的头文件中声明,使用这些函数时,需要在程序的头部包含相应的头文件。,#include #include int main(void) float x; x = sin(0.19); printf(“%f”,x); return 0; ,3、自定义函数: 自定义函数是自己设计的函数。如:,int add(int a, int b) int sum; sum = a+b; return sum; ,与主函数不同,自定义函数中的语句不会直接执行,只有在调用时才执行其中的语句。,int add(int a, int b) int sum; sum = a+b; return sum; ,int main(void) int s; s = add(2,3); printf(“%d”, s); return 0; ,函数声明: 在调用库函数和自定义函数前,必须进行函数定义或函数声明。 库函数的声明位于相应的头文件中,在程序头部用#include命令包含进来即可。 自定义函数声明使用函数原型,以分号结束。如: int add(int, int); 它们一般也写在程序的头部。,说明: 如果函数定义写在了函数调用之前,则可以不写函数声明。 如果函数定义写在了函数调用之后,则必须写函数声明。,好习惯: 建议在写程序时,不论函数定义写在何处,都在程序头部书写函数声明。,1.3.2 语句,语句构成了函数的执行部分。 语句有表达式语句、流程控制语句和块语句三类。 1、表达式语句: 在C语言中,算式、赋值、函数调用都是表达式。 s = 2+3; x = sin(0.19); printf(“%d”,sum); 都是表达式语句。 表达式语句都以“分号”结束。,2、流程控制语句: 包括分支语句、循环语句等。,int max(int a, int b) int m; if(ab) m = a; else m = b; return m; ,3、块语句: 块语句是多个语句构成的复合语句。, 语句1; 语句2; ,块语句用一对花括号把一组语句括起来,在语法上相当于一条语句。,1.3.3 名字与声明,1、标识符与关键字: 标识符也称名字,包括变量名、函数名、文件名等。 标识符的命名规则: (1) 标识符可由大小写字母、数字和下划线组成,且不能以数字开头。 如:sum、a1、_b、D_25_1 (2) 标识符中的字母区分大小写。 如:sum、Sum、SUM是不同标识符。,(3) C89中,标识符长度不多于31个字符;C99中,标识符长度不多于63个字符。 (4) 标识符不能与关键字同名。 关键字又称保留字,它们是系统中有特殊意义的名字。 关键字包括: 类型的名字,如int、float、void等; 语句的名字,如if、else、return等; 运算符的名字,如sizeof。,好习惯: 为变量、函数命名时,尽量使用有意义的文字命名,少用单个字母命名。 如: max 代表最大值; sum 代表总和; add 代表求和。,2、声明: 声明包括变量声明、函数声明等。,int add(int, int); int add(int a, int b) int sum; sum = a+b; return sum; ,声明也以分号结束,它与语句的区别在于: 语句是在程序执行时处理的,而声明是在编译时处理的。 变量声明的作用是为变量分配存储空间。 函数声明的作用是让编译器知道函数的原型,包括参数个数和类型、返回值类型等。 在C99中,声明也被当作语句,但属于非执行语句。,1.3.4 变量及其赋值,1、变量: 变量的值是可以改变的。 变量必须先声明再使用。 变量声明方法: 类型 变量1 = 初值1, 变量2 = 初值2, ; 类型可以是int(整型)、float(实型)等。,实例1:,int n; /*声明了一个整型变量n*/,声明时,如果没有设置初值,则该变量的值为任意值。,实例2:,int n = 1; /*声明变量并初始化*/,初始化是为变量设置一个初始值。,实例3:,int a, b = 8, c; /*声明了三个整型变量*/,a、b、c都是整型变量,其中b进行了初始化。,实例4:,int t = -1; float x = 3.5, y;,t是整型变量,x、y是实型变量。,2、变量的赋值: 在C语言中,赋值是一种运算,可用于改变变量的值。 “=”称为赋值运算符,它组成的表达式称为赋值表达式。 赋值表达式格式: 变量名 = 表达式 这个运算的值是赋值后变量的值。,实例1:,int n; /*声明了一个整型变量n*/ n = 1; /*n赋值为1*/,n = 1; 是一个表达式语句。,实例2:,int n = 1; n = 2.5;,n是整型变量,赋值时会把小数截去,n的值为2。,实例3:,float x; x = 2.5;,x的值是2.5。,实例4:,int a = 1, b = 2; a = a+b;,a的值是3。,实例5:,int a, b, c; a = b = c = 10;,赋值是一种运算,具有“自右向左”的结合性。 先计算表达式 c = 10,c赋值为10,表达式值为10。 再计算表达式 b = 表达式值,b赋值为10,表达式值为10。 再计算表达式 a = 表达式值,a赋值为10,表达式值为10。 执行结果为a、b、c的值都是10。,练习:,int a, b, c=1; a = 5; b = 2+(c=a);,结果: a 的值是5; b 的值是7; c 的值是5。,3、变量的输入和输出: 用printf()函数可以输出变量和表达式的值。 输出整型: printf(“%d”, 变量或表达式); 输出实型: printf(“%f”, 变量或表达式);,实例1:,int n = 1; printf(“%d”, n); /*输出n的值*/,实例2:,int n = 1; printf(“n”); /*输出n*/,输出时,用n的值替换%d,所以显示的是1。,输出时,显示的是n,不是n的值。,实例3:,int a = 1, b = 2; printf(“%d, %d, %d”, a, b, a+b);,输出时,第1个%d用a的值替换,第2个%d用b的值替换,第3个%d用a+b的值替换。显示结果是: 1, 2, 3,实例4:,int a = 1, b = 2; printf(“a+b=%d”, a+b);,输出时,用a+b的值替换%d,其它都原样输出。显示结果是: a+b=3,用scanf()函数可以输入变量的值。 输入整型: scanf(“%d”, 程序遇到scanf()函数时,会暂停执行,等待用户输入数据,用户输入后,程序再继续执行。,实例1:,int n; scanf(“%d”, ,实例2:,int a, b; scanf(“%d, %d”, ,要求输入一个整数,存入变量n。,输入两个整数,分别存入变量a和b。,#include int main(void) int a, b; scanf(“%d,%d”, ,例:输入两个整数,输出它们的和值。,1.3.5 算数运算,1、基本算数运算:,说明: 1、整数的运算结果还是整数,实数的运算结果是实数,整数和实数的运算结果是实数。,2、优先级:*、/、%的优先级高于+、-。,3、在表达式中,只能用圆括号改变运算的优先顺序。,如: 算式:,写成C表达式: (10*x+5*(3*a+b)/(2*(x+y)*(a-b),2、常用数学函数:,绝对值函数: int abs(int i) 求整数的绝对值 double fabs(double x) 求实数的绝对值,平方根函数: double sqrt(double x) 求平方根,x不能为负,指数函数和对数函数: double pow(double x, double y) 求x的y次方 double exp(double x) 求e的x次方 double log(double x) 求x的自然对数 double log10(double x) 求x的以10为底的对数,取整函数: double ceil(double x) 取大于x的整数(正入负舍) double floor(double x) 取小于x的整数(正舍负入),练习,把下面的算式写成C表达式。,(abs(a)+1)*(abs(b)+1),(-b+sqrt(b*b-4*a*c)/(2*a),练习,写一个C程序,输入圆的半径,计算并输出圆的周长和面积。,3、自反赋值运算符: 自反赋值是某些赋值的简化形
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工防疫小知识培训总结课件
- 吸毒知识培训内容记录课件
- 如何引入概率课件
- 考点解析-四川省峨眉山市中考数学真题分类(平行线的证明)汇编同步练习试题(含解析)
- 城市社区建设与服务提升
- 辽宁鞍山市教育局面向2025届毕业生校园招聘教师23人笔试备考题库及完整答案详解1套
- 虚拟现实运动障碍康复-洞察及研究
- 宁波市公安局招聘警务辅助人员的笔试高频难、易错点备考题库及参考答案详解
- 2025年事业单位笔试-福建-福建中医临床(医疗招聘)历年参考题库典型考点含答案解析
- 2026届福建省漳州第一中学高二化学第一学期期中调研模拟试题含解析
- 生产经理薪资协议书
- 达州国企面试题及答案
- 群团工作笔试试题及答案
- 英语口语8000句精装版2
- 中等职业学校数字媒体技术应用专业人才培养方案
- 仓储管理赋能培训
- 高一上学期《早读是需要激情的!》主题班会课件
- 龙门吊警示教育
- 食堂购买蔬菜管理制度
- (二模)金华十校2025年4月高三模拟考试语文试卷(含答案解析)
- 油画修复技术探讨-深度研究
评论
0/150
提交评论