铜陵学院c语言实验报告.docx
- 文档编号:12286031
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:33
- 大小:26.83KB
铜陵学院c语言实验报告.docx
《铜陵学院c语言实验报告.docx》由会员分享,可在线阅读,更多相关《铜陵学院c语言实验报告.docx(33页珍藏版)》请在冰点文库上搜索。
铜陵学院c语言实验报告
《C语言程序设计》
实验报告
2016~2017学年第二学期
班级
2016级
学号
姓名
指导教师
黄永青
实验一VisualC++6.0编程环境与C语言程序的调试过程
一、实验学时
2学时。
二、实验目的
1.了解在VisualC++6.0环境下如何编辑、编译、连接和运行一个C程序;
2.通过运行简单的C程序,初步了解C源程序的特点。
三、预习内容
教材《C语言程序设计》第1章。
四、实验内容
1.请调试、运行下面的程序一。
#include
intmain()
{
printf("Hello,World!
\n");
return0;
}
给出以上程序的运行结果(或其截图):
2.请调试、运行下面的程序二。
#include
intmain()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%1d*%1d=%2d",j,i,j*i);
printf("\n");
}
return0;
}
给出以上程序运行结果的截图:
3.请改正下面程序三中的语法错误,然后调试、运行该程序,观察分析运行结果。
#include
intmain()
{
inta,b,sum;
a=3
b=4;
sun=a+b;
printf("%d+%d=%d\n",a,b,sum);
return0;
}
(1)改正后的程序
#include
intmain()
{
inta,b,sum;
a=3;
b=4;
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
return0;
}
(2)以上程序的运行结果(或其截图):
五、思考题
1.调试C语言程序的步骤有哪些?
答:
1.编辑2.编译3.连接4.运行
2.程序的基本结构有哪三种?
答:
顺序结构,选择结构,循环结构
指导教师成绩
年月日
实验二数据类型、运算符和表达式
一、实验学时
2学时。
二、实验目的
1.掌握整型、实型与字符型这三种基本类型的概念;
2.掌握常量及变量的使用方法;
3.掌握基本算术运算符及其表达式的使用方法;
4.掌握++、--运算符、赋值运算符及其表达式的使用方法。
三、预习内容
教材《C语言程序设计》第2章。
四、实验内容
1.下面的程序一有语法错误,请调试、运行该程序。
#include
intmain()
{
int2cd=3;
floatyzl=3.14;
charfor='A';
printf("%d\n%f\n%c\n",2cd,yzl,for);
return0;
}
程序一为什么出错?
答:
1.yzl=3.14不能用float类型,改为double
2.变量命名不能以数字为首位2cd=3;改为cd=3;
3.for为循环结构不能作为变量名,改为f=’A’
2.观察分析下面程序二的运行结果:
#include
intmain()
{
inta=3,b=4,c=8;
floatx,y=4.0,z;
x=a+b/c;
z=a+y/c;
printf("x=%f\nz=%f\n",x,z);
return0;
}
以上程序的运行结果(或其截图):
3.观察分析下面程序三的运行结果:
#include
intmain()
{
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\ni=%d,j=%d,m=%d,n=%d\n",a,b,c,d,i,j,m,n);
return0;
}
以上程序的运行结果(或其截图):
4.观察分析下面程序四的运行结果:
#include
intmain()
{
inta=4;
a+=a-=a*a+a;
printf("a=%d\n",a);
return0;
}
以上程序的运行结果(或其截图):
五、思考题
1.给变量命名应该注意哪些?
答:
1.变量名可由字母数字,下划线组成,但首位只能是字母,下划线不能为数字。
2.变量名区分大小写
3.变量名不能与系统标识符同名
4.变量名的长度是有限的,视编译而定
5.变量命名时尽量简单易记,见名之意
2.程序二的运行结果中,x和z的值为什么不同?
答:
x为int类型,x的值为整型小数点部分都为0;即x=3.000000
z为float类型,z的值为浮点型数据,即z=3.500000
3.程序三的运行结果中,i和j的值为什么不同?
m和n的值为什么不同?
答:
i为a直接赋予i=3
j是先b+1=4再将4赋给j
m为c直接赋予
n是先d-1=3再将3赋给n
4.请分析程序四中表达式a+=a-=a*a+a的运算顺序。
答:
1.a*a=16
2.16+a=20
3.a-=16=-16
4.a+=(-16)=-32
成绩指导教师
年月日
实验三顺序结构程序设计
一、实验学时
2学时。
二、实验目的
1.掌握整型、实型与字符型数据输入函数scanf()的使用;
2.掌握整型、实型与字符型数据输出函数printf()的使用;
3.掌握顺序程序的设计方法。
三、预习内容
教材《C语言程序设计》第3章。
四、实验内容
1.下面程序一的功能是:
从键盘输入两个整数,输出它们的和。
请在横线上填写一条合适的语句,调试、运行该程序。
#include
intmain()
{
inta,b,sum;
scanf("%d%d",&a,&b);
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
return0;
}
给出以上程序的运行结果(或其截图):
2.观察分析下面程序二的运行结果。
#include
intmain()
{
inta,b,sum;
printf("请输入第一个整数:
");
scanf("%d",&a);
printf("请输入第二个整数:
");
scanf("%d",&b);
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
return0;
}
给出以上程序的运行结果(或其截图):
3.下面程序三的功能是:
输出三个变量a,b,c的值。
请在横线上填写一条合适的语句,使该程序的运行结果为:
a=35,b=43.66,c='A'
#include
intmain()
{
inta=35;
doubleb=43.6578;
charc='A';
printf("a=%d,b=%6.2f,c=%c\n",a,b,c);
return0;
}
给出以上程序的运行结果(或其截图):
4.设圆柱底面圆半径r=1.5m,高h=3m,编写程序,求底面圆的周长和面积、圆柱的表面积和体积。
要求用函数scanf()输入r和h,输出时有文字说明,取小数点后两位。
1给出以上问题的求解算法(用N-S图描述)
⑵给出问题的源代码
#include
#definePI3.14159
voidmain()
{
doubler,h,c,s,S,V;
scanf("%lf,%lf",&r,&h);
c=2*PI*r;
s=PI*r*r;
S=2*PI*r*r+2*PI*r*h;
V=PI*r*r*h;
printf("底面圆的周长:
c=%6.2f,圆的面积:
s=%6.2f,圆柱的表面积:
S=%6.2f,圆柱的体积:
V=%6.2f\n",c,s,S,V);
}
⑶该程序的运行结果(或其截图)
五、思考题
程序一和程序二中输入数据的方式有什么区别?
您认为哪种方式较好,为什么?
答:
程序一中a,b同时定义;
程序二中在输出时可以明确区分a,b,并在编程过程中将其分别定义;
我认为程序二更好;
因为相较于程序一,程序二编程过程不易出错,且便于输出。
成绩指导教师
年月日
实验四选择结构程序设计
一、实验学时
2学时。
二、实验目的
1.正确使用关系运算符和关系表达式;
2.正确使用逻辑运算符和逻辑表达式;
3.熟练使用if语句实现选择结构程序设计;
4.熟练使用switch语句实现多分支选择结构程序设计。
三、预习内容
教材《C语言程序设计教程》第4章。
四、实验内容
1.下面程序一的功能是:
输入学生成绩,若90分≤成绩≤100分,输出“Excellent!
”;若60分≤成绩≤89分,输出“Pass!
”;若成绩<60分,输出“Fail!
”;若成绩<0分或成绩>100分,输出“InputError!
”。
请在横线上填写合适的语句,调试、运行该程序。
#include
intmain()
{
intscore;
printf("请输入分数(0--100):
");
scanf("%d",&score);
if(score>100||score<0)
printf("InputError!
\n");
elseif(score>=90&&score<=100)printf("Excellent!
\n");
elseif(60<=score&&score<=89)printf("Pass!
\n");
elseprintf("Fail!
\n");
return0;
}
程序一运行结果(执行程序4次,分别输入4个不同的成绩,对应4种不同的情况):
输入数据
20
562
77
99
运行结果
Fail!
InputError!
Pass!
Excellent!
2.已知下面的分段函数:
请编写程序二,求出并显示y的值,x的值在程序运行时输入。
代码如下:
#include
voidmain()
{
floatx,y;
scanf("%f",&x);
if(x<1)
y=x;
elseif(x<10)
y=2*x-1;
else
y=3*x-11;
printf("%7.2f\n",y);
}
程序二运行结果(执行程序3次,分别输入3个不同的x值,对应3种不同的y值):
输入数据
2
0
10
运行结果
3.00
0.00
11.00
3.设计一个简单的计算器程序三。
程序运行时输入两个实数和一个四则运算符:
+、-、*、/(例如,输入:
45.6,2.4/),输出计算结果(保留两位小数)。
代码如下:
#include
voidmain()
{
floata,b;
charch;
scanf("%f,%f%c",&a,&b,&ch);
if(ch=='+')
printf("%.2f+%.2f=%.2f\n",a,b,a+b);
elseif(ch=='-')
printf("%.2f-%.2f=%.2f\n",a,b,a-b);
elseif(ch=='*')
printf("%.2f*%.2f=%.2f\n",a,b,a*b);
elseif(ch=='/')
printf("%.2f/%.2f=%.2f\n",a,b,a/b);
}
程序三运行结果(执行程序4次,分别输入4组不同的数据,对应+、-、*、/四种不同的运算):
输入数据
1,2+
3,1-
2,2*
3,1/
运行结果
3
2
4
3
成绩指导教师
年月日
实验五循环结构程序设计
一、实验学时
2学时。
二、实验目的
1.熟悉循环结构语句while、do…while及for的执行流程;
2.熟练掌握用while、do…while及for语句编写循环结构程序。
三、预习内容
教材《C语言程序设计》第5章。
四、实验内容
1.下面程序一的功能是:
求和式12-22+32-42+…-142+152的值。
请在横线上填写合适的语句,调试、运行该程序。
#include"stdio.h"
voidmain()
{
intsum=0,n=1,sign=1;
do
{
sum=sum+sign*n*n;
n+=1;
sign=sign*(-1);
}while(n<=15);
printf("1^2-2^2+3^2-4^2+…-14^2+15^2=%d\n",sum);
}
程序一运行结果(或其截图):
2.编写程序二。
输入一个5位正整数,输出该整数的倒序。
例如:
若输入是12345,则输出为54321。
代码如下:
#include
voidmain()
{
intn;
scanf("%d",&n);
while(n)
{
printf("%d",n%10);
n/=10;
}
}
程序二运行结果(或其截图):
3.编写程序三。
求数列
,
,
,…,
的前20项和。
代码如下:
#include
intmain()
{
floata=1,b=1,c=3,sum=0;
inti;
for(i=1;i<=20;i++)
{
sum+=a/(b*c);
a+=1;
b+=2;
c+=2;
}
printf("%3f\n",sum);
return0;
}
程序三运行结果(或其截图):
成绩指导教师
年月日
实验六嵌套结构程序设计
一、实验学时
2学时。
二、实验目的
1.掌握一个结构里面嵌套一个结构的程序执行过程及设计方法;
2.掌握break语句在多选一结构程序中的使用方法;
3.掌握break及continue语句在循环结构程序中的使用方法。
三、预习内容
教材《C语言程序设计》第3-5章。
四、实验内容
1.编写程序一,在屏幕上显示九九乘法表:
代码如下:
#include
voidmain()
{
inti,j;
printf("九九乘法口诀表:
\n");
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%-4d",j,i,i*j);
printf("\n");
}
}
2.编写程序二,在屏幕上显示图形:
代码如下:
#include
voidmain()
{
inti,j,k;
for(i=1;i<=4;i++)
{
for(j=1;j<=11-i;j++)
printf("");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=1;i<=4;i++)
{
for(j=1;j<=i+7;j++)
printf("");
for(k=1;k<=7-2*i;k++)
printf("*");
printf("\n");
}
}
3.编写程序三,输出100以内的所有素数。
所谓素数,是指仅能被1和该数本身整除的大于1的整数。
代码如下:
#include
voidmain()
{
inti,j;
for(i=2;i<=100;i++)
{
for(j=2;j<=(i/2);j++)
{if(i%j==0)
break;
}
if(i%j!
=0)
printf("%d\n",i);
}
}
程序三运行结果(或其截图):
成绩指导教师
年月日
实验七数组
一、实验学时
2学时。
二、实验目的
1.掌握一维数组的定义、赋值、输入输出及其应用;
2.掌握二维数组的定义、赋值、输入输出及其应用;
3.掌握字符数组的定义、赋值、输入输出及其应用。
三、预习内容
教材《C语言程序设计》第6章。
四、实验内容
1.编写程序一。
在一个已按从小到大排好序的数列中插入一个数,要求插入该数后的数列仍按小到大排列。
例如:
原数列是1,3,5,7,9,11,13,15,17,插入数8后变成1,3,5,7,8,9,11,13,15,17。
代码如下:
#include
#defineN10
voidmain()
{
inti,data,a[N]={1,3,5,7,9,11,13,15,17};
printf("原数组a中的数据是:
\n");
for(i=0;i printf("%3d",a[i]); printf("\n请输入要插入的数(data): "); scanf("%d",&data); for(i=N-2;a[i]>data&&i>=0;i--) a[i+1]=a[i]; a[i+1]=data; printf("插入%d后,数组a中的数据是: \n",data); for(i=0;i printf("%3d",a[i]); printf("\n"); } 程序的运行结果(或其截图): 2.编写程序二。 输出3行4列矩阵中的最大元素值及其行标和列标。 要求: 矩阵中的每个元素值由键盘输入。 代码如下: #include voidmain() { inti,j; introw,col,max,a[3][4]={{7,9,12,5},{39,54,21,6},{17,26,64,1}}; printf("原二维数组a: \n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%4d",a[i][j]); printf("\n"); } row=col=0; max=a[0][0]; for(i=0;i<3;i++) { for(j=0;j<4;j++) if(a[i][j]>max) { max=a[i][j]; row=i; col=j; } } printf("二维数组中最大数值是: %d,位于第%d行,第%d列。 \n",max,row+1,col+1); } 程序的运行结果(或其截图): 3.编写程序三。 将一个字符串中的所有英文字母按从小到大排列,重新组成一个字符串。 例如: 原字符串是: "Howdoyoudo? ",重新排列后的字符串为: "└┘└┘└┘? Hddoooouwy"。 代码如下: #include #include intmain() { chars[100],t; inti,j,sum; printf("Input: \n"); gets(s); sum=strlen(s); for(i=0;i for(j=0;j if(s[j+1]<=s[j]){t=s[j];s[j]=s[j+1];s[j+1]=t;} printf("Output: \n"); puts(s); return0; } 程序的运行结果(或其截图): 成绩指导教师 年月日 实验八函数 一、实验学时 2学时。 二、实验目的 1.熟悉函数的定义方法; 2.掌握函数的调用方式及主调函数与被调函数间的数据传递方法; 3.掌握递归算法,会用函数来实现递归算法。 三、预习内容 教材《C语言程序设计》第7章。 四、实验内容 1.下面程序一的功能是求三个整数中的最大值。 请在横线上填写合适的语句,调试、运行该程序。 #include intmax(inta,intb,intc) { intm; m=a; if(b>m) m=b; if(c>m) m=c; return(m); } voidmain() { intx,y,z,maxi; scanf("%d,%d,%d",&x,&y,&z); maxi=max(x,y,z); printf("Maxof%d,%dand%dis%d.\n",x,y,z,maxi); } 程序的运行结果(或其截图): 2.编写程序二。 在主函数中输入两个正整数,调用函数求它们的最小公倍数,结果在主函数中输出。 代码如下: #include intmin(intm,intn) { ints; s=m; while(s%n! =0) s+=m; return(s); } voidmain() { intm,n; printf("请输入两个正整数\n"); scanf("%d,%d",&m,&n); min(m,n); printf("这两个正整数的最小公倍数为: %d\n",min(m,n)); } 程序的运行结果(或其截图): 3.编写程序三。 用递归方法求解猴子吃桃问题。 猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第2天又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,就只剩一个桃子了。 求第1天共摘了多少个桃子。 代码如下: #include"stdio.h" intf(inta) { inty; if(a==10) y=1; else y=f(a+1)*2+2; returny; } voidmain() { intn,y; printf("请输入天数: "); scanf("%d",&n); y=f(n); printf("第一天小猴共摘了%d个桃子。 ",y); } 程序的运行结果(或其截图): 成绩指导教师 年月日 实验九变量的作用域与存储方式 一、实验学时 2学时。 二、实验目的 1.掌握数组名作函数参数时形参与实参的定义方法; 2.会使用数组名作函数参数在主调函数与被调函数间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 铜陵 学院 语言 实验 报告