版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C程序设计(第四版)第1章C语言及程序设计方法第第1章章 C语言及程序设计方法语言及程序设计方法1.1 C C语言发展简史语言发展简史1.2 C C语言程序的基本结构语言程序的基本结构1.3 C C语言程序的编辑及运行语言程序的编辑及运行本章小结本章小结 C程序设计(第四版)第1章C语言及程序设计方法 计算机语言是面向计算机的人工语言,是进行程计算机语言是面向计算机的人工语言,是进行程序设计的工具,因此也称序设计的工具,因此也称程序设计语言程序设计语言。 程序设计语言可以分为程序设计语言可以分为机器语言、汇编语言、高机器语言、汇编语言、高级语言级语言。 高级语言中一种是面向问题的程序设计语言,
2、它高级语言中一种是面向问题的程序设计语言,它要对具体的算法和过程进行描述,也可以称为要对具体的算法和过程进行描述,也可以称为面向过面向过程程的算法语言,例如的算法语言,例如FORTRAN语言、语言、PASCAL语言语言和和C语言等。另一种属于人工智能语言,如语言等。另一种属于人工智能语言,如PROLOG语言。还有一种是当前流行的语言。还有一种是当前流行的面向对象面向对象的程序设计语的程序设计语言,例如言,例如C+、Java等,它们都是以等,它们都是以C语言为基础的,语言为基础的,学了学了C语言再学习语言再学习C+等语言就方便多了。等语言就方便多了。C程序设计(第四版)第1章C语言及程序设计方法
3、 计算机能直接执行的是机器语言程序。汇编语言也称符号语言,用汇编语言编写的程序称汇编语言程序。计算机不能识别和直接运行汇编语言程序,必须由汇编程序翻译成机器语言程序后才能识别和运行。同样,高级语言程序也不能被计算机直接识别和执行,也必须把高级语言程序翻译成机器语言程序才能执行。语言处理程序就是完成这个翻译过程的,按照处理方式的不同,分为解释型程序和编译型程序两大类。C语言采用编译程序,把源程序编译成目标程序,再通过连接程序的连接,生成可执行程序才能运行。具体过程将在上机操作中详细说明。C程序设计(第四版)第1章C语言及程序设计方法C语言是当前广为流行的程序设计语言,它适合于编写系统软件,也可以
4、编写应用软件。以前的操作系统等系统软件主要是用汇编语言编写的(包括UNIX操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好使用高级语言,但一般的高级语言难以实现对计算机硬件的直接操作,例如对内存地址的操作、位操作等,于是人们期望找到一种既具有高级语言特性,又具有汇编语言特性的新语言。C语言就是在这种情况下应运而生的。C程序设计(第四版)第1章C语言及程序设计方法C语言之所以能存在、发展并具有强大生命力是因为它有如下特点:(1) 简洁、紧凑,使用方便、灵活。C语言一共只有32个关键字,9条控制语句,而且有功能很强、非常丰富的运算符(34
5、种)。例如自增(+)、自减(-)运算符,复合赋值运算符,条件运算符,并且把括号、赋值、强制类型转换等都作为运算符处理(2) 表达能力强。它可以直接访问地址,能进行位(bit)操作,直接操纵硬件,完成通常由硬件实现的普通的算术运算、逻辑运算,(3)数据结构丰富。C语言的数据类型包括整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型、枚举类型等(4)模块化结构。C语言具有结构化的控制语句(如分支、循环)。以函数作为程序的模块单位,便于程序的分别编写、分别调试,加快软件的开发过程,是理想的结构化语言。(5)可移植性好。所谓可移植性是指一个程序可以不加修改或稍加修改就能在不同的机器或不同操
6、作系统环境下运行。C语言程序具有很好的可移植性。(6)C语言语法限制不太严格,书写格式比较自由。(7)生成目标代码质量高,程序执行效率高。它生成的目标代码效率一般只比汇编语言低10%-20%。C程序设计(第四版)第1章C语言及程序设计方法 C语言有众多的优点,当然也存在一定的不足,主要是:(1)C语言的类型比较弱,类型转换比较随便。(2)没有动态数组界限检查。(3)允许编译程序在表达式中重新安排计算顺序和参数表,容易产生副作用。 C语言灵活性高、限制少、功能强的特点对程序员的要求更高,初学者会感到一定困难,但是只要认真掌握它的实质,多读程序,多动手编程序,多上机调试程序,注意总结学习中的经验和
7、体会,是一定可以学好的。C程序设计(第四版)第1章C语言及程序设计方法1.2 C语言程序的基本结构语言程序的基本结构 要完成一项任务,必须通过一系列的操作过程。按一定顺序安排的工作操作序列,称为程序程序。程序用来描述完成某项功能所涉及的对象和动作规则。计算机程序就是要计算机完成某项功能所涉及的对象和动作规则,即由计算机进行解释和执行的指令和数据。 人类和计算机交流要通过计算机语言实现。和人类社会中有汉语、英语、法语、日语、俄语等语言交流工具一样,每种语言都有它的语法规则。计算机程序设计语言有上千种,语法规则各不相同,语言程序就是按照语言所规定的语法规则和它所涉及的数据编写的程序。C程序设计(第
8、四版)第1章C语言及程序设计方法1.2.1 C语言程序的基本结构语言程序的基本结构 C语言程序由一个或多个函数组成,有且仅有一个主函数main,C语言的执行总是从主函数开始. C语言是结构化程序设计语言。结构化程序设计强调程序设计风格和程序结构的规范化。提倡清晰的结构,即顺序、分支和循环三种基本结构。 对C语言程序有一个总体概念,先看下面几个简单例题。这几个例题暂时不要求深刻理解,在以后学到有关章节时,问题自然迎刃而解。在此只要求对C语言程序的组成和形式有一个初步了解,一开始就对C语言程序的语法规则有清楚的认识。 C程序设计(第四版)第1章C语言及程序设计方法例.在屏幕上输出一行信息:I am
9、 a boy./* 在屏幕上输出信息:I am a boy. */ #include Void main( ) printf(”I am a boy.n”);C程序设计(第四版)第1章C语言及程序设计方法 我们来说明一下: 这是由一个函数(主函数main)构成的C程序,运行后输出一个字符串。 第一句: /* 注释内容 */ 是注释语句注释语句,用来说明程序功能信息,不参加程序编译,所以,注释内容的正确与错误和程序执行无关。 第二句:#include 是预处理,包含程序与系统关系。 第三句:main() 是主函数。 主函数的名字是main,不能人为改变。 第四句:printf()是一个输出函数。
10、由系统提供的。注意:此函数内的双引号是西文双撇号“ ”。而且,C语言每一个语句用西文分号“;”结束 。C程序设计(第四版)第1章C语言及程序设计方法例1-2: 设a=10,b=20,c=30,计算sum=a+b+c。#include void main( ) int a,b,c,sum; /* 定义整型变量a,b,c,sum */ a=10;b=20;c=30; /* 三个语句,分别给a,b,c赋值 */ sum=a+b+c; /* 用赋值运算符“=”求和 */ printf(”sum=%dn”,sum); /* %d要求后面变量sum值按照十进制输出 */运行程序后输出:sum=60此程序也
11、可以写成如下形式: #include void main( ) int a=10,b=20,c=30 ; /* 定义整型变量a,b,c的同时赋值 */ printf(”sum=%dn”,a+b+c); /* “ n”的作用是回车换行 */ C程序设计(第四版)第1章C语言及程序设计方法这两个程序相同之处在于:第一,都是由一个主函数main完成的;第二,都对a,b,c 的数据类型进行了说明(int整型),并分别赋了初值10,20,30。两个程序的不同之处是:第一,第一个程序在说明a,b,c的数据类型之后单独赋值,第二个程序在说明a,b,c的类型同时赋值。第二,第一个程序说明了sum的类型,计算a
12、+b+c的值后赋给sum,调用printf函数输出sum的值;第二个程序没有单独计算a+b+c 而是在调用printf函数时直接输出a+b+c的值。如果第一个程序中不说明sum的类型,编译时就会出现错误信息:“Undefined symbol sum in function main”(主函数中符号sum 没有定义)由此可见,解决同一个问题可以采用不同的方法编写程序。C程序设计(第四版)第1章C语言及程序设计方法程序运行情况: Input a,b: 3,8 max=8主函数的位置对程序有影响吗?例1-3输入两个整型数,输出其中的大数。#include void main( ) int a,b,
13、s; /*定义整型变量a,b,s*/ printf(”Input a,b:n”); /*屏幕显示Input a,b:*/ scanf(”%d,%d”,&a,&b); /*从键盘上输入a和b的值*/ s=max(a,b); /*调用max 函数,实参为a,b,*/ /*转到max 函数*/ printf(”max=%dn”,s); /*输出a,b中的大数c*/int max(int x,int y) /*定义被调用函数max*/ int z; /*定义变量z*/ if(xy) /*根据条件判断, 如果xy为真*/ z=x; /*把x的值赋给z*/ else /* 否则 */ z=
14、y; /* 把y的值赋给z */ return(z); /* 把z的值返回主函数赋给c */C程序设计(第四版)第1章C语言及程序设计方法如果将例1-3写成如下形式:主函数main放在程序后面。#include int max(int x,int y) /*定义被调用函数max*/ int z; /*定义变量z*/ if(xy) /*根据条件判断, 如果xy为真*/ z=x; /*把x的值赋给z*/ else /* 否则 */ z=y; /* 把y的值赋给z */ return(z); /* 把z的值返回主函数赋给c */void main( ) int a,b,s; /*定义整型变量a,b,
15、s*/ printf(”Input a,b:n”); /*屏幕显示Input a,b:*/ scanf(”%d,%d”,&a,&b); /*从键盘上输入a和b的值*/ s=max(a,b); /*调用max 函数,实参为a,b,*/ /*转到max 函数*/ printf(”max=%dn”,s); /*输出a,b中的大数c*/结果相同。C程序设计(第四版)第1章C语言及程序设计方法1.2.2 C语言程序设计书写格式语言程序设计书写格式编辑好的C语言程序文件叫源程序文件源程序文件,源程序文件以 .C作为扩展名(后缀),例如exam1.c, exam2.c等,一个C程序可以由多个
16、源程序文件组成。一个程序中除了一个取名为main的主函数,其余函数可以取任何有意义的名字,由编程者自定义。C语言源程序文件由函数组成,那我们先了解一下函数的书写。 1函数函数函数是C程序的基本组成单位,任何函数(包括主函数main)都由函数首部和函数体两部分组成。(1)函数的首部函数的首部,即函数的第一行,对函数进行说明,包括函数类型(可缺省)、函数名、函数参数表(形参表)。数据类型 函数名(数据类型参数,数据类型 参数2)例如: int max ( int x, int y ) C程序设计(第四版)第1章C语言及程序设计方法(2) 函数体函数体函数首部之后的第一个大括号和与之配对的大括号之间
17、部分为函数体(大括号必须配对使用,如果一个函数内有多对大括号,则最外面的一对大括号是函数体的范围)。函数体一般由说明部分和可执行语句构成。 说明部分主要是定义变量和自定义类型以及对自定义函数、外部变量等进行说明。例如,例1-3中主函数main函数体里的“int a, b, s;”定义了三个整型变量a,b,s。 可执行语句部分一般由若干条可执行语句构成。例如,在例1-3的main函数体中,说明部分后面的四个语句构成该函数的可执行语句部分。 C程序设计(第四版)第1章C语言及程序设计方法 有关函数的详细内容将在第5章介绍。在此,有几点重要提示需要说明: 函数体中的说明部分必须在所有可执行语句之前,
18、即说明部分不能和可执行语句交织在一起。例如下面的程序在编译时就会出现错误:void main( ) int a,b; scanf(”%d%d”,&a,&b); int c; c=a+b; printf”c=%dn”,c); 出错的原因很简单,函数体内的说明部分“int c;”在可执行语句“scanf (”%d%d”, &a, &b);”之后。 可以有空函数。即函数体为空,没有任何语句,但函数名和后面的一对大括号不能缺少。例如: void main( ) 是一个空函数,它是一个合法的函数。C程序设计(第四版)第1章C语言及程序设计方法 2源程序的书写格式源程序的书
19、写格式 C语言程序的书写格式比较自由,称为无格式语言,但要注意以下几点:(1)程序中每个语句结束都必须用分号“;”实现,分号是语句的一部分。(2)允许一行内写几条语句,也允许一条语句写在几行上。例如下面的两个程序:程序1: void main( ) int a, b, c; printf (”Input a,b:n”); scanf (”%d%d”, &a, &b); c=a+b; printf (”a=%d, b=%d,c=%dn”,a,b,c);程序2: void main( ) int a,b,c; printf(”Input a,b:n”); scanf(”%d%d”,
20、&a,&b); c=a+b; /* 一行中有两个语句 */ printf(”a=%d, b=%d,c=%dn”,a,b,c); /* 两行中有一个语句 */C程序设计(第四版)第1章C语言及程序设计方法两个程序完全等价。程序1中每条语句占一行,看起来很清楚;程序2的程序体中,前两行各有两个语句,第三行和第四行是一个语句,看起来比较凌乱,所以最好一条语句占一行。如果一条语句很长,可以写成几行。(3)程序中提倡使用注释。一个高质量的程序,源程序中都应该加上必要的注释,以增强程序的可读性,这对程序员和用户都有很大的帮助。C语言的注释格式为: /* 注释内容 */在以上例题中凡是以“/
21、*”和“*/”括起来的文字都是注释。使用注释时需要注意以下几点: 注释可以单独占一行,也可以跟在语句后面。 “/*”和“*/”必须成对使用,并且“/”和“*”以及“*”和“/”之间不能有空格,否则都出错。 如果注释内容在一行写不下,可以另起一行继续写。 注释中允许使用汉字。在非中文操作系统下,看到的是一串乱码,但不影响程序运行。C程序设计(第四版)第1章C语言及程序设计方法1.3 C语言程序的编辑及运行语言程序的编辑及运行本节内容建议结合试验在第一次上机时在机房边演示边讲解编好程序以后如何上机运行呢?一般要经过以下几个步骤:首先上机输入或修改已有的源程序(.C文件),称作编辑;第二步对源程序进
22、行编译(包括预处理),因为计算机不能识别和执行C语言源程序,必须先用“编译程序”把源程序翻译成计算机能识别和执行的二进制指令形式的“目标程序”(可重定位中间代码,生成.obj文件);第三步把目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序(.exe文件);最后运行得到结果。结果是否正确需要经过验证,如果结果不正确则需要进行调试。调试程序往往比编写程序更困难、更费时间。有关程序调试的内容,将在以后章节介绍。图1-3表示了C程序编辑、编译、连接和运行的全过程。C程序设计(第四版)第1章C语言及程序设计方法编辑链接编译执行 C程序的上机步骤C程序开发步骤 开 始 编 辑 编 译
23、连 接 执 行 有错?结果正确? 结 束有源程序 file.c目 标 程序file.obj库函数和其它目标程序可执行目标程序无正确不正确程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exeC程序设计(第四版)第1章C语言及程序设计方法Turbo C集成开发环境l配置要求 UNIX,PC-DOS,MS-DOS,UCDOS操作系统 硬盘容量约2M,448K RAM运行空间l安装Turbo C 创建子目录 Install 若不是可安装盘,将文件拷贝到对应的目录下TC*.*INCLUDELIB*.*SYS*.* C语言程序设计 C程序设计(第四版)第1章C语言及程序设计方法l进入Turbo C(以下简称TC) C: Turbo C2TC.exe 主控菜单 文件操作FILE :New Load Save Write to 编辑操作EDIT:插入/修改 块 查找/替换 编译链接COMPILE LINK MAKE 执行RUNl退出TC Alt +x Alt+F ,Ql帮助Help F1 Ctrl+F1 C语言程序设计 C程序设计(第四版)第1章C语言及程序设计方法基本操作:F10-调用主菜单F2-存盘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/TMAC 254-2025汽车用制动盘高速激光熔覆耐磨耐蚀涂层性能要求
- T/COEMA 200-2024高功率红外激光准直镜
- 2026年河北省三河市高考历史模拟卷及参考答案【满分必刷】
- 2026年湖北省应城市高二历史下册期末考试试卷及参考答案(满分必刷)
- 2025年湖北省武穴市高二历史下册期末考试试卷及参考答案【满分必刷】
- 2026年广东省吴川市高二历史上册期末考试真题完整参考答案
- 2026年山东省乳山市高二历史下册期末考试测试卷及答案一套
- 2026年海南省琼海市高考历史自测卷【有一套】附答案
- 2025年吉林省磐石市高考历史真题附参考答案【B卷】
- 2026音乐智能创作软件系统行业市场供需分析及投资评估规划分析研究报告
- (零模)苏州市2027届高三年级9月阳光调研试卷 生物试卷(含答案)
- 电梯更新改造工程监理规划
- 2026年托育机构生活照护员职业技能等级认定题库
- 2026年龙游经开高新控股集团有限公司及其子公司公开招聘合同制员工11人的笔试备考试题及答案详解
- 血常规解读:从化验单到临床线索
- 2026年江苏省泰州市抗震办公室(审图中心)招聘1人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年世界职业院校技能大赛“智能网联汽车技术组”参考试题及答案
- 2026新教材语文 13《圆明园的毁灭》教学课件
- 童年第九章题目和答案
- 中风偏瘫中医护理查房
- 供货计划安排方案(3篇)
评论
0/150
提交评论