C语言实验报告书1.docx
- 文档编号:9724291
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:69
- 大小:638.83KB
C语言实验报告书1.docx
《C语言实验报告书1.docx》由会员分享,可在线阅读,更多相关《C语言实验报告书1.docx(69页珍藏版)》请在冰豆网上搜索。
C语言实验报告书1
实验指导书
课程名称C语言程序设计
课程性质考查课
系(部)
指导教师
实验一熟悉C程序运行环境
一、实验目的
1.熟悉C语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C语言程序的方法;
2.掌握C语言源程序的结构特点与书写规范。
二、实验学时数
2学时
三、实验步骤
(一)VC++6.0集成环境
(1)运行VC++6.0
a.双击桌面上的VC++6.0快捷方式,运行VC++6.0。
b.双击"C:
\MicrosoftVisualStudio\Common\MSDev98\Bin\MSDEV.EXE",运行VC++6.0。
(2)认识VC++6.0
菜单栏
标准按钮
执行
执行
组建
工作空间
编译
输出
图1.1VC++6.0窗口组成
(3)建立工程
在磁盘上新建一个文件夹,用于存放C语言程序,如D:
\柳稻香。
单击[文件]-[新建]新建一个工程,工程类型选择Win32ConsoleApplication,然后选择要存放的位置(刚才建立的文件夹D:
\柳稻香),填写工程名称例如hello,如图1.2所示,点确定按钮,在弹出的对话框中选择一个”hello,World!
”程序,如图1.3所示,点击完成,然后在点击确定。
(4)查看工程包含的文件
单击左侧工作空间右下角的FileView,然后在工作空间上,点击+,可以看到SourceFiles和HeaderFiles及ResourceFiles,在SourceFiles上继续点击+,可以看到SourceFiles下有两个文件,一个是hello.cpp,一个是StdAfx.cpp。
其中hello.cpp为主函数所在的文件,在以后的编写程序中,都是写到此文件中。
图1.2新建工程
图1.3步骤1
(5)选中StdAfx.cpp,点击[组建]-[编译],对StdAfx.cpp进行预编译。
名称的英文全称为:
StandardApplicationFrameworkExtensions。
所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。
这样可以加快编译速度,节省时间。
(6)选中以文件hello.cpp,点击[组建]-[编译](此时,你可以在D:
\柳稻香\hello\Debug下可以找到生成的hello.obj文件),然后在点击[组建]-[组建](此时,你可以在D:
\柳稻香\hello\Debug下可以找到生成的hello.exe文件),然后点击[组建]-[执行](执行的实际是D:
\柳稻香\hello\Debug\hello.exe),如果弹出一个Console程序窗口,上面写着HelloWorld!
Pressanykeytocontinue。
到目前为止一个简单的C程序工程创建成功。
(二)阅读程序
要求:
编辑下面源程序,并且读懂与分析运行程序,上机运行程序,并与分析结果相对比。
学会使用TC运行程序的基本方法。
1.输入并运行以下程序,观察运行结果。
#include
intmain()
{printf("*********************\n\n");
printf("verygood!
\n\n");
printf("*********************\n");
return0;
}
运行结果
思考:
如何采用一个输出(printf)函数调用实现此输出结果。
printf("*********************\nverygood!
\n*********************\n");
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
输出结果:
(三)完成程序
要求:
依据题目要求,分析已给出的语句,填写空白。
但是不要增行或删行,改动程序的结构。
1.求(a+b)×c的值。
(设a=3,b=2,c=1)
#include
intmain()
{inta,b,c;
a=3;
c=1;
b=2;
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",area);
return0;
}
(四)调试程序
要求:
调试运行下列程序是否正确,若有错,写出错在何处,并进行改正,填写改正后的运行结果。
行号
源程序
1
2
3
4
5
6
7
#include
intmain()
{intx;
x=5,y=8;
printf("\n%d,%d,%d\n",x,(x+5)*2,y);
return0;
}
错
错误在3行
应改为:
{intx,y;
调试正确后的运行结果
输出结果:
(五)编写程序
1.编写程序输出用6颗星构成的等边三角形。
*
**
***
2.编写一个C程序,输入a,b,c三个值,输出其中最大者。
1.
#include
intmain()
{printf("*\n");
printf("**\n");
printf("***\n");
return0;
}
2.
#include
intmain()
{intmax(intx,inty,intz);
inta,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
return0;
}
intmax(intx,inty,intz)
{
intt;
if(x>y)t=x;
elset=y;
if(t return(z); } 实验二数据类型、运算符和表达式应用 一、实验目的 1.掌握C语言中的基本数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法; 2.掌握不同的类型数据之间赋值的规律; 3.灵活运用算术运算符、赋值运算符、复合赋值运算符及其表达式; 4.了解数据运算中类型的自动转换与强制类型转换; 5.进一步熟悉C程序的结构特点,学习简单程序的编写方法。 二、实验学时数 2学时 三、实验步骤 (一)阅读程序 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; 运行结果 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)=%f\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; } (1) 源程序运行结果为: 运行结果 (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() {chara;intb;//变量的定义 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”,a,a,a); return0; } (三)调试程序 要求: 调试运行下列程序是否正确,若有错,写出错在何处? 填写正确的运行结果。 1.以下程序实现的功能是对u,v进行初始化,并输出u,v的值 行号 源程序 1 2 3 4 5 6 #include intmain() {intu=v=89; printf("u=%d,v=%d\n",u,v); return0; } 错 错误在3行 应改为: {intu=89,v=89; 调试正确后的运行结果 输出结果: 2.下面的程序试图计算由键盘输入的任意两个整数的平均值: 行号 源程序 1 2 3 4 5 6 7 8 #include intmain() {intx,y,a; scanf("%x,%y",&x,&y); a=(x+y)/2; printf("Theaverageis%d: \n",a); return0; } 错 错误在4行 应改为: scanf(“%d,%d”,&x,&y); 调试正确后的运行结果 输入数据 2,6 1,4 -1,-3 -2,4 2,0 输出结果: (四)编写程序 1.编写程序,求 的和。 2.编写程序,输入圆的半径(值为5),输出圆的周长和面积。 #include intmain() {floatsum; sum=1.0/2+1.0/3+1.0/4; printf("sum=%f\n",sum); return0; } #include #definePI3.14 intmain() {floatr,c,s; scanf(“%f”,&r); c=2*PI*r; s=PI*r*r; printf("圆的周长为: %f,面积为: %f.\n",c,s); return0; } 实验三顺序结构程序设计 一、实验目的 1.掌握格式输入函数scanf()和格式输出函数printf()的使用方法; 2.熟练掌握顺序结构的程序设计,能够编写简单的应用程序。 二、实验学时数 2学时 三、实验步骤 (一)阅读程序 1.输入并运行以下程序,观察运行结果。 #include intmain() {inta=17; floatu=1234.567; printf("%d,%7d,%-7d\n",a,a,a); printf("%f,%7.2f\n",u,u); return0; } 运行结果 2.输入并运行以下程序,观察运行结果。 #include intmain() {inta,x,y; x=(a=2,6*2); y=a=2.6*a; printf("x=%d,y=%d\n",x,y); return0; } 运行结果 3.阅读以下程序,若输入的数据形式为251310,输出结果为: #include intmain() {intx,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n",x+y+z); return0; } 运行结果 思考: 若使输入的数据形式为x=25,y=13,z=10,则scanf语句应如何书写? scanf("x=%d,y=%d,z=%d",&x,&y,&z); (二)完成程序 要求: 按照给定题目要求,参照己给的语句,填写程序空白处。 1.键盘输入任意一个小写字母,将其转换成大写字母,然后输出。 #include intmain() {charc1,c2; c1=getchar(); c2=c1-32; putchar('\n');//输出换行 putchar('\'');//输出单引号 putchar(c2);//输出字符c2 putchar('\'');//输出单引号 return0; } 2.求c= 的值。 (设a=25,b=5) #include intmain() {floata=25,b=5; floatc; c=(a+b)*4.0/(a*b); printf("c=%f\n",c); return0; } (三)调试程序 要求: 分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。 1.以下程序实现的功能是计算k的值,并将其输出。 行号 源程序 1 2 3 4 5 6 7 8 #include intmain() {inti,k; i=8; k=5*I*I; printf("%d\n",k); return0; } 错 错误在5行 应改为: k=5*i*i; 调试正确后的运行结果 输出结果: 2.以下程序实现的功能是输入一个三位数,然后进行个位和百位的置换,如234,转换成432 行号 源程序 1 2 3 4 5 6 7 8 9 10 11 #include intmain() {intn,a,b,c,m; scanf("%d",n); a=n%10; b=(n/10)%10; c=(n/100)%10; m=100*a+10*b+c; printf("%d=>%d\n",n,m); return0; } 错 错误在4行 应改为: scanf(“%d”,&n); 调试正确后的运行结果 输出结果: (三)编写程序 1.编写程序,输入某学生三门课程的成绩,计算并输出其总分及平均分。 输出时结果保留小数点后一位。 2.编写程序,从键盘输入两个整数分别给变量a和b,分别写出不借助于其他变量和借助于其他变量的条件下,将变量a和b的值实现交换。 1.计算三门课程的总分与平均分 #include intmain() {floatx,y,z,sum,aver;scanf("%f,%f,%f",&x,&y,&z); sum=x+y+z; aver=sum/3; printf("总分为: %f,平均分为: %f.",sum,aver); return0; } 2.不借助其他变量实现a,b交换 #include intmain() {intx,y; scanf("%d,%d",&x,&y); x=x+y;y=x-y;x=x-y; printf("%d,%d\n",x,y); return0; } 2.借助其他变量实现a,b交换 #include intmain() {intx,y,t; scanf("%d,%d",&x,&y); t=x;x=y;y=t; printf("%d,%d\n",x,y); return0; } 实验四if选择结构程序设计 一、实验目的 1.掌握关系运算符和逻辑运算符的使用; 2.学会正确书写关系表达式和逻辑表达式; 3.熟练掌握三种if语句和if嵌套。 二、实验学时数 2学时 三、实验步骤 (一)阅读程序 1.输入并运行以下程序,观察运行结果。 #include intmain() {inta=3,b=4,c=5,x1,x2,x3; x1=! a; x2=a+b =c; x3=a-b||c%2; printf("x1=%d",x1); printf("x2=%d",x2); printf("x3=%d",x3); return0; } 运行结果 2.输入并运行以下程序,观察运行结果。 #include intmain() {inta,b,c; a=10;b=60;c=30; if(a>b)a=b; b=c; c=a; printf("a=%d,b=%d,c=%d\n",a,b,c); return0; } 运行结果 3.输入并运行以下程序,观察运行结果。 #include intmain() {intx=60,a=30,b=20; intv1=3,v2=8; if(a if(b! =15) if(! v1)x=1; else if(v2)x=10; x=-2; printf("%d\n",x); return0; } 运行结果 (二)完成程序 要求: 按照给定题目要求,参照出现的语句,填写程序空白处。 1.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变。 请在_______上填写正确内容。 #include intmain() {charch; scanf("%c",&ch); if(ch>='A'&&ch<='Z')ch=ch+32; elseif(ch>='a'&&ch<='z')ch=ch-32; printf("%c\n",ch); return0; } 2.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在_______上填写正确内容。 #include #include intmain() {floata,b,c; floats,area; scanf(“%f,%f,%f”,&a,&b,&c); if((a+b>c)&&(a+c>b)&&(b+c>a)) {s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“三角形的面积为: %f\n”,area); if((a==b)&&(b==c)) printf(“等边三角形\n”); elseif((a==b)||(b==c)) printf(“等腰三角形\n”); elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)) printf(“直角三角形\n”); elseprintf(“一般三角形\n”); } elseprintf(“不能组成三角形\n”); return0; } (三)调试程序 要求: 分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。 1.以下程序实现求分段函数。 -1x>9 y=x*(x+2)3 2*x-1 x-1x<=-1 行号 源程序 1 2 3 4 5 6 7 8 9 10 11 #include intmain() {intx,y; scanf("%d",&x); if(3 elseif(-1 elseif(x<=-1)y=x-1; elsey=-1; printf("%d\n",y); return0; } 错 错误在5,6行 应改为: if((x>3)&&(x<=9))y=x*(x+2); elseif((x>-1)&&(x<=3))y=2*x; 调试正确后的运行结果 输入数据: 4 2 1 -3 10 输出结果: 24 4 2 -4 -1 2.有一函数关系如下: x-3x<0 y=0x=0 x+3x>0 以下程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告书