中南民族大学管理学院
学生实验报告
实验课程
C程序设计语言
姓
名
xxx
学
号
xxxxx
年
级
xxxxx级
专
业
电子商务
指导教师
xxxxx
实验地点
5号教学楼4楼
2010至2011学年 第2学期
目
录
实验一
Visual C++6.0集成开发环境入门
实验二
数据类型、运算符和表达式
实验三
顺序结构程序设计
实验四
选择结构程序设计
实验五
循环结构程序设计基础
实验六
循环结构程序设计方法
实验七
数组的基本概念
实验八
数组的程序设计
实验九
实验十
实验十一
实验一
VisualC++6.0集成开发环境入门
实验属性
验证
实验时间
2011-04-01
实验目的
1.
熟悉Visual C++6.0的集成开发环境。
2.
掌握C语言程序的书写格式和C语言程序的结构。
3.
掌握C语言程序的上机步骤,熟悉用Visual C++6.0编写C语言程序和运行简单C语言程序的方法。
实验内容
练习在Visual
C++6.0集成开发环境中输入、编译、测试和运行简单C语言程序的基本方法和步骤。
实验步骤
1.
通过“开始”菜单,或者通过桌面快捷方式,均可进入Visual
C++6.0开发环境窗口。
2.
输入新程序前的准备工作。
3.
输入源程序。
4.
编译和连接。
5.
执行程序。
6.
一个程序完成后,选择菜单命令File→Close
workspace关闭工作空间。
7.
重复步骤2-6,可以创建并运行其他的C语言程序。
实验结果分析
起初实验失败,原因在于文件建立错误。之后实验成功,进行调试之后能够运行程序。
指导教师批阅
实验二
数据类型、运算符和表达式
实验属性
验证
实验时间
2011-4-8
实验目的
1.熟悉C语言的数据类型,掌握变量的定义、初始化和赋值。
2.掌握不同类型数据之间的赋值规律。
3.掌握算术运算符合算术表达式,特别是自加(++)和自减(--)运算符的使用。
4.进一步熟悉并掌握Visual C++6.0集成开发环境和运行简单C语言程序的基本
方法和步骤。
实验内容
练习在Visual
C++6.0集成开发环境中输入、编译、测试和运行简单C语言程序的基本方法和步骤。
实验步骤
1.输入并运行下面的程序:
#define PRICE 30
#include "stdio.h"
void main( )
{ int num,total;
num = 10;
Total = num * PRICE;
printf ("total=%d", total);
}
2.输入并运行一下程序:
#include "stdio.h"
void main( )
{ int a, b, c,
d;
unsigned u;
a = 12;
b = -24;
u = 10;
c = a+u;
d = b+u;
printf("%d,
%d\n", c, d);
printf("%u\n",u);
}
3.输入并运行下面的程序:
# include "stdio.h"
void main()
{ float
f=5.752;
printf("(int)f=%d,f=%d\n",(int)f,f);
}
实验结果分析
第一次实验由于操作不熟悉,也不熟悉运行环境,加之输入有误,以失败告终。但第二次实验吸取了之前教训最终成功。
指导教师批阅
实验三
顺序结构程序设计
实验属性
验证
实验时间
2011-04-15
实验目的
1、
理解顺序程序设计的思想。
2、
熟练掌握各种数据类型的输入和输出格式,能正常使用各种格式转换符。
3、
掌握C语言中使用最多的一种语句——赋值语句的使用方法。
4、
掌握并熟练使用输入函数和输出函数。
实验内容
一、#include
void main(
)
{
int a,b;
float c,d;
char c1,c2;
scanf
(“%d,%d”,&a,&b);
getchar ( );
scanf
(“%c,%c”,&c1,&c2);
printf (“\n”);
printf(“a=},b=}\n”,a,b);
printf (“c=%10.2f,d=%10.2f\n”,c,d);
printf (“c1=%c,d=%c\n”,c1,c2);
}
二、#include
void main(
)
{
char a=‘B’,b=‘o’,c=‘k’;
putchar (a);putchar (b);putchar(b);putchar(c);
putchar (‘\n’);
putchar (b);putchar (c);
putchar
(‘\n’);
}
三、#include
void main(
)
{
int
a,b,c;
long m;
float x;
double y;
char ch; string [20];
printf (“input a,b,c,m:”);
scanf (“%d %o %x
”,&a,&b,&c,&m);
printf (“a=%d,b=%d,c=%d,m=\n”,a,b,c,m);
printf (“input x,y:”);
scanf (“%f
%1f”,&x,&y);
getchar ( );
printf (“x=%f,y=%f\n”,x,y);
printf (“input ch ,string :”);
scanf (“%c
%s”,&ch,string);
printf (“ch=%c,string=%s\n\n”,ch,string);
}
实验步骤
1、
输入实验内容的程序。
2、
运行实验程序。
3、
得到实验结果。
实验结果分析
起初实验出错是因为程序中的字符的错误输入,以及程序中少输入了字符。经过调试后,正确修改实验程序得意正确运行。
指导教师批阅
实验四
选择结构程序设计
实验属性
验证
实验时间
2011-04-22
实验目的
1.了解C语言的关系运算和逻辑运算,掌握关系运算符和逻辑运算符的使用方法。
2.掌握if语句和switch语句的使用。
3.熟练掌握选择结构程序设计方法。
4.结合程序掌握一些常用的简单算法。
实验内容
1.
输入并运行下面的程序。
#include “stdio.h”
void main()
{
int
a=1,b=1,x=1,y=0,z=3,p=4,c,d;
c=(a=x>y)&&(b=z>p);
printf(“a=%d b=%d
c=%d\n”,a,b,c);
}
2.输入并运行下面的程序。
#include “stdio.h”
void main()
{
int a=5,b=6,c;
c=a>b?a:b
printf(“c=%d\n”,c);
printf(“%d\n”,(a!=b)?a-b:a+b);
}
实验步骤
1.输入实验内容。
2.运行实验内容。
3.得到实验结果。
实验结果分析
实验在第一次就成功了,但是在输入程序的过程中,出现过很多次错误。
指导教师批阅
实验五
循环结构程序设计基础
实验属性
验证
实验时间
2011-04-29
实验目的
1 掌握循环结构的基本特征,理解循环控制、循环体、循环控制变量的概念。
2 掌握while语句、do while了语句和for语句的语法规则。
3 学会编写简单的循环结构程序。
实验内容
1 #
include
void main ()
{ int
i=1,sum=0;
while (i<=100)
{
sum=sum+I;
i++;
}
printf(“sum=%d\n”,sum);
}
2 #
include
void main ()
{ int
n=1,f=-1;
float t,pi=0;
do
{
f=-f;
t=1.0/(2*n-1);
pi+=f*t;
n++
}while(t>le-5);
pi=4*pi;
print(“PI=%.4f\n”,pi);
}
3 #
include
viod main ()
{ int i,j;
for(i=1;;i<=4;i++)
{
for(j=o;j
for(j=0;j<6;j++)putchar(‘*’);
putchar(‘\n’);
}
}
实验步骤
1.输入实验内容的程序。
2.运行实验程序。
3.得到实验结果。
实验结果分析
程序设计步骤起初有误,运行结果不正确,修改之后能够正确运行。
指导教师批阅
实验六
循环结构程序设计方法
实验属性
验证
实验时间
2011-05-06
实验目的
1.掌握程序调试的基本方法。
2.掌握循环结构程序设计方法。
实验内容
1.
利用辗转相除法求两个正整数m和n的最大公约数;
2.
1
#include
2
#include
3
void main()
4
{
double x,y,y0;
5
printf(“输入一个正数:”);
6
do scanf(“%f”,x);
7
while(x<0);
8
y=0;
9
do
10
{
y0=y;
11
y=1/2*(y+x/y);
12
}while(abs(y-y0)/y
13
Printf(“Square root of %f is %f\n”,x,y);
14
}
3.弦截法:
(1)
选择一个求解区间(a,b),使f(a)·f(b)<0。
(2)
计算x=a-(a-b)f(a)/(f(a)-f(b)),若f(x) 0则x为近似解,输出x,程序结束。
(3)
若f(x)·f(a)<0则令b=x,否则令a=x,转到(2)继续求解。
实验步骤
1.利用辗转相除法求两个正整数m和n的最大公约数。跟踪程序的运行过程,记录在循环体中各个变量的变化情况。
2.
上面的程序利用迭代公式 =求x=的近似值,试通过上机修正所有错误。
3.
分别用二分法、牛顿迭代法和弦截法求方程In +2
-3=0的近似解。
实验结果分析
按照以上步骤验证循环结构设计方法结果正确。
指导教师批阅
实验七
数组的基本概念
实验属性
验证
实验时间
2011-05-13
实验目的
1.掌握一维数组的定义和使用方法。
2.掌握二维数组的定义方法。
3.掌握几个常用的算法。
实验内容
1.求数组a中的最大元素和最小元素。
要点:
(1)分别使用初始化方法和键盘输入方法为数组赋值。
(2)首先用两个循环分别求最大元素和最小元素,然后把它们合并到一个循环
中。
2.数组a包含若干整数,试编程将其倒置。
要点:
(1)定义数组时数组长度可以取较大的数,而在程序中设置一个变量n表示实际
长度。
(2)运用程序调试方法,观察数组的倒置过程。
3.对于给定的二维数组{ },求最大值所在的行和列。
要点:
(1)分别采用初始化方法和键盘输入法为数组赋值。
(2)输出时先打印数组,再打印结果。
实验步骤
1.
通过“开始”菜单,或者通过桌面快捷方式,均可进入Visual
C++6.0开发环境窗口。
2.
输入新程序前的准备工作。
3.
输入源程序。
4.
编译和连接。
5.
执行程序。
6.
一个程序完成后,选择菜单命令File→Close
workspace关闭工作空间。
7.
重复步骤2-6,可以创建并运行其他的C语言程序。
实验结果分析
实验失败过几次,原因在于文件建立中出现几个错误,经过老师指点,进行调试之后能够运行程序。
指导教师批阅
实验八
数组的程序设计
实验属性
验证
实验时间
2011-05-20
实验目的
1.
掌握程序调试方法。
2.
掌握用数组、循环编写程序的方法。
实验内容
1.数组a中存放了若干整数,分别采用起泡法、选择法排序。
要点:
(1)
对比两种排序方法,找出它们的相同点和不同点。
(2)
运用程序调试方法,观察排序过程中各元素的变化情况。
(3)
参照习题的解题思路,能否实现插入法排序?
2.若数组a是有序的(从小到大排序),编程实现用折半法查找数值x的过程。若找到了,则显示哪一个是x;若没找到,则显示“没找到”。
要点:
(1)
可以先尝试顺序查找,再尝试折半法,以体会二者的不同。
(2)
对于折半查找,编程是应特别注意各个下标变量的变化情况。
3.用卡尺测量某钢珠的直径,共测得15组数据,试根据拉伊达判据(即3法)剔除错误数据,然后再计算平均值。
提示:对于某真值x的n次测量,其平均值为 ,标准偏差为 。若某次测量的随机偏差
超过3即为错误数据。
实验步骤
1.数组a中存放了若干整数,分别采用起泡法、选择法排序。
2.若数组a是有序的(从小到大排序),编程实现用折半法查找数值x的过程。若找到了,则显示哪一个是x;若没找到,则显示“没找到”。
3.用卡尺测量某钢珠的直径,共测得15组数据,试根据拉伊达判据(即3法)剔除错误数据,然后再计算平均值。
实验结果分析
试验结果与理论结果一致。
指导教师批阅