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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

程序设计语言实验安排数学104.docx

1、程序设计语言实验安排数学104实验注意事项:1、 进入机房必须遵守学校实验室的管理规定。2、 实验期间不能进行与实验无关的工作,特别是不能玩游戏、不能网上聊天。3、 本课程共安排设置8个实验项目,对每个实验应独立完成,不得抄袭。4、 对每个实验均需填写一份实验报告并在下一个实验前上交本次的实验报告。5、 注意保存好每次实验所建立的源程序以备教师检查。6、 本实验课程为一个独立设课的考查课程,教师根据学生的实验态度、实验报告质量和教师检查情况进行成绩评定。7、 填写实验报告应使用学校统一规定使用的广州大学实验报告纸,按照其表格中的各项内容规范填写,具体如下:开课学院及实验室:数学与信息科学学院

2、计算机实验楼307B年月日:填写各实验具体的实验日期实验课程名称:统一填写“程序设计语言实验”实验项目名称:参看下面各实验的具体安排成绩栏和指导教师栏由教师填写。实验报告内容填写3大项:实验目的、实验原理、实验内容(包括源程序、测试数据及实验结果、问题解答等)。实 验 一实验项目名称:C开发环境的熟悉与使用实验时间:2011-9-1实验目的:1、初步了解C程序的特点和构成。2、熟悉Turbo C 2.0 IDE环境的操作。3、掌握C程序上机的4个步骤:编辑、编译、连接和运行调试。4、初步了解程序的调试方法。实验原理:1. 启动TC:方法1:DOS状态下:进入TC子目录键入TC回车方法2:Win

3、dows环境下:双击安装目录下的TC.EXE文件或双击其启动的快捷方式。2. C程序上机的4个步骤:编辑、编译、连接和运行调试。具体过程如下:(1)编辑源程序,完成后将源程序以扩展名.c存盘。(2)对源程序进行编译,即将源程序转换为扩展名为.obj的二进制代码。若源程序有错,必须予以修改,然后重新编译。(3)对编译通过的源程序连接,即加入库函数和其它二进制代码生成可执行程序。连接过程中,可能出现未定义的函数等错误,为此,必须修改源程序,重新编译和连接。(4)执行生成的可执行代码,若不能得到正确的结果,必须修改源程序,重新编译和连接。若能得到正确结果,则整个编辑、编译、连接、运行过程顺利结束。注

4、:在Tc2.0的IDE环境下,对源程序的编译、连接、运行可在一个命令下一气呵成。3. 常用命令:存盘:F2或FileSave 从磁盘读入C程序:F3或FileLoad运行程序:ctrl+F9或RunRun 查看运行结果:Alt+F5或RunUser screen4. 退出TC集成环境:从File菜单选择Quit命令或按Alt+X。 实验内容:1. 在TC2.0 IDE环境中输入教材P3的例1.1程序,进行编译、连接和运行,并且查看运行结果,对程序进行存盘。执行FileNew命令后再从磁盘读入该程序进行编辑和运行调试。2. 上机测试并回答下列问题:1) 程序中的错误有哪些类型?其特点是什么?一般

5、应如何修改?2) 在TC2.0中,用户的工作目录如何设置?(注:用户的工作目录是指用户保存源程序文件和读入源程序文件时的默认目录)3) 若文件MyC1.C编译成功后会产生什么文件?连接成功后会产生什么文件?这两个文件的默认保存目录如何设置?4) 若TC2.0的工作环境(例如:系统库文件目录)设置不正确,将会产生什么问题?5) 在TC2.0中,程序执行完毕就马上返回编辑状态,致使观察运行结果时要按Alt+F5或RunUser screen,为了使程序运行完毕后暂停,应在源程序中加上什么语句?6) 程序调试的手段有哪些?(选做题,但必须了解)实验1问题回答参考答案:1)程序中的错误通常分为三类:一

6、是编译时的错误,主要是语法错误,在编译阶段可由编译系统发现;二是逻辑错误,主要是计算公式写错、程序逻辑控制错误等,造成程序运行不能得到正确结果,一般需使用单步执行、打开变量观察窗口等调试手段;三是运行时的错误,一般是用户输入的数据不合法,如:除数为0,致使程序出错运行不下去。解决的方法是完善程序,提高程序运行的可靠性。2) File菜单的Change dir命令3)文件MyC1.C编译成功后产生MyC1.obj文件,连接成功后会产生MyC1.exe文件。这两个文件的默认保存目录在Options菜单Directories命令Output directory项中设置。4)在连接阶段将会产生如:头文

7、件、库文件找不到的错误,导致连接无法完成。5)在main()函数内的最后一行加上getch();语句实 验 二实验项目名称:顺序程序设计实验时间:2011-9-8实验目的:1、理解和掌握程序设计的顺序结构。2、理解和掌握C语言的数据类型和表达式。3、掌握C程序设计中的输入和输出方法。实验原理:1. 顺序结构的程序是指程序的执行自上而下、自左至右, 程序中的每一个语句都能被执行一次,而且只能被执行一次。顺序结构的程序设计是最简单的。2. C语言的基本数据类型有整型、字符型和实型。计算机语言中的数据的表数范围与数学上的表数范围具有差异。3. 常量和变量的概念及其使用。4. C语言的运算符丰富,运算

8、符具有优先级和结合性。5. C语言中表达式的书写很多时候跟数学上是不同的。6. 格式输入和输出函数scanf()、printf()的调用格式及其各参数的意义。实验内容:1. 验证实验教程P12的验证性程序(1),理解:数据的键盘输入格式应与scanf()函数的格式控制写法一致;字符型数据与整型数据的转换规定(使用其码)。2. 验证实验教程P13的验证性程序(2),理解:整型数据在C语言的表数范围与数学上的差异及整型数据溢出时系统的处理方法;理解负整数在机器内的补码表示。3. 完成实验教程P17的程序分析(2)。4. 完成课本P27练习1113(上机运行时,需补充完整程序),理解“+”、“-”运

9、算符的运算特点;理解格式输入输出函数的格式及其控制功能。5. 验证课本P27练习14,理解逻辑运算符“与”、“或”的短路运算特点。(选做题)6. 完成课本P28练习15。(选做题)7. 回答下列问题:a) 下列数学代数式子写成C语言表达式应如何书写: (提示:开根号运算可使用系统函数sqrt()b) 数学上表示范围的式子:0a100,写成语言的逻辑表达式应如何书写?实验2参考答案:第3题: &a,&b a/b a%b 第4题:(课本练习题13)main()int a=2,b=6,c=8;float x=2.3,y=3.4,z=-4.8;long u=52875,l=128765;char c1

10、=e,c2=f;printf(a=%d b=%d c=%dn,a,b,c);printf(x=%.6f,y=%.6f,z=%.6fn,x,y,z);printf(x+y=%.2f y+z=%.2f z+x=%.1fn,x+y,y+z,z+x);printf(u=%ld l=%ldn,u,l);printf(c1=%c or %d(ASCII)n,c1,c1);printf(c2=%c or %d(ASCII)n,c2,c2);第6题:(课本练习题15)main()float a,b,c,d,e,sum,ave;scanf(%f%f%f%f%f,&a,&b,&c,&d,&e);sum=a+b+c

11、+d+e;ave=sum/5;printf(Sum=%fnAve=%fn,sum,ave);第7题:a) a*b/(c*d) 或 a*b/c/d (-b+sqrt(b*b-4*a*c)/(2*a)b) a=0 & a=100实 验 三实验项目名称:选择结构程序设计实验时间:2011-09-15、2011-09-22实验目的:1、 理解C语言的语句、算法的概念、流程图的表示。2、 掌握程序流程控制选择(分支)结构。3、 熟练掌握if语句和switch语句的使用。4、 理解if语句和switch语句的嵌套。实验原理:1. if语句的一般形式:if () else 2. 缺省else的条件语句形式:

12、 if () 3. if语句嵌套的一般形式:if( ) if( )语句1 else 语句2else if( )语句3 else 语句4 4. switch语句的一般形式是:switch ()case : case : : : case : default:为了不再执行本case后面的其它case和default语句,可用break语句中断switch语句,使流程跳到switch语句后面。实验内容:1. 完成教材P71习题5,程序中要输出max变量的值。2. 阅读教材P71习题6的程序,判断其输出的结果,最后上机验证你的判断。3. 完成教材P72习题9。4. 上机测试并回答下列问题:1) 下面程

13、序的功能是什么?对复合语句t=a;a=b;b=t;,若去掉“”和“”程序会发生编译上的错误吗?能实现程序原来的功能吗?在复合语句t=a;a=b;b=t;后面添加一个“;”号,对程序有没有影响?main()float a,b,c,t;scanf(%f%f%f,&a,&b,&c);if (ab) t=a;a=b;b=t;if (ac) t=a;a=c;c=t;if (bc) t=b;b=c;c=t;printf(%f,%f,%fn,a,b,c);2) if (ab) /*第一个if*/if (ac) /*第二个if*/temp=a;else temp=b;在嵌套的if语句中,else如何与if配对

14、?对下面的两个程序段,else与哪个if配对?if (ab) /*第一个if*/if (ac) /*第二个if*/temp=a;else temp=b;3) 阅读理解下列求一元二次方程ax2+bx+c=0解的程序,该程序全面考虑了系数a,b,c的各种可能取值。(不用写入实验报告)#include main()float a,b,c,d,x1,x2,p,q;printf(Input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);if (fabs(a)1e-6) /*也可以直接写成(a=0)*/ if (fabs(b)1e-6) /*也可以直接写成(b=0)*/ if (fab

15、s(c)1e-6) /*也可以直接写成(c=0)*/ printf(Is trivial.n); else printf(Is impossible.n); else printf(Has only one root:%8.4fn,-c/b);else d=b*b-4*a*c; if (fabs(d)1e-6) /*也可以直接写成(d0)*/ x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(Has two diffent real roots:%8.4f and %8.4fn,x1,x2); else p=-b/(2*a); q=sqrt(

16、-d)/(2*a); printf(Has two complex roots:); printf(x1=%8.4f+%8.4fIn,p,q); printf(x2=%8.4f-%8.4fIn,p,q); 实验3参考答案:第1题:(课本练习题5)main() int a,b,c,max; printf(Input a,b,c:); scanf(%d,%d,%d,&a,&b,&c); if (ab) if(ac) max=a; else max=c; else if (bc) max=b; else max=c; printf(Max(%d,%d,%d)=%dn,a,b,c,max);第2题:(

17、课本练习题6)(1)输出结果:0 (2)输出结果:*#第3题:(课本练习题9)#include main() char ch; printf(Input a char:); ch=getchar(); if (ch=A & ch=a & ch=0 & ch=9) printf(%c is a numbern,ch); else printf(%c is a other charn,ch);第4题:1)程序的功能是对键盘输入的三个数按由小到大排序;对复合语句t=a;a=b;b=t;,若去掉“”和“”程序不会发生编译上的错误,但不能实现程序原来的功能;在复合语句t=a;a=b;b=t;后面添加一个

18、“;”号,对程序没有影响。 2)在嵌套的if语句中,else总是与前面最近的未配对过的if配对(但复合语句可改变配对关系)。在中,else与第二个if配对;在中,else与第一个if配对(复合语句改变了配对关系)。实 验 四实验项目名称:循环控制程序设计实验时间:2011-09-29、2011-10-08实验目的:1、 理解并掌握程序结构控制的循环结构;2、 理解while、do-while、for语句的语义和break、continue、goto语句的使用;3、 理解三种循环结构的异同,能实现三种结构间的转换;4、 理解循环嵌套的执行过程;5、 熟练应用循环语句进行程序设计。实验原理:1.

19、while循环的一般格式:while ()其语义是:当的值为非零时,则执行,然后再判断的值,只要它不为零,继续执行,如此重复,直到的值为零为止。2. do-while语句的一般格式是: do while ();其语义是:先执行,再判别,若的值为非零,则重复执行,直到的值为零为止。3. for循环的格式如下: for(;) for语句的执行过程如下:首先计算。求的值,若其值为非零,执行,然后转执行,若的值为零,则结束for语句。求解,转执行。实验内容:1. 阅读教材P98习题7的程序,判断其输出的结果,最后上机验证你的判断。2. 编程实现教材P99习题16。3. 编程实现教材P99习题18。4.

20、 下列两个程序实现的功能相同,说出它们实现什么功能?两个程序比较,哪个更优?main()int i,j,n;long s,sum;scanf(%d,&n);for(i=1,sum=0;i=n;i+) for(j=1,s=0;j=i;j+) s+=j; sum+=s; printf(sum=%ldn,sum);main()int i,n;long s,sum;scanf(%d,&n);for(i=1,s=0,sum=0;i1e-6) temp/=n; e+=temp; n+; printf(e=%lfn,e);2) 下面程序是教材P98习题8的解答:计算数列n-n/2+n/3-n/4+-n/10

21、0。main() int i; float n,sum,temp; printf(Input n:);scanf(%f,&n); sum=0; for(i=1;i=100;i+) temp=n/i; sum+=temp; n=-n; printf(n-n/2+n/3-.-n/100=%fn,sum);实验4参考答案:第1题:(课本练习题7) 输出结果:8第2题:(课本练习题16)main() float n; double sum=0; do scanf(%f,&n); sum+=n; while(n); printf(sum=%lfn,sum);第3题:(课本练习题18)#include #

22、include main()long n,a;randomize(); /*利用系统时间产生随机函数的种子数,这样可使程序每次运行时产生的随机数都不一样,使用此函数要包含time.h头文件*/n=random(38765); /*产生038764间的一个随机整数,实参38765可任意设置,使用此函数要包含stdlib.h头文件*/do printf(Please input a number:); scanf(%ld,&a); if (an) printf(%ld is too largen,a); else if (an) printf(%ld is too smalln,a); else

23、printf(%ld is correctn,a); while (a!=n); /*这里用do-while循环比较方便*/getch();第4题:两个程序的功能均是实现计算:sum=1+(1+2)+(1+2+3)+.+(1+2+3+.+n)的值。两个程序比较,程序2更优,显然程序2的循环次数大大减少,它并没有每次循环都从1开始累加到n,而是在前一次计算出1+2+(n-1)的基础上计算1+2+(n-1)+n实 验 五实验项目名称:函数实验时间:2011-10-13、2011-10-20实验目的:1. 掌握C语言中函数的定义和调用方法;理解实参和形参结合时的“单向值传递”方式。2. 理解函数的嵌

24、套调用和递归调用。3. 掌握函数原型的概念和使用。4. 理解变量的作用域和生命期。5. 理解预处理命令。实验原理:1. 函数定义的一般形式: ( ) 2. 函数调用形式: ()C语言规定:实参对形参的数据传递为“单向值传递”,只能由实参传递值给形参,形参不能传递值给实参。3. 函数说明的一般形式(函数原型): ( );作用:在程序的编译阶段,利用它对调用函数的合法性进行全面检查。4. 递归概念一个函数直接或间接地调用自己叫递归。采用递归方法求解问题需符合的条件:(1) 可以把一个问题转化为一个新的问题,而这个新问题的解决方法仍与原问题解法相同,只是新处理的对象有所不同。(2) 必定要有一个明确

25、的结束递归的条件,否则递归将无止境地进行下去。5. 从变量的作用域范围的不同,变量可分为:局部变量和全局变量。局部变量:在一个函数内部定义的变量(又叫内部变量)。它可分为:auto变量、static变量和register变量。全局变量:在函数之外定义的变量(又叫外部变量或全程变量)。它可分为:static外部变量和普通外部变量(带extern说明的为引用性说明,不带extern说明的为定义性说明)。6. C语言中预处理命令有三种:(1) 宏定义、(2)文件包含、(3)条件编译实验内容:1. 编程实现教材P121习题4,其中Fibnacci数列fib(n)的定义为:2. 完成教材P121习题6。

26、3. 阅读教材P122习题8,分析判断其输出结果并上机验证,理解递归调用的执行过程。4. 阅读教材P123习题12,分析判断其输出结果并上机验证,理解宏定义和宏展开的特点。5. 阅读理解下列程序,分析判断其输出结果,最后上机验证,并理解引用性说明外部变量、定义性说明外部变量、自动变量、静态局部变量和实参与形参结合时的单向值传递的工作方式。#include int x=1;f(int a,int b) static int x=3; int c=4,z; extern y; z=(+x)+(y+)+(a+)+b+(c+); return z; extern int y;main() int x=3,w; w=f(x,y); printf(%dn,w); w=f(x,y); printf(%dn,w); int y=2;实验5参考答案:第1题:(课本练习题4) long fib(int n) int i; long f,f1=1,f2=1; if (n1) printf(Data error!n); return -1; if (n=1|n=2) return 1; for (i=3;i=n;i+) f=f1+f2; f1=f2; f2=f; ret

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

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