10112实验报告答案.docx
- 文档编号:9304993
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:21
- 大小:80.23KB
10112实验报告答案.docx
《10112实验报告答案.docx》由会员分享,可在线阅读,更多相关《10112实验报告答案.docx(21页珍藏版)》请在冰豆网上搜索。
10112实验报告答案
《C程序设计》
实验报告
学期:
2010--2011学年第二学期
教师姓名:
教研室:
实验1熟悉C语言程序的运行环境,把握数据描述
班级
学号
实验室
专业
姓名
成绩评定
所用软件
计算机号
教师签名
1.1实验目的
1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。
2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。
3.把握C语言数据类型的概念,学会利用C语言的相关运算符组成表达式。
1.2实验预习
1.熟悉VisualC++的启动和退出及VisualC++中的编辑、编译、连接和运行命令。
2.了解以下命令及函数:
include
3.熟悉VisualC++环境下每一个菜单项的功能及相关命令对应的操作。
4.各类数据类型变量的概念形式及取值范围;熟悉以下标识符的含义。
int、short(int)、long(int)、unsigned(int)、float、double、char、void
5.各类运算符的优先级和结合规那么。
6.常量与变量的区别和联系。
运行环境:
1.双击桌面VisualC++快捷方式进入VisualC++,或通过执行“开始——>程序——>
MicrosoftVisualStudio6.0——>MicrosoftVisualC++6.0”或执行文件"C:
\ProgramFiles\MicrosoftVisualStudio\COMMON\MSDev98\Bin\MSDEV.EXE"。
2.单击“文件”菜单的“新建”命令。
3.在打开的“新建”对话框当选择“文件”标签。
4.选择C++SourceFile,在目录输入栏选择文件保留位置,然后在文件输入栏中输入文件名,扩展名为.c(例如first.c),单击确信按钮。
如下图:
5.在源窗口中输入源程序,如下图。
6.编译程序:
按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或利用工具栏中的相应工具进行编译 编译 连接 运行
假设程序有错那么找到犯错行修改程序。
7.连接:
假设程序没有语法错误,那么可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。
8.运行程序:
按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!
”工具运行程序。
1.3实验任务
1.输入下面的程序,注意区分大小写。
#include
main()
{
printf(“Iamastudent!
”);
}
2.预测结果并上机验证
人工分析结果
实验运行结果
#include
main()
{
printf(“************\n”);
printf(“Iamastudent!
\n”);
printf(“************\n”);
}
************
Iamastudent!
************
3.预测结果并上机验证
人工分析结果
实验运行结果
#include
#include
main()
{
inta,b,sum;
scanf(“%d,%d”,&a,&b);
sum=a+abs(b);
printf(“aaddbis%d”,sum);
}
aandbis10
4.预测结果并上机验证
(1)main()
{
inta,b;
a=b=3;
printf(“a=%d,b=%d”,a,b);
}
(2)假设将以上程序进行改写,编辑如下:
main()
{
inta,b;
a=3;
b=3.1;
printf(“a=%d,b=%d”,a,b);
}
题号
人工分析结果
实验运行结果
(1)
a=3,b=3
(2)
a=3,b=3
由此知,假设赋值号左右数据类型不一致时,c语言将按赋值号左侧变量类型为准。
5.现有程序如下,分析填空:
人工分析结果
实验运行结果
1main()
2{
3inta=1,b=2;
4printf(“%d”,(a=a+b,b=b+a));
5}
5
假设将以上程序第4行进行改写,编辑如下:
printf(“%d”,a=a+b,b=b+a);
人工分析结果
实验运行结果
3
对照以上两程序,结果不同的缘故在于输出列表原程序为逗号表达式,因此输出b=b+a的值,而修改后的仅有一个格式操纵符,只能对应输出第一个表达式a=a+b。
6.假设有以下程序段,分析c2的值:
intc1=2,c2;
c2=1.0/c1*c1;
人工分析结果
实验运行结果
1
假设将程序段改成:
c2=1/c1*c1;
人工分析结果
实验运行结果
0
分析c2所得结果,其中的关键在于除号两头若是都是整型数据,那么所得结果截断取整
7.现有程序如下:
main()
{inta=7,b=10;
a=a+b;b=a-b;a=a-b;
printf(“%d,%d\n”,a,b);
}
程序运行的功能是:
互换a、b两数的值
注:
可修改a、b两数的值认真观看。
8.现有程序如下,分析填空:
人工分析结果
实验运行结果
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
16
9.现有程序如下,分析填空:
人工分析结果
实验运行结果
main()
{
inta=2,b=5;
intm=3,n;
doublec=2.1,d=4.5;
n=a/m+b*c-d/m;
printf(“%d”,n);
}
9
10.现有程序如下,分析填空:
人工分析结果
实验运行结果
Main()
{intx=1,y=2;
printf(“%d%d\n”,++x,y++);
}
22
11.现有程序如下,分析填空:
人工分析结果
实验运行结果
main()
{intx,y,z=0;
x=y=1;
z+=x+=y;
x=z++;
y=++x;
z=x+++y;printf(“x=%d,y=%d,z=%d”,x,y,z);
}
x=4,y=3,z=6
12.试探题:
改错题(以下程序有多处错误,上机调试。
将正确的程序记录在下方。
要求不能删减已有内容。
)
源程序
正确的程序应改为:
#include
#defineSTA30
main()
{inta,b=3;
A=3*PI*SIN(b);
STA=3*STA;
printf(“%d\n”,2a);
printf(“%d”,b);
}
#include
#defineSTA30
#definePI3.14
main()
{inta,b=3;
a=3*PI*sin(b);
b=3*STA;
printf(“%d\n”,2*a);
printf(“%d”,b);
}
1.4实验心得
实验2顺序结构程序设计与调试
班级
学号
实验室
专业
姓名
成绩评定
所用软件
计算机号
教师签名
2.1实验目的
1.熟悉C语言的表达式语句、空语句和复合语句。
2.熟悉函数挪用语句,尤其是各输入输出函数的挪用语句。
3.熟悉顺序结构程序中语句的执行进程。
4.熟悉程序的跟踪调试和变量值的监视。
5.能设计简单的顺序结构程序。
2.2实验预习
1.熟悉以下函数:
putchar、getchar、printf、scanf
2.了解顺序结构程序的执行进程。
3.了解程序的跟踪调试和变量值的监视并能够熟练操作。
单步跟踪调试(逐条语句跟踪调试):
(1)可按功能键F7进行,要监视某变量的值时,就按Ctrl+F7键,然后输入相应的
变量名,就能够够在监视消息窗口中查看到该变量的值。
(2)也可逐段运行程序,即每次运行假设干条语句。
第一利用Ctrl+F8键在各行光标
处设置假设干断点,然后按Ctrl+F9键从程序的第一条语句运行到设置的第一个断
点,再按Ctrl+F9键从设置的第一个断点运行到设置的第二个断点。
4.了解顺序结构程序的一样组成。
2.3实验任务
1.假设有程序
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求给i赋5,给j赋10,那么应该从键盘输入i=5,j=10
2.华氏温度,要求输出摄氏温度,公式为:
C=
。
要求输出结果保留到小数点后两位。
已知程序段中有三处错误,由注释语句/**********found**********/提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。
错误原因是
正确语句是
#include
main()
{floatf,c;clrscr();
/**********found
(1)**********/
scanf("%d",f);
/**********found
(2)**********/
c=5/9(f-32);
/**********found(3)**********/
printf("f=%f,c=%f\n",c,f);
}
Scanf语句中是地址列表
scanf("%d",&f);
缺少运算符
c=5/9*(f-32);
输出表列用英文逗号分隔
printf("t=%.2f,f=%.2f\n",c,f);
3.已知程序功能是通过用户输入三角形三边,求取三角形面积。
填空,将程序补充完整。
求取公式为;S=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c))
人工填空
上机填空
#include
(1)/*需要添加头文件*/
#include
main()
{floata,b,c,s,area;
clrscr();
scanf("%f,%f,%f",&a,&b,&c);
(2);
area=sqrt(3);
/*库函数sqrt的含义是开平方*/
printf("area=%f\n",area);}
S=(a+b+c)/2
(s*(s-a)*(s-b)*(s-c))
4.单步跟踪下面程序的执行,每执行一条语句就查看各变量的值。
运行时输入一个三位的整数。
单步跟踪程序时填写下表,同时分析程序的功能。
#include”stdio.h”
voidmain()
{intn,x1,x2,x3,y;
printf(“pleaseinputnumbern”);
scanf(“%3d”,&n);
x1=n/100;
x2=n/10%10;
x3=n%10;
y=x3*100+x2*10+x1;
printf(“y=%3d”,y);}
n
X1
X2
X3
y
程序的功能是:
将输入的3位整数逆序排列
5.9
getchar()只能接收单个字符,数字也当字符处置
6.120,170
7.826628n1n2n3
8.a=123,123,|_||_|123,123|_||_|,|_|+123
b=-45,-45,|_||_|-45,-45|_||_|,|_||_|-45
x=2.547290,|_|2.547290,|_||_||_||_||_|2.55
x=2.547|_||_|,2.55,3
9.编辑程序,输入学生语、数、英三门课程成绩(考虑数据类型,整型和实型),并输出其总分和平均分。
整型:
main()
{intc,m,e,sum;
floatave;
scanf("%d,%d,%d",&c,&m,&e);
sum=c+m+e;
ave=sum/3.0;
printf(“sum=%d\nave=%f”,sum,ave);
}
实型:
main()
{floatc,m,e,sum,ave;
scanf("%f,%f,%f",&c,&m,&e);
sum=c+m+e;
ave=sum/3;
printf(“sum=%f\nave=%f”,sum,ave);
}
2.4实验心得
实验3选择结构程序设计与调试
班级
学号
实验室
专业
姓名
成绩评定
所用软件
计算机号
教师签名
3.1实验目的
1.明白得C语言表示逻辑量的方式(以0代表“假”,以非0代表“真”)。
2.学会正确利用逻辑运算符和逻辑表达式、关系运算符和关系表达式。
3.学会运用逻辑表达式或关系表达式等表达条件。
4.熟练把握if语句和switch语句。
5.学习跟踪调试程序,针对具体程序组织输入测试数据,观看程序运行可否取得预期
的输出结果。
6.熟悉选择结构程序段中语句的执行进程。
3.2实验预习
1.熟悉逻辑运算符和逻辑表达式、关系运算符和关系表达式。
2.熟悉以下语句:
if、if-else、switch、break。
3.3实验任务
1.阅读程序,上机调试并记录程序结果。
人工分析结果
实验运行结果
#include
main()
{intx=0;
if(x==0)printf("x=%d\n",x);
elseprintf("x=%d\n,x+1);
}
x=0
#include
main()
{intx=0;clrscr();
if(x=0)printf("x=%d\n",x);
elseprintf("x=%d\n,x+1);
}
x=1
以上两题告知了你什么:
1)c中的赋值号与等于运算符应区分。
2)假设判定表达式值为0,表示假,执行else分支
2.阅读程序,上机调试并记录程序结果。
人工分析结果
实验运行结果
实验告诉我们
main()
{
inta=4,b=3,c=5,t=0;
if(a
if(a printf("%d%d%d\n",a,b,c); } 503 分支语句只有1条内嵌语句,与书写方式无关 3.阅读程序,上机调试并记录程序结果。 人工分析结果 实验运行结果 实验告诉我们 main() {inta=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); } 0 关系运算符无论有多少,总是一个个运算得结果然后参与下一个运算的。 4.假设从键盘输入58,判定以下程序输出的结果。 人工分析结果 实验运行结果 main() {inta; scanf("%d",&a); if(a>50)printf("%d",a); if(a>40)printf("%d",a); if(a>30)printf("%d",a); } 585858 5.阅读程序,上机调试并记录程序结果。 人工分析结果 实验运行结果 main() {intx=1,a=0,b=0; switch(x) {case0: b++; case1: a++; case2: a++;b++; } printf(“a=%d,b=%d\n”,a,b); } a=2,b=1 6.阅读程序,上机调试并记录程序结果。 人工分析结果 实验运行结果 main() {inta=13,b=21,m=0; switch(a%3) {case0: m++;break; case1: m++; switch(b%2) {default: m++; case0: m++;break; } } printf(“m=%d\n”,m);} m=3 7.阅读程序,上机调试并记录程序结果。 人工分析结果 实验运行结果 实验告诉我们 main() {inti=1,j=1,k=2; if((j++||k++)&&i++); printf("%d,%d,%d\n",i,j,k);} 2,2,2 逻辑运算符不是所有的符合都可以参与运算的 8.阅读程序,并回答下列问题 main() {inta,b,max,min; scanf("%d%d",&a,&b); if(a>b) max=a; else max=b; printf("max=%d\n",max); } 问题: a、此程序的功能是输出两数中的最大数 b、请用条件表达式语句(? : )修改程序使之完成相同的功能, 其语句是printf(“max=%d\n”,a>b? a: b); 9.有一函数 x-1(x<1) y=2(x-1)(1<=x<10) 3x-10(x>=10) 编程求当别离输入x的值为0.3,3.9,11时,y的值。 x=0.3时y=-0.7;x=3.9时y=5.8;x=11时y=23 main() {floatx,y; scanf("%f",&x); if(x<1) y=x-1; elseif(x<10) y=2*(x-1); else y=3*x-10; printf("x=%f,y=%f\n",x,y); } 10.身高预测 每一个做父母的都关切自己小孩成人后的身高,据有关生理卫生知识与数理统计分析说明,阻碍小孩成人后的身高的因素包括遗传、饮食适应与体育锻炼等。 小孩成人后的身高与其父母的身高和自身的性别紧密相关。 设faHeight为其父身高,moHeight为其母身高,身高预测公式为 男性成人时身高=(faHeight+moHeight)×0.54cm 女性成人时身高=(faHeight×0.923+moHeight)/2cm 另外,若是喜爱体育锻炼,那么可增加身高2%;若是有良好的卫生饮食适应,那么可增加身高1.5%。 编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是不是喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是不是有良好的饮食适应等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方式对身高进行预测。 #include main() { charsex;/*孩子的性别*/ charsports;/*是否喜欢体育运动*/ chardiet;/*是否有良好的饮食习惯*/ floatmyHeight;/*孩子身高*/ floatfaHeight;/*父亲身高*/ floatmoHeight;/*母亲身高*/ printf("Areyouaboy(M)oragirl(F)? "); scanf("%c",&sex); printf("Pleaseinputyourfather'sheight(cm): "); scanf("%f",&faHeight); printf("Pleaseinputyourmother'sheight(cm): "); scanf("%f",&moHeight); printf("Doyoulikesports(Y/N)? "); scanf("%c",&sports); printf("Doyouhaveagoodhabitofdiet(Y/N)? "); scanf("%c",&diet); if(sex=='M'||sex=='m') myHeight=(faHeight+moHeight)*0.54; else myHeight=(faHeight*0.923+moHeight)/2.0; if(sports=='Y'||sports=='y') myHeight=myHeight*(1+0.02); if(diet=='Y'||diet=='y') myHeight=myHeight*(1+0.015); printf("Yourfutureheightwillbe%f(cm)\n",myHeight); } 11.随机输入3个整型数据作为学生的课程成绩,编程实现由小到大排序输出(对照第三章编程题,比较他们的优缺点)。 main() {inta,b,c,e=0; scanf("%d,%d,%d",&a,&b,&c); if(a>b) {e=a;a=b;b=e;} if(a>c) {e=a;a=c;c=e;} if(b>c) {e=b;b=c;c=e;} printf("%d,%d,%d",a,b,c);} 3.4实验心得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10112 实验 报告 答案