机制专业C语言程序设计实验指导书.docx
《机制专业C语言程序设计实验指导书.docx》由会员分享,可在线阅读,更多相关《机制专业C语言程序设计实验指导书.docx(15页珍藏版)》请在冰豆网上搜索。
机制专业C语言程序设计实验指导书
韶关学院机制专业C语言程序设计实验
说明
1、所有同学必须参加实验课,按照排定顺序上机。
2、每次上机请固定机位,一人一机。
3、本课程9次上机实验(全部实验需要提交电子版实验报告,如果课堂上没有完成实验报告,可以课下完成,并于下次上机时提交)
文件夹命名为“学号的最后两位+姓名(实验*)”,例如:
01李明(实验1)。
4、在机房内务必保持安静,不得大声喧哗,不得从事与实验无关事项,如打游戏、看电影等。
5、写好预习报告:
针对实验内容要求用自己的语言简要的写明实验目的、实验原理,并针对实验内容预先做好程序的编写。
所有实验项目必须提前编写程序!
!
!
不写预习报告不得参加实验!
!
!
6、数据记录
记录实验的原始数据,拒绝抄袭。
7、实验内容
总结所做实验的内容
回答有关思考题
2016、3
实验一C语言运行环境
一、目的和要求
1、熟悉使用C语言运行环境。
2、掌握C语言程序的书写格式和C语言程序的结构。
3、掌握C语言上机步骤,了解运行一个C程序的方法。
二、实验内容
要求:
编辑下面源程序,并且读懂与分析运行程序,上机运行程序,并与分析结果相对比。
学会使用TC运行程序的基本方法。
1.输入并运行以下程序,观察运行结果。
#include
intmain()
{printf("*********************\n");
printf("verygood!
\n");
printf("*********************\n");
return0;
}
分析结果
运行结果
2.输入并运行以下程序,观察运行结果。
#include
intmain()
{inta,b,sum,minus;
a=123;b=456;
sum=a+b;minus=a-b;
printf("a+b=%d\na-b=%d\n",sum,minus);
return0;
}
分析结果
printf中删除a+b=和a-b=
输出结果:
printf中删除第一个\n
输出结果:
运行结果
printf中删除a+b=和a-b=
输出结果:
printf中删除第一个\n
输出结果:
3.完成程序
要求:
依据题目要求,分析已给出的语句,填写空白。
但是不要增行或删行,改动程序的结构。
(1).求(a+b)×c的值。
(设a=3,b=2,c=1)
#include
intmain()
{inta,b,c;
a=3;
c=1;
printf("%d\n",(a+b)*c);
return0;
}
(2).求圆的面积。
#include
#definePI3.14
intmain()
{
floatr,area;
printf("\nEnterrvalue:
");
scanf("%f",&r);
area=PI*r*r;
printf("\narea=%f\n",);
return0;
}
4.调试程序
要求:
调试运行下列程序是否正确,若有错,写出错在何处?
填写正确的运行结果。
行号#include
1.intmain()
2.{intx;
3.x=5,y=8;
4.printf("\n%d,%d,%d\n",x,(x+5)*2,y);
5.return0;
6.}
错
错误在行
应改为:
调试正确后的运行结果
输出结果:
5.编写程序
(1).编写程序输出用6颗星构成的等边三角形。
*
**
***
(2).编写一个C程序,输入a,b,c三个值,输出其中最大者。
三、分析与讨论
1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。
分析讨论对策成功或失败的原因。
2、总结C程序的结构和书写规则。
实验二数据的存储与运算
一、实验目的
1.掌握C语言数据类型,熟悉如何定义一个变量以及对他们的赋值方法。
2.学会编写简单的程序,初步掌握编程的思路。
3.学习怎样发现程序中的错误并改正,使之能正常运行。
4.进一步熟悉C程序的编辑、编译、连接和运行过程。
二、实验内容
(一)阅读程序
1.输入并运行以下程序,观察运行结果。
#include
intmain()
{charc1,c2;
c1=97;c2=98;
printf("%c,%c\n",c1,c2);
return0;
}
(1)在第五行后面加入以下printf语句,并运行。
printf("%d,%d\n",c1,c2);
分析结果
运行结果
(2)在
(1)的基础上,将第三行改为以下语句,并运行。
intc1,c2;
分析结果
运行结果
(3)在
(1)的基础上,将第四行改为以下语句,并运行。
c1=321;c2=400;
分析结果
运行结果
2.分析并运行此程序,当输入的数据为10时,下面程序的运行结果。
#include
intmain()
{floatx,y;
scanf("%f",&x);
printf("\n2.4*x-1/2=%f",2.4*x-1.0/2);
printf("\nx%%2/5-x=%f",(int)(x)%2/5-x);
printf("\n(x-=x*10,x/=10)=%d\n",(x-=x*10,x/=10));
return0;
}
分析结果
运行结果
3.分析以下程序运行的结果
#include
intmain()
{
inti,j,m,n;
i=8;j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
return0;
}
分析结果
运行结果
(2) 将第6、7行改为:
m=i++;
n=++j;
分析结果
运行结果
(3)程序改为:
#include
intmain()
{inti,j,m=0,n=0;
i=8;j=10;
m+=i++;
n-=--j;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
return0;
}
分析结果
运行结果
(二)完成程序
要求:
依据题目要求,分析已给出的语句,填写空白。
但是不要增行或删行,改动程序的结构。
1.求任意输入字符的ASCⅡ码。
#include
intmain()
{;//变量的定义
printf(“请输入一个字符:
”);
scanf(“%c”,&a);
b=(int)a;
printf(“\n\n%c的ASCⅡ码为%d\n”,a,b);
return0;
}
2、输出任意一个十进制数对应的八进制,十六进制数。
#include
intmain()
{inta;
scanf(“%d”,&a);
printf(“\n%d(10),%o(8),%x(16)\n”,);
return0;
}
(三)调试程序
要求:
调试运行下列程序是否正确,若有错,写出错在何处?
填写正确的运行结果。
1.行号#include
1intmain()
2{intu=v=89;
3printf(“u=%d,v=%d\n”,u,v);
4return0;
5}
错
错误在行
应改为:
调试正确后的运行结果
输出结果:
2.下面的程序试图计算由键盘输入的任意两个整数的平均值:
行号#include
1intmain()
2{
3intx,y,a;
4scanf("%x,%y",&x,&y);
5a=(x+y)/2;
6printf("Theaverageis%d:
\n",a);
7return0;
8}
错
错误在行
应改为:
调试正确后的运行结果
输入数据
2,6
1,4
-1,-3
-2,4
2,0
输出结果:
(四)编写程序
1.编程求
的和。
2.输入圆半径(值为5),输出圆的周长和面积。
实验3顺序程序设计
一、目的和要求
1、掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2、掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3、进一步掌握编写程序和调试程序的方法。
二、实验内容
1、(教材94页,习题3.3.)用下面的scanf函数输入数据,
使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’.问在键盘上如何输入。
#include
intmain()
{inta,b;
floatx,y;
charc1,c2;
scanf("a=%db=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("a=%db=%d",a,b);
printf("%f%e",x,y);
printf("%c%c",c1,c2);
return0;
}
先后按以下方式输入数据,分析运行结果是否正确,如果不正确,说明为什么会不正确。
(1)37↙
8.571.82Aa↙(在8.5,71.82,A后面各有一个空格)
(2)a=3b=7↙
8.571.82Aa↙(在8.5,71.82,A后面各有一个空格)
(3)在输入8.5和71.82两个实数后输入回车符。
a=3b=7↙
8.571.82↙
Aa↙
(4)a=3b=7↙
8.571.82Aa↙(在82后面没有空格)
(5)a=3b=7↙
8.571.82Aa↙(在每个数据后有多个空格)
2、编程序。
输入一个华氏温度,要求输出摄氏温度。
公式为:
c=5/9*(F-32),输出要有文字说明,取2位小数(教材95页,习题3.6)
3、编程求出某学生期末三门课程的总分及平均分。
结果保留小数点后一位。
三、分析与讨论
1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。
分析讨论对策成功或失败的原因。
2、总结掌握编写程序和调试程序的方法。
实验4 选择结构程序设计
一、实验目的
1.正确使用关系表达式和逻辑表达式表达条件。
2.学习语句if使用方法。
3.学习调试程序。
二、实验内容
1、从键盘输入一个整数,编程判断其奇偶性,并输出结果。
2、某托儿所收2岁到6岁的孩子,2岁、3岁孩子进小班(Lowerclass);4岁孩子进中班(Middleclass);5岁、6岁孩子进大班(Higherclass)。
编写程序,输入孩子年龄,输出年龄及进入的班号。
如:
输入:
3,输出:
age:
3,enterLowerclass。
调试无语法错误后,使用下列测试用例进行测试:
(1)3岁;
(2)4岁;(3)5岁;(4)7岁。
3、输入某学生的成绩(成绩为100分制,可以为89.5,如果输入的成绩不在0-100之间,请给出出错提示。
),经处理后给出学生的等级,等级分类如下:
90分以上(包括90):
A
80至90分(包括80):
B
70至80分(包括70):
C
60至70分(包括60):
D
60分以下:
E
三、实验要求
1.复习选择结构程序设计。
2.上机前准备好上机所需的程序,上机时输入和调试自己所编写的程序。
3.上机结束后,应整理出实验报告,实验报告的内容应包括:
题目、程序清单、运行结果及对运行情况的分析。
实验5 循环结构程序设计
一、实验目的
1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。
2、了解条件型循环结构的基本测试方法。
3、掌握如何正确地控制计数型循环结构的次数。
4、了解在循环结构中,提高程序效率的方法。
5、进一步学习调试程序。
二、实验内容
1、编程求解:
鸡兔同笼,有三十五只头,九十四只足,求鸡和兔各有多少?
(提示:
用穷举法求解。
即鸡或免的个数x从0至35循环试探,如果满足共有94只足的已知条件,那么此时的x就是一个解。
问题:
循环条件可以进一步简化以提高程序效率吗?
)
2、输出所有的“水仙花数”,所谓的“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
例如153=13+53+33.
3、每个苹果0.8元,第一天买2个,从第二天开始,每天买前一天的2倍,直到当天购买的苹果个数不超过100的最大值为止,编写程序求每天平均花多少钱。
三、实验要求
1.复习循环结构程序设计。
2.上机前准备好上机所需的程序,上机时输入和调试自己所编写的程序。
3.上机结束后,应整理出实验报告,实验报告的内容应包括:
题目、程序清单、运行结果及对运行情况的分析。
实验6数组
一、实验目的:
1.了解数组与数学矩阵的关系
2.掌握数组的定义、引用和初始化
3.理解二维数组数据的存储顺序
二、实验内容
1、从键盘输入10个整数,统计其中正数、零和负数的个数并输出。
2、编写程序,要求在无序数组中查找给定值首次出现的位置。
例如,数组为:
a[10]=1012039941243334,要查找的数:
4,输出:
其位置:
5,若在数组中没找到该数,则输出:
4在该数组中不存在。
提示:
从第0个元素到最后一个元素依次与被找元素比较,相等则停止查找。
循环结束条件:
(已经找到)||所有的数组元素都已经找遍
3、试编制程序使数组中的数按照从大到小的次序排列。
(起泡法和选择法)
三、实验要求
1.复习数组。
2.上机前准备好上机所需的程序,上机时输入和调试自己所编写的程序。
3.上机结束后,应整理出实验报告,实验报告的内容应包括:
题目、程序清单、运行结果及对运行情况的分析。
实验7函数
(一)
一、实验目的:
1.掌握定义函数的方法
2.掌握声明函数的方法
3.掌握函数实参与形参的对应关系,以及“值传递”的方式。
二、实验内容
1.上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
把程序加以修改。
#include
intmain()
{
intx,y;
printf("%d\n",sum(x+y));
intsum(a,b);
{
inta,b;
return(a+b);
}
return0;
}
2、编写一个C程序,实现下面的功能:
(1)编写一个函数square,对一个整数返回它的平方值。
(2)编写一个函数cube,对一个整数返回它的立方值。
(3)用函数square和cube编写函数quartic和quintic,它们分别返回一个整数的四次方和五次方值。
(4)用上述函数编写一个显示从1~10的整数幂的表的程序,程序输出的形式如下:
ATABLEOFPOWERS
N0.SquareCubeQuarticQuintic
11111
2481632
392781243
﹍﹍﹍﹍﹍
三、实验要求
1.复习函数。
2.上机前准备好上机所需的程序,上机时输入和调试自己所编写的程序。
3.上机结束后,应整理出实验报告,实验报告的内容应包括:
题目、程序清单、运行结果及对运行情况的分析。
实验8函数
(二)
一、实验目的:
1.掌握定义函数的方法
2.掌握声明函数的方法
3.掌握函数实参与形参的对应关系,以及“值传递”的方式。
二、实验内容
1.已有变量定义和函数语句“inta=1,b=-5,c;c=fun(a,b);”,fun函数的作用是计算两个数之差的绝对值,并将差值的绝对值返回给调用函数,请编写fun函数和主函数,并调试。
intfun(intx,inty)
{}
2.青年歌手参加歌曲大奖赛,有10个评委对她进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。
例:
输入:
95899980768890878889。
输出平均分:
88.25分。
要求:
在主程序中输入10个成绩,输出平均分。
编写一个函数,对选手的10个得分进行排序,并按照规则求平均分。
三、实验要求
1.复习函数。
2.上机前准备好上机所需的程序,上机时输入和调试自己所编写的程序。
3.上机结束后,应整理出实验报告,实验报告的内容应包括:
题目、程序清单、运行结果及对运行情况的分析。
实验9指针
一、实验目的:
1掌握指针变量的定义与引用
2掌握指针与变量、指针与数组的关系
3掌握C集成环境中调试指针程序的方法。
二、实验内容
1.输入3个数a,b,c,按大小顺序输出。
(利用指针方法)
2.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
(利用指针方法)
三、实验要求
1.复习指针。
2.上机前准备好上机所需的程序,上机时输入和调试自己所编写的程序。
3.上机结束后,应整理出实验报告,实验报告的内容应包括:
题目、程序清单、运行结果及对运行情况的分析。