主要内容
程序设计语言
程序设计语言的发展
程序设计的过程
C语言的集成开发环境
1个简单C语言程序
一般程序错误
2
程序设计语言——维基百科
程序设计语言(Program Language) :是一组用来定义计算
机程序的语法规则。它是一种被标准化的交流技巧,用来向
计算机发出指令。
程序(Program):指一组指示计算机每一步动作的指令,通常
用某种程序设计语言编写,运行于某种目标体系结构上。
编程(Programming):程序设计是编写解决特定问题程序的
过程,是软件构造活动中的重要组成部分。程序设计往往以
某种程序设计语言为工具,给出这种语言下的程序。
程序设计过程:分析、设计、编码、测试、排错等阶段。
3
程序设计语言的发展
机器语言
汇编语言
高级语言
CPU不能直接处理高
级语言编写的程序,
它必须被翻译为机器
语言。
比较汇编语言和C语言
ADD 100, 200, 840
z=x+y;
翻译程序
高级语言不能被计算机直接执行,必须先由一种
翻译程序将这些程序翻译成等价的能被计算机识
别和执行的机器语言。翻译程序的种类:
解释程序:将高级编程语言一行一行直接转译运行。
解释器不会一次把整个程序转译出来,只像一位“中
间人”,每次运行程序时都要先转成另一种语言再作
运行,因此解释器的程序运行速度比较缓慢。它每转
译一行程序叙述就立刻运行,然后再转译下一行,再
运行,如此不停地进行下去。
编译(器)程序:将用某种编程语言写成的源代码(原始
语言),转换成另一种编程语言(目标语言)。
4
编译器
一个现代编译器的主要工作流程如下:
源代码 (source code) → 预处理器
(preprocessor) → 编译器 (compiler) → 汇
编程序 (assembler) → 目标代码 (object
code) → 链接器 (Linker) → 可执行文件
(executables)
P16
6
VC++ 创天中文版
7
集成开发环境
VC++
集编辑(EDIT)、编译(COMPILE)、
连接(Link)、执行(EXECUTE)与一体,
并提供调试(debug)手段和帮助
(help)的开发软件。
8
程序编制的过程
编辑(EDIT)[‘ɛdɪt]
编译(COMPILE) [kəm‘paɪl]
连接(Link)[lɪŋk]
执行(EXECUTE)[‘ɛksɪ,kjut]
调试(debug)
9
编辑(EDIT)
源文件
用高级语言编写的程序文件
编辑器
生成源文件的软件
C语言程序文件,例:
文本文件,可用记事本编辑
后缀名:c/cpp
语法
一种编程语言的规则,如:C程序设计语言
10
编译(COMPILE)
编译器
将高级语言翻译成机器语言的软件
编译的任务
编译器翻译源文件事会检查是否符合高级语言的语法
规则
生成机器语言指令构成的目标文件
如源程序包含语法错误,列出错误,不产生目标文件
c目标文件,例:
二进制文件
后缀名:obj
11
连接Link
连接的任务
将预先开发好的程序模块(例如系统函数或其
他程序员开发的共同模块)连接到当前程序代
码中去
生成可执行文件:exe,例:
连接器
完成连接的软件
C语言程序的编辑、调试、运行步骤
开始 结果
语法
错误
源程序
.c / .cpp
目标程序
.obj
可执行程序
.exe
编辑 编译 运行
连接
错误
运行
错误
运行
文字
编辑器 编译器 连接器
结果
调试程序 P18-21
设置断点
开始调试
单步运行
自动查看变量
执行(EXECUTE)
C语言生成的可执行文件(exe文件)是一
个DOS程序——控制台程序;
可以通过开始菜单“运行” →“cmd”命令打
开命令窗口,直接执行文件名。
14
VC++操作
新建
编译
执行
语法错误
关闭工作空间
15
创建一个C程序
/*print “Hello World!” */
#include <>
int main(void)
{
printf("Hello World!
\n");
return 0;
}
16
解读第一个C程序--程序语法
(1)C程序必须由一个main函数构成,系统自
动执行main函数。
(2)程序的执行从main函数的左{括号开始,
顺序执行每一条语句,直到main函数的右}括
号结束。{函数体}
(3)printf是标准输出函数,输出的字符串在
一对半角双引号之间,例如"Hello C
World\n"。
(4)C语句以分号结束。
解读第一个C程序--程序语法
(5)控制台输出时,系统会紧跟着自动输出“press
any key to continue”,等待按任意键关闭控制台窗
口。
(6)’\n’是一个转义字符--换行。转义字符是一些键
盘不能输入的控制字符,具有特殊功能。
(7)#include<>是一个预编译命令,表示要加
入文件(标准输入输出函数头文件),要在程
序中使用printf函数必须使用该命令。
(8) Main函数执行到 “}”或“return 0;”结束。
return 0;向系统返回整数0,表示程序运行正常。
17
Include [ɪn’klud] 包含
standard [‘stændəd] 标准
head [hɛd] 头部
解读第1个C程序的相关文件
18
后缀名 解释
cpp 源程序文件
dsw 项目工作区
dsp 项目文件
ncb 无编译浏览文件
plg 编译信息文件
opt 关于开发环境的参数文件,
如工具条位置等信息
Debug文件夹中存放着生成的obj文件,
exe文件及其它一些中间文件。
19
讨论
输出两行问候语句
Hello C World!
Hello C World!
20
可能出现的答案
printf (“Hello C World”);
printf (“Hello C World”);
printf (“Hello C World\n”);
printf (“Hello C World”);
printf (“Hello C World\n Hello C World”);
程序错误
语法错误
连接错误
逻辑错误
运行错误
语法错误
指不符合高级语言定义的语法书写规则。
编译或解释程序能自动检查出语法错误,
只需根据错误提示进行修改。
22
23
改错示例:
# include <>
void main(void)
{
printf( Welcome to You! \n")
return 0;
}
# include <>
int main(void)
{
printf("Welcome to You! \n");
return 0;
}
C语言的错误信息的形式 :
文件名 行号 错误编号 错误信息
↓ ↓ ↓ ↓
D:\C教材\sample\(4) : error C2001: newline in constant
24
编译错误修改提示(1)
错误信息往往只能起提示作用,不是特别
精确反映错误产生的原因,更不会告诉你
如何修改。
根据提示能快速反应错误产生的原因需要
经验的积累。
25
编译错误修改提示(2)
一条语句错误可能会产生若干条错误信息,只
要修改了这条错误,其他错误会随之消失。
特别提示:一般情况下,第一条错误信息最能
反映错误的位置和类型,所以调试程序时务必
根据第一条错误信息进行修改,修改后,立即
重新编译程序,如果还有很多错误,再一个一
个地修改。
即每修改一处错误要重新编译一次程序。
26
连接错误
连接错误,是编译成功后,连接器连接外
部程序的时候产生的错误。
例 :main函数名写错了
27
连接错误修改提示
连接错误不提示出错行数,但小程序的定
位也比较简单,一般是函数和外部变量的
名称出错,只需根据错误提示的字符串去
寻找可能出现的位置 。
28
29
连接错误信息显示
--------------------Configuration: test - Win32 Debug--------------------
Compiling... :
Linking...
() : error LNK2001: unresolved external symbol
_main 无法解析的外部符号_main
Debug/ : fatal error LNK1120: 1 unresolved externals
执行 时出错.
- 1 error(s), 0 warning(s)
错误 警告
30
常见编程错误:
字符串“ ”不完整
()不匹配
缺少;
函数名写错
……
逻辑错误
逻辑错误则是程序设计上或逻辑上的错误——
指程序已生成可执行文件,但运行出错或不能
得到正确的结果,这可能是由于算法中问题说
明不足,解法不完整或不正确所造成的。
逻辑错误的检查需要事先设计的测试用例。
逻辑错误出错位置需要程序员对程序代码进行
分析,一般会借助一些调试手段,如单步执行,
设断点,watch窗口观测等等,以后陆续介绍
……
31
运行错误
运行错误是指程序经编译连接生成可执行
文件后,在运行的过程中系统报错,没有
运行结果。
常见的运行错误有:除数为0;死循环;浮
点指针出错等等。
运行错误往往是逻辑错误引起的。
32
第二讲 结构化程序设计与C语言
%E7%AC%AC%E4%BA%8C%E8%AE%B2%20%E7%BB%93%E6%9E%84%E5%8C%96%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E4%B8%8EC%E8%AF%AD%E8%A8%
%E7%AC%AC%E4%BA%8C%E8%AE%B2%20%E7%BB%93%E6%9E%84%E5%8C%96%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E4%B8%8EC%E8%AF%AD%E8%A8%
%E7%AC%AC%E4%BA%8C%E8%AE%B2%20%E7%BB%93%E6%9E%84%E5%8C%96%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E4%B8%8EC%E8%AF%AD%E8%A8%
%E7%AC%AC%E4%BA%8C%E8%AE%B2%20%E7%BB%93%E6%9E%84%E5%8C%96%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E4%B8%8EC%E8%AF%AD%E8%A8%
%E7%AC%AC%E4%BA%8C%E8%AE%B2%20%E7%BB%93%E6%9E%84%E5%8C%96%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E4%B8%8EC%E8%AF%AD%E8%A8%