当前位置:首页 >> 其它课程 >>

第二章 顺序结构程序设计教案


项 目 名 称 实 训 安 排

第二章 顺序结构程序设计 实 训 课 时 实 训 方 法 2 上机 实 训 时 间 实 训 场 地 2013∕4∕3 101 机房

实 训 目 的

1、熟悉在 Visual C++ 6.0 环境中调试 C 程序的步骤和方法。 2、熟悉 C 程序调试 的一般方法。 3、掌握 C 语言中

各种运算符的运算规则和表达式的求值规则。 4、掌 握格式化输入/输出函数和字符输入/输出函数的使用方法。 5、熟悉顺序结构程序设计 的方法 掌握 Printf 和 scanf 函数的使用

实 训 内 容 支 项 的 识 撑 目 知 点

装 订 线

一、实验准备实验准备实验准备实验准备 1、C 语言程序的上机操作语言程序的上机操作语言程序的上机操作语言程序的上机操作 C 是编译型语言,设计好一个 C 源程序后,需要经过编译生成目标文件(扩展名.obj)、连接生 成可执行文件(扩展名.exe),然后执行。一个 C 程序的具体开发步骤如下: (1) 启动启动启 动启动 VC++ 6.0: “开始”?“程序”?“Microsoft Visual C++ 6.0” (2) 新建文件新建文 件新建文件新建文件: “文件”?“新建”?在“新建”对话框中选择“文件”标签?列表框 中选“C++ Source File” ,在右边指定文件名和保存位置。 (3) 编辑编辑编辑编辑:录入或 修改源程序并保存(Ctrl+S) (4) 调试运行调试运行调试运行调试运行:编译(Ctrl+F7)? 连接(F7)?运行(Ctrl+F5) ,若有错需修改源程序后再调试程序 (5) 关闭工作区关闭工作 区关闭工作区关闭工作区: “文件”?“关闭工作空间” ,一个程序调试结束后需关闭当前工作 空间,再从第(2)步开始下一个程序的调试 2、、 程序的调试程序的调试程序的调试程序的 、、C 调试 调试即是在源程序中查找错误并修改错误的过程。程序的错误一般分为两类:语法错误 和逻辑错误语法错误和逻辑错误语法错误和逻辑错误语法错误和逻辑错误。 ① 语法错误语法 错误语法错误语法错误:指不符合 C 语言语法规则而产生的错误。语法错误系统能检测出来并 告之原因及位置,设计者可参考修改。 ② 逻辑错误逻辑错误逻辑错误逻辑错误:指程序的运 行结果与预期的结果不符而产生的错误。这类错误拔除难度较大,一般需祥细分析算法或在程 序运行过程中设置断点、追踪程序的运行来纠错。 (1)语法错误调试案例(建立程序名为 ex1-1.c) # include <stdio.h> void main() { int i=0 //错误原因:语句结束位置缺分号 printf("i=%d\n",i); } 调试并查找以上程序的语法错误并分 析原因并改正。(2) 逻辑错误调试案例 (建立程序名为 ex1-2.c) # include <stdio.h> void main() { int n; double sum=0; for(n=1;sum<10;n++) sum=sum+1/n; //错误原因:整 数相除结果取整

装 订 线

该程序无语法错误,但运行后便进入死循环,即有逻辑错误。 方法一方法一方法一 方法一:: ::使程序执行到光标所在行暂停使程序执行到光标所在行暂停使程序执行到光标 所在行暂停使程序执行到光标所在行暂停,,步骤如下步骤如下步骤如下步骤如下:: ① ,, :: 在需要暂停的行 “sum=sum+1/n;” 上单击,定位光标 ② “组建”?“开始调试”?“Run to Cursor” ,或按 Ctrl+F10。 ③ 在底部左窗格内观察程序中相关变量的当前值 ④ 在底部 右窗格中输入观察对象 1/n,观察其当前值 ⑤ “调试”?“Step Into” ,或按 F11,单步跟 踪执行, 并观察变量及表达式的变化情况, 从而判断是否存在错误并纠正 ⑥ 结束调试: “调 试”?“Stop Debugging” 方法二方法二方法二方法二:: ::设置断点跟踪程序设置断点跟 踪程序设置断点跟踪程序设置断点跟踪程序,, ,,步骤如下步骤如下步骤如下步骤如下:: :: ① 在需要暂停的行“sum=sum+1/n;”上定位光标 ② F9 或单击“编译微型条”工具栏中的 手形按钮,设置断点(断点行左侧有红色圆点标志) ③ F5 或“组建”?“开始调试”? “Go” ,使程序运行到断点处 ④ 在底部窗格中输入观察对象 ⑤ F5 或“调试”?“Go” , 使程序执行到下一断点处,并观察变量及表达式的变化 ⑥ “调试”?“Stop Debugging” , 结束调试 ⑦ 光标定位在断点行按 F9 或单击“编译微型条”工具栏上的手形按钮,取消断 点 (3)其他调试技术 如在程序中循环语句中添加输出观察变量的语句和暂停语句如 “getch();”观察变量的变化过程,待结果正确后再将其删除。 二、实验内容实验内容实验内容实验内容 1、数据类运算符和表达式的应用运算符和表达式的应用 (1)整型数据的溢出(建立程序文件名为 sy1-1.c) # include <stdio.h> void main() { short int a,b; a=32767; b=a+1; printf("a=%d,b=%d\n",a,b); } 程序运行结果:a=32767,b=-32768 原因:32767 是 short int 型数据的最大值,其二进制为(0111111111111111) ,在其上加 1 后 产生溢出,变成-32768 的补码,其二进制为(1000000000000000) 。整数在内存中以二进制 补码形式存放,运算时符号位也要参与运算。结论:使用整型数据应注意其表示范围,避免 产生溢出。 (2)浮点型数据的舍入误差(建立程序文件名为 sy1-2.c) # include <stdio.h> void main() { float a,b; a=123456.789e5; b=a+20; printf("a=%f\tb=%f\n",a,b); } } 程序运行结果:a=1345678848.000000 b=12345678868.000000 原因:理论分析 a 变量的值为 12345678900,b 的值经计算应为 12345678920,结果输出的 a 和 b 的值都不对,原因是 float 型数据的有效数字位数为 7 位,后几位数字都是不准确的。 结论: 应当避免将一个很大的数和一个很小的数直接相加或相减, 否则会 “丢失” 较小的数。 (3)字符型数据和整型数据的混合使用(建立程序文件名为 sy1-3.c)

# include <stdio.h> void main() { char c1,c2; c1=65; c2=66; printf("%c %c\n",c1,c2); } 程序运行结果:A B 原因:c1,c2 两个变量的类型为 char 型,在内存中分配 1B 的存储空间用于存放字符的 ASCII 码二进制,其存放的数据范围为 0~255。所以 c1=65,即是字符‘A’的 ASCII 十制 制值,c2=66 即是字符‘B’的 ASCII 十进制值,%c 是字符格式输出,即得 A B 扩展思考: ① 在上面程序的 printf 语句后增加语句“printf("%d %d\n",c1,c2);” ,程序的运 行结果是什么? 结果:A B 65 66 ② 在上面程序的 printf 语句后增加语句 “printf("%d %d\n",c1+32,c2+32);”程序的运行结果是什么? 结果: B , A 97 98 ③ 若 将“char c1,c2;”改为“int c1,c2;” ,程序的运行结果是什么?为什么? 结果:A B 因为在 可输出的字符范围内(0~255) ,用整型和用字符型作用相同。 ④ 若将“c1=65; c2=66;”改 为“c1=’A’; c2=’B’;” 程序的运行结果是什么?为什么? 结果:A B 因为字符型 , 数据在计算时必然转换为整型, 即其 ASCII 码值计算。⑤ 若将 “c1=65; c2=66;” “c1="A"; 改为 c2="B";” ,结果会怎么样? 结果:语法错误 因为字符变量只能存一个字符的 ASCII 码, 不能存放字符串。 ⑥ 若将“c1=65; c2=66;”改为“c1=321; c2=322;” 程序的运行结果是 , 什么?为什么? 结果:A B 因为大于 255 的整数存放在 1B 空间的字符型变量中,只能存 放其%256 后的数据,321%256=65,322%256=66,其结果等价。 (4)算术表达式的求值(建立程序文件名为 sy1-4.c) # include <stdio.h> void main() { int a,b; float x,y,r,s; a=7; x=2.5; y=4.7; r=x+a%3*(int)(x+y)%2/4; a=2; b=3; x=3.5; y=2.5; s=(float)(a+b)/2+(int)x%(int)y; printf("r=%.2f s=%.2f\n",r,s); } 结果:r=2.50 s=3.50 (5)自增、自减运算求值(建立程序文件名为 sy1-5.c) # include <stdio.h> void main() { int i,j,m,n; i=8,j=10; printf("%d %d\n",i++,++j); printf("%d %d\n",i,j);

printf("%d %d\n",-i++,-++j); printf("%d %d\n",i,j); } 结果:8 11 9 11 -9 -12 10 12 原因:printf("%d %d\n",i++,++j);输出 i 自增前的值和 j 自增后的值,即 8 11; printf("%d %d\n",i,j); 自 上 一 条 语 句 后 i,j 均 自 增 1 , 所 以 为 9 11 printf("%d %d\n",-i++,-++j);输出-(i++),-(++j),也是 i 自增前参与求负和输出,即是-9,然 后 i 值自加 1;j 自增后参与求负和输出,即是-12 printf("%d %d\n",i,j);自上一条语句后 i,j 的当前值为 10 12 四、实验要求: “实验内容”中的任务要求在实验课上完成,若未完成请在下次上课 前利用课外时间完成。


相关文章:
第二章 顺序结构程序设计教案
顺序结构程序设计教案顺序结构程序设计教案隐藏>> 项目名称实训安排 第二章 顺序结构程序设计 实训课时实训方法 2 上机 实训时间实训场地 2013∕4∕3 101 机房 实训...
顺序结构程序设计教案
4、感受顺序结构程序的作用。 过程与方法 体验顺序结构程序设计一、教学目标知识与技能 1、了解什么是变量及如何进行变量说明。 2、了解赋值语句格式及作用。 3、...
06 《C语言程序设计》教案 第三章 程序的控制结构(2)—顺序结构
《C 语言程序设计》课程教案表 授课题目 第三章 程序的控制结构(2)——顺序结构 教学目的和要求 1.掌握:格式输入、输出函数的调用。 2.熟悉:顺序结构程序设计...
《程序设计初步——顺序结构》教学设计
程序设计初步——顺序结构教学设计_其它课程_高中教育_教育专区。《程序设计...二、教学内容分析 本节课学习内容是初中教材第二册第二章第四节课内容。 本...
数据库顺序结构程序设计授课教案
课题 顺序结构程序设计(1)掌握顺序结构的程序设计方法 (2)能利用顺序结构的程序解决简单问题 (3)理解程序设计的顺序结构基本思想 周次 课时 2 1 学习目标 教学...
第二章 顺序结构程序设计
第二章 顺序结构程序设计 22 运行输入数据: s,t1,t2= 208 vb= vw= 8 13 运行输出结果: 21.00 5.00 再运行输入数据: s,t1,t2= vb= vw= 300 10 ...
第二章 顺序结构程序设计
第二章 顺序结构程序设计一、标准数据类型 1、实型(real) 实型有两种表示方法:小数表示法和指数表示法(科学表示法) 。 0 例: 1.25e0=1.25*10 =1.25 2 1....
3-顺序结构程序设计
第三章 顺序结构程序设计 3.1 顺序结构 3.2 输入与输出 课后作业 顺序结构和相应控件的应用 参考资料 注:本页为每次课教案首页 第 1 页 河北科技大学教案用纸...
第六课 顺序结构程序设计
第六课一、教学目标 1、知识与技能 顺序结构程序设计(二) 理解程序顺序结构的执行流程,掌握赋值语句和输入输出语句,能够编写简 单的顺序结构的程序,以解决生活...
更多相关标签:
顺序结构 教案 | 顺序结构程序设计 | c语言顺序结构程序 | vb顺序结构程序设计 | 顺序结构程序 | 顺序结构程序设计题 | 程序的顺序结构 | 顺序结构程序的特点 |