版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,1,第1讲 C语言概述,计算机工作原理 程序和程序语言 C程序开发的循环流程 C程序集成开发环境,.,2,学习路线图,.,准备知识,1. 计算机工作原理 2. 程序和程序设计语言 3. C程序开发的循环流程 4. C程序集成开发环境,.,4,1.计算机及工作原理,计算机的基本操作 计算机工作原理 程序执行示例,.,5,计算机的基本操作,(1)数据输入计算机 (input) (2)计算机操作数据 (process) (3)计算机输出数据 (output),process,input,output,.,6,计算机工作原理,存储程序、程序控制,.,7,程序执行示例-计算所得税,.,8,2.程序和
2、程序设计语言,程序和指令 程序设计语言 翻译程序 程序设计方法,.,程序和指令,程序等于指令吗?,程序,指令,程序语言,编译器,.,10,程序设计语言,程序:程序是计算机能够接受的、指示计算机完成特定功能的一组指令的有序集合。 编程(programming):设计一组控制计算机的指令集的过程 程序设计语言:用于描述程序中操作过程的命令、规则的符号集合,是进行程序设计的工具 程序设计过程:分析、设计、编码、测试、排错等阶段。,.,11,程序设计语言的发展,.,12,翻译程序,高级语言不能被计算机直接执行,必须先由一种翻译程序将这些程序翻译成能被计算机识别和执行的机器语言,翻译程序的种类 编译程序
3、 解释程序,.,编译程序-编译器,一个现代编译器的主要工作流程如下: 源代码 (source code) 预处理器 (preprocessor) 编译器 (compiler) 目标代码 (object code) 连接器 (Linker) 可执行文件 (executables),.,程序设计方法,面向过程程序设计 以函数为基本程序结构单位,程序的设计以过程为核心。先用函数实现解决问题所需要的每个步骤, 再根据既定的功能依次调用函数。 程序=算法+数据结构+程序设计语言+语言环境 如:C、Pascal等,.,程序设计方法,面向对象程序设计 以对象为基本程序结构单位,程序的设计以对象为核心,对象的
4、数据及操作封装在类中。 程序=对象+对象+对象 对象=数据结构+算法+程序设计语言+语言环境 如:C+、JAVA、Python等,.,16,3.C程序开发的循环流程,编辑(EDIT)dt 编译(COMPILE) kmpal 连接(Link)lk 执行(EXECUTE)ks,kjut,.,17,编辑(EDIT),源文件 用高级语言编写的程序文件 编辑器 生成源文件的软件 C语言程序文件,例:范例hello.cpp 文本文件,可用记事本编辑 后缀名:c/cpp 语法 一种编程语言的规则,.,18,编译(COMPILE),编译器 将高级语言翻译成机器语言的软件 编译的任务(词法分析-语法分析-机器指
5、令) 编译器翻译源文件时会检查是否符合高级语言的语法规则 生成机器语言指令构成的目标文件 如源程序包含语法错误,列出错误,不产生目标文件 c目标文件,例:hello.obj 二进制文件 后缀名:obj,.,19,连接Link,连接的任务 将预先开发好的程序模块(例如系统函数或其他程序员开发的共同模块)连接到当前程序代码中去 生成可执行文件:exe,例:hello.exe 连接器 完成连接的软件,.,执行(EXECUTE),C语言生成的可执行文件(exe文件)是一个DOS程序控制台程序; 可以通过开始菜单“运行” “cmd”命令打开命令窗口,直接执行文件名。,20,.,C语言程序的编辑、调试、运
6、行步骤,.,22,4. C程序集成开发环境,集编辑(EDIT)、编译(COMPILE)、 连接(Link)、执行(EXECUTE)与一体,并提供调试(debug)手段和帮助(help)的开发软件。,.,几种常用的C语言集成开发工具:,.,24,VC+ 6.0 创天中文版,.,实践1:C程序开发环境练习,任务一 创建第一个C程序 任务二 解读第一个C程序 任务三 认识程序错误,.,VC+操作 新建 编译 执行 语法错误 关闭工作空间,26,任务一创建程序sample01_01.cpp,/*print “Hello World!” */ #include int main(void) printf
7、(Hello World! n); return 0; ,可省去!,.,27,任务二解读第一个C程序程序语法,(1)C程序必须由一个main函数构成,系统自动执行main函数。 (2)程序的执行从main函数的左括号开始,顺序执行每一条语句,直到main函数的右括号结束。函数体 (3)printf是标准输出函数,输出的字符串在一对半角双引号之间,例如Hello C Worldn。 (4)C语句以分号结束。,.,解读第一个C程序程序语法,(5)控制台输出时,系统会紧跟着自动输出“press any key to continue”,等待按任意键关闭控制台窗口。 (6)n是一个转义字符换行。转义字
8、符是一些键盘不能输入的控制字符,具有特殊功能。 (7)#include是一个预编译命令,表示要加入stdio.h文件(标准输入输出函数头文件),若要在程序中使用printf函数必须使用该命令。 (8) main函数执行到 “”或“return 0;”结束。 return 0;向系统返回整数0,表示程序运行正常。,28,Include nklud 包含 standard stndd 标准 head hd 头部,.,解读第一个C程序相关文件,29,debug文件夹中存放着生成的obj文件,exe文件及其它一些中间文件。,.,30,讨论,输出两行问候语句 Hello C World! Hello C
9、 World!,.,31,可能出现的答案,printf (“Hello C World”); printf (“Hello C World”); printf (“Hello C Worldn”); printf (“Hello C World”); printf (“Hello C Worldn Hello C World”);,.,任务三 认识程序错误,语法错误 连接错误 逻辑错误 运行错误,.,33,语法错误,指不符合高级语言定义的语法书写规则。 编译或解释程序能自动检查出语法错误,只需根据错误提示进行修改。,.,34,改错示例:( error1-1.cpp ),#include int
10、 main(void) printf(Hello C World!n); return 0; ,# include int main(void) printf(Welcome to You! n); return 0; ,.,35,C语言的错误信息的形式:,文件名 行号 错误编号 错误信息 c:sampleerror1-1.cpp(4) : error C2001: newline in constant 双击上述错误信息,修改,.,36,编译错误修改提示(1),错误信息往往只能起提示作用,不是特别精确反映错误产生的原因,更不会告诉你如何修改。 根据提示能快速反应错误产生的原因需要经验的积累。
11、,.,37,编译错误修改提示(2),一条语句错误可能会产生若干条错误信息,只要修改了这条错误,其他错误会随之消失。 特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即重新编译程序,如果还有很多错误,再一个一个地修改。 即每修改一处错误要重新编译一次程序。,.,38,连接错误,连接错误,是编译成功后,连接器连接外部程序的时候产生的错误。 例 :main函数名写错了,.,39,连接错误修改提示,连接错误不提示出错行数,但小程序的定位也比较简单,一般是函数和外部变量的名称出错,只需根据错误提示的字符串去寻找可能出现的位置 。,.,
12、40,改错示例:( error1-2.cpp ),#include int mian(void) printf(Hello C World!n); return 0; ,# include int main(void) printf(Welcome to You! n); return 0; ,.,41,连接错误信息显示,-Configuration: test - Win32 Debug- Compiling. : test.cpp Linking. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 无
13、法解析的外部符号_main Debug/test.exe : fatal error LNK1120: 1 unresolved externals 执行 link.exe 时出错. test.exe - 1 error(s), 0 warning(s) 错误 警告,.,42,常见编程错误:,字符串“ ”不完整 ()不匹配 缺少; 函数名写错 ,.,43,逻辑错误,逻辑错误则是程序设计上或逻辑上的错误指程序已生成可执行文件,但运行出错或不能得到正确的结果,这可能是由于算法中问题说明不足,解法不完整或不正确所造成的。 逻辑错误的检查需要事先设计的测试用例。 逻辑错误出错位置需要程序员对程序代码进行分析,一般会借助一些调试手段,如单步执行,设断点,watch窗口观测等等,.,44,改错示例:( error1-3.cpp ),#include void main(void) int x; scanf(%d, ,程序的功能: 如果输入一个整数1,则输出“true”,输入其它整数则输出“false”。 测试用例: 测试用例一: 输入:1 输出:true 测试用例二: 输入:0 输出:false 测试用例三: 输入:10 输出:false,x=1,.,45,运行错误,运行错误是指程序经编译连接生成可执行文件后,在运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年黑龙江省抚远市高二生物下册期末考试模拟考试卷附参考答案(完整版)
- 2025-2026学年孟鹤堂烤冷面教学设计
- 2026年湖北省应城市高二生物上册期末考试测试卷及答案【新】
- 2025-2026学年高中政治教学设计创新
- 2025年广东省恩平市高二生物下册期末考试模拟考试卷附完整答案【名校卷】
- 2026年山西省永济市高二生物下册期末考试模拟试卷附参考答案(突破训练)
- 2026年湖北省洪湖市高二生物下册期末考试模拟考试卷含答案(新)
- 2025年四川省彭州市高二生物下册期末考试模拟测试卷【培优A卷】附答案
- 2025年河北省任丘市高二生物下册期末考试模拟检测卷附答案(A卷)
- 2025年湖南省汨罗市高二生物上册期末考试模拟卷(模拟题)附答案
- 2026年建筑起重信号司索工考试题库(模拟测试)(含答案)
- 2026医疗保障协议医疗机构医疗服务协议培训(版)
- 2026福建福州市建总科技文化有限公司招聘3人笔试备考题库及答案详解
- 项目管理信息系统监理技术大纲范本
- 2027高考语文作文全新一轮集训题库原创命题+范文
- (2025年)潍坊市临朐县公安辅警招聘知识考试题库及答案
- 2025年护理核心制度
- 内蒙古西部天然气蒙东管道有限公司招聘笔试题库2025
- 车棚电动车起火应急演练方案
- GJB843.10A-2021-潜艇核动力装置设计安全规定第10部分:控制系统设计准则
- 大队委面试题及答案
评论
0/150
提交评论