C语言实验报告答案Word文档下载推荐.docx
- 文档编号:19606807
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:41
- 大小:100.32KB
C语言实验报告答案Word文档下载推荐.docx
《C语言实验报告答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言实验报告答案Word文档下载推荐.docx(41页珍藏版)》请在冰豆网上搜索。
若程序有错则找到出错行修改程序。
7.连接:
若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。
8.运行程序:
按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!
”工具运行程序。
1.3实验任务
1.输入下面的程序,注意区分大小写。
#include<
stdio.()
{
printf(“Iamastudent!
”);
}
2.预测结果并上机验证
人工分析结果
实验运行结果
printf(“************\n”);
\n”);
************
Iamastudent!
3.预测结果并上机验证
#include<
inta,b,sum;
scanf(“%d,%d”,&
a,&
b);
sum=a+abs(b);
printf(“aaddbis%d”,sum);
若输入为2,8则输出为:
aandbis10
4.预测结果并上机验证
(1)main()
inta,b;
a=b=3;
printf(“a=%d,b=%d”,a,b);
(2)若将以上程序进行改写,编辑如下:
main()
a=3;
b=3.1;
题号
(1)
a=3,b=3
(2)
由此知,若赋值号左右数据类型不一致时,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);
4
对比以上两程序,结果不同的原因在于输出列表原程序为逗号表达式,所以输出b=b+a的值,而修改后的仅有一个格式控制符,只能对应输出第一个表达式a=a+b。
6.若有以下程序段,分析c2的值:
intc1=2,c2;
c2=1.0c1*c1;
1
若将程序段改为:
c2=1c1*c1;
分析c2所得结果,其中的关键在于除号两端如果都是整型数据,则所得结果截断取整
7.现有程序如下:
{inta=7,b=10;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d\n”,a,b);
}
程序运行的功能是:
交换a、b两数的值
注:
可修改a、b两数的值仔细观察。
8.现有程序如下,分析填空:
{inta=0;
a+=(a=8);
printf("
%d\n"
a);
16
9.现有程序如下,分析填空:
{
inta=2,b=5;
intm=3,n;
doublec=2.1,d=4.5;
n=am+b*c-dm;
printf(“%d”,n);
9
10.现有程序如下,分析填空:
Main()
{intx=1,y=2;
printf(“%d%d\n”,++x,y++);
22
11.现有程序如下,分析填空:
{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.思考题:
改错题(以下程序有多处错误,上机调试。
将正确的程序记录在下方。
要求不能删减已有内容。
源程序
正确的程序应改为:
math.()
{inta,b=3;
A=3*PI*SIN(b);
STA=3*STA;
printf(“%d\n”,2a);
printf(“%d”,b);
a=3*PI*sin(b);
b=3*STA;
printf(“%d\n”,2*a);
实验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.若有程序
{inti,j;
scanf("
i=%d,j=%d"
&
i,&
j);
i=%d,j=%d\n"
i,j);
要求给i赋5,给j赋10,则应该从键盘输入i=5,j=10
2.华氏温度,要求输出摄氏温度,公式为:
C=。
要求输出结果保留到小数点后两位。
已知程序段中有三处错误,由注释语句**********found**********提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。
错误原因是
正确语句是
{floatf,c;
clrscr();
**********found
(1)**********
scanf("
%d"
f);
**********found
(2)**********
c=59(f-32);
**********found(3)**********
printf("
f=%f,c=%f\n"
c,f);
Scanf语句中是地址列表
f);
缺少运算符
c=59*(f-32);
输出表列用英文逗号分隔
t=%.2f,f=%.2f\n"
3.已知程序功能是通过用户输入三角形三边,求取三角形面积。
填空,将程序补充完整。
求取公式为;
S=(a+b+c)2area=sqrt(s*(s-a)*(s-b)*(s-c))
人工填空
上机填空
{floata,b,c,s,area;
clrscr();
%f,%f,%f"
b,&
c);
(2);
area=sqrt(3);
*库函数sqrt的含义是开平方*
area=%f\n"
area);
math.h>
S=(a+b+c)2
(s*(s-a)*(s-b)*(s-c))
4.单步跟踪下面程序的执行,每执行一条语句就查看各变量的值。
运行时输入一个三位的整数。
单步跟踪程序时填写下表,同时分析程序的功能。
#include”stdio.()
{intn,x1,x2,x3,y;
printf(“pleaseinputnumbern”);
scanf(“%3d”,&
n);
x1=n100;
x2=n10%10;
x3=n%10;
y=x3*100+x2*10+x1;
printf(“y=%3d”,y);
n
X1
X2
X3
y
程序的功能是:
将输入的3位整数逆序排列
5.#include<
stdio.()
{charch;
ch=getchar();
putchar(ch);
运行时如果从键盘输入数据98,你预测的输出结果是
实际的输出结果为9
原因在于getchar()只能接收单个字符,数字也当字符处理
6.#include<
{inta,b,c;
scanf(“%d,%o”,&
c=a*b;
printf(“%d,%o\n”,c,c);
运行时如果输入数据:
12,12
你预测的结果是,实际的输出结果是。
7.#include<
{intx,n1,n2,n3,y;
%3d"
&
x);
n1=x100;
n2=x10%10;
n3=x%10;
y=n3*100+n2*10+n1;
printf(“%d\n”,y);
上述程序在运行时如果从键盘输入数据8265,则x的值为_826_;
输出的结果为628,在变量n1、n2、n3中,_n1_是x的百位数,_n2_是x的十位数,__n3_是x的个位数。
8.#include<
{inta=123,b=-45;
floatx=2.54729;
printf(“a=%d,%2d,%5d,%-5d,%+5d\n”,a,a,a,a,a);
printf(“b=%d,%2d,%5d,%-5d,%+5d\n”,b,b,b,b,b);
printf(“x=%f,%9f,%9.2f\n”,x,x,x);
printf(“x=%-7.3f,%2.2f,%.0f\n”,x,x,x);
在下面写出程序的运行结果,每个空格用一个|_|来表示
a=|_||_||_||_|,|_|+123
b=|_||_||_||_|,|_||_|-45
x=2.547290,|_|2.547290,|_||_||_||_||_|2.55
x=2.547|_||_|,2.55,3
9.编辑程序,输入学生语、数、英三门课程成绩(考虑数据类型,整型和实型),并输出其总分和平均分。
整型:
{intc,m,e,sum;
floatave;
%d,%d,%d"
c,&
m,&
e);
sum=c+m+e;
ave=sum3.0;
printf(“sum=%d\nave=%f”,sum,ave);
实型:
{floatc,m,e,sum,ave;
ave=sum3;
printf(“sum=%f\nave=%f”,sum,ave);
实验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.阅读程序,上机调试并记录程序结果。
{intx=0;
if(x==0)printf("
x=%d\n"
x);
elseprintf("
x=%d\n,x+1);
x=0
clrscr();
if(x=0)printf("
x=1
以上两题告诉了你什么:
1)c中的赋值号与等于运算符应区分。
2)若判断表达式值为0,表示假,执行else分支
2.阅读程序,上机调试并记录程序结果。
实验告诉我们
inta=4,b=3,c=5,t=0;
if(a<
b)t=a;
a=b;
b=t;
c)t=a;
a=c;
c=t;
%d%d%d\n"
a,b,c);
503
分支语句只有1条内嵌语句,与书写方式无关
3.阅读程序,上机调试并记录程序结果。
inta=5,b=4,c=3,d;
d=(a>
b>
d);
关系运算符无论有多少,总是一个个运算得结果然后参与下一个运算的。
4.若从键盘输入58,判断以下程序输出的结果。
{
inta;
scanf("
a);
if(a>
50)printf("
if(a>
40)printf("
%d"
if(a>
30)printf("
585858
5.阅读程序,上机调试并记录程序结果。
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
b++;
} printf(“a=%d,b=%d\n”,a,b);
a=2,b=1
6.阅读程序,上机调试并记录程序结果。
{inta=13,b=21,m=0;
switch(a%3)
m++;
break;
case1:
switch(b%2)
{default:
case0:
printf(“m=%d\n”,m);
m=3
7.阅读程序,上机调试并记录程序结果。
{inti=1,j=1,k=2;
if((j++||k++)&
&
i++);
%d,%d,%d\n"
i,j,k);
2,2,2
逻辑运算符不是所有的符合都可以参与运算的
8.阅读程序,并回答问题
main()
{inta,b,max,min;
%d%d"
b)
max=a;
else
max=b;
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的值。
{floatx,y;
%f"
if(x<
y=x-1;
elseif(x<
y=2*(x-1);
y=3*x-10;
x=%f,y=%f\n"
x,y);
x=0.3时y=-0.7;
x=3.9时y=5.8;
x=11时y=23
10.编辑程序,输入一个不多于3位的正整数,要求:
a)求出它是几位数;
分别打印出每一位数字;
b)按逆序打印出各位数字,例如原数为-321,应输出-123。
{intx,a,b,c,e=0;
a=x100;
*a、b、c用于求取各个数位*
b=x%10010;
c=x%10;
e=c*100+b*10+a;
*e存储x数值的逆序排列数*
if(a>
0)*if分支用于判断x的大小,并根*
x>
100"
);
*据位数决定逆序的最终值*
elseif(b>
0)
{printf("
10<
x<
e=e10;
10"
e=e100;
e);
11.随机输入3个整型数据作为学生的课程成绩,编程实现由小到大排序输出(对比第三章编程题,比较他们的优缺点)。
{inta,b,c,e=0;
{e=a;
b=e;
c)
c=e;
if(b>
{e=b;
b=c;
3.4思考
请思考如何通过改变分支条件将多if嵌套变成无套形式,提高计算机的运算效率。
请上网搜索答案,体会程序优化的思路方式。
无具体答案。
实验4循环结构程序设计
4.1实验目的
1.掌握用while语句、do-while语句和for语句实现循环的方法。
2.理解循环结构程序段中语句的执行过程,进一步练习程序的跟踪调试技术。
3.掌握在程序设计中用循环的方法实现各种算法(如穷举法、迭代等)。
4.理解break语句和continue语句的功能和执行过程。
4.2实验预习
1.熟悉语句:
while、do-while、for、break、continue。
2.熟悉三种循环语句之间的关系和区别。
4.3实验任务
(一)while循环
1.若输入的值是5,预测结果并上机验证
main()
inti,n;
scanf("
i=1;
while(i<
=n)
i++;
i=%.d\n"
i);
i=6
2.若输入的值是5,预测结果并上机验证,循环执行次数是__5____,考虑若x定义为整型,程序结果是否相同___不同_______,为什么_因为要考虑到c中除法的规则
doublex,s=0;
i=1;
x=1;
{i++;
x=x+1;
s+=1x;
}
s=%.2f\n"
s);
s=1.45
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告 答案