大学C语言程序设计实验教程实验答案版.docx

上传人:b****5 文档编号:14432654 上传时间:2023-06-23 格式:DOCX 页数:71 大小:44.37KB
下载 相关 举报
大学C语言程序设计实验教程实验答案版.docx_第1页
第1页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第2页
第2页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第3页
第3页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第4页
第4页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第5页
第5页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第6页
第6页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第7页
第7页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第8页
第8页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第9页
第9页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第10页
第10页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第11页
第11页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第12页
第12页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第13页
第13页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第14页
第14页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第15页
第15页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第16页
第16页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第17页
第17页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第18页
第18页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第19页
第19页 / 共71页
大学C语言程序设计实验教程实验答案版.docx_第20页
第20页 / 共71页
亲,该文档总共71页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大学C语言程序设计实验教程实验答案版.docx

《大学C语言程序设计实验教程实验答案版.docx》由会员分享,可在线阅读,更多相关《大学C语言程序设计实验教程实验答案版.docx(71页珍藏版)》请在冰点文库上搜索。

大学C语言程序设计实验教程实验答案版.docx

大学C语言程序设计实验教程实验答案版

实验1基本程序示例

任务1熟悉C语言程序的编辑、编译、连接和运行过程

【上机内容】

1.输入并运行下面程序,写出运行结果。

#include"stdio.h"

main( )

{

charc1,c2;

c1=97;c2=98;

printf("%c,%c",c1,c2);

}

在此基础上,完成以下3项任务:

(1)在c1=97;c2=98;语句后加入如下语句,并运行。

printf("%d,%d",c1,c2);

运行结果:

a,b97,98

(2)将charc1,c2;改为如下语句,再运行。

intc1,c2;

运行结果:

a,b

(3)将c1=97;c2=98;改为如下语句,再运行,并分析其运行结果。

c1=300;c2=400;

运行结果:

,,怭(或,,?

2.分析下面程序,写出运行结果,再输入计算机中运行,将得到的结果与分析得到的结果比较对照。

#include"stdio.h"

main( )

{

charc1='a',c2='b',c3='c',c4='\101',c5='\116';

printf("a%cb%c\tabc%c\n",c1,c2,c3);

printf("\t\b%c%c",c4,c5);

}

运行结果:

aabbabcc

AN

3.分析下面程序,写出运行结果,再输入计算机中运行,将得到的结果与分析得到的结果比较对照。

#include"stdio.h"

main( )

{

inti,j,m,n;

i=8;j=10;

m=++i;n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

运行结果:

9,11,9,10

分别进行以下改动后,先分析结果,再运行对照。

(1)将m=++i;n=j++;改为如下:

m=i++;n=++j;

运行结果:

9,11,8,11

(2)程序改为如下:

#include"stdio.h"

main( )

{

inti,j;

i=8;j=10;

printf("%d,%d",i++,j++);

}

运行结果:

8,10

(3)程序改为如下:

#include"stdio.h"

main( )

{

inti,j;

i=8;j=10;

printf("%d,%d",++i,++j);

}

运行结果:

9,11

(4)程序改为如下:

#include"stdio.h"

main( )

{

inti,j;

i=8;j=10;

printf("%d,%d,%d,%d",i,j,i++,j++);

}

运行结果:

8,10,8,10

(5)程序改为如下:

#include"stdio.h"

main( )

{

inti,j,m=0,n=0;

i=8;j=10;

m+=i++;n-=--j;

printf("i=%d,j=%d,m=%d,n=%d",i,j,m,n);

}

运行结果:

i=9,j=9,m=8,n=-9

任务2简单的C语言程序设计

1.按格式要求输入、输出数据。

程序请单如下:

#include"stdio.h"

main( )

inta,b;

flostx,y;

charc1,c2;

scanf("a=%d,b=%d",&a,&b);

scanf("%f,%e",&x,&y);

scanf("%c%c",&c1,&c2);/*录入时%c与%c之间有个空格*/

printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);

}

运行该程序,必须按如下方式在键盘上输入数据:

a=3,b=7↙

8.5,71.82aA↙(注解:

a与A之间输入一个空格,且a紧跟71.82后写,不要空格)

请写出输出结果。

运行结果:

a=7,b=3,x=8.,y=71.,c1=a,c2=A

2.输入三角形的三条边长,求三角形面积。

程序清单如下:

#include"stdio.h"

#include"math.h"

main( )

{

floata,b,c,s,area;

scanf("%f,%f,%f",&a,&b,&c);

s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("area=%f",area);

}

运行结果:

(具体情况根据自己输入的数据而定)

如在键盘上输入:

3,4,5↙

则运行结果为:

area=6.

3.已知圆半径、圆柱高、求圆周长、圆柱体积。

程序清单如下:

#include"stdio.h"

main( )

{

floatr,h,l,v,pi;

pi=3.;

scanf("%f,%f",&r,&h);

l=2*pi*r;

v=pi*r*r*h;

printf("圆周长为:

%6.2f\n",l);

printf("%圆柱体积为:

6.2f",v);

}

运行结果:

(具体情况根据自己输入的数据而定)

如在键盘上输入:

5,6↙

则运行结果为:

圆周长为:

31.42

圆柱体积为:

471.24

4.输入一个摄氏温度,要求输出华氏温度,公式为f=5/9·c+32。

程序清单如下:

#include"stdio.h"

main( )

{

floatc,f;

scanf("%f",&c);

f=5.0/9*c+32;

printf("%5.2f\n",c);

}

运行结果:

(具体情况根据自己输入的数据而定)

如在键盘上输入:

37↙

则运行结果为:

52.56

实验2 选择结构

任务1if语句程序设计

1.修改下列程序,使之满足输入10时输出“==”,否则输出“!

=”的条件。

#include"stdio.h"

main()

{intx;

scanf("%d",&x);

if(x==10)printf("==\n");

elseprintf("!

=\n");

}

2.修改下列程序,使之实现以下功能:

①当a==b并且b==c时,输出“a==b==c”;②当a!

=b时,输出“a!

=b”。

#include“stdio.h”

main()

{inta,b,c;

scanf(“%d%d%d”,&a,&b,&c);

if(a==b)

{if(b==c)

printf(“a==b==c”);

else

printf(“a!

=b”);

}

3.程序填空。

从键盘输入任意一个大写字母,将其转换成相应小写字母输出。

#include

main()

{charc;

scanf("%c",&c);

if(c>='A'&&c<='Z')或(c>=65&&c<=90)

c=c+32;

printf("\n%c",c);

}

4.有以下程序,执行后输出结果为_______4_______。

#include“stdio.h”

main()

{inta=1,b=2,c=3,d=4;

if(a

elseif((c-b)==a)printf(“%d\n”,2*d);

elseprintf(“%d\n”,4*d);

}

5.有以下程序,执行后输出结果为______970_____。

#include"stdio.h"

main()

{inta=8,b=7,c=9,t=0;

if(a

if(a

if(b

printf("%5d%5d%5d\n",a,b,c);

}

6.有以下程序,执行后输出结果为_____987_____。

#include"stdio.h"

main()

{inta=8,b=7,c=9,t=0;

if(a

if(a

if(b

printf("%5d%5d%5d\n",a,b,c);

}

7.x、y有如下函数关系,编写程序输入x,输出y值。

x(x<1)

y=2x–1(1≤x<10)

3x–11(x≥10)

参考答案:

#include"stdio.h"

main()

{doublex,y;

scanf("%lf",&x);

if(x<1)

y=x;

elseif(x<10)

y=2*x-1;

else

y=3*x-11;

printf("y=%lf",y);

}

8.输入一个百分制分数,要求输出对应的成绩等级:

90~100为‘A’,80~89为‘B’,70~79为‘C’,60~69为‘D’,不及格为‘E’。

参考答案:

#include

main( )

{floatscore;

printf("inputsocre:

");

scanf("%f",&score);

if(score>=90)

printf("A\n");

elseif(score>=80)

printf("B\n");

elseif(score>=70)

printf("C\n");

elseif(score>=60)

printf("D\n");

else

printf("E\n");

}

9.给一个不多于3位的正整数,编写程序完成以下要求:

(1)求出它是几位数;

(2)分别输出每一位数字;

(3)按逆序输出各位数字,例如,原数为321,应输出123。

参考答案:

#include"stdio.h"

voidmain()

{inta,b,c,x,n;

scanf("%d",&x);

a=x/100;

b=(x-a*100)/10;

c=x%10;

if(a!

=0)

printf("%d为3位数,原数为%d,逆序数为%d\n",x,x,c*100+b*10+a);

elseif(b!

=0)

printf("%d为2位数,原数为%d,逆序数为%d\n",x,x,c*10+b);

else

printf("%d为1位数,原数为%d,逆序数为%d\n",x,x,c);

}

任务2switch语句程序设计

1.有如下程序,执行后输出结果为______14______。

#include“stdio.h”

main()

{inti=5;

switch(i)

{case4:

i+=1;

case5:

i+=2;

case6:

i+=3;

default:

i+=4;

}

printf("%d\n",i);

}

2.有如下程序段,若grade的值为'C',则输出结果是_____Medium!

____

Pass!

______。

switch(grade)

{case'A':

printf("Excellent!

\n");

case'B':

printf("Fine!

\n");break;

case'C':

printf("Medium!

\n");

case'D':

printf("Pass!

\n");break;

default:

printf("Fail!

\n");

}

3.有以下程序,执行后输出结果为_______a=3,b=5__________

#include"stdio.h"

main()

{intx=0,y=1,a=2,b=3;

switch(x)

{case0:

switch(y)

{case0:

a++;

case1:

b++;break;

}

case1:

a++;b++;break;

case2:

a++;b++;

}

printf("\na=%d,b=%d",a,b);

}

4.将下列的程序段改用switch语句来实现,使它完成相同的功能。

if(x>=0&&x<10)y=x;

elseif(x<20)y=x+3;

elseif(x<40)y=-0.5*x+10;

elsey=2*x-5;

参考答案:

#include"stdio.h"

main()

{floatx1,x2;

floaty;

scanf("%f",&x1);

x2=x1;

switch(x1>0)

{case0:

y=0;break;

case1:

switch((int)x2/10)

{case0:

y=x2;break;

case1:

y=x2+3;break;

case2:

case3:

y=-0.5*x2+10;break;

default:

y=2*x2-5;break;

}

}

printf("x=%f,y=%f",x1,y);

}

5.以下程序计算某年某月有几天,闰年与平年的二月份天数不同。

判别闰年的条件是:

能被4整除但不能被100整除的年是闰年,或者能被400整除的年也是闰年。

请分析程序填空。

#include"stdio.h"

#include"stdio.h"

main()

{intyy,mm,days;

printf("inputyearandmonth:

");

scanf("%d%d",&yy,&mm);

switch(mm)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;break;

case4:

case6:

case9:

case11:

days=30;break;

case2:

if(yy%4==0&&yy%100!

=0||yy%400==0)days=29;

elsedays=28;

break;

default:

printf("inputerror");break;

}

printf("thedaysof%d%dis%d\n",yy,mm,days);

}

6.假设奖金税率如下(ma代表奖金,tr代表税率),利用switch语句编写程序对输入的一个奖金数,输出税率和应交税款以及实得奖金数(扣除奖金税后),

①ma<1000时,tr=0%;

②1000≤ma<2000时,tr=5%;

③2000≤ma<4000时,tr=8%;

④4000≤ma时,tr=10%。

参考答案:

#include"stdio.h"

main()

{floatma,tr,ma_tr;

scanf("%f",&ma);

printf("奖金数为%8.2f",ma);

switch(ma>=1000)

{case0:

tr=0;break;

case1:

switch((int)ma/1000)

{case1:

tr=0.05;break;

case2:

case3:

tr=0.08;break;

default:

tr=0.1;break;

}

}

printf("税率为=%.2f,应交税款为=%.2f,实得奖金数为=%.2f\n",tr,ma*tr,ma*(1-tr));

}

实验3 循环结构实验

(1)

任务1while语句程序设计

1.分析并修改下面的程序,使该程序能正常结束运行。

#include

main()

{intx,y;

x=2;y=0;

while(!

y--)

printf(“%d,%d\n”,x,y);

}

2.下列程序中,while循环的循环次数为___6次___。

#include

main()

{inti=0;

while(i<10)

{if(i==5)break;

i++;

}

printf(“%d\n”,i);

}

3.下面是一个计算e的近似值(使误差小于给定的数值)的程序。

#include

main()

{doublee=1.0,x=1.0,y,detax;

inti=1;

printf("pleaseinputenter:

\n");

scanf("%lf",&detax);

y=1/x;

while(y>=detax)

{

x=x*i;

y=1/x;

e=e+y;

++i;

}

printf("%12.10f",e);

}

参考答案:

实验要求:

(1)阅读上面的程序,写出程序所依据的计算公式。

e=1+1/1!

+1/2!

+1/3!

+....+1/n!

(2)当输入的detax各是什么值时,能分别使程序按下面的要求运行:

a.不进入循环;detax>1.0

b.只循环两次;detax>0.5&&detax<=1.0

c.进入死循环(程序将永远循环下去)。

<=0

(3)原程序中while语句中的y>=detax,分别换成y>detax,y=detax,y

4.编写程序。

对输入的任意的一个正整数按反序输出。

例如,输入147,输出741。

参考答案:

#include"stdio.h"

voidmain()

{

intx,i;

scanf("%d",&x);

while(x!

=0)

{i=x%10;

x=x/10;

printf("%d",i);

}

}

任务2do-while语句程序设计

1.分析并修改下面的程序,使该程序能正常结束运行。

#include

main()

{intx=0;

do{

x++;

}while(x==2);

printf(“%d\n”,x);

}

2.有以下两段程序,比较输出结果并分析原因。

(一)

main()

{intx=0;

while(x<0)x++;

printf(“%d\n”,x);

}

结果为:

0

(二)

main()

{intx=0;

do{x++;

}while(x<0);

printf(“%d\n”,x);

}

结果为:

1

两段程序结果不同,是因为x的初始值为0,从而使循环条件不成立。

当循环条件不成立一次都不成立时,do……while循环会比while循环多执行一次循环体。

3.下列程序中,do_while循环的循环次数为__无限次____。

#include

main()

{inti=0;

do{if(i==6)continue;

i=i+2;

}while(i<10);

printf("%d\n",i);

}

4.运行下列程序,输出结果为_______sum=4000_______。

#include"stdio.h"

#defineN100

main()

{intx=0,sum=0;

do{if(x==(x/5*5))

continue;

sum=sum+x;

}while(++x

printf("sum=%d\n",sum);

}

5.求1!

+2!

+3!

+4!

+5!

+6!

+7!

+8!

+9!

+10!

请填空将下面的程序补充完整:

答案:

#include

main()

{intj,m,p,s;

s=0;

m=1;

do

{p=1;

j=1;

while(j<=m)

{p*=j;

j++;

}

s=s+p;

m++;

}while(m<=10);

printf("s=%d\n",s);

}

6.编写程序。

每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果总个数到不超过100的最大值,求每天平均花多少钱?

答案:

9.92

参考答案:

#include"stdio.h"

voidmain()

{

intx,sum,day;

doubleave=0;

x=2;

day=1;

sum=2;

do

{x=2*x;

sum=sum+x;

day++;

}while(sum<=100);

ave=(sum-x)*0.8/(day-1);

printf("%lf",ave);

}

实验4 循环结构实验

(2)

任务1for语句程序设计

1.分析并修改下面的程序,使该程序能正常结束运行。

#include

main()

{inti;

for(i=1;i<10;i++)

printf("%d\n",i);

}

2.分析并修改下面的程序,使sum的值为1+2+……+10的和。

#include

main()

{inti=1,sum=0;

for(;i<=10;i++)

sum=sum+i;

printf("sum=%d\n",sum);

}

3.运行下列程序,输出结果为_________sum=15________。

#include

main()

{inti,sum=0;

for(i=0;i<=10;i++)

{sum=sum+i;

if(i==5)break;

}

printf("sum=%d\n",sum);

}

4.运行下列程序,输出结果为_______sum=4000________。

#include

main()

{inti,sum=0;

for(i=0;i<=100;i++)

{if((i%5)==0)

continue;

sum=sum+i;

}

printf("sum=%d\n",sum);

}

5.运行下列程序,输出结果为_______sum=60________。

#include

main()

{inti,j,sum=0;

for(i=0;i<=3;i++)

for(j=0;j<=5;j++)

sum=sum+j;

printf("sum=%d\n",sum);

}

6.程序填空。

求出1000以内能被13整除的最大数。

#include"stdio.h"

m

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2