《C语言程序设计》实验报告实验112.docx
- 文档编号:12846142
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:45
- 大小:28.87KB
《C语言程序设计》实验报告实验112.docx
《《C语言程序设计》实验报告实验112.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验报告实验112.docx(45页珍藏版)》请在冰豆网上搜索。
《C语言程序设计》实验报告实验112
《C语言程序设计》
实验报告
2013~2014学年第二学期
班级
姓名
学号
指导教师
实验一
实验项目名称:
C程序的运行环境和运行C程序的方法
所使用的工具软件及环境:
VisualC++6.0
一、实验目的:
1.了解在VisualC++6.0环境下如何编辑、编译、连接和运行一个C程序;
2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:
教材《C语言程序设计教程》第1章。
三、实验内容:
1.在VisualC++6.0环境下输入并运行下面的程序:
#include
intmain()
{
printf("ThisisaCprogram.\n");
return0;
}
2.在VisualC++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include
intmain()
{
inta,b,sum
a=3;
b=4;
sun=a+b;
print(“%d+%d=%d\n”,a,b,sum);
return0;
}
四、实验结果:
1.运行结果(或截图):
ThisisaCprogram.
Pressanykeytocontinue
2.
(1)改正后的源程序:
#include
intmain()
{
inta,b,sum;
a=3;
b=4;
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
return0;
}
(2)运行结果(或截图):
3+4=7
五、思考题:
1.一个C程序上机的步骤有哪些?
答:
上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。
2.组成C程序的基本单位是函数,一个函数包括哪几个部分?
答:
一个函数包括两部分:
分别为函数头或函数首部和函数体。
成绩指导教师签名
实验二
实验项目名称:
数据类型、运算符和表达式
所使用的工具软件及环境:
VisualC++6.0
一、实验目的:
1.掌握整型、实型与字符型这三种基本类型的概念;
2.掌握常量及变量的使用方法;
3.掌握基本算术运算符及其表达式的使用方法;
4.掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:
教材《C语言程序设计教程》第2章。
三、实验内容:
1.在VisualC++6.0环境下输入下面的程序,编译、连接、调试该程序。
main()
{
charm,n;
m=280;
n=320;
printf(“%d\t%d\n”,m,n);
printf(“%c\t%c\n”,m,n);
}
2.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。
#include
intmain()
{
inta=3,b=4,c=8;
floatd,e;
d=a+b/c;
e=a+(float)b/c;//请将此处d改为b
printf("d=%f,e=%f\n",d,e);
}
3.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。
#include
main()
{
inta,b,c,d,i,j,m,n;
a=b=c=d=3;
i=a++;
j=++b;
m=c--;
n=--d;
printf("a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%d\n",a,b,c,d,i,j,m,n);
}
4.在VisualC++6.0环境下输入并运行下面的程序,观察分析运行结果。
#include
main()
{
inta=4;
a+=a-=a*a+a;
printf("a=%d\n",a);
}
四、实验结果:
1.运行结果(或截图):
2464
@
2.运行结果(或截图):
d=3.000000,e=3.500000
d=3.000000,e=3.375000
3.运行结果(或截图):
a=4,b=4,c=2,d=2,i=3,j=4,m=3,n=2
4.运行结果(或截图):
a=-32
五、思考题:
1.给变量命名应该注意哪些问题?
答:
每个变量必须进行数据类型说明;
2.程序2的运行结果中,d和e的值为什么不同?
答:
d的赋值语句中,除法是两个整型数字的运算,其结果没有小数位;而e中对b进行了强制转换为实型,所以其除法运算结果有小数位。
3.程序3的运行结果中,i和j的值为什么不同?
m和n的值为什么不同?
//改为程序3
答:
i(m)是通过后自增(后自减)实现的,而后自增(后自减)是先参与其他运算,后对变量递增(递减);
而j(n)是通过前自增(前自减)实现的,其是先对变量递增(递减),后再参与其他运算。
4.请分析表达式a+=a-=a*a+a的运算过程(写出运算步骤)。
答:
先将a-(a*a+a)赋值给a,再将a+a赋值给a。
成绩指导教师签名
实验三
实验项目名称:
简单的输入输出及顺序程序设计
所使用的工具软件及环境:
VisualC++6.0
一、实验目的:
1.掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用);
2.掌握整型、实型与字符型数据的正确输出方法(printf函数的使用);
3.掌握编写顺序程序的方法。
二、预习内容:
教材《C语言程序设计教程》第3章。
三、实验内容:
1.编写C程序,按下列公式计算并输出S的值,其中a和b的值有键盘输入。
main()
{inta,b;
floats;
scanf(“%d,%d”,&a,&b);
s=2.0*a*b/(a+b)/(a+b);
printf(“s=%f\n”,s);
}
①输入并调试。
②将scanf函数改为scanf(“%d%d”,&a,&b);再编译,运行。
③观察结果。
2.在VisualC++6.0环境下输入并运行下面的程序,观察分析程序运行过程及结果。
#include
intmain()
{
inta,b,sum;
printf("请输入第一个整数:
");
scanf("%d",&a);
printf("请输入第二个整数:
");
scanf("%d",&b);
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
}
3.设圆半径r=1.5,编写程序求圆周长、圆面积和圆球的体积。
要求用scanf语句输入半径,输出时取小数点后两位。
四、实验结果:
1.
输入数据
4,5
输入修改后的数据
45
4↙5↙
运行结果
s=0.493827
运行结果
s=0.493827
s=0.493827
原因
字符控制串中有“,”,所以输入时必须有“,”
原因
字符控制串中没有除说明符以外的其他字符,所以输入时可以通过空格分隔
字符控制串中没有除说明符以外的其他字符,所以输入时可以通过回车分隔
2.运行结果(或截图):
请输入第一个整数:
1
请输入第二个整数:
2
1+2=3
3.
(1)程序中用到的变量(类型)
单精度浮点数
(2)算法(用伪代码描述或自然语言)
c=2*pi*r;
s=pi*r*r;
v=4*(pi*r*r*r)/3;
(3)源程序清单
#include
intmain()
#definepi3.14
{
floatr,c,s,v;
printf("请输入圆的半径:
");
scanf("%f",&r);
c=2*pi*r;
s=pi*r*r;
v=4*(pi*r*r*r)/3.0;
printf("c=%.2f,s=%.2f,v=%.2f\n",c,s,v);
}
(4)运行结果(或截图)
请输入圆的半径:
1.5
c=9.42,s=7.07,v=14.13
五、思考题:
scanf(“%d,%d”,&a,&b)与scanf(“%d%d”,&a,&b)输入数据的方式有什么不同?
从两种输入方式的对比中你得到什么启发?
答:
第一种输入方式用户必须以“,”分隔,而第二者可用空格、回车分隔,用户在不知情的情况下,很难知道用“,”分隔输入的数据。
所以编程人员可以在scanf()语句前用printf()语句进行注释,让用户知道用什么来分隔输入的数据。
成绩指导教师签名
实验四
实验项目名称:
选择结构程序设计
所使用的工具软件及环境:
VisualC++6.0
一、实验目的:
1.正确使用关系运算符和关系表达式;
2.正确使用逻辑运算符和逻辑表达式;
3.熟练使用if语句实现选择结构程序;
2.熟练使用switch语句实现多分支选择结构程序。
二、预习内容:
教材《C语言程序设计教程》第4章。
三、实验内容:
1.下面程序的功能是:
输入学生成绩,若成绩在90分以上,输出“Excellent!
”;若成绩在60—89分之间,输出“Pass!
”;若成绩在60分以下,输出“Fail!
”。
请将程序补充完整,并上机运行程序。
#include
intmain()
{
intscore;
printf("请输入分数(0--100):
");
scanf("%d",&score);
if(score>100||score<0)printf("InputError!
\n");
elseif(score>=90)printf("Excellent!
\n");
elseif(score>=60)printf("Pass!
\n");
elseprintf("Fail!
\n");
}
运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果:
输入数据
20
61
99
111
运行结果
Fail!
Pass!
Excellent!
InputError!
2.有如下分段函数:
请输入x的值,求解对应的y值。
3.给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。
90-100为’A’,80-89为’B’,70-79为’C’,60-69为’D’,60分以下为’E’。
用switch语句写。
四、程序中所用的变量及其类型:
2.
变量:
x、y;
数据类型:
都为单精度浮点数
3.
变量:
score
数据类型:
整型
五、算法(用伪代码或自然语言描述):
2.
if(x>=10)
printf("y=%f\n",3*x-11);
elseif(x>=1)
printf("y=%f\n",2*x-1);
else
printf("y=%f\n",x);
3.
switch(score/10)
{
case10:
printf("A\n");
break;
case9:
printf("A\n");
break;
case8:
printf("B\n");
break;
case7:
printf("C\n");
break;
case6:
printf("D\n");
break;
default:
printf("E\n");
}
六、源程序清单:
2.
#include
intmain(void)
{
floatx,y;
printf("请输入一个x:
");
scanf("%f",&x);
if(x>=10)
printf("y=%f\n",3*x-11);
elseif(x>=1)
printf("y=%f\n",2*x-1);
else
printf("y=%f\n",x);
return0;
}
3.
#include
intmain(void)
{
intscore;
printf("请输入一个成绩:
");
scanf("%d",&score);
switch(score/10)
{
case10:
printf("A\n");
break;
case9:
printf("A\n");
break;
case8:
printf("B\n");
break;
case7:
printf("C\n");
break;
case6:
printf("D\n");
break;
default:
printf("E\n");
}
return0;
}
七、实验结果:
2.运行结果(执行程序3次,分别输入不同的3个数,对应3种不同的情况):
输入数据
2
11
-5
运行结果
3.000000
22.000000
-5.000000
3.运行结果(执行程序5次,分别输入5组不同的数据,对应5种不同的情况):
输入数据
99
80
70
62
59
运行结果
A
B
C
D
E
成绩指导教师签名
实验五
实验项目名称:
简单循环程序设计
所使用的工具软件及环境:
VisualC++6.0
一、实验目的:
1.掌握循环程序的基本结构;
2.熟练掌握while、do—while及for语句,并会用来编写循环结构程序。
二、预习内容:
教材《C语言程序设计教程》第4章。
三、实验内容:
1.编写一个程序,计算并输出数列:
1,3,5,…,2n-1,…的前几项之和,其中n由键盘输入。
要求分别用3种循环语句实现。
方法1:
用for语句实现。
main()
{longs,n,k,i;
scanf(“%ld“,&n);
k=2*n-1;
s=0;
for(i=1;i<=k;i+=2)s+=i;
printf(“1+3+…+%ld=%ld\n”,k,s);
}
方法2:
用while语句实现。
main()
{longs=0,n,i=1;
scanf(“%ld”,&n);
while(i<=(2*n-1))
{s+=i;
i+=2;}
printf(“1+3+…+%ld=%ld\n”,2*n-1,s);
}
方法3:
用do-while语句实现。
main()
{longs=0,n,i=1;
scanf(“%ld”,&n);
do
{s+=i;
i=i+2;}
while(i<=(2*n)-1);
printf(“1+3+…+%ld=%ld\n”,2*n-1,s);
}
填上所缺的空,运行程序,写出结果。
2.输入两个正整数,求其中最大公约数和最小公倍数。
四、程序中所用的变量(类型及其初值):
2.
变量i,k,j,m,least,greatest均为整型变量,没有对其赋予初值。
五、算法(用伪代码描述):
2.
for(j=i;j<=i||j>=1;j--)//此处for循环为求最大公约数
{
if(i%j==0)
greatest=j;
else
;
if(k%greatest==0)
{
printf("%d和%d的最大公约数为%d!
\n",i,k,greatest);
break;
}
else
;
}
least=i*k/greatest;
printf("%d和%d最小公倍数为%d!
\n",i,k,least);
六、源程序清单:
2.
#include
intmain(void)
{
inti,k,j,m,least,greatest;//i,k存储的是两个正整数,least为最小公倍数,greatest为最大公约数
printf("请输入两个正整数(中间以空格分隔):
");
scanf("%d%d",&i,&k);
for(j=i;j<=i||j>=1;j--)//此处for循环为求最大公约数
{
if(i%j==0)
greatest=j;
else
;
if(k%greatest==0)
{
printf("%d和%d的最大公约数为%d!
\n",i,k,greatest);
break;
}
else
;
}
least=i*k/greatest;
printf("%d和%d最小公倍数为%d!
\n",i,k,least);
return0;
}
七、实验结果:
1.在下表中写出输入的数据及其运行结果:
方法1
方法2
方法3
输入数据
12
12
12
运行结果
1+3+…+23=144
1+3+…+23=144
1+3+…+23=144
2.运行结果(或截图):
请输入两个正整数(中间以空格分隔):
3612
36和12的最大公约数为12!
36和12最小公倍数为36!
成绩指导教师签名
实验六
实验项目名称:
多层循环程序设计及break、continue语句在循环程序中的应用
所使用的工具软件及环境:
VisualC++6.0
一、实验目的:
1.掌握多层循环程序的执行过程及设计方法;
2.掌握break及continue语句在循环程序中的使用方法。
二、预习内容:
教材《C语言程序设计教程》第4章。
三、实验内容:
1.百马百担问题。
有100匹马,驮100担。
大马驮3担,中马驮2担,两个小马驮1担。
问大、中、小马各多少?
(考虑适当减少循环次数)
2.编程输出100以内的所有素数。
3.编程输出所有水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身,例如,153=13+53+33,所以153是一个水仙花数)。
四、程序中所用的变量(类型及其初值):
1.变量x,y,z均为整型变量,均未赋予初值
2.整型变量x,y,均未赋予初值
3.整型变量i,m,n,
n初值为0,m、n未赋予初值
五、算法(用伪代码或自然语言描述):
1.for(x=0;x<=20;x++)
{
for(y=0;y<=33;y++)
{
z=100-x-y;
if(z%2==0&&3*x+2*y+z/2==100)
printf("大马有%d匹,中马有%d匹,小马有%d匹!
\n",x,y,z);
}
}
2.
for(i=1;i<=100;i+=1)
{
for(j=2;j<=i;++j)
{
if(i%j==0)
{
if(i==j)
printf("%-5d",i);
else
break;
}
}
}
3.
for(i=100;i<=999;++i)
{
intm,n=0;
m=i%10;
n+=m*m*m;
m=(i/10)%10;
n+=m*m*m;
m=(i/100)%10;
n+=m*m*m;
if(n==i)
printf("%d\n",i);
else
;
}
六、源程序清单:
1.
#include
intmain(void)
{
intx,y,z;
for(x=0;x<=20;x++)
{
for(y=0;y<=33;y++)
{
z=100-x-y;
if(z%2==0&&3*x+2*y+z/2==100)
printf("大马有%d匹,中马有%d匹,小马有%d匹!
\n",x,y,z);
}
}
return0;
}
2.
#include
intmain(void)
{
inti,j;
for(i=1;i<=100;i+=1)
{
for(j=2;j<=i;++j)
{
if(i%j==0)
{
if(i==j)
printf("%-5d",i);
else
break;
}
}
}
return0;
}
3.
#include
intmain(void)
{
inti;
for(i=100;i<=999;++i)
{
intm,n=0;
m=i%10;
n+=m*m*m;
m=(i/10)%10;
n+=m*m*m;
m=(i/100)%10;
n+=m*m*m;
if(n==i)
printf("%d\n",i);
else
;
}
return0;
}
七、实验结果:
1.运行结果(或截图):
大马有2匹,中马有30匹,小马有68匹!
大马有5匹,中马有25匹,小马有70匹!
大马有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 实验 报告 112