...
《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 ↙ ③ 12
【实验分析与讨论】
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)
...