C语言程序设计》实验指导书.docx

上传人:b****6 文档编号:5672620 上传时间:2022-12-31 格式:DOCX 页数:11 大小:21.97KB
下载 相关 举报
C语言程序设计》实验指导书.docx_第1页
第1页 / 共11页
C语言程序设计》实验指导书.docx_第2页
第2页 / 共11页
C语言程序设计》实验指导书.docx_第3页
第3页 / 共11页
C语言程序设计》实验指导书.docx_第4页
第4页 / 共11页
C语言程序设计》实验指导书.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言程序设计》实验指导书.docx

《C语言程序设计》实验指导书.docx》由会员分享,可在线阅读,更多相关《C语言程序设计》实验指导书.docx(11页珍藏版)》请在冰豆网上搜索。

C语言程序设计》实验指导书.docx

C语言程序设计》实验指导书

《计算机基础与程序设计》实验指导书

实验教学U标:

本课程实验教学的U标在于使学生能够掌握算法的基本概念,并根据算法编制程序,掌握调试程序的基本技巧,初步了解软件开发所要经历的阶段,为学生从事讣算机软件开发和数据处理丄作打下坚实的基础。

实验教学要求:

要求掌握数据类型的定义和使用;三种结构的程序设计;数组;函数;指针;结构体与共用体;文件操作等。

实验

(一)C语言的编程环境(TURBOC2.0)

一、目的和要求

1、熟悉C语言运行环境。

2、掌握C语言程序的书写格式和C语言程序的结构。

3、掌握C语言上机步骤,了解运行一个C程序的方法。

4、本实验可在学习完教材第一章后进行。

二、实验内容

1.启动TurboC

如果用户计算机系统已经安装了TurboC编译系统,则在DOS命令状态下键入命令tc。

进入TurboC集成环境后,首先在屏幕上显示TurboC主菜单窗口,如下图所示。

可以看出,在该窗口,有8个菜单条目。

每一个菜单的意义如下:

File处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列表、改变工作目录),退出系统及调用DOS。

Edit建立、编辑源文件。

Run控制运行程序。

如果程序已经编译连接好,且Debug/SourceDebugging以及Option/Compiler/Codegeneration/OBJDebugInformation开关置为On,则可以用此菜单初始化调试阶段。

Compile编译并生成忖标程序与可执行文件。

Project允许说明程序中包含哪些文件的管理条目。

Options可以选择集成环境任选项(如存储模式、编译时的任选项、诊断及连接任选项)及定义宏;也可以记录IncludeOutput及Library文件U录,保存编译任选项和从配置文件加载任选。

Debug检查、改变变量的值,查找函数,程序运行时查看调用栈。

选择程序编译时是否在执行行代码中插入调试信息。

Break/Watch增加、删除、编辑监视表达式,及设置、清除、执行至断点。

特别要指出的是,除了Edit项外,每一个菜单乂有对应的子菜单。

而选择Edit项后,只是进入编辑器。

为了从主菜单中选择所需要的功能,可以用以下两种方式之一:

(1)按F10键后,可以看到屏幕上部主菜单中有反白显示,此时,利用左、右光标移动键(一与一)选择需要的菜单,然后按回车(Enter)键。

(2)直接按Alt+主菜单条目中的首字母(分别为F,E,R,C,P,0,D,B),此时就会

出现相应的子菜单。

例如,按Alt+F表示选择文件子菜单(File)。

当出现子菜单时,其中某个条目是高亮度的,此时可以利用上、下光标移动键(t与丨)

1

来移动该高亮度线,从而选择所需要的功能。

在菜单调用时,按Esc键后将直接返回到活动窗口。

2、有下面的C程序,LI的是想汁算山键盘输入的任意两个整数的积。

******ex1・c********,,

#include(stdio.h);

main()

scanf(u%x,%yM,&x,%y)

p=x+1

printf("Theproductis,p)

请调试上述程序。

3、编写一程序从键盘任意输入2个整数,输入最大值。

三、实验步骤

1、静态地检查上述第2个程序,改正程序中的错误。

2、在编辑状态下照原样键入上述第2个程序。

3、编译并运行上述第2个程序,记下所给出的出错信息。

4、按照事先静态检查后所改正的情况,进行纠错。

5、再编译执行纠错后的程序。

如还有错误,再编辑改正,直到不出现语法错误为止。

6、下面给出6组测试用例,你认为哪儿组较好?

为什么?

(1)0,00

(2)0,99

(3)20,50

(4)33000,20

(5)-5,-2

(6)-5,2

要测试出上述程序中所有错误,你认为应当用儿组测试用例?

四、分析与讨论

1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。

分析讨论对策成功或失败的原因。

2、总结C程序的结构和书写规则。

实验

(二)数据类型、运算符和表达式

一、目的和要求

1、了解c语言中数据类型的意义。

2、理解常用运行符的意义。

掌握C语言表达式的运行规则。

二、实验内容和步骤

1、下面的程序试图汁算山键盘输入的任意两个整数的平均值:

nclude〈stdio.h>

main()

{

intx,y,a;

scanf(u%x,%y,&x,&y);

a=(x+y)/2;

printf("Theaverageis:

Ma);

}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

⑴2,6

(2)1,3

(3)-2,-6

(4)-1,-3

(5)-2,6

(6)-1,3

(7)1,0

(8)1,6

(9)32800,33000

(10)-32800,33000

(1)、分析上述哪儿组测试用例较好?

通过测试,你发现程序有什么错误了吗?

若有错误,请指出错误原因。

(2)、操作符sizeof用以测试一个数据或类型所占用的存储空间的字节数。

请编写一个程序,测试各基本数据类型所占用的存储空间大小。

2、编写一个C语言程序,测试下列各表达式

i,j

i+1,j+1

i++,j++

++i,++j

++i+++++j++

要求在各表达式中i和j都分别有相同的初值。

在实验中注意下列问题:

(1)哪些表达式是错误的?

为什么?

(2)理解+,++,++i,i++的意义和优先级别。

3、编写一个程序,测试常用的十个运算符的优先顺序。

三、分析与讨论

如何正确地选用数据类型?

分析总结运算符的优先级。

实验(三)顺序程序结构程序设IT

一、目的和要求

1.进一步掌握c程序的编辑、编译、连接和运行的过程。

2.熟悉顺序结构的程序设汁方法。

3.熟练使用C的各种表达式。

4.熟练掌握输入、输出函数的使用。

二、实验内容

1.输入x,y,编写程序求z=x+|y的值。

(1)程序中用scanf函数输入x和y的值,请分析以下两个语句

scanf(“%f%f",x,y);

scanf(,&x,&y);

哪一个是正确的,分别运行之,分析程序运行结果。

如果scanf函数改为scanf("%f,%f”,&x,&y);应该怎样输入数据。

2.编耳输入三角形的三边长a、b、c,求三角形面积area的程序。

三、实验步骤与要求:

(1)输入前要加提示语句。

(2)输出结果前要有必要的文字说明。

(3)输入一组数据3,4,5,观察运算结果。

(4)输入另外一组数据3,4,&观察运算结果,分析这个运算结果是否有效。

四、问题讨论

小结上机各个环节所出现的错误及解决的办法。

实验(四)选择结构程序设计

一、目的和要求

1.进一步掌握关系表达式和逻辑表达式的使用。

2.熟悉选择结构程序设计。

3.熟练使用if语句进行程序设计。

4.使用switch语句实现多分枝选择结构。

二、实验内容和步骤

1.用scanf函数输入一个年份year,IT算这一年2月份的天数days,然后用输出函数printf输出days。

实验步骤与要求:

(1)有变量定义为整型。

(2)输入前要加提示语句。

(3)输出结果前要有必要的文字说明。

说明:

(1)闰年的条件是:

year能被4整除但不能被100整除,或者year能被400整除。

(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。

2.编写程序,输入三角形三边d、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。

实验步骤与要求:

(1)输入一组数据3,4,&观察程序运行结果,并与实验二中程序2做比较

(2)另外再输入儿组数据进行测试:

3,4,5

3,3,3

3,3,5

(3)如果程序有误,可采用“跟踪打印”的调试方法,确定错误的出处。

3.编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。

奖金税率

a<5000.00

5000<10000.05

1000320000.08

20000<50000.10

5000^a0.15

实验步骤与要求:

(1)用辻语句编程,自变量和函数值均为双精度类型

(2)用scanf函数输入奖金数a,输出结果釆用以下形式:

&二具体值rate=税率值tax二应缴税款profit二实得奖金数

(3)分别输入沪280,512,1000,4250,5100,运行该程序

(4)用if'elseif语句和switch语句编程,其它同上。

[问题讨论]

对于多分枝选择结构何时使用if语句的嵌套,何时使用switch语句?

实验(五)循环结构程序设讣

一、实验目的

1.熟练掌握三种循环语句的应用。

2.熟练掌握循环结构的嵌套。

3.掌握break和continue语句的使用。

4.练习调试与修改程序。

二、实验内容和步骤

1.分别用wh订e语句、do-while语句编写程序,计算e~l+l/l!

+l/2!

+...+l/n!

实验步骤与要求:

(1)用单重循环编写程序

(2)使误差小于给定的£,设e=lE-5

(3)除了输出e以外,同时还要输出总的项数n

2.如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为"完数”。

例如6的因子是1,2,3,且6二1+2+3,因此6是完数。

编写程序找出1000

之内的所有完数及这些完数的和。

实验步骤与要求:

(1)要求使用for循环

(2)输出形式为:

完数1+完数2...二和值

算法说明:

(1)sum二0,m二2

(2)当m<=1000时,反复执行(2.1)(2.2)(2.3)(2.4),否则转(3)

(2.l)k=m/2,n二0,j二1

(2.2)当j<=k时,反复执行(2.2.1)(2.2.2),否则转(2.3)

(2.2.1)ifJ是m的因子则执行n二n+j

(2.2.2)j++

(2.3)ifm=n则输出完数m,sum二sum+m

(2.4)m++

⑶输出m值

3.输入并运行下面的程序,观察程序的运行结果。

#include"stdio.h"

main()

{intn;

while

(1)

{printf("Enteranumber:

,z);

scanf(”%d",&n);

辻(n%2=l)

{printf(,ZIsaid");

continue;}

break;

}

printf("Thanks.Ineededthat!

");

}

4.求梅森尼数:

指为素数的数n,求0~21间的梅森尼数。

5.绝对素数:

一个素数,经过任意次调换位,还是素数,例如:

13(31),求2位的所有绝对素数。

6.S=sqrt(ln(l)+ln

(2)++ln(n))n=40,求S

三、内容讨论

1.小结三种形式的循环使用的区别。

2.小结循环嵌套的规定和应用

一、目的与要求

1.理解和掌握多模块的程序设计与调试的方法。

2.掌握函数的定义和调用的方法。

二、实验内容与步骤

1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。

main()

{

int,y;

printf(d\n",sum(x+y));

intsum(a,b)

{

inta,b;

return(a+b);

}

}

2、编写一个函数,判断一个数是不是素数。

在主函数中输入一个整数,输出是否是素数的信息。

实验步骤与要求:

(1)编写一个函数prime(n),返回给定整数n是否为素数。

(2)编写一个主函数,输入一个整数,调用

(1)中的函数,判断此整数是否为素数,并输出结果。

(3)对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。

果编译有错时,可分别修改,这样便于调试。

实验2和实验3也可以使用这样的调试方法。

3、用梯形法求函数的定积分。

实验步骤与要求:

(1)编制一个函数sab(a,b,n),其功能是求函数f(x)在[d,b]上的定积分,其中n为区间[a,b]的等

分数。

要求该函数在一个独立的文件中。

(2)编制一个主函数以及计算被积函数值的函数f(x),在主函数中调用

(1)中的函数计算并输出下列

积分值。

要求主函数与函数f(x)在同一个文件中。

(3)编制另一个主函数以及汁算被积函数值的函数f(x),在主函数中调用

(1)中的函数计算并输出下

列积分值。

要求主函数与函数f(x)在同一个文件中。

说明:

用梯形法求定积分,梯形公式为

s二h[f(a)+f(b)]/2+hf(a+kh)其中,h二(b~a)/n

三、分析讨论

1.小结函数的定义及调用方法。

2.小结函数中形参和实参的结合规则。

3.编写和调试包含多模块的程序时,容易出现什么样的错误?

根据自己的实践总结一下。

一、目的和要求

1.掌握指针变量的定义与引用。

2.熟练使用函数指针、数组指针、字符串指针编写应用程序。

二、实验内容和步骤

1、指出下面程序错误的原因。

main()

{

intx=10,y=5,*px,*py;

px二py;

px=&x;

py二&y;

printf(u*px=%d,*py=%d,*px,*py);

2、写一函数,求一个字符串的长度。

实验步骤与要求:

(1)本部分习题要求全部用指针完成;

(2)在main函数中输入字符串,并输出其长度;

(3)本题不能使用strlen()函数;

方法说明:

在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char*p),得到字符吊的长度。

在函数strlenth(char*p)中,判断*p是否为'\0',如果不为'\0',则进行len卄的操作,直到遇到'\0'为止。

然后返回len值。

求字符串长度的函数strlenth(char*p)算法如下:

⑴.定义intlen=O;

(2).当和!

二'\0'时,重复执行(2.1)(2.2),否则算法终止。

(2.1)len=len+l

(2.2)p++

(3).return(len)

3、编写一个函数,将数组中n个数按反序存放。

实验步骤与要求:

(1)在主函数中输入10个数,并输出排好序的数。

(2)编写函数invert()将10个数按反序存放。

4、设一个函数,调用它时,每次实现不同的功能:

(1)求两个数之和;

(2)求两个数之差;(3)求两个数之积。

实验步骤与要求:

(1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。

(2)分别编写函数add()、sub()、mul()it算两个数的和、差、积。

(3)编写函数process(),分别调用函数add()>sub()、mul()o

三、分析讨论

指针的正确使用方法,数组与指针的联系。

实验(八)结构体与共同体

一、目的和要求

1、掌握结构体类型方法以及结构体变量的定义和引用。

2、掌握指向结构体变量的指针变量的应用,特别是链表的应用。

3、掌握运算符”.”和”-〉”的应用。

4、共用体的概念和应用。

二、实验内容和步骤

1、有五个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入五个学生的数据,要求打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)。

实验步骤与要求:

用一个函数输入五个学生的数据;用一个函数求总平均分;用函数找出最高分学生数据,总平均分和最高分的学生的数据都在主函数中输出。

2、三个人围成一圈,从第一个人开始顺序报号1,2,3。

凡报到“3”者退出圈子,找出最后流在圈子中的人原来的序号。

3、建立一个链表,每个结点包括:

学号,姓名,性别,年龄。

输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

三、分析讨论

指针和结构体的结合使用方法,怎样处理链表

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 数学

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

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