电气C实训指导书_第1页
电气C实训指导书_第2页
电气C实训指导书_第3页
电气C实训指导书_第4页
电气C实训指导书_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 C C 语言程序设计语言程序设计 实训指导书实训指导书 电气电气 指导老师 指导老师 2 2O11O11 12 15 12 15 2 C C 程序设计实训指导书程序设计实训指导书 适用于电气专业 适用于电气专业 C 程序设计 实训是 C 程序设计课程的一个重要环节 而且也是整个教学过程中理论联 系实际不可缺少的教学环节 为加强学生对于知识掌握的广泛性 应用性和动手能力 以及对 各有关先修课程的知识进行较为全面而综合的设计练习 必须搞好 C 程序设计实训 一 实训目标一 实训目标 强化 C 语言的各种知识 通过一系列实验 使学生获得 C 语言的相关知识及一定的实际操 作技能和用 C 编程的实践经验 进一步提高学生分析问题 解决问题的能力 以巩固和加深 所学的理论知识 为学生从事本行业相关工作打下比较坚实的基础 使学生获得一定的实际操 作技能和程序开发经验 进一步提高学生分析问题 解决问题的能力 增强实践技能 并培养 学生勇于动手 勤于动手 热爱本专业的思想 二 实训要求二 实训要求 C 实验应在计算机机房进行 通过合理选择实验题目 使学生应达到以下要求 本课题设计的基本要求 必须提交系统分析报告 包括系统的功能分析 系统的功能模块设计 程序设计的报告 包括程序的运行环境 开发环境 程序的详细设计 包括模块之间的关系 模块的功能 主要功能实现的程序段 时间够用情况可以尝试 系统的源程序 应带有详细的备注 时间够用情况可以尝试 要求学生在实训期间 做好实训日记 以及实训所得资料 内容的整理工作 实训结束时 写出实训报告并有实训作品 实训报告内容详略得当 要有程序及程序使用说明 实训要在机房中计算机上完成整个程序的调试 通过实训 对 C 课程的掌握上应使学生应 达到以下要求 1 熟悉 C 的开发环境 2 掌握 C 中的数据类型 变量 常量 表达式和运算符的用法 3 掌握 C 中顺序结构 选择结构 循环结构程序的编写 语句的实现 使学生养成良好 3 的编程习惯 培养分析问题 解决问题的能力 4 掌握 C 程序结构的概念与使用方法 5 掌握数组类型的使用方法 6 理解并掌握函数的概念和用法 7 掌握 C 编程的技巧 8 树立实事求是 认真工作的思想 培养严密的逻辑思维能力 三 实训内容三 实训内容 本次实训要求必须完成两类实训任务 1 学生对指定的 12 个实验项目进行验证与设计 2 学生从所给的 6 道实用题目中任意选择 5 个 自行进行编程实现 1 1 指定的实验项目验证与设计指定的实验项目验证与设计 对以下指定的对以下指定的 1212 个实验项目进行验证个实验项目进行验证 1 数据类型 运算符和表达式 一 实验目的 1 熟练表达式的表示方法 2 了解表达式的运行结果 二 实验内容和步骤 用 printf 函数来输入表达式运行结果 观察以下表达式的结果 xx x y x z 2 x x 2 x z x z 以上表达式的值 2 当 x 0 y 1 z 1 时 当 x 当 x 0 y 1 z 1 时 x scanf x y a x y 2 printf The average is a 调试无语法错误后 分别使用下列测试用例对上述程序进行测试 1 分析上述哪几组测试用例较好 通过测试 你发现程序有什么错误了吗 若有错误 请指 出错误原因 操作符 sizeof 用以测试一个数据或类型所占用的存储空间的字节数 请编写一个程 序 测试各基本数据类型所占用的存储空间大小 三 分析与讨论 如何正确地选用数据类型 提示 给合前面做过的两个实验及书本进行讨论总结 3 运行符与表达式 一 目的和要求 理解常用运行符的意义 掌握 语言表达式的运行规则 本实验可在学习了教材第 2 3 节后进行 二 实验内容和步骤 编写一个 语言程序 测试下列各表达式 5 i j i 1 j 1 i j i j i j i j 要求在各表达式中 i 和 j 都分别有相同的初值 在实验中注意下列问题 哪些表达式是错误的 为什么 理解 i i 的意义和优先级别 编写一个程序 测试常用的十个运算符的优先顺序 四 分析与讨论 分析总结运算符的优先级 6 4 输入与输出 一 目的和要求 掌握 语言程序输入 输出的方法和格式 本实验可在学习教材第二章后进行 二 实验内容与步骤 输入并编辑下面的程序 main int a b float c d long e f unsigned int u v char c1 c2 scanf d d a b scanf f f c d scanf ld ld e f scanf o o u v scanf c c c1 c2 printf n printf a 7d b 7d n printf c 10 2f d 10 2f n printf e 17ld f 17ld n printf u o d o n printf c1 c d c n 这个程序有语法错误吗 为什么 调试上述程序无语法错误后 用下面的测试数据 对程序进行测试 a 123 b 456 c 17 6 d 71837 65 e 70000 f u 62000 v 58765 c1 a c2 b 分析运行结果 特别注意输入 c1 c2 的值是什么 什么原因 7 将输入 e 和 f 的语句改为 scanf d d 再用上述测试数据测试并分析结果 将输入 u v 的语句改为 scanf d d 再用上述测试数据测试并分析结果 将输出 e f 的语句改为 printf e 17d f 17d n e f 再用上述测试数据测试并分析结果 将输出 u v 的语句改为 printf u u v u n u v 或 printf u d v d n u v 再用上述测试数据测试并分析结果 请读者自己修改程序和改变数据输入的形式 分析各种情况下的输入与输出 在 scanf c c 验证转义字符 n 与 r 的意义有何不同 三 分析与讨论 总结在 printf 函数中可以使用的各种格式指定符 并给出样例 总结在 printf 函数中可以使用的各转义字符及其功能 5 顺序程序结构程序设计 一 实验目的 1 进一步掌握 C 程序的编辑 编译 连接和运行的过程 2 熟悉顺序结构的程序设计方法 3 熟练使用 C 的各种表达式 4 熟练掌握输入 输出函数的使用 二 实验内容和步骤 1 输入 x y 编写程序求 z x y 的值 实验步骤与要求 1 程序中用 scanf 函数输入 x 和 y 的值 请分析以下两个语句 scanf f f x y 8 scanf f f 哪一个是正确的 分别运行之 分析程序运行结果 如果 scanf 函数改为 scanf f f 应该怎样输入数据 2 编写输入三角形的三边长 a b c 求三角形面积 area 的程序 实验步骤与要求 1 输入前要加提示语句 2 输出结果前要有必要的文字说明 3 输入一组数据 3 4 5 观察运算结果 4 输入另外一组数据 3 4 8 观察运算结果 分析这个运算结果是否有效 三 问题讨论 上机各个环节所出现的错误及解决的办法 9 6 选择结构 一 实验目的 了解条件与程序流程的关系 了解用不同的数据使程序的流程覆盖不同的语句 分支和路径 本实验应在学习教材第 3 2 节后进行 二 实验内容和步骤 题目 有如下程序段 if a 1 if a 2 x 1 x x 1 为了更容易明白程序的逻辑结构 我们用图 5 1 所示流程图来加以描述 a 1 a 1 b 1 x 2 a 3 b 0 x 1 a 2 b 1 x 4 a 2 b 1 x 1 a 1 b 0 x 2 10 a 2 b 1 x 1 a 3 b 0 x 2 三 分析讨论 1 用哪一组数据就可使程序中的每个处理语句都执行一次 为了找出程序中各条处 理语句中的错误 应该使用什么样的数据对程序进行测试 请上机验证自己的结论 2 用哪两组数据就可以使程序段中的每个分支都运行一次 这种情形与上面的讨论 有何不同 如果为了找出程序中积压分支中的错误 应该使用什么样的数据对程序进行测试 请上机验证自己的结论 3 用哪两组数据就可以把判定框中的每个条件运算都进行一次 如果为了测试出判 定条件中的错误 应使用哪些数据对程序进行测试 请上机验证自己的结论 4 用哪四组数据才可以把各种条件的组合都检测一遍 如果为了测试各种条件的 组合的情形 应该使用什么样的测试数据 请上机验证自己的结论 5 用哪四组数据才可以把起始到终止的各条路径都覆盖一次 如果为了测试出程序 在不同路径下的错误 应该使用什么样的测试数据 请上机验证自己的结论 四 进一步的实验 1 题目 从键盘上输入三个数 让它们代表三条线段的长度 请写一个判断这三条线段所组成的三角形 属于什么类型 不等边 等腰 等边或不构成三角形 的 C 程序 2 请分别设计下列数据对自己的程序进行测试 1 找出各条语句中的错误 2 找出积压分支中的错误 3 找出各条件中的错误 4 找出各种条件组合中的错误 5 找出各条路径中的错误 7 条件型循环结构 一 目的和要求 1 掌握在程序设计条件型循环结构时 如何正确地设定循环条件 以及如何控制循环的次数 2 了解条件型循环结构的基本测试方法 3 本实验可在学习教材 3 3 节后进行 二 实验内容与步骤 1 下面是一个计算 e 的近似值 使误差小于给定的 的程序 main double e 1 0 x 1 0 y detax int i 1 printf n please input enter a error scanf lf 11 y 1 x while y detax x x I y 1 x e e y i printf 12 10lf e 2 实验步骤 1 阅读上面的程序 写出程序所依据的计算公式 2 当输入的 detax 各是什么值时 能分别使程序按下面的要求运行 不进入循环 只循环一次 只循环两次 进入死循环 程序将永远循环下去 为了能知道程序循环了多少次 应该在程序中增加一条什么样的语句 3 原程序中 while 语句中的 y detax 分别换成 y detax y detax y detax y detax 观察程序运行将会有什么变化 假如不知道机器内的程序中的各语句实际上是什么 分别输入什么样的 detax 来测试出 while 语句的循环条件写错了 4 把原程序中 while 语句之前的 y 1 x 语句去掉 观察程序的运行将会发生什么样的变化 假如不知道机器内的程序实际上是怎么写的 输入什么样的 detax 就能测试出少了上述这条语 句 5 若把原程序中的 i 换成 i 观察程序的运行发生了什么变化 假如不知道这条语句到底是怎么写的 输入什么样的 detax 就能测试出这条语句写错了 6 把原程序中的 while 结构改写成 do while 结构 再分别按上述的 2 3 两步进行实 验 三 分析讨论 总结一下测试条件循环结构的一般方法 8 计数型循环结构 一 目的和要求 1 掌握如何正确地控制计数型循环结构的次数 2 了解对计数型循环结构进行测试的基本方法 3 了解在嵌套循环结构中 提高程序效率的方法 4 本实验应在学习了教材第 3 3 4 进行 二 实验内容与步骤 12 1 实验题目 下面是一个循环结构 的 C 程序 main int i j long sum 0 for i 1 i 20 i for j 1 j 3 j sum sum i 1 i 1 j 2 printf sum is d n sum 2 实验步骤 1 将上述程序中的和分别做什么样修改 能使程序按如下要求运行 不循环 外循环 1 次 不进入内循环 外循环 内循环各 1 次 外循环 1 次 内循环 2 次 外循环 2 次 内循环 1 次 外循环 19 次 内循环 3 次 外循环 20 次 内循环 2 次 外循环 21 次 内循环 3 次 2 试修改程序 以便能知道控制表达式 i 1 j 20 i 和 j 1 j 3 j 各执行了多少次 3 内循环与外循环的控制表达式进行对换 观察程序的执行结果有无变化 并且观 察对换后的外循环与内循环控制表达式执行的总次数有无变化 4 将 3 中程序写为 main int i j k long sum 0 for j 1 j 3 j k j 2 for i 1 i 20 i sum sum i 1 i 1 k 13 printf sum is d n sum 观察程序的执行结果有无变化 5 将 3 中程序改写为 main int I j m n long sum 0 for j 1 j 3 j m j 2 for I 1 j 20 I n I 1 sum sum m m k printf sum is d n sum 观察程序的执行结果有无变化 6 在 5 的程序中 若将外循环控制表达式分别做如下修改 j 1 j 3 j j 1 j 3 j j 1 j3 j j 1 j 3 j j 0 j 3 j j 0 j 3 j j 1 j 3 j j 1 j1 实验步骤与要求 1 根据递归公式编制计算 n 阶勒让德多项式的递归函数 p n x 2 编制一个主函数 由键盘输入 n x 调用 1 中的函数计算 n 阶勒让德多项式的值 3 输入 n x 4 2 运行该程序 然后自定义几组数据再运行该程序 程序调试说明 多模块的调试除了可以采用前面实验中采用的各种调试方法以外 还可以采用 回声打印 的 调试方法 当函数之间要传递的数据较多时 容易出错 这时 在有关的输入数据之后加上输 出语句 以便反映数据输入的情况 在函数之间有数据传递后 再用输出语句把传递后的数据 输出 这样可以找到数据的错误处 以便分析原因 三 问题讨论 1 小结函数的定义及调用方法 2 小结函数中形参和实参的结合规则 15 3 编写和调试包 10 函数的定义及调用 一 目的与要求 1 掌握 C 语言函数定义及调用的规则 2 理解参数传递的过程 3 本实验可在学习了教材第 4 1 节后进行 二 实验内容与步骤 1 上机调试下面的程序 记录系统给出的出错信息 并指出出错原因 main int y printf d n sum x y int sum a b int a b return a b 2 编写并调试一个求 n 为整数 的递归函数 希望能在程序运行过程中动态地显示递归 函数被调用的轨迹 三 分析讨论 1 针对以上实验内容写出相应的参数传递过程并分析结果 2 讨论参数的传递的几种形式 11 有关数组的程序设计 一 实验目的 掌握有关数组和字符串的程序设计方法 二 实验内容和步骤 1 已知一组数据如下 6 3 42 23 35 71 98 67 56 38 编写程序 把它们按从小到大的次序排列起来 程序如下 EX3 1 include define N 10 main int a N 6 3 42 23 35 71 98 67 56 38 16 int i j t printf The array before sorted for i 0 i N i printf 4d a i for i 0 i 9 i for j i 1 ja j t a i a i a j a j t for i 0 i N i printf 4d a i return o 2 求矩阵 1 2 3 A 4 5 6 的转置矩阵 A 矩阵的转置矩阵 B 是这样的矩阵 其元素 bij aji 程序如下 EX3 2 include main int a 2 3 1 2 3 4 5 6 int b 3 2 i j printf Array A n for i 0 i 1 i for j 0 j 2 j 17 printf 5d a i j printf n for i 0 i 1 i for j 0 j 2 j b j i a i j printf Array B n for i 0 i 2 i for j 0 j 1 j printf 5d b i j printf n return o 12 数组 一 目的和要求 1 掌握数组定义的规则 2 掌握 C 语言数组的基本用法 3 本实验可在学习教材第 5 2 节后进行 二 实验内容与步骤 1 编写程序 测试下列数组的定义方式是否正确 1 main int n scanf d int a n 2 main const int n 10 int a n 18 3 include define M 10 main int a M 4 main int a 2 2 4 5 include define M 2 define N 8 main int a M N 通过这一实验 可以说明什么问题 2 运行下面的 C 程序 根据运行结果 可以说明什么 main int num 5 1 2 3 4 5 inti i for i 0 i 5 i printf d num i 3 为一个起泡排序程序设计测试用例 并测试之 4 1983 年 在 ACM 图林奖颁奖大会上 杰出的计算机科学家 UNIX 的鼻祖 C 语言的创始人之一 图 林大奖得主 Ken Thompson 上台的第一句话是 我是一个程序员 在我的 1040 表上 我自豪地 写上了我的职业 作为一个程序员 我的工作就是写程序 今天我将向大家提供一个我曾经写 过的最精练的程序 这个程序如下 char s t 0 n 19 n n n 213 lines deleted 0 The string is a representation of the body of this program from 0 to the end main int i printf char ts for i 0 s i i printf t d n s i printf s s 请上机运行这个程序 指出它的功能和运行结果 三 分析讨论 通过实验 分析定义与引用数组的区别 2 2 小程序设计小程序设计 从所给的从所给的 6 6 道实用题目中任选道实用题目中任选 4 4 个来完成个来完成 1 编写一个程序 列出 1 到 1000 以内的数 求除 5 后余数为 1 的质数 20 2 水仙花数是指其个位 十位和百位三个数的平方和等于这个三位数本身 求出所有的 水仙花数 3 编写程序解下面的问题 猴子吃桃问题 猴子第一天摘下若干个桃子 当即吃了一半 还又多吃了一个 第二天早上又将剩下的桃子吃掉一半 又多吃了一个 以后每天早上都吃了 前一天剩下的一半零一个 到第十天早上还想吃时 见只剩下一个桃子了 求第一天一共摘了 多少 4 编写一个程序求 1 2 20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论