欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言程序设计实验指导手册.docx

    • 资源ID:16710759       资源大小:1,000.36KB        全文页数:44页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计实验指导手册.docx

    1、C语言程序设计实验指导手册四川师范大学数学与软件科学学院信息与计算科学专业C语言程序设计课程实验指导手册本实验指导手册旨在指导数学与软件科学学院信息与计算科学专业C语言程序设计(专业必修课)的实验教学活动过程。其主要使用对象为本课程主讲教师和实验指导教师。它可以作为教学过程中的教学辅助参考资料,也可以作为学生在本门课程的学习中,结合实际教学内容,完成相关实验并填写实验报告的主要依据。具体实施过程中,除开各实验中要求的必做题目外,教师可结合实际教学情况,根据学生接受程度作适当扩展。学生在进行实践设计活动时,也可以结合自身掌握和学习的实际情况进行有选择地实践。本指导手册仅针对本学院信息与计算科学专

    2、业而设置。本实验手册编写的参考书籍:1.C语言程序设计教程(第二版),谭浩强,张基温,唐永炎 编著,北京:高等教育出版社,2002年3月2.C语言习题集与上机指导(第二版),谭浩强,张基温 主编,北京:高等教育出版社,2002年1月引言程序设计是实践性很强的课程。实践也是学好程序设计课程中必不可少的重要环节。程序设计的实践分两个步骤:一是设计和编写解决问题的程序算法流程,并在此基础上编写源程序代码;二是在计算机上对程序进行调试,并使程序完成问题的求解过程,进行相应的逻辑测试。实验过程中,应当注意如下问题:(1) 上机实习的主要目的是训练C语言程序的上机调试能力和分析、解决调试过程中遇到的问题的

    3、能力。并在此过程中逐步提高程序编写与问题分析能力。而不是简单地对教材上的实例做验证式的操作;(2) 上机内容可以结合教材内容和习题,或由老师布置专门的上机习题进行;(3) 为提高上机效果。必须在上机之前准备好上机的基本内容并编写好上机程序,尽量在上机之前先作好预先的阅读分析工作;(4) 上机调试的基本方法:语法检查(编译)=逻辑检查(设计者检查)=测试。上机实验的主要步骤:(1) 了解实验目的和要求,并椐此复习或阅读相关教材内容;(2) 根据题目要求,事先编写好程序,并经过设计者静态检查程序的语法正确性和逻辑正确性,分析可能出现的问题;(3) 设计好上机时准备测试程序的用例;(4) 上机调试通

    4、过程序,并记录上机调试中出现的问题和测试结论等,写出实验报告。调试过程中,尤其要注意各种语法错误、逻辑错误调试经验的积累。实验报告的主要内容:(1) 实验题目;(2) 目的要求;(3) 程序说明(如程序结构、各模块的算法和数据结构等);(4) 经调试后的程序清单;(5) 测试情况说明;(6) 分析(包含没有通过的程序的原因分析)。实验报告的具体内容填写格式,参见四川师范大学实验报告手册格式的规定。其中,程序清单请附着在相应的实验单元后面,程序结果、说明与分析等写在实验结果处,如不够,可另行附页。实验一 C程序的运行环境和运行一个C程序的方法(2学时)实验目的:(1) 熟悉所用计算机系统的基本操

    5、作方法以及在该系统下安装、编辑、编译、连接和运行一个C语言源程序的基本操作步骤(以Turboc C为基本背景);(2) 学习基本的C语言程序设计与调试环境设置方法;(3) 通过运行简单的C程序,了解C程序的特点。实验内容:(要求至少调试3个以上的简单程序)1.如果系统没有安装TC环境,则安装,否则,跳过此步;2.配置好TC环境,熟悉TC编辑器的基本操作命令及其它基本功能; 3.完成并熟悉程序输入、编译、连接、运行过程,直到程序输出结果正确;4.学习基本的调试程序方法(包含编译、连接错误信息的正确理解)。5.可参考的程序实例如下(也可以参考教材范例):1) 最简单的C语言程序:main() pr

    6、intf(This is my first program.n);2) 引用C语言函数库进行计算的程序:/*Please try exercises in chapter one of textbook in page 15*/#include math.hmain() float x; x=sin(2.2922); printf(sin(%f) is %fn,2.2922,x); 3) 引用自定义函数的C语言程序:/*This is the function of average for data a,b,c*/float average(float a,float b,float c) a

    7、vg=(a+b+c)/3.0; return avg;main() float x1,x2,x3; printf(Please input x1,x2,x3:); scanf(%f,%f,%f,&x1,&x2,&x3); /*Input for variable x1,x2,x3*/ printf(nAvg of %f,%f and %f is %fn,x1,x2,x3,average(x1,x2,x3); 4) 求1+2+3+.+100; 5) 给定5个数,求其最小者; 6) 求a+|b|。实验准备: (1) 计算机设备;(2) 程序调试环境的准备,如TC环境;(3) 实验源程序准备。实验步

    8、骤:(1) 安装TC,如果已安装好,可以跳过此步;(2) 进入TC的编辑窗口,进行基本的环境设置;(3) 熟悉基本的TC编辑操作方法和文件创建、保存方法;(4) 输入一个C源程序,进行编辑、编译、连接、运行。完成一个简单的程序设计,运行输出正确结果。(5) 输入其它源程序并进行调试(注意错误提示信息);(6) 编写实验报告。实验结果:(1) 对TC的安装、调试、基本操作、环境设置方法等方面进行描述;(2) 对TC程序的执行过程和结果进行分析;(3) 给出实验过程中出现的主要问题和现象以及解决的方法;(4) 程序代码及运行结果描述。实验二 数据类型、运算符和表达式(2学时)实验目的:(1) 掌握

    9、C的数据类型的声明、定义、赋值及引用;(2) 掌握变量和常量之间的关系,以及各种常见的常量表示方法;(3) 掌握C的有关运算。算术运算中的自反、自增(+)、自减(-)运算符的使用;关系表达式和逻辑表达式的逻辑值表示方法和基本运算规律;学会在C语言环境下表示条件表达式;(4) 掌握不同类型数据之间的转换和赋值方法;实验内容:主要参考实例或内容(也可以参考教材或习题实例):1. 教材P21例题2-4(目的:观察各种数据类型的分配空间大小)2. 教材相关内容为基础,考察变量的声明、定义、使用的先后关系;考察不同数据类型变量之间相互赋值的结果;考察各种形式的常量表示;3. 基本的C运算规律,尤其是算术

    10、运算中的自反、自增、自减等运算和关系表达式、逻辑表达式的特殊运算规律的掌握。(可参考教材习题中的2.9到2.15,以及2.17到2.19的运算实例)4. 关于不同数据类型之间的转换问题,参见教材例2.11,例2.12,例2.13及下例:main() char ch=A; int i=7,result; float f=234.00; double d=3.0; result=ch/i+f*d-(f+i); printf(Result value is %dn,result);注:由于本章内容是基本的程序设计基础内容,所有这些内容必须要求熟练掌握和运用。因此,其中一些实验实例由教师在课堂实践教学

    11、中进行现场示范性讲解,由学生课外自由验证课堂范例、教材范例以及教材习题和相关课外参考书籍和资料,进行综合性的验证实践,并写出心得报告。具体实验范例不需要确定下来。实验准备:分析测试目的并根据它准备好实验内容的各种测试用例。实验步骤:(1) 选择测试目标;(2) 准备测试用例和具体的测试数据;(3) 上机调试进行测试并做测试记录;(4) 进行测试分析;(5) 编写实验报告。实验结果:(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。实验三 最简单的C程序设计(2学时)实验目的:(1) 掌握顺序结构的程序设计概念、方法及各种赋值语句的使用方法;(2) 掌握基本的

    12、C语言程序设计中的输入、输出语句的使用方法。实验内容:1.测试并熟悉教材表2.7和表2.8中的数据格式输入、输出规律和方法;2.以例2.16-例2.19为例观察scanf()的使用方法。3.输入并编辑以下程序代码: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=%7dn,&

    13、a,&b); printf(c=%10.2f,d=%10.2n,&c,&d); printf(e=%17ld,f=%17ldn,&e,&f); printf(u=%o,v=%on,&u,&v); printf(c1=%c,c2=%cn,&c1,&c2); 请分析和观察代码有无错误,如果有,有哪些?指出错误原因,并修正之,使其可以按照预想的目的输入相应数据并输出结果。4. 输入华氏温度的值F,要求输出摄氏温度的取值C,其中,C=5/9*(F-32)。要求输出有文字说明,取两位小数位。5. 用getchar()函数读入两个字符c1,c2,然后分别用putchar()和printf()函数输出这两个

    14、字符。试分析思考如下问题:(a) c1和c2的数据类型用什么?(b) 要求输出c1和c2的ASCII码,应如何处理?是用pringf()还是用putchar()?(c) 整型变量是否在任何情况下都可以相互代替?实验准备:(1) 复习相关内容,阅读并分析1、2、3中的相关程序代码;(2) 对4、5题进行程序代码编写。实验步骤:(1) 对照阅读分析结果,上机验证1、2、3的结果,并做出相应分析;(3) 对4、5题进行上机调试,并进行测试、做测试记录;(4) 进行实验分析;(5) 编写实验报告。实验结果:(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。实验四 分

    15、支结构的程序设计(4学时)实验目的:(1) 掌握C语言程序设计中逻辑量的表示和运用方法;(2) 掌握C语言程序设计中条件表达式的值的计算方法及其跟程序执行流程之间的逻辑顺序关系;(3) 掌握C语言中的4中选择结构语句的执行逻辑及其运用方法。实验内容:1. if 语句的实验。请分析如下语句段的逻辑关系:main() . if (a1 & b=0) x=x/a; if (a=2 | x1) x=x+1; .(a) 以算法流程图的形式表述(b) 增加输入、输出功能以补充完整此程序段,使之能够运行(c) 测试该程序段的各种条件组合下的运行结果。测试数据组如下:a b x1 1 11 1 23 0 12

    16、 0 42 1 11 0 22 1 23 0 2(d) 分析讨论:1) 用哪组数据就可以使程序段中每个处理语句都执行一次?为了找出程序中的逻辑错误,应使用什么样的数据进行测试?请上机验证自己的分析结果。2) 用哪两组数据可以使程序段中的每个分支都至少运行一次?为找出各个分支中的逻辑错误,应选用什么样的数据进行逻辑测试?请上机验证自己的分析结果。3) 用哪四组数据可以将从起点到终点的各条路径都覆盖一次?为了测试程序在各个不同路径上的错误,应选用什么样的测试数据?请上机验证自己的分析结果。2. if else语句实验。用if else句型,编写求4个数中最大者的程序,并设计测试用例、记录测试结果。

    17、3. 试用if else if else if .else实现求4个数中最大者的程序,并做相应测试。4. 试用switch语句句型实现以上程序,并做相应测试。实验准备:(1) 阅读并分析第1题中的逻辑关系及其分支测试方法;(2) 分析并编写2、3、4题(需要绘制流程图)的程序代码。实验步骤:(1) 对照阅读分析结果,上机验证1题的测试结果,并做出相应分析;(2) 上机运行和测试所写的2、3、4题程序代码;(3) 进行实验分析;(4) 编写实验报告。实验结果:(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。实验五 循环控制程序的设计(4学时)实验目的:(1)

    18、 复习和掌握算法的基本组成要素和描述特点;(2) 在实验四的基础上,学习几种常见的循环程序的流程关系和运用方法;(3) 不同循环类型之间的转换方法;(4) 循环的应用。实验内容:(1和2必做,3选做)1.条件循环实验(教材3.13第4题):计算e的近似值(精确到小数后面5位)。具体要求:(1) 绘制流程图,编制程序代码。(2) 分析不进入循环、只循环一次、只循环两次、进入死循环的条件,以及此时各变量的值。(3) 分析循环退出时的条件表达式值。(4) 如何测试循环的次数?(5) 能否将程序改写成另外的形式,如while改写成do while或for语句?(6) 总结条件循环的设计、实现步骤和测试

    19、方法。2.计数型循环实验:九九表及其变体形状的打印。具体要求如下:(1) 分析并绘制九九表的程序实现代码(右上三角形状);(2) 分析程序的执行过程;(3)* 请在此基础上修改部分程序代码以打印如下一些变形九九表:右下三角、左上三角、左下三角、倒序排列等形状,并观察、分析和总结其规律。(4) 分析并总结计数型循环在do while, while和for循环句型中的实现方法和步骤。3.其它实验题目:(1) 兔子繁殖问题(Fibonacci数列);(2) 爱因斯坦阶梯问题;(3) 求两个非负整数u和v的最大公因子;(4) 求两个非负整数的最小公约数;(5) 用牛顿迭代法求正实数a的平方根;(6)

    20、用梯形法求函数的数值积分;(7) 把由键盘输入的数列(1,3,5,7,9.)按相反的顺序(如.9,7,5,3,1)输出。实验准备:(1) 编写所选实验题目的程序代码和流程图;(2) 检查源程序并给出其可能的运行结果说明。实验步骤:(1) 上机验证所选题目,并做相应测试和分析;(2) 进行实验分析;(3) 总结循环程序设计、实现本方法及其经验;(4) 编写实验报告。实验结果:(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。实验六 基于函数的模块化程序设计(4学时)实验目的:(1) 了解和掌握C语言环境下模块化程序设计的基础-基于函数模块的程序设计技术;(2)

    21、 复习C语言程序的基本结构特点,了解基于函数模块的程序模块及其调用关系、过程;(3) 函数的声明、定义、使用方法;(4) 对各种变量属性的使用方法;(5) 对C语言中常用的预编译命令的基本掌握。实验内容:(第1题任选其两个小题,第2题和第3题必做)1.函数的声明、定义和使用方法。具体实例如下:(1) 编写一个在屏幕上画一条正弦曲线的函数;(2) 编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果:72=2*2*2*3*3;(3) 分别写出一个求N个数的最大公约数和最小公倍数的递归函数;(4) 试编制n碟片hanoi塔的问题求解函数,并利用它求解4个盘片的结果;(5) 试编写求n!的函

    22、数,并求n=7的结果。具体要求如下:(1) 编写程序通过调试获得正确结果;(2) 分析函数的声明、定义和使用方法;(3) 分别分析函数调用时的参数传值调用方法。2.有关变量的属性实验(静态、动态、全局、局部等方面)。具体实例如下:(1) 仔细分析以下程序的执行结果,然后上机运行如下程序段,并对各个变量的属性及其使用结果进行比较分析:main() /*(a)*/ int x=1; /*(b)*/ void prt(void); int x=3; prt(); printf(The second x is %dn,x); /*(c)*/ printf(The first x is %dn,x);v

    23、oid prt(void) /*(d)*/ int x=5; printf(The third x is %dn,x); /*(e)*/(2) 仔细分析下列程序,是否有错误之处?然后分析其执行结果,上机验证并对各个变量的存储属性及其结果进行比较分析:#define LOW 11#define HIGH 23#define CHANGE 12int i=LOW;main() int workover(int i); int reset(int i); int i=HIGH; reset(i/2.5); printf(i=%dn,i); reset(i=i/3); printf(i=%dn,i);

    24、 reset(i/2); printf(i=%dn,i); workover(i); printf(i=%dn,i);workover(int i); i=(i%i+)*(i*i)/(2*i)+4); printf(i=%dn,i); return (i);reset(int i); i=i=CHANGE?LOW:HIGH+; return (i); (3) 以下程序希望打印5行*,能否做到?为什么?int i;main() void prt(); for (i=0;i5;i+) prt(); void prt() for (i=0;i5;i+) printf(%c,*); printf(n)

    25、;(4) 分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量的存储属性。/*file1.c*/int last(void);int new(int);int reset(void);exter int i;main(void)int i,j;i=reset();for (j=1;j=3;j+) printf(“i=%dtj=%dn”,i,j);printf(“next(i)=%dt”,next(i);printf(“last(i)=%dn”,last();printf(“new(i+j)=%dn”,new(i+j);int next(void)return (i+);/

    26、*file2.c*/static int i=10;fast(void)rturn (i-=1_);new(int i)static int j=-5;return (i=j+=+i);/*file3.c*/extern int i;reset()return (i);3.预编译命令实验。具体实例如下:(1) 一般宏替换实验(教材例4.20和4.23);(2) 带参数的宏替换(教材例4.25和习题4.15);(3) 文件包含(#include 和#include )。实验准备:(1) 编写所选实验题目的程序代码和流程图;(2) 检查源程序并给出其可能的运行结果说明。实验步骤:(1) 上机验证所

    27、选题目,并做相应测试和分析;(2) 进行实验分析;(3) 总结基于函数、宏等技术的模块化程序设计和实现方法及其经验;(4) 编写实验报告。实验结果:(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。实验七 数组(6学时)实验目的:(1) 掌握C语言环境下数组的声明、定义和使用方法,包含其初始化、赋值、输入、输出和处理方法;(2) 掌握字符数组和字符串数组的使用方法;(3) 了解数组作为函数参数或返回值的传递和使用方法。实验内容:(第1题必做,第2、3、4任选一个)1.数组的基本使用方法实验。包含数组的声明方法、初始化方法、输入、输出方法、元素的引用方法以及数

    28、组作为函数参数的使用方法。(1) 一维数组的声明、初始化及引用方法;(2) 二维数组的声明、初始化及引用方法;(3) 字符数组和字符串数组的初始化及引用方法的差异分析;(具体实例参见教材实例)测试函数声明和定义方法时,可以从以下几个方面进行测试:1) 用已声明和定义的变量作为数组大小的声明;2) 用已声明的const变量作为数组变量大小的声明;3) 用宏名表示声明数组变量的大小;4) 用表达式计算结果作为数组变量的大小;5) 用宏的运算结果表示声明数组变量的大小。(4) 分别按行序和列序顺序返回一个二维数组中各个元素的内存空间地址值,以观察数组元素在计算机内存中的排列规律。2.一维数组的应用。

    29、具体实例如下:(1) 有一个数组大小为10,内放10个数,请找出其中对大和最小元素来,并分别将其与数组第1个元素和最后1个元素交换。(2) 有17个人围成一圈,其编号分别为1到17,如果从1号开始报数,凡报到7的倍数的人必须离开该圈子,然后再接着往下数,直到最后只剩一个人为止。请问最后一个人原来的位置序号是多少?(扩展问题:请将每个人按出列顺序重新排列后,其排列的顺序是什么?)3.二维数组应用。具体实例如下: (1) 输入一个n*n的矩阵。1) 试求除开对角线上元素之外的元素之和;2) 求每行中与相应对角线元素不同的元素之和; (2) 有n个学生,m门功课。要求:1) 找出成绩最好的学生及其对应的课程号码;2) 求全部同学每门课程的平均成绩;4.字符数组应用。具体实例: (1) 有三行文字,请找出其中空格的个数,并统计单词的个数。(注:单词以一个或多个空格为间隔。如果一个单词刚好在行末结束,则下一行开头应该有空格,包含句号和逗号后面也应该有空格!) (2) 输入n个国家的名字,要求按照字母的先后顺序排序,并输出排序前后的结果。实验准备:(1) 编写所选实验题目的程序代码和流程图;(2) 检查源程序并给出其


    注意事项

    本文(C语言程序设计实验指导手册.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开