10-11-2实验报告(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
《C程序设计》
实验报告
学期:2010--2011学年第二学期
教师姓名:
教研室:
实验1 熟悉C语言程序的运行环境,掌握数据描述
1.1 实验目的
1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。
2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。
3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。
1.2 实验预习
1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。
2.了解下列命令及函数:include<stdio.h>、main、printf、scanf。
3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。
4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。
int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。
6.常量与变量的区别和联系。
运行环境:
1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio 6.0——>Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\MSDEV.EXE"。
2.单击“文件”菜单的“新建”命令。
3.在打开的“新建”对话框中选择“文件”标签。
4.选择C++ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如first.c) ,单击确定按钮。
如图所示:
5.在源窗口中输入源程序,如图所示。
6.编译程序:按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译 编译
运行
若程序有错则找到出错行修改程序。
7.连接:若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。
8.运行程序:按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!”工具运行程序。
1.3 实验任务
1.输入下面的程序,注意区分大小写。
#include <stdio.h> main() {
printf(“I am a student!”); }
4.预测结果并上机验证
(1) main()
{
int a,b;
a=b=3;
printf(“a=%d,b=%d”,a,b);
}
(2)若将以上程序进行改写,编辑如下:
main()
{
int a,b;
a=3;
b=3.1;
printf(“a=%d,b=%d”,a,b);
}
由此知,若赋值号左右数据类型不一致时,c语言将按赋值号左边变量类型为准。
5.现有程序如下,分析填空:
若将以上程序第4行进行改写,编辑如下:
printf(“%d”,a=a+b,b=b+a);
对比以上两程序,结果不同的原因在于输出列表原程序为逗号表达式,所以输出b=b+a 的值,而修改后的仅有一个格式控制符,只能对应输出第一个表达式a=a+b。
6.若有以下程序段,分析c2的值:
int c1=2,c2;
若将程序段改为:
c2=1/c1*c1;
分析c2所得结果,其中的关键在于除号两端如果都是整型数据,则所得结果截断取整7.现有程序如下:
main()
{ int a=7, b=10;
a=a+b; b=a-b; a=a-b;
printf(“%d,%d\n”, a, b );
}
程序运行的功能是:交换a、b两数的值
注:可修改a、b两数的值仔细观察。
8. 现有程序如下,分析填空:
12.思考题:改错题(以下程序有多处错误,上机调试。
将正确的程序记录在下方。
要求不能删
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() { int i,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=
)32f (9
5。
要求输出结果保留到小数点后两位。
已知程序段中有三处错误,由注释语句/**********found**********/提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。
3
. 已知程序功能是通过用户输入三角形三边,求取三角形面积。
填空,将程序补充完整。
求取公式为;S=(a+b+c )/2 area=sqrt(s*(s-a)*(s-b)*(s-c))
4.单步跟踪下面程序的执行,每执行一条语句就查看各变量的值。
运行时输入一个三位的整数。
单步跟踪程序时填写下表,同时分析程序的功能。
#include ”stdio.h ” void main() {int n,x1,x2,x3,y;
printf(“please input number n ”); scanf(“%3d ”,&n); x1=n/100;
x2=n/10%10;
x3=n%10;
y=x3*100+x2*10+x1;
printf(“y=%3d”,y);}
程序的功能是:将输入的3位整数逆序排列5. 9
getchar()只能接收单个字符,数字也当字符处理
6. 120,170
7. 826 628 n1 n2 n3
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()
{ int c,m,e,sum;
float ave;
scanf("%d,%d,%d",&c,&m,&e);
sum=c+m+e;
ave=sum/3.0;
printf(“sum=%d\n ave=%f”,sum,ave);
}
实型:
main()
{float c,m,e,sum,ave;
scanf("%f,%f,%f",&c,&m,&e);
sum=c+m+e;
ave=sum/3;
printf(“sum=%f\n ave=%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.阅读程序,上机调试并记录程序结果。
以上两题告诉了你什么:1) c中的赋值号与等于运算符应区分。
2) 若判断表达式值为0,表示假,执行else分支
2.阅读程序,上机调试并记录程序结果。
阅读程序,上机调试并记录程序结果。
阅读程序,并回答问题
main( )
{ int a,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()
{ float x,y;
scanf("%f",&x);
if (x<1)
y=x-1;
else if(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 <stdio.h>
main()
{
char sex; /*孩子的性别*/
char sports; /*是否喜欢体育运动*/
char diet; /*是否有良好的饮食习惯*/
float myHeight; /*孩子身高*/
float faHeight; /*父亲身高*/
float moHeight; /*母亲身高*/
printf("Are you a boy(M) or a girl(F)?");
scanf(" %c", &sex);
printf("Please input your father's height(cm):");
scanf("%f", &faHeight);
printf("Please input your mother's height(cm):");
scanf("%f", &moHeight);
printf("Do you like sports(Y/N)?");
scanf(" %c", &sports);
printf("Do you have a good habit of diet(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("Your future height will be %f(cm)\n", myHeight);
}
11. 随机输入3个整型数据作为学生的课程成绩,编程实现由小到大排序输出(对比第三章编程题,比较他们的优缺点)。
main()
{ int a,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实验心得。