ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:59.06KB ,
资源ID:9053778      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9053778.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序设计实验讲义.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

程序设计实验讲义.docx

1、程序设计实验讲义信息 学院本科教学实验讲义(实验)课程名称 程序设计贵州财经学院教务处制表程序设计实验教学讲义英文名称:The Programming of C适用对象:计科专业、软件工程专业学时学分:共64学时,实验16学时,3学分。一、实验的目的本课程是学生进行程序设计的入门课,它是学生今后从事计算机程序设计的基础,也是学习计算机其它专业课程(如数据结构,软件工程、面向对象的程序设计、编译原理等)的基础,C程序设计课程是一门实践性很强的课程,需要同学们认真而扎实地练习,按时完成作业。通过实验,使学生掌握C语言的基本语法、基本操作、程序设计的基本概念与编程技术,并能运用所学知识解决实际问题,

2、为以后学习面向对象的程序设计及其它专业课程打下扎实的基础。二、实验开设对象本实验开设对象计科、软件工程专业本科学生,实验为必修内容。四、指导教师要求本实验课程教学配1名教师担任实验指导教师,实验室人员配合指导。指导教师应在实验前阐述实验目的、基本方法、基本技术、实验要求等,指导学生在规定的时间内完成相关课程实验。五、实验设备配置每人配置1台电脑,安装有VC+ 6.0系统和其他相关组件,要求具有上网条件。六、考核与报告1、实验完成后,学生实验过程简要写到实验报告中,并完成心得体会和问题,符合实验教学的要求,并得到指导教师的认可。2、指导教师对每份实验报告进行审阅。实验一C语言程序初步(必做)一、

3、实验题目C程序的运行环境和编辑程序的方法二、实验课时课内2课时三、实验目的1、 熟悉C语言运行环境。2、 掌握语言程序的书写格式和语言程序的结构。3、 掌握C语言上机步骤,了解运行一个C程序的方法。4、 本实验可在学习完教材第一章后进行。四、实验步骤、静态地检查上述程序,改正程序中的错误。、在编辑状态下照原样键入上述程序。、编译并运行上述程序,记下所给出的出错信息。、按照事先静态检查后所改正的情况,进行纠错。、再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。五、实验内容和要求1、熟悉上机环境及常用命令;2、编写输出”Hello World”的第一个程序;3、验证两个数比

4、较大小程序;4、有下面的程序,目的是想计算由键盘输入的任意两个整数的积。exl.c#include (stdio.h);main()scanf(“%x,%y”,&x,%y)int pp=x+yprintf(“The product is :”,p)请调试上述程序;下面给出组测试用例,你认为哪几组较好?为什么?()0, ()0, (),(),(),(), 要测试出上述程序中所有错误,你认为应当用几组测试用例?实验二数据类型、运算符和表达式(必做)一、实验题目数据类型、运算符和表达式二、实验课时课内2课时三、实验目的1、了解语言中数据类型的意义。2、理解常用运行符的意义。3、掌握语言表达式的运行规

5、则。四、实验步骤1、完成实验内容2、如何正确地选用数据类型?3、分析总结运算符的优先级。五、实验内容和要求1、下面的程序试图计算由键盘输入的任意两个整数的平均值:include main()int x,y,a;scanf(“%x,%y,&x,&y);a=(x+y)/2;printf(“The average is :”a);调试无语法错误后,分别使用下列测试用例对上述程序进行测试:序号测试用例预计结果实际结果备注1262133-2-64-1-35-266-13710832800330009-3280033000分析上述哪几组测试用例较好?通过测试,你发现程序有什么错误了吗?若有错误,请指出错误

6、原因。2、操作符sizeof用以测试一个数据或类型所占用的存储空间的字节数。请编写一个程序,测试各基本数据类型所占用的存储空间大小。3、编写一个语言程序,测试下列各表达式i , ji + 1,j + 1i + + ,j + + + i, + + ji + + + + + j+ + i + + + + + j + +要求在各表达式中i 和j都分别有相同的初值。在实验中注意下列问题:() 哪些表达式是错误的?为什么?() 理解,i,i的意义和优先级别。4、编写一个程序,测试常用的十个运算符的优先顺序。(选作)实验三输入与输出(选做)一、实验题目输入、输出及顺序结构程序设计二、实验课时课内2课时三、

7、实验目的1、掌握语言程序输入、输出的方法和格式。2、理解程序的顺序结构四、实验步骤1、完成实验内容2、总结在printf函数中可以使用的各种格式指定符,并给出样例。3、总结在printf函数中可以使用的各转义字符及其功能。五、实验内容和要求、输入并编辑下面的程序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

8、”);printf(“a=%7d,b=%7dn”,&a,&b);printf(“c=%10.2f,d=%10.2fn”,&c,&d);printf(“e=17ld,f=%17ldn”,&e,&f);printf(“u=%o,d=%on”,&u,&v);printf(“c1=%c,d=%cn”,&c1,&c2);这个程序有语法错误吗?为什么?、调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c1=a,c2=b分析运行结果。特别注意输入c1,c2的值是什么?什

9、么原因?、将输入e和f的语句改为:scanf(“%d,%d”,&e,&f);再用上述测试数据测试并分析结果。、将输入u、v的语句改为:scanf(“%d,%d”,&u,&v);再用上述测试数据测试并分析结果。、将输出e,f的语句改为:printf(“e=%17d,f=%17dn”,e,f);再用上述测试数据测试并分析结果。、将输出u、v的语句改为:printf(“u=%u,v=%un”,u,v);或printf(“u=%d,v=%dn”,u,v);再用上述测试数据测试并分析结果。、请读者自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出。、在scanf(“%c,%c”,&c1,&c2

10、);语句之前加一个语句:getchar();、验证转义字符n 与 r的意义有何不同。实验四分支程序设计(选做)一、实验题目选择语句的演练二、实验课时课内2课时三、实验目的1、了解条件与程序流程的关系2、了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。四、实验步骤1、完成实验内容;2、分析讨论(1)用哪一组数据就可使程序中的每个处理语句都执行一次?为了找出程序中各条处理语句中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。(2)用哪两组数据就可以使程序段中的每个分支都运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中积压分支中的错误,应该使用什么样的数据对程序进

11、行测试?请上机验证自己的结论。(3) 用哪两组数据就可以把判定框中的每个条件运算都进行一次?如果为了测试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。(4)用哪四组数据才可以把各种条件的组合都检测一遍? 如果为了测试各种条件的组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。(5)用哪四组数据才可以把起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。五、实验内容和要求1、有如下程序段: if (a1&b= =0) x=x/a; if(a=2|x1) x=x+1;为了更容易明白程序的逻辑结构,

12、我们用下图所示流程图来加以描述。 y n y n 要求增加一些输入语句和输出语句,以便使上述程序能在不同的a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。2、记下分别使用下列各组数据运行时的操作流程。() 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;() a=2,b=1,x=1;() a=3,b=0,x=2。选做题目1、从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边

13、或不构成三角形)的C程序。2、请设计测试数据对自己的程序进行测试:实验五循环结构程序设计(必做)一、实验题目循环结构程序设计二、实验课时课内2课时三、实验目的1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。2、了解条件型循环结构的基本测试方法。3、 掌握如何正确地控制计数型循环结构的次数4、 了解对计数型循环结构进行测试的基本方法5、 了解在嵌套循环结构中,提高程序效率的方法四、实验步骤1、完成试验内容2、总结测试条件循环结构的一般方法3、如何测试计数型循环结构的控制表达式中的错误?4、从实验中你得到了哪些提高嵌套循环程序效率的启示?五、实验内容和要求1、下

14、面是一个计算e的近似值(使误差小于给定的)的程序。main()double e=1.0,x=1.0,y,detax;int i=1;printf(“n please input enter a error:”);scanf(“%lf”,&detax);y=1/x;while(y=detax) x=x*i;y=1/x;e=e+y;+i;printf(“%12.10lf”,e);(1)、阅读上面的程序,写出程序所依据的计算公式。(2)、当输入的detax各是什么值时,能分别使程序按下面的要求运行:.不进入循环;.只循环一次;.只循环两次;.进入死循环(程序将永远循环下去)。为了能知道程序循环了多少

15、次,应该在程序中增加一条什么样的语句?(3)、原程序中while语句中的y=detax,分别换成ydetax,y=detax,ydetax,y=detax,观察程序运行将会有什么变化。假如不知道机器内的程序中的各语句实际上是什么,分别输入什么样的detax来测试出while语句的循环条件写错了。(4)、把原程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器内的程序实际上是怎么写的,输入什么样的detax就能测试出少了上述这条语句。(5)、若把原程序中的+i换成i+,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的,输入什么样的deta

16、x就能测试出这条语句写错了.(6)、把原程序中的while结构改写成dowhile结构,再分别按上述的(2)、(3)两步进行实验。选作:2、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?设计程序实现并调试。3、用100元兑换成20、5、2、1元的零钞,共有多少种兑换方法,要求每种至少有1种,要求输出计算的次数。选作题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。实验六文件(必做)

17、一、实验题目文件二、实验课时课内2课时三、实验目的、文件和文件指针的概念以及文件的定义方法。、了解文件打开和关闭的概念及方法。、掌握有关文件的函数。四、实验步骤 完成试验内容五、实验内容和要求、编写程序,要求从键盘输入一个字符串,然后将其以文件形式存到磁盘上。磁盘文件名为file1.dat。、从磁盘文件file1.dat读入一行字符,将其中所有小写字母改为大写字母,然后输出到磁盘文件file2.dat中。、已有两个文本文件,今要求编程序从这两个文件中读出各行字符,逐个比较这两个文件中相应的行和列上的字符,如果遇到互不相同的字符,输出它是第几行第几列的字符。实验七数组(必做)一、实验题目数组二、

18、实验课时课内2课时三、实验目的1、掌握数组定义的规则。2、掌握C语言数组的基本用法。四、实验步骤1、完成试验内容2、通过实验,分析定义与引用数组的区别。五、实验内容和要求1、编写程序,测试下列数组的定义方式是否正确(1) main()int n;scanf(“%d”,&n);int an;(2)main()const int n=10;int an;(3)#include #define M 10main()int aM;(4)main() int a2+2*4;(5)#include #define M 2#define N 8 main() int aM+N;通过这一实验,可以说明什么问题

19、?2、运行下面的C程序,根据运行结果,可以说明什么?main( ) int num5=1,2,3,4,5; inti i; for(i=0;i=5;i+) printf(“%d”,numi); 3.从键盘输入一字符串,然后按逆序存放并输出。4、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。选做:1、为一个起泡排序程序设计测试用例,并测试之。2、写一个程序,使用一维数组计算并输出杨辉三角形前面的n行。实验八函数及递归程序设计(必做)一、实验题目函数及递归程序设计二、实

20、验课时课内2课时三、实验目的1、 掌握C语言函数定义及调用的规则。2、 理解参数传递的过程。四、实验步骤1、完成试验内容2、 针对以上实验内容写出相应的参数传递过程并分析结果。3、 讨论参数的传递的几种形式。五、实验内容和要求1、 上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。main() int,y; printf(“%dn”,sum(x+y); int sum(a,b) int a,b;return(a+b); 2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。3、使用递归和递推公式分别计算Fabonacci数列,分别两种方

21、式求10,20,30,40,50递增测试直到计算时间超过3分钟,比较两种方法的运算时间并分析原因。实验九指针 (选做)一、实验题目 指针二、实验课时课内2课时三、实验目的1. 熟悉指针的正确用法。四、实验步骤1、完成试验内容;2、讨论数组与指针的联系。五、实验内容和要求1、指出下面程序错误的原因。main( )int x=10,y=5,*px,*py;px=py;px=&x;py=&y;printf(“*px=%d,*py=%d,*px,*py);2、下面的程序试图有如下运行结果:which style you want to :Capital ( c ) or uncapital ( a )

22、:c COMPUTERWhich sytle you want to :Capital ( c ) or uncapital ( a ) : ucomputer请调试下面的程序,使其有如上执行结果。#include main () char s*;char c;printf(“which style you want to :ln”);printf(“capital ( c ) or uncapital(a):”);c=getchar();if(c=c)strcpy(s,”COMPUTER”);else strcpy(s,”computer”);put(s);分析出错原因。3下面的程序能获得上

23、述运行结果吗?main()char *S=”COMPUTER”;char c;printf(“which style you want to n”);printf(“capital (c) or uncapital(u);”);c=getchar();if(c=c) put(s);else s=”computer”;puts(s);分析出错原因。4设计一个C程序,用以测试下列各表达式的运算。(1) y=*px+(2) y=*+py(3) y=(*py)+(4) y=-*ppx+实验十结构及共用体(选做)一、实验题目结构及共用体二、实验课时课内2课时三、实验目的1、掌握结构体类型方法以及结构体变

24、量的定义和引用。2、掌握指向结构体变量的指针变量的应用,特别是链表的应用。3、掌握运算符”.”和”-”的应用。4、共用体的概念和应用。四、实验步骤 完成试验内容五、实验内容和要求1、编写程序:有4名学生,每个学生的数据包括学号、姓名、成绩,要求找出成绩最高者的姓名和成绩,上机运行程序。2、编写程序,将一个整数的高字节和低字节分别输出(用位运算方法)。上机运行。 实验十一综合设计:程序设计的综合应用(必做)一、实验题目程序设计的综合应用二、实验课时课内2课时三、实验目的1、掌握用C语言进行简单的数据库管理。2、了解C程序菜单设计的一般方法。3、理解链表的概念及应用。四、实验步骤完成试验内容五、实

25、验内容和要求建立一个链表,每个结点包括学号、姓名、及三科成绩、平均成绩。除平均成绩外,各项均由键盘输入。要求: (A).计算平均成绩。 (B).要实现插入功能。 (C).要有排序功能。(D).要有存取功能。参考菜单:void Menu() puts( *); puts( * Student System Command Help *); puts( *); puts( * L = List all records *); puts( * D = Delete a record selected by number *); puts( * A = Append records *); puts( * I = Insert records *); puts( * S = Sort records *); puts( * H = Show this help message *); puts( * V = Save records to a file *); puts( * O = Load records from a file *); puts( * C = Clear screen *); puts( * Q = Quit System *); puts( *);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1