零基础学C语言教案-第2章

合集下载

C语言程序设计教案第2章4 -6

C语言程序设计教案第2章4 -6
(2)表达式的名称和运算结果是由优先级最低的运算符决定的。
(3)关系或逻辑表达式的值只有两个:真(非零)和假(零)。
(4)分析复杂表达式时,应先找优先级别最高的运算符,同时,注意”()”的优先级别很高,它往往可以改变表达式的运算次序。通过分析复杂表达的运算逻辑,推导出短路原则。
(5)编写一个输出复杂表达式的值及每个参与变量的值的程序。预估程序结果,然后与实验结果对比,从而深入理解短路原则及表达式的运算规律。
【问题】ppt中的程序有哪些错误
【实践】基于强制类型范围缩放数据处理技术的成绩分档程序的设计与实现
授课阶段总结
本节内容以实践为主,以当前所学的知识点,学生可以组织起一个逻辑上相对完整的程序,所以本小节以程序设计思维的训练为重点内容。首先,引导学生设计一个可以进行人机交互的界面—编写一个计算器的菜单,通过选择进行计算,把第一章的计算语句copy到适当的位置(增量开发)。然后,运用本章的知识点,设计具有一定的容错能力和设计技巧(强制类型转换与归一化处理)的学生成绩分档程序。两个例子都用到了本章所介绍的if和switch嵌套句型。
2.4 应用实例(1学时)
教学内容
(1)计算器程序设计。
(2)强制类型转换。首先讲解数据类型之间的转换规则,然后讲解转换的方法及用途。
(3)学生成绩档案管理—成绩等级划分。
讲解思路
(1)本小节主讲设计思想,所以每一个例题都必须有流程图来表达设计思想,通过讲解流程图帮学生梳理思路。然后,把对编程实现时用到技巧及难点进行讲解。
(2)掌握switch多路选择语句,在解决问题时,能够正确选择switch和if语句。
(3)掌握选择语句的流程图的算法描述方法
重点:if选择结构和switch选择结构。

《数据结构(C语言版)》电子教案第2章

《数据结构(C语言版)》电子教案第2章

数据元素,返回一特殊值(例如0),表示查找失败。
(5) 插入元素Inselem (L,i,x) 在线性表L的第 i 个位置上插入一个值为 x 的新元素,这样 使原序号为 i , i+1, ..., n 的数据元素的序号变为 i+1,i+2, ..., n+1,要求1≤i≤Getlen(L)+1,插入后原表长增1。 (6) 删除元素Delelem(L,i) 在线性表L中删除序号为i的数据元素,删除后使序号为 i+1, i+2,..., n 的元素变为序号i, i+1,...,n-1,要求1≤i≤Getlen(L), 删除后表长减1。
typedef int ElemType //在实际应用中,将ElemType定义成实际类型 typedef struct{ ElemType data[MaxLen]; //定义存储表中元素的数组 int length; //线性表的实际长度 }sqList; sqList L; //定义表结构的变量
E in
2012-9-12

i 1
n 1
p i ( n i 1)
1 n 1

i 1
n 1
( n i 1)
n 2
18
由此可以看出,在线性表上做插入操作需要移动表中一 半的数据元素,当n较大时,算法的效率是比较低的,所以 在线性表上进行插入操作的时间复杂度为O(n)。 6.顺序表的删除运算Delelem(L,i)的实现 顺序表的删除运算是指将表中第 i 个元素从线性表中去
i+1。
线性表是一种典型的线性结构。 数据的运算是定义在逻辑结构上的,而运算的具体实现则 是在存储结构上进行的。
2012-9-12

教材原教案(谭浩强C)第2章

教材原教案(谭浩强C)第2章

执行时输出 66 i和j被指定为整型变量。但在第5和第6行中,将字符′A′和′B′分别赋给i和j,它的作用相当于以下两个赋值语句: i=65;j=66; 因为′A′和′B′的ASCII码为65和66。在程序的第5和第6行是把65和66直接存放到i和j的内存单元中。因此输出65和66。 可以看到:在一定条件下,字符型数据和整型数据是可以通用的。但是应注意字符数据只占一个字节,它只能存放0~255范围内的整数。
说明: (1) 整型数据分为长整型(long int)、一般整型(int)和短整型(short int)。在int前面加long和short分别表示长整型和短整型。 (2) 整型数据的存储方式为按二进制数形式存储,例如十进制整数85的二进制形式为1010101,则在内存中的存储形式如图2.1所示。 图2.1

一个整型常量可以用3种不同的方式表示:
十进制整数。如1357,-432,0等。在一个整型常量后面加一个字母l或L,则认为是long int型常量。例如123L,421L,0L等,这往往用于函数调用中。如果函数的形参为long int,则要求实参也为long int型,此时用123作实参不行,而要用123L作实参。
第2章 数据类型与表达式
C++的数据类型 常量 变量 C++的运算符 算术运算符与算术表达式 赋值运算符与赋值表达式 逗号运算符与逗号表达式
C++的数据类型
计算机处理的对象是数据,而数据是以某种特定的形式存在的(例如整数、浮点数、字符等形式)。不同的数据之间往往还存在某些联系(例如由若干个整数组成一个整数数组)。数据结构指的是数据的组织形式。例如,数组就是一种数据结构。不同的计算机语言所允许使用的数据结构是不同的。处理同一类问题,如果数据结构不同,算法也会不同。例如,对10个整数排序和对包含10个元素的整型数组排序的算法是不同的。 C++可以使用的数据类型如下:

C语言第2章讲稿

C语言第2章讲稿

第2章数据类型与表达式本章要求:(1)C语言的数据类型;(2)常量和变量;(3)整型数据;(4)实型数据;(5)字符型数据;(6)变量赋初值;(7)各类数值型数据间的混合运算;(8)算术、赋值和逗号运算符及其表达式。

教学重点:常量、变量和表达式教学难点:数据类型、表达式教学方法:采用多媒体教学的方法进行讲授,学生在教师指导下通过计算机进行操作练习。

课时数:8(讲授4节课,上机练习4节课)2.1 C语言的数据类型程序、算法处理的对象是数据。

数据以某种特定的形式存在(如整数、实数、字符),而且不同的数据还存在某些联系(如由若干整数构成的数组)。

数据结构就是指数据的组织形式(逻辑结构、物理结构)。

处理同样的问题如果数据结构不同,算法也不同,应当综合考虑算法和数据结构、选择最佳的数据结构和算法。

C语言的数据结构是以数据类型的形式体现。

也就是说C语言中数据是有类型的,数据的类型简称数据类型。

例如,整型数据、实型数据、整型数组类型、字符数组类型(字符串)分别代表我们常说的整数、实数、数列、字符串。

C语言的数据类型:注意:1、不同的数据类型有不同的取值范围。

如有符号整数取值范围-32768~32767,浮点数-3.4e-38~3.4e38。

2、不同的数据类型有不同的操作。

如整型数可以取余操作,实型数据却不行;整型、实型数据可以有加法,字符数组不行。

3、不同的数据类型即使有相同的操作有时含义也不同,如指针数据自增1与整数自增1含义是不同的。

4、不同的数据类型对计算机可能出现的错误不同。

如整型数的溢出错误,浮点数的精度的丢失(有效数字位数不够)。

5、C语言的数据类型可以构造复杂的数据结构。

如使用结构体数组可以构造线性表。

使用指针类型、结构体类型可以构造线性链表(栈、队列)、树、图。

(在《数据结构》课程介绍)6、C语言中的数据有变量与常量,它们分别属于上述这些类型。

2.2 常量与变量2.2.1 常量在程序的运行过程中,其值不能改变的量称为常量。

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》第一章教案设计【教学目标】1. 理解C语言的发展历程和特点。

2. 掌握C语言的基本语法和结构。

3. 能够编写简单的C语言程序。

【教学内容】1. C语言的发展历程和特点。

2. C语言的基本语法和结构。

3. 简单的C语言程序编写。

【教学步骤】1. 引入C语言的发展历程和特点,让学生了解C语言的重要性和应用领域。

2. 讲解C语言的基本语法和结构,包括变量、数据类型、运算符等。

3. 通过实例讲解如何编写简单的C语言程序,让学生掌握基本的程序结构。

【教学评价】1. 学生能够描述C语言的发展历程和特点。

2. 学生能够掌握C语言的基本语法和结构。

3. 学生能够编写简单的C语言程序。

《C语言程序设计教程》第二章教案设计【教学目标】1. 掌握C语言的变量和数据类型。

2. 理解C语言的运算符和表达式。

3. 能够进行基本的数学运算和逻辑运算。

1. C语言的变量和数据类型。

2. C语言的运算符和表达式。

3. C语言的基本数学运算和逻辑运算。

【教学步骤】1. 讲解C语言的变量和数据类型,让学生掌握如何声明和使用变量。

2. 讲解C语言的运算符和表达式,让学生了解不同运算符的使用方法和优先级。

3. 通过实例讲解如何进行基本的数学运算和逻辑运算,让学生掌握运算符的实际应用。

【教学评价】1. 学生能够正确声明和使用变量。

2. 学生能够理解和使用不同的运算符。

3. 学生能够进行基本的数学运算和逻辑运算。

《C语言程序设计教程》第三章教案设计【教学目标】1. 掌握C语言的控制语句。

2. 理解C语言的条件语句。

3. 能够编写简单的循环程序。

【教学内容】1. C语言的控制语句。

2. C语言的条件语句。

3. C语言的循环语句。

1. 讲解C语言的控制语句,让学生了解如何进行跳转和分支。

2. 讲解C语言的条件语句,让学生掌握如何根据条件进行分支。

3. 通过实例讲解如何使用循环语句编写循环程序,让学生掌握循环的使用方法和退出条件。

《C语言编程基础》电子教案

《C语言编程基础》电子教案

《C语言编程基础》电子教案第一章:C语言概述1.1 C语言的历史与发展1.2 C语言的特点1.3 C语言的应用领域1.4 开发环境搭建第二章:C语言基础语法2.1 数据类型2.1.1 整型2.1.2 浮点型2.1.3 字符型2.2 变量与常量2.2.1 变量的声明与初始化2.2.2 常量的定义2.3 运算符与表达式2.3.1 算数运算符2.3.2 关系运算符2.3.3 逻辑运算符2.3.4 赋值运算符2.3.5 其他运算符2.4 输入输出函数2.4.1 标准输入输出函数2.4.2 格式化输入输出函数第三章:控制语句3.1 顺序结构3.2 选择结构3.2.1 if语句3.2.2 switch语句3.3 循环结构3.3.1 while循环3.3.2 do-while循环3.3.3 for循环3.3.4 循环控制语句第四章:函数与指针4.1 函数的定义与调用4.1.1 函数的声明与定义4.1.2 函数的参数传递4.1.3 函数的返回值4.2 指针的基本概念4.2.1 指针的声明与赋值4.2.2 指针与数组4.2.3 指针与函数4.2.4 指针与动态内存分配第五章:数组与字符串5.1 一维数组5.1.1 数组的声明与初始化5.1.2 数组的访问与遍历5.2 二维数组5.2.1 二维数组的声明与初始化5.2.2 二维数组的访问与遍历5.3 字符串的基本操作5.3.1 字符串的声明与初始化5.3.2 字符串的长度计算5.3.3 字符串的复制与连接5.3.4 字符串的比较与搜索第六章:结构体与联合体6.1 结构体的定义与使用6.1.1 结构体的声明6.1.2 结构体的初始化6.1.3 结构体数组6.1.4 结构体指针6.2 联合体的定义与使用6.2.1 联合体的声明6.2.2 联合体的初始化6.2.3 联合体成员的访问6.3 枚举类型6.3.1 枚举类型的声明6.3.2 枚举类型的使用第七章:文件操作7.1 文件概述7.1.1 文件的概念7.1.2 文件类型7.1.3 文件操作函数7.2 文件的打开与关闭7.2.1 文件的打开7.2.2 文件的关闭7.3 文件的读写操作7.3.1 文件的读取7.3.2 文件的写入7.4 文件的定位与查找7.4.1 文件的定位7.4.2 文件的查找第八章:指针高级应用8.1 指针数组8.1.1 指针数组的声明8.1.2 指针数组的应用8.2 数组指针8.2.1 数组指针的声明8.2.2 数组指针的应用8.3 函数指针8.3.1 函数指针的声明8.3.2 函数指针的应用8.4 指针与动态内存分配8.4.1 动态内存分配的概念8.4.2 动态内存分配的函数8.4.3 动态内存分配的应用第九章:预处理指令9.1 预处理概述9.1.1 预处理的概念9.1.2 预处理的作用9.2 预处理指令9.2.1 文件包含指令9.2.2 宏定义指令9.2.3 条件编译指令9.3 预处理器的使用9.3.1 预处理器的工作流程9.3.2 预处理器的高级应用第十章:C语言编程实例10.1 实例一:计算器程序10.1.1 功能需求10.1.2 程序设计10.1.3 程序调试与测试10.2 实例二:图书管理系统10.2.1 功能需求10.2.2 程序设计10.2.3 程序调试与测试10.3 实例三:简单的游戏程序10.3.1 功能需求10.3.2 程序设计10.3.3 程序调试与测试重点和难点解析重点一:C语言的特点和应用领域解析:C语言作为一种高级编程语言,具有高效、灵活、可移植性好等特点。

C语言教案2-基础

C语言教案2-基础

用标识符代表一个常量,如:ALP
转义字符表
字符形式 \n \t \v \b \r \f \\ \’ \” \0 \ddd \xhh 含 义
回车换行(光标跳到下一行的第一列) 横向制表(相当于Tab键,每个Tab 区8列) 竖向制表 (不起作用) 退格(相当于Back Space键) 回车(光标跳到本行的第一列) 换页 (不起作用) 反斜杠 单引号 双引号 空(Null)字符串结束标志 1到3位八进制数所代表的字符,例:\046 代表& 1到2位十六进制数所代表的字符 例:\x40 代表@
逻辑表达式的运算对象一般是关系表达式,也可以是算 术表达式或逻辑表达式。 &&和||是短路运算符号。
赋值运算符和赋值表达式
赋值运算符 = += -= *= /= %= 含 义 计算表达式的值,并存入变量所对应的存储单元中 和赋值 差赋值 积赋值 商赋值 模赋值 如b+=5 c-=8 a*=y+6 d/=x p%=2 等价于 b=b+5 c=c-8 a=a*(y+明后使用。 变量说明的一般格式:
<类型说明符> <变量名> [,<变量名>]; 例:int x,y;
算术运算符和算术表达式
双目运算符 + * / % 含义 加法 减法 乘法 除法 求余(取模) 单目运算符 + ++ -含义 正号 负号 前自增、后自增 前自减、后自减
注意:
除法运算符/,当被除数和除数都是整数时,商只取整数部分,舍弃小数部分。 例如 7/3=2 1/2=0 而7%3=1 1%2=1 乘法写成 * ,切不能省略 ++和--是C语言特有的,只能用于变量。如:++i i++ --j j--

c语言教案第2章

c语言教案第2章
查看运行结果,并了解运算方法,了解赋值号的使用。
引导学生初步了解运算符的分类及运算的优先级,并注意在后面的编程中合理应用。
案例思考
1、输入三角形三边的边长,判断能否构成三角形。
作业
用scanf语句从键盘输入圆柱半径和高,求出圆柱表面积和体积(输出计算结果,输出计算结果时要有适当的文字说明,并保留小数点后两位有效数字)。
课题:第2章C语言简单程序设计(3)
教学目标
1、能够根据给定条件写出正确的条件表达式。2、掌握if语句的格式及使用方法。3、正确使用嵌套的if语句实现分支。
教学重点、难点
1、了解关系表达式和逻辑运算符的使用。2、在程序中正确使用if语句。3、使用嵌套的if语句时能够注意正确的嵌套顺序。4、形成正确的程序书写风格,5、能够读懂N-S图并根据题意画出正确的N-S图。
讲授新课
案例:从键盘输入学生的成绩,判断该成绩是否合格。先分析案例目标,并画出如下N-S图:输入学生的成绩该成绩大于是等于60吗?否给出提示:该成绩合格给出提示:该成绩不合格源程序如下:#include <stdio.h> main() { int score; printf("请输入学生的成绩:"); scanf(&score); if(score>=60) printf("该学生成绩合格。\n"); else printf("该学生成绩不合格。\n"); }案例分析1.该案例实现的是判断一个学生成绩的合格与否,它可以与后面的循环语句结合起来实现对一批学生成绩的合格与否进行判断及统计,并得出学生成绩的合格率。2.用三目运算符虽然可以实现一些简单的判断,但根据不同的判断结果只能给某些变量赋指定的值。它无法实现根据判断结果的不同执行不同的操作。因此,在C语言程序设计中更多的是用if语句来实现分支。例2.9用if语句改写例2.8。/*源程序:案例2_3.c*/#include <stdio.h> main() { float a,b,c; printf("请输入三角形的边长a,b,c:"); scanf("%f %f %f",&a,&b,&c); if ((a+b>c)&(b+c>a)&(a+c>b)) printf("这是一个三角形\n"); else printf("这不是一个三角形\n"); }例2.10在2.1.4的例中输入的选项只能是小写字母,如果是大写字母则不认可。修改程序,使输入选项时无需区别字母的大小写。/*源程序:2_3_1.c*/#include <stdio.h> #include <ctype.h> main() { char n; printf("简单人机对话界面的实现\n"); printf("a-----学生信息库建立\n"); printf("b-----学生信息查询\n"); printf("c-----学生信息输出\n"); printf("请输入你的选择:"); n=getchar(); if isupper(n) n=tolower(n); printf("你的选择是第%c项功能\n",n); }例2.13用嵌套的if语句实现对所选的不同菜单项的执行。/*源程序:2_3_4.c*/#include <stdio.h> main() { char n; printf("简单人机对话界面的实现\n"); printf("a-----学生信息库建立\n"); printf("b-----学生信息查询\n"); printf("c-----学生信息输出\n"); printf("请输入你的选择:"); n=getchar(); if ((n=='A')||(n=='a')) printf("你将要执行的是建立学生信息库功能。\n"); else if ((n=='B')||(n=='b')) printf("你将要执行的是查询学生信息功能。\n"); else if ((n=='C')||(n=='c')) printf("你将要执行的是输出学生信息功能。\n"); else printf("你输入的选项是不正确的!\n"); }

C教案2

C教案2

第 2 教学单元(专题)教案\ddd 3位八进制数(octal number)\xhh 2位十六进制数(hexadecimal number)符号常量在使用前必须先定义,一般形式为:#define 标识符常量示例:#include <stdio.h>#define PRICE 30main (){intnum, total;num=10;total=num*PRICE;printf( "total=%d \n", total);}Printf函数中用到的格式字符:%d----输出一个有符号的整数;%f----输出一个浮点数;%c----输出一个字符;%o---输出一个无符号的八进制整数%x----输出一个无符号的十六进制的整数%u----不带符号的十进制整数;%S----输出字符串;%e---输出一个浮点数,科学计数法;2、变量在程序执行过程中,其值可变的量称为变量。

一个变量应该有名字,在内存中占据一定的存储单元。

变量定义必须放在变量使用之前,一般放在函数体的开头部分。

3、常变量用const关键字定义常变量例: constint a=3表示定义一个整型变量,指定其值为3,而且在变量存在期间其值不能改变。

常变量与常量的区别:常变量有名字、类型,占存储单元,不允许修改其值常量是没有名字的不变量2.2 数据类型数据时程序处理的对象。

类型是对数据分配存储单元的安排,包括存储单元长度及数据的存储形式。

C语言数据类型分为:基本数据类型、构造数据类型、指针类型、空类型4大类。

基本数据类型:其值不能再分解为其他类型。

构造数据类型:其值可以分解成若干个“成员”或“元素”。

指针类型:其值用来表示某个变量在内存储器中的地址。

空类型:函数调用后不需要向调用者返回函数值,这种函数可以定义为空类型。

一、整型1、基本类型(1)基本整型 int用十进制方式写出一个整数就是普通数字字符组成的一个连续序列。

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案完整版教学设计第一章:C语言概述1.1 教学目标让学生了解C语言的历史和发展背景让学生掌握C语言的特点和优势让学生了解C语言的应用领域1.2 教学内容C语言的历史和发展背景C语言的特点和优势C语言的应用领域1.3 教学方法讲解法:讲解C语言的历史和发展背景,讲解C语言的特点和优势讨论法:引导学生讨论C语言的应用领域1.4 教学评价课后作业:让学生编写简单的C语言程序,了解C语言的基本语法第二章:C语言基础语法2.1 教学目标让学生掌握C语言的基本语法,包括数据类型、运算符、表达式等让学生了解C语言的控制语句,包括条件语句、循环语句等2.2 教学内容数据类型、变量和常量运算符和表达式控制语句:条件语句、循环语句2.3 教学方法讲解法:讲解数据类型、变量和常量的定义和使用,讲解运算符和表达式的使用,讲解条件语句和循环语句的语法和功能编程实践:让学生编写C语言程序,运用所学的控制语句2.4 教学评价课后作业:让学生编写C语言程序,运用所学的数据类型、运算符和控制语句第三章:函数与编译预处理3.1 教学目标让学生掌握C语言的函数概念和定义方法让学生了解C语言的编译预处理指令3.2 教学内容函数的定义和声明编译预处理指令:include、define、宏定义和宏调用3.3 教学方法讲解法:讲解函数的定义和声明的语法和功能,讲解编译预处理指令的使用方法编程实践:让学生编写C语言程序,运用所学的函数和编译预处理指令3.4 教学评价课后作业:让学生编写C语言程序,运用所学的函数和编译预处理指令第四章:数组和字符串4.1 教学目标让学生掌握C语言的数组和字符串的概念和使用方法4.2 教学内容一维数组的定义和使用字符串的定义和使用4.3 教学方法讲解法:讲解一维数组的定义和使用的语法和功能,讲解字符串的定义和使用的语法和功能编程实践:让学生编写C语言程序,运用所学的数组和字符串4.4 教学评价课后作业:让学生编写C语言程序,运用所学的数组和字符串第五章:指针5.1 教学目标让学生掌握C语言的指针的概念和使用方法5.2 教学内容指针的概念和声明指针的赋值和使用指针与数组指针与函数5.3 教学方法讲解法:讲解指针的概念和声明的语法和功能,讲解指针的赋值和使用的语法和功能,讲解指针与数组和指针与函数的关系编程实践:让学生编写C语言程序,运用所学的指针知识5.4 教学评价课后作业:让学生编写C语言程序,运用所学的指针知识第六章:结构体、联合体和枚举6.1 教学目标让学生掌握C语言中的结构体、联合体和枚举的概念和使用方法。

C程序设计教案(第2章第1次)

C程序设计教案(第2章第1次)
周次:第二周课次:第一课授课时间:年月日
一、章节内容:
第2章算法及其描述
1)算法的概念
2)算法举例
3)算法的特征
4)算法的表示
5)结构化程序设计方法
二、教学目标:
通过本章的学习,要求能理解算法的概念和算法的特性,能熟练使用程序流程图或N-S流程图描述程序的设计步骤和方法,学习程序设计的算法及其描述之后,为编写高质量的程序奠定基础。
使用三种基本结构设计算法。使功能尽量独立化。提高算法的可靠性和可维护性。
七、作业安排:
1)预习第三章的内容
2)第二章习题1、2、3
算法就是为解决一个具体的问题而使用的确定的、有限的方法和步骤。
在选择算法的描述方法时,要注意以下几个方面:
1)遵循行业惯例和软件人员使用的普遍性,使其易于学习和交流。
2)易于表达逻辑条件及其相应的处理,能有效地表达各种数据类型和数据结构。使算法结构清晰,思路明了,无他义性。
3)便于转换成机器能接受的代码,易于进行逻辑验证和便于修改。
【例2-3】输入10个整数,求出其中的最大值。(C语言)
# include < stdio.h >
void main ( )
{int max = -32768, i, x = 0;
for ( i = 0; i < 10 ; i ++)
{scanf ( "%d", &x );
if ( x > max )max Nhomakorabea= x;}
printf ( "最大值max = %d\n", max );}
2.3算法的特性
(1)有穷性。
(2)确定性。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.4.2 设置断点
• 断点是为了方便程序员在调试过程中观察程序内部各状态 而专门设置的一种调试手段。也就是在调试模式下运行程 序过程中,当程序语句运行到设置的断点后,暂停程序运 行,但是程序当时的内存、寄存器、上下文环境等数据都 被保持,并且在源代码编辑器中指示出当前停留在代码的 哪一行。然后程序员就可以不慌不忙利用调试器查看程序 内部状态。 • 注意:要想调试程序,必须设置断点后,程序才能被中断 回到调试器中,才能对程序进行各状态查询。 • 在LCC中设置断点,首先将光标移到需要设置断点的代码行 上,然后按键“F2”,或者单击菜单“编译/设置断点”。 断点设置后,可以在源代码编辑器中发现些变化。在LCC编 程环境中,就是代码行全部高亮。如中矩形框住的那行就 是一个断点。再次按键“F2”或者单击菜单“编译/设置断 点”,即可取消断点。
2.2.9 开始编辑代码
• 设置完毕,终于可以输入代码了。 • 注意:编辑代码,涉及到光标移动,复制粘贴, 块选择,添加代码注释,快速移动等等功能,请 读者自行熟悉了解LCC提供的编辑器的功能。 • 当代码输入完后,如所示。
2.3 编译运行——欣赏您的杰作
• 代码输入完毕后,请单击“编译/构建”菜单。 LCC开始编译链接。成功后如。如果失败,请对照 检查。注意不要遗漏分号“;”。 • 注:程序中所有分号都是英文标点,不是汉语中 的分号。 • 编译成功后,单击“编译/执行”菜单。程序开始 运行,跳出一个控制台窗口,如所示。
2.4.3 调试运行
• 设置完断点后,可以通过按键“F5”在调试器中 启动读者编写的程序。程序启动后,当运行到断 点代码行后,程序暂停,如所示
2.5 小结
• 本章带领读者简单认识了LCC编程环境,主要是新 建工程时的步骤及其设置,带领着读者一步一步 从新建工程开始,每步的设置及设置项的意义, 到编译链接及运行调试,经历了编程开发的大部 分过程。LCC编译器的使用请自行参考相关文章, 本书不做更多说明。程序员的工作场地或者工具 就是自己的编程环境了。如果能更快更有效率的 使用这个工具,就能更快的生产出产品来。请读 者花些时间来熟悉了解LCC——工欲善其事,必先in32
• 基于以下几个方面,笔者推荐使用LCC-Win32作为读者学习C 语言的编程环境: • (1)TC2是16位机器上的开发环境,与现在的平台格格不 入,除了学习之外,很少有人拿它开发程序。并且在XP平 台上,其界面比较简单丑陋,更重要的是调试运行有些问 题。在Vista操作系统上,干脆就不能允许。如果读者的操 作系统是Win98或者古老的DOS系统,则可以使用TC2。 • (2)VC6或者 2003都比较庞大,并且价格不菲,为 了学习C语言购买,代价太大。虽然微软免费提供命令行的 Toolkit,但是设置又比较麻烦。 • (3)Dev-C++也是一个比较不错的选择,免费且开源。但 是Dev-C++主要还是开发C++程序。虽然C源代码也可以编译, 但是C毕竟不同于C++,如果不小心使用了C++的语法,而又 和C的意义不一样,将会迷惑读者。 • (4)最终考虑使用LCC-Win32。
2.4.1 debug的由来
• Bug的英文意思是臭虫,被引入到计算机领域,需 要追溯到第一代计算机时代。当时的计算机是由 许多真空管构成,需要利用大量的电力使真空管 发光。某天,一只虫子爬进了其中的某只真空管 中,计算机于是停止工作了。研究人员耗费很长 时间,找来找去,一处地方一处地方排查,最后 终于发现了这个虫子,取出虫子后,计算机就恢 复了正常。于是bug这个词语就在计算机领域中代 表了隐藏的错误、缺陷、漏洞或者问题。把排除 错误的过程称为debug。
2.2.6 编译器设置
• 关闭“源文件-工程”对话框后,接着弹出“编译 器设置”对话框。如所示。
2.2.7 链接器设置
• 关闭“编译器设置”对话框后,接着弹出“链接 器设置”对话框,如所示。
2.2.8 调试器设置
• 关闭“链接器设置”对话框后,接着弹出“调试 器设置”对话框。如所示。 • 调试器是方便调试源代码的程序。能够一步一步 的按照源代码的顺序执行每一句代码。并且可以 看见源程序中定义的变量的值。软件工程师将会 耗费大半时间在调试器的跟踪调试上面。
第2章 跟我写Hello World——由您创建的第一个程序
• 可能有读者已经等不及了,跃跃欲试想一展身手 创建一个自己的程序出来。在本章,笔者将带领 读者一起,一步一步的来创建一个没有实际意义, 但是却极具教学意义的程序——HelloWorld.exe。 在初学一门编程语言的时候,写一个“Hello world!”程序是最常见的入门方法。通过写一个 成功的“Hello world!”,可以实践这门语言最 基本的语法特性,还可以带给自己成就感,可谓 一举两得。
2.4
查看代码如何一步一步被执行——调试排错(debug)
• 程序员的主要工作一是编写代码。编写代码从无 到有,需要逐个字符输入,工作量显然比较大。 但实际上,编码容易调试难。代码编写完毕后, 程序员将会花费大量时间进行错误或者问题的排 查、修改。在电脑系统程序中,把隐藏着的一些 未被发现的缺陷、问题或者错误,称为“bug”。
2.1 目标:自己动手创建一个可以运行的程序
• 就像小学生解应用题一样,在答题之前,必须先了解题目给出的条件, 然后明确题目的问题,最后才是解题。开发软件也需要这么样的过程, 必须先清楚用户的需求,根据需求来进行设计和开发,不遗漏需求, 也不能有超出需求的功能。 本章的目标就是创建一个可以运行的程序,并输出一句话:“Hello World!”。如果读者看见了这个要求后就卷起袖子光着膀子准备开 工写代码,则犯了软件开发的大忌。这个需求其实很不明确,并没有 规定如何输出这句话。在实际的软件开发工作中,类似不明确的需求 比比皆是,所以动手写代码前,一定要非常明确软件的需求。 很多曾经有过语言学习经历的读者看见上面的需求后,第一印象,认 为就是在控制台中打印出这句话来,然后就开始思索如何设计开发了。 但是假设用户的需求是用人声读出这句话呢?发声也是输出啊!或者 用户的需求是在一个窗口界面上输出这句话呢?更有甚者,要求这句 话的字体、颜色、大小符合规定。那么只是在控制台中打印一句 “Hello World”的程序,显然是不符合需求的。所以,在开发软件 前,进行大量时间的实际需求调研是非常有必要的。否则可能花费大 量时间开发出来的东西没有任何价值。
2.2.2 启动LCC-Win32
• LCC-Win32安装后,在“开始”菜单中就可以启动 LCC-Win32,后面简称为LCC。启动后的界面如。 可以发现界面简单,功能也很多:
2.2.3 新建Hello World工程
• 单击“文件/新建/工程”菜单,在弹出的“请输 入工程名称”对话框里输入工程名: “HelloWorld”并单击“确定”按钮关闭对话框。 如所示。
2.2.4 定义新工程
• 关闭“请输入工程名称”对话框后,接着就弹出 一个新的对话框“定义新工程”对话框,如所示。
2.2.5 添加源代码到工程
• 单击“否”按钮关闭“信息”对话框后,接着弹 出对话框“添加源代码到工程”,截图省略,这 是一个标准的打开文件对话框,在文件名编辑框 中输入“2.1-HelloWorld.c”,单击“打开”按 钮。然后弹出“源文件 – 工程:”对话框,如, 列出该工程所有已经添加的源代码文件。本示例 只有一个源文件,单击“确认”按钮。


2.2 认识LCC-Win32开发环境
• 笔者猜想大多数读者的操作系统都是Windows平台, 很少有使用DOS平台的了。基本上Windows 98操作 系统都不再使用,大多数都是使用Windows XP。 至于使用Linux操作系统的读者,笔者猜想其编程 能力已经不需要笔者去建议使用何种编程环境了。 所以为了照顾大多数读者,采用什么编程环境作 为教学示例,笔者作了很久的思考。最终笔者选 择了LCC-Win32。
相关文档
最新文档