《C语言程序设计》实验指导书 下载本文

...

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

课程编号:

课程名称: C语言程序设计

实验学时: 44

一、本实验课的性质、任务与目的

本实验课目的是使学生掌握 C语言编程的常用方法, 熟悉该语言中的语法、

词法规则, 为以后进行软件开发和学习后继专业课程打下基础。

通过学习能够运

用 C语言中的各个知识点编写能完成一定功能的程序。 训练学生进行复杂程序设 计的技能和培养良好程序设计的习惯, 其重要程度决不亚于知识的传授。 把高级 语言的学习与程序设计、 上机实践紧密地结合起来, 以提高学生能灵活运用新的 知识分析问题和解决问题的能力。 二、本实验课所依据的课程基本理论

本实验课基于 C 语言的语法和词法规则、数据的表示及算法的处理,而

语法及算法正是高级语言程序设计的主要研究对象。 《C 语言程序设计》的主要 任务是: C 语言是一种应用广泛结构化程序设计语言,本课程介绍 本概念、基本语法和编程方法,重点描述 的能力。

三、实验类型与要求

在做每个实验之前,让学生对本次实验相关的内容进行预习、算法设计、

流程图的设计、编写程序,做好实验的准备工作;写出预习报告,画出流程图, 要求独立完成。

说明:1、实验类型:设计性; 2

、实验要求:必做。

程的学习,使学生掌握一定的结构化程序设计的知识,以及用

C 语言的基

C 语言的结构化的特征,并通过本课

C 语言编写程序

四、每组人数与实验学时数

每组 1 人,实验学时数 44 学时。

五、考核方式与评分办法

实验总成绩 =出勤情况*10%+实验报告*20%+平时*30%+实验表现 *40%

六、本实验课配套教材或实验指导书

谭浩强 . C 程序设计 . 北京:清华大学出版社

,2006 年 3 月第 3 版

,2006 年 3 月第 3 版

,2006 年 3 月第 2 版

谭浩强 . C 程序设计题解与上机指导 . 北京:清华大学出版社 谭浩强 . C 程序设计试题汇编 . 北京:清华大学出版社 夏宽理 . C 语言程序设计上机指导与习题解答

夏宽理 . C 语言程序设计 . 北京:中国铁道出版社, 2006 年 2 月第 1 版

. 北京:中国铁道出版社, 2006 年 2 月第 1 版

王士元 . C 高级实用程序设计 . 北京:清华大学出版社, 1996 年 1 月第 1 版

...

...

七、实验报告要求

在机器上交作业,每次实验成绩分为优、良、及格、不及格,未参加的为 0 分。要求

认真书写实验报告。 实验报告编写要求:

1.实验题目 2.实验要求 3.程序流程图

4.调试过程(实验过程出现的问题、解决的方法) 5.程序代码及运行结果。 八、实验内容

实验一 :C语言运行环境的认识与简单的

C程序

【目的与要求】

1、了解 TC环境下 C语言的运行环境,熟悉编译系统的操作环境。 2、了解在该系统上如何编辑、编译、连接和运行一个 C程序。

3、通过运行简单的 C程序,初步了解 C源程序的特点。

4、掌握和理解 C程序中最基本的 C语句。 【实验内容】

1、题目:由键盘输入两个整数,计算并输出两个数之和。 2、程序如下:

#include “stdio.h ”

void main() {int a,b,sum;

printf( “Please input two integer numbers:\\n ”);

scanf( “%d%d”,&a,&b); sum=a+b;

printf( “%d+%d=%”d ,a,b,sum); } 3 、具体操作:

(1)输入程序, 然后进行编译连接。 若在编译中有词法或语法错误,则根据提示进行修改,再进行调试,直到没有语法错误。

(2)运行程序,依下列不同的方式输入数据,查看程序执行结果。

① 12_ 34 ↙

② 12

↙ 34 ↙ ③ 1234 ↙

【实验分析与讨论】

1 、总结 C程序的基本结构和书写规则。

...

...

2、分析调试过程中常见的错误提示和解决策略。

实验二 :C语言程序的单步调试

实验三 :选择结构的程序设计

【目的与要求】

1、了解三种基本数据类型的定义。

2、掌握各种不同运算符及其对应的表达式的使用。 3、熟练掌握 if 语句和 switch 语句的使用 【实验内容】 一、判断方程2

ax

解。+bx+c=0

有几个解,若有,则输出其1 、算法分析:

对于方程ax 24ac=0, +bx+c=0 有的解,存在以下情况:① a=0, 不是一元二次方程;② b2-两个相等的实根;③ b

2

-4ac>0, 有两个不等的实根;④ b2-4ac<0, 有两个共轭复根。

(1) 定义变量: a,b,c,x1,x2,d (2) 输入 a,b,c

(3)if(a==0)

不是一元二次方程

else d= b 2

-4ac

根据 d 的取值,输出方程根的情况:

if(b 2

b/(2*a)

-4ac==0) x1=x2=-

else if(b 2

sqrt(d))/(2*a) -4ac>0) x1=(-b+sqrt(d))/(2*a) x2=(-b-else x1=(-b+sqrt(-d)i)/(2*a) x2=(-b-sqrt(-d)i)/(2*a) 2、程序代码:

#include “stdio.h ” #include “math.h ”

void main()

{float a,b,c,x1,x2,d; printf( “请输入 ax

2

+bx+c=0 方程三系数值:” ) ;

scanf( “%f%f%f”,&a,&b,&c); if (abs(a)<=1e-6) //a==0

printf( “该方程非一元二次方程 .\\n ”) ; else

{d=sqr(b)-4*a*c;

if (abs(d)<=1e-6) // sqr(b)-4*a*c ==0

printf( “该方程的两个相等实根为: x1,x2=%4.2f ”,-b/(2*a)); else if(abs(d)>1e-6)

...