




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章绪论 返回总目录目录 1.1C语言的发展过程 1.2C语言的特点 1.3C程序的结构和书写格式 1.4Visual C+ 6.0上机操作 1.5习题一 返回总目录基本要求:)了解C语言的发展过程与特点;)熟悉C语言程序的结构和书写格式;)熟悉C语言程序的上机调试过程。学习重点:)C程序的结构与书写格式;)C程序的上机调试过程。机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A, B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封
2、装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象1.1C语言的发展过程1.1.1 计算机语言的发展过程 返回目录5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASICVBFORTRAN901.1C语言的发展过程1.1.2 C语言的发展过程 产生过程时间:19721973地点:美国贝尔实验室目的
3、:UNIX操作系统设计人: Ken.Thompson和Dennis.M.RitchieC标准标准C: K&R合著The C Programming LanguageANSI C: 1983年89 ANSI C: 1989年99 ANSI C: 1999年1.1C语言的发展过程1.1.2 C语言的发展过程 语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化生成目标代码质量高可移植性好1.2C语言的特点1.2.1 C语言的特点 返回目录32个关键字:(由系统定义,不能重作其它定义)auto break case char constcontinue default do double
4、elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while1.2C语言的特点1.2.1 C语言的特点 9种控制语句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn1.2C语言的特点1.2.1 C语言的特点 例 C语言与Pascal语言比较C语言 Pascal语言 含义 BEGIN.END 复合语句if(
5、e) s; IF(e) THEN s 条件语句int i ; VAR i:INTEGER 定义i为整型变量 int a10; VAR a:ARRAY1.10 OF INTEGER 定义整型数组aint f(); FUNCTION f():INTEGER 定义f为返值整型的函数int *p; VAR p:INTEGER 定义p为指向整型变量的指针i+= 2; i=i+2 赋值i+2ii+,+i; i=i+1 i自增值结论:C比 Pascal简练,源程序短。1.2C语言的特点1.2.1 C语言的特点 34种运算符:算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:! & |位
6、运算符 : | &赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:* &求字节数 :sizeof强制类型转换:(类型)分量运算符:. -下标运算符:其它 :( ) -1.2C语言的特点1.2.1 C语言的特点 C数据类型基本类型构造类型指针空类型(void)自定义(typedef)数值类型字符类型(char)枚举类型(enum)整 型浮点型单精度型(float)双精度型(double)短整型(short)长整型(long)整型(int)数组结构体(struct)共用体(union)1.2C语言的特点1.2.1 C语言的特点 例1.1 第一个程序 Hello,World!/*
7、LT1_1.c The first C Program*/#include main() printf(“Hello,World!n”);注释编译预处理函数语句输出:Hello,World!1.3C程序的结构和书写格式1.3.1 C程序的结构 返回目录例1.2/* example1.2 calculate the sum of a and b*/#include /* This is the main program */main() int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum);/ This function cal
8、culates the sum of x and y int add(int x,int y) int z; z=x+y; return(z);运行结果:sum=34函数语句预处理命令注释函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。程序语句C程序由语句组成用“;”作为语句终止符注释/* */为注释,不能嵌套不产生编译代码编译预处理命令例: /*This is the main /* of example1.1*/ */ 非法1.3C程序的结构和书写格式1.3.1 C程序的结构 格式特点习惯用小写
9、字母,大小写敏感不使用行号可使用空行和空格常用锯齿形书写格式(缩进对齐)main( ) . . . . . . .main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);优秀C程序员的编程风格:使用TAB缩进 对齐有足够的注释有合适的空行注:VC中通过设置可实现智能缩进和 对齐1.3C程序的结构和书写格式1.3.2 C程序的书写格式 编辑链接编译执行file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,
10、生成可执行程序*.exe 返回目录1.4.1 C程序的开发步骤 1.4Visual C+ 6.0上机操作1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 在Visual C+ 6.0开发环境下,C程序按工程(project)进行组织,每个工程可包括一个或多个C/CPP源文件,但只能有一个main函数。有时,为了完成任务经常需要不止一个工程。如可能要写DLL以支持应用程序,因此,VC中将1个或多个工程组织成一个工作区。工作区一般包括1个或多个工程,也可以是空的工作区,但是不能创建一个没有工作区的工程。1.4.2 Visual C+ 6.0软件简介 所以在VC
11、+ 6.0中存在如下关系:工作区(1个)工程(0个或多个)C/CPP文件(0个或多个)工作区信息保存在扩展名为.dsw的文件中工程信息保存在扩展名为.dsp的文件中1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 在VC中编辑并调试C程序主要有如下3种方式:1)创建一个空的工作区创建一个空的工程新建一个或多个c/cpp文件加入到工程编辑、编译并调试2)创建一个空的工程,同时也创建一个工作区新建一个或多个c/cpp文件加入到工程编辑、编译并调试3)新建一个c/cpp文件编辑编译接受创建默认工程与工作区的提示编辑、编译并调试下面的介绍采用第2种方式。1.4Vi
12、sual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 下面以例1.1为示例(例1.1源文件命名为LT1_1.c)介绍在Visual C+ 6.0 IDE中建立工程并进行C程序调试的主要操作步骤。 注意,由于Visual C+ 6.0的汉化版本很多,菜单项的汉化名称不尽相同(如主菜单项“Build”,有的版本翻译成“组建”,有的版本则翻译成“编译”,而其下拉菜单项中第二个子菜单项名也叫”Build”,有的版本翻译成“生成”,有的翻译成“构件”),所以下面在介绍相应菜单项名称时,用圆括号附上其英文菜单项名。1.4Visual C+ 6.0上机操作1.4.2 Visual C
13、+ 6.0软件简介 1启动Visual C+ 6.0 IDE1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 2工程(Project)的创建含工作区的创建1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 2工程(Project)的创建1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 3在工程(Project)中添加并编辑源程序 1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 3在工程(Project)中添加并编辑源程序 1.4Visual C
14、+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 4编译过程1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 5连接过程1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 6执行程序1.4Visual C+ 6.0上机操作1.4.2 Visual C+ 6.0软件简介 6执行程序 Visual C+ 6.0 IDE的重建提示信息 1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 C语言程序的错误主要包括两大类:一类是语法错误;一类是逻辑设计错误。语法错误是指违背了C语
15、言语法规则而导致的错误。语法错误分为error和warning两种。如果程序有语法错误,则在编译时,Visual C+ 6.0 IDE的编译器将在输出窗口中给出语法错误提示信息,错误提示信息一般还可以指出错误发生所在位置的行号。用户可以在输出窗口中双击错误提示信息或按F4键返回到源程序编辑窗口,并通过一个箭头符号定位到引起错误的语句,如下页图所示。 1程序调试时的常见错误分类1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 1程序调试时的常见错误分类1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 需要说明的是,编译器
16、给出的错误提示信息可能不十分准确,并且一处错误往往会引出若干条错误提示信息,因此,修改一个错误后最好马上进行程序的编译或运行。例如,在上页图中,错误提示信息中括号内的数字6指示错误发生在第6行,指示错误的箭头也指向第6行,但实际错误发生在第5行的末尾,因为第5行的末尾少了一个分号。1程序调试时的常见错误分类1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 如果程序并没有违背C语言的语法规则,编译器也没有提示出错,而且程序能够成功运行,但程序执行结果却与原意不符,这类程序设计上的错误被称为逻辑设计错误。这类错误由于编译器不能给我们出错提示,所以必须利用“调试
17、器(Debug)”对程序进行跟踪调试才能发现错误。1程序调试时的常见错误分类1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 2程序调试时调试器(Debug)的使用1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 2程序调试时调试器(Debug)的使用1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 3 Debug版本和Release版本默认情况下,Visual C+ MFC AppWizard有两种类型的程序设置:一种是Debug版本,其中编译和链接了对象文件中的调试代码;另一种
18、是Release版本,将删除所有的调试代码。Debug版本通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release版本称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 3 Debug版本和Release版本两种版本各有自己的编译/链接选项和资源状况,可以使用Project Settings对话框(工程Project设置Settings)来修改。当前工程是编译成Debug版本还是Release版本,通过使用Set Active P
19、roject Configuration对话框(编译Build放置可运行配置Set Active Configuration )来设置。默认为Debug版本。调试生成的exe文件在工程目录下的debug或release子目录下。当然也可使用Project Settings对话框设置不同的目录。1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 3 Debug版本和Release版本1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 4 常见错误示例(1)出错原因:变量a事先没有定义。1.4Visual C+ 6.0上机操作
20、1.4.3 Visual C+ 6.0程序调试 4 常见错误示例(2)出错原因:实型变量不允许进行“求余”运算。 1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 4 常见错误示例(3)出错原因:a和A是两个不同的变量名,而A没有定义。 1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 4 常见错误示例(4)出错原因:忘记加分号。 1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 4 常见错误示例(5)本程序实现:若a与b相等,则显示ok。编译无错。本程序中a与b并不相等,但结果显
21、示ok。错。a=b应该改成a=b。此为典型的逻辑设计错误。 1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 4 常见错误示例(6)程序的原意是先后输入5个数,每输入一个数后再将它输出。编译无错。由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。此为典型的逻辑设计错误。 1.4Visual C+ 6.0上机操作1.4.3 Visual C+ 6.0程序调试 这里我们介绍了在Visual C+ 6.0中调试C程序的一些基本知识,但Visual C+ 6.0的基本操作和相关知识很多,这里就不一一介绍了,更深入的了解可以阅读Visual C+ 6.0的相关专业书籍和网络资源。更为重要的是,本工具及本课程的学习需要大量的上机实践才能熟练掌握。1.4Visual C+ 6.0上机操作1.5习题一 单项选择题 一个完整的可运行的C源程序中 .A)可以有一个或多个主函数B)必须有且仅有一个主函数C)可以没有主函数D)必须有主函数和其他函数构成C语言源程序的基本单位是 . A)子程序 B)过程 C)文本 D)函数BD 返回目录1.5习题一 单项选择题 某C程序由一个主函数ma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技企业如何应对负面网络舆情
- 电子商务背景下的现代物流管理创新
- 科技企业战略投资与管理案例
- 纵膈肿瘤中医护理方案
- 科技发展与办公效率的飞跃提升
- 科技医疗与视觉健康激光眼手术的术后保养
- 电子商务行业的市场预测与战略规划
- 木地板防水工程施工方案
- 天津商业大学宝德学院《安装工程计量与计价》2023-2024学年第二学期期末试卷
- 厦门海洋职业技术学院《体育-台球》2023-2024学年第二学期期末试卷
- GB 19522-2024车辆驾驶人员血液、呼气酒精含量阈值与检验
- 2024年成都新都投资集团有限公司招聘笔试冲刺题(带答案解析)
- 危险预知训练表(KYT)
- 2024年湖南铁路科技职业技术学院单招职业技能测试题库及答案解析
- 《书籍装帧设计》 课件 项目1 走进书籍装帧设计
- ASTM标准全部目录(中文版)
- 《汽车电气设备构造与维修》 第4版 课件 第3、4章 电源系统、发动机电器
- 辽海版小学美术六年级下册全册教案
- 2023年南京市鼓楼区建宁路街道安监办招聘专职安全员考试真题及答案
- 乡镇精神卫生工作总结
- 井工煤矿中长期防治水规划编制细则
评论
0/150
提交评论