




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电气c实训指导书 1C C语言程序设计实训指导书电气指导老师22O11.12.152C 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指定的实验项目验证与设计(对以下指定的212个实验项目进行验证) 1、数据类型、运算符和表达式 一、实验目的1.熟练表达式的表示方法2.了解表达式的运行结果 二、实验内容和步骤用printf函数来输入表达式运行结果观察以下表达式的结果=xxx!=yx=z-2x=x-2x=zx1&b=0)x=x/a;if(a=2|x1)x=x+1;为了更容易明白程序的逻辑结构,我们用图5.1所示流程图来加以描述。 a1&b=0x=x/aa=2|x1x=x+1要求增加一些输入语句和输出语句,以便使上述程序能在不同的a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。 、实验步骤记下分别使用下列各组数据运行时的操作流程。 ()a=1,b=1,x=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;9()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 pleaseinput entera error:”);scanf(“%lf”,&detax);y=1/x;while(y=detax)10x=x*I;y=1/x;e=e+y;+i;printf(“%12.10lf”,e); 2、实验步骤 (1)、阅读上面的程序,写出程序所依据的计算公式。 (2)、当输入的detax各是什么值时,能分别使程序按下面的要求运行.不进入循环;.只循环一次;.只循环两次;.进入死循环(程序将永远循环下去)。 为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句? (3)、原程序中while语句中的y=detax,分别换成ydetax,y=detax,y 假如不知道机器内的程序中的各语句实际上是什么,分别输入什么样的detax来测试出while语句的循环条件写错了。 (4)、把原程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。 假如不知道机器内的程序实际上是怎么写的,输入什么样的detax就能测试出少了上述这条语句。 (5)、若把原程序中的+i换成i+,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的,输入什么样的detax就能测试出这条语句写错了. (6)、把原程序中的while结构改写成dowhile结构,再分别按上述的 (2)、 (3)两步进行实验。 三、分析讨论总结一下测试条件循环结构的一般方法。 8、计数型循环结构 一、目的和要求 1、掌握如何正确地控制计数型循环结构的次数 2、了解对计数型循环结构进行测试的基本方法 3、了解在嵌套循环结构中,提高程序效率的方法 4、本实验应在学习了教材第3.3.4进行 二、实验内容与步骤 1、实验题目下面是一个循环结构的C程序。 main()int i,j;11long 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:%dn”,sum); 2、实验步骤 (1)将上述程序中的和分别做什么样修改,能使程序按如下要求运行.不循环;.外循环1次,不进入内循环;.外循环,内循环各1次;.外循环1次,内循环2次;.外循环2次,内循环1次;.外循环19次,内循环3次;.外循环20次,内循环2次;.外循环21次,内循环3次。 (2)试修改程序,以便能知道控制表达式i=1;j=20;i+和j=1;j3;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;printf(“sum is:%dn”,sum);观察程序的执行结果有无变化? (5)将 (3)中程序改写为main()12int 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:%dn”,sum);观察程序的执行结果有无变化? (6)在 (5)的程序中,若将外循环控制表达式分别做如下修改.j=1;j=3;j+.j=1;j3;j+.j=1;j3;j-.j=1;j3;j+.j=0;j=3;j+=.j=0;j3;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.小结函数中形参和实参的结合规则。 3.编写和调试包 10、函数的定义及调用 一、目的与要求 1、掌握C语言函数定义及调用的规则。 2、理解参数传递的过程。 3、本实验可在学习了教材第4.1节后进行。 二、实验内容与步骤 1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。 main()14int,y;printf(“%dn”,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 N10main()int aN=6,3,42,23,35,71,98,67,56,38;int i,j,t;printf(“The arraybefore sorted:”);for(i=0;iaj)t=ai;15ai=aj;aj=t;for(i=0;i 程序如下/*EX3-2*/#includemain()int a23=1,2,3,4,5,6;int b32,i,j;printf(“Array A:n”);for(i=0;i=1;i+)for(j=0;j=2;j+)printf(“%5d”,aij);printf(“n”);for(i=0;i=1;i+)for(j=0;j=2;j+)bji=aij;printf(“Array B:n”);for(i=0;i=2;i+)for(j=0;j=1;j+)printf(“%5d”,bij);printf(“n”);return o; 1612、数组 一、目的和要求 1、掌握数组定义的规则。 2、掌握C语言数组的基本用法。 3、本实验可在学习教材第5.2节后进行。 二、实验内容与步骤 1、编写程序,测试下列数组的定义方式是否正确 (1)main()int n;scanf(“%d”,&n);int an; (2)main()const intn=10;int an; (3)#include#define M10main()int aM; (4)main()int a2+2*4; (5)#include#define M2#define N8main()int aM+N;通过这一实验,可以说明什么问题? 2、运行下面的C程序,根据运行结果,可以说明什么?main()int num5=1,2,3,4,5;17inti i;for(i=0;i=5;i+)printf(“%d”,numi); 3、为一个起泡排序程序设计测试用例,并测试之。 4、1983年,在ACM图林奖颁奖大会上,杰出的计算机科学家,UNIX的鼻祖,C语言的创始人之一,图林大奖得主,Ken Thompson上台的第一句话是:“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。 作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。 这个程序如下char s=t,0,n,;,n,n,/,*,n,/*(213lines deleted)*/0;/*The stringis a*representation ofthe body*of thisprogram from0*to theend*/main()int i;printf(“charts=”;for(i=0;si;i+)printf(“t%d,n”,si);printf(“%s”,s);请上机运行这个程序,指出它的功能和运行结果。 三、分析讨论通过实验,分析定义与引用数组的区别。 182小程序设计(从所给的66道实用题目中任选44个来完成) 1、编写一个程序,列出1到1000以内的数,求除5后余数为1的质数。 2、水仙花数是指其个位、十位和百位三个数的平方和等于这个三位数本身,求出所有的水仙花数。 3、编写程序解下面的问题,猴子吃桃问题,猴子第一天摘下若干个桃子,当即吃了一半,还又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个,到第十天早上还想吃时,见只剩下一个桃子了,求第一天一共摘了多少? 4、编写一个程序求1!+2!+20!的和。 5、编写程序求解海滩上有一堆桃子,五只猴子平分,第一只猴子把这堆桃子平均分了五份多了一个,这只猴子把多的一个扔到海里,拿走了一份,第二只猴子把剩下的平均分成五份又多了一个,他同样把多的一个扔进海里,拿走了一份,第 三、 四、五只猴子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河北唐山市滦南县事业单位招聘150人备考试题及答案解析
- 湿地公园工程项目协调计划
- 2025幼儿园后勤保障工作计划
- 2025年皮肤病诊断与治疗原则论述题答案及解析
- 小主持人礼仪训练计划
- 2025职工迎新年国旗下讲话稿范文
- 2025年智能城市轨道交通行业当前竞争格局与未来发展趋势分析报告
- 2025年法医学科学科法医鉴定技术应用能力检测模拟试卷答案及解析
- 婚庆公司策划师预算管理制度
- 承包人施工进度调整计划
- 急性st段抬高型心肌梗死
- 幼儿文学课件完整版
- DB6101T3128-2022养老服务规范 助餐服务
- GB/T 21709.8-2008针灸技术操作规范第8部分:皮内针
- 资本论第三卷讲义课件
- 离心式压缩机试车记录
- 穴位敷贴中医护理技术操作规范
- 冷却塔投标文件
- 地下室开槽引流方案
- 青年教师专业成长课题结题报告
- 农村公路安全生命防护工程施工方案
评论
0/150
提交评论