C语言上机练习参考答案DOC.docx

上传人:b****5 文档编号:14272010 上传时间:2023-06-22 格式:DOCX 页数:153 大小:117.76KB
下载 相关 举报
C语言上机练习参考答案DOC.docx_第1页
第1页 / 共153页
C语言上机练习参考答案DOC.docx_第2页
第2页 / 共153页
C语言上机练习参考答案DOC.docx_第3页
第3页 / 共153页
C语言上机练习参考答案DOC.docx_第4页
第4页 / 共153页
C语言上机练习参考答案DOC.docx_第5页
第5页 / 共153页
C语言上机练习参考答案DOC.docx_第6页
第6页 / 共153页
C语言上机练习参考答案DOC.docx_第7页
第7页 / 共153页
C语言上机练习参考答案DOC.docx_第8页
第8页 / 共153页
C语言上机练习参考答案DOC.docx_第9页
第9页 / 共153页
C语言上机练习参考答案DOC.docx_第10页
第10页 / 共153页
C语言上机练习参考答案DOC.docx_第11页
第11页 / 共153页
C语言上机练习参考答案DOC.docx_第12页
第12页 / 共153页
C语言上机练习参考答案DOC.docx_第13页
第13页 / 共153页
C语言上机练习参考答案DOC.docx_第14页
第14页 / 共153页
C语言上机练习参考答案DOC.docx_第15页
第15页 / 共153页
C语言上机练习参考答案DOC.docx_第16页
第16页 / 共153页
C语言上机练习参考答案DOC.docx_第17页
第17页 / 共153页
C语言上机练习参考答案DOC.docx_第18页
第18页 / 共153页
C语言上机练习参考答案DOC.docx_第19页
第19页 / 共153页
C语言上机练习参考答案DOC.docx_第20页
第20页 / 共153页
亲,该文档总共153页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言上机练习参考答案DOC.docx

《C语言上机练习参考答案DOC.docx》由会员分享,可在线阅读,更多相关《C语言上机练习参考答案DOC.docx(153页珍藏版)》请在冰点文库上搜索。

C语言上机练习参考答案DOC.docx

C语言上机练习参考答案DOC

⏹第1章C语言概述

1-1编写程序,在屏幕上显示一个如下输出:

---------------------------------ProgramminginCisfun!

IloveClanguage.---------------------------------

Program

#include

main()

{printf("---------------------------------\n");

printf("ProgramminginCisfun!

\n");

printf("IloveClanguage.\n");

printf("---------------------------------\n");

}

1-2编写程序,在屏幕上显示一个如下图案:

**********

Program

(1)

#include

main()

{printf("****\n");

printf("***\n");

printf("**\n");

printf("*\n");

}

Program

(2)

#include

main()

{printf("%c%4c%4c%4c\n",'*','*','*','*');

printf("%3c%4c%4c\n",'*','*','*');

printf("%5c%4c\n",'*','*');

printf("%7c\n",'*');

}

1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。

要求:

将π定义为符号常量,并假设一个恰当的半径值。

Program

#include

#definePI3.14

main()

{floatr=5,s;

s=PI*r*r;

printf("Theareaofcircleis:

%.2f\n",s);

}

Output

Theareaofcircleis:

78.50

1-4已知两个整数20和10,编写程序,自定义函数add()将这两个数相加,自定义函数sub()计算这两个数的差,并按照下面形式显示计算结果:

20+10=3020-10=10

Program

#include

intadd(inta,intb)

{return(a+b);

}

intsub(inta,intb)

{return(a-b);

}

main()

{inta=20,b=10;

printf("%d+%d=%d\n",a,b,add(a,b));

printf("%d-%d=%d\n",a,b,sub(a,b));

}

Output

20+10=30

20–10=10

1-5已知变量a、b和c的值,编写程序,用来计算并显示x的值,其中

请分别用以下数值运行该程序

(1)a=250,b=85,c=25

(2)a=300,b=70,c=80

Program

(1)

#include

main()

{inta=250,b=85,c=25;

floatx;

x=1.0*a/(b-c);

printf("x=%.2f\n",x);

}

Output

(1)

x=4.17

Program

(2)

#include

main()

{inta=300,b=70,c=80;

floatx;

x=1.0*a/(b-c);/*试写成x=a/(b-c);得到什么运行结果?

为什么?

*/

printf("x=%.2f\n",x);

}

Output

(2)

x=-30.00

⏹第2章常量、变量及数据类型&第3章运算符和表达式

3-1编写程序,求华氏温度100oF对应的摄氏温度。

计算公式如下:

式中:

c表示摄氏温度,f表示华氏温度。

(c定义为实型,f定义为整型)

Program

#include

main()

{intf=100;

floatc;

c=5.0*(f-32)/9;/*如果是c=5*(f-32)/9;会是什么结果?

为什么?

*/

printf("Celsiusdegree(correspondingto%dFahrenheit)is:

%.2f.\n",f,c);

}

Output

Celsiusdegree(correspondingto100Fahrenheit)is:

37.78.

3-2一个物体从100m的高空自由落下,编写程序,求它在前3s内下落的垂直距离。

设重力加速度为10m/s2。

要求,将重力加速度定义为符号常量,尝试将其改为9.8m/s2,看结果有何不同?

Program

#include

#defineG10

main()

{intt=3;

floats;

s=1.0/2*G*t*t;/*如果是s=1/2*G*t*t;会是什么结果?

为什么?

*/

printf("Thefallingverticaldistance(in%dseconds)is:

%.2f.\n",t,s);

}

Output

Thefallingverticaldistance(in3seconds)is:

45.00.

3-3将球的半径R定义为符号常量,计算球的表面积(4πR2)和体积(4/3*πR3)。

Program

#include

#defineR5.2

#definePI3.14

main()

{floats,v;

s=4*PI*R*R;

v=4.0/3*PI*R*R*R;

printf("Thesurfaceareaoftheball(radiusis%.2f)is:

%.2f,andthevolumeis:

%.2f.\n",R,s,v);

}

Output

Thesurfaceareaoftheball(radiusis5.20)is:

339.62,andthevolume588.68.

3-4给定x、y和z的值,编写程序,使x等于y的值,y等于z的值,z等于x的值。

Program

#include

main()

{intx=1,y=2,z=3,t;

printf("Beforeswap:

x=%d,y=%d,z=%d.\n",x,y,z);

t=x;

x=y;

y=z;

z=t;/*变量t的作用是什么?

*/

printf("Afterswap:

x=%d,y=%d,z=%d.\n",x,y,z);

}

Output

Beforeswap:

x=1,y=2,z=3.

Afterswap:

x=2,y=3,z=1.

3-5编写一个程序,给定一个浮点数(例如456.78),显示该数的十位数字与个位数字之和(例如5+6=11)。

Program

(1)

#include

main()

{floatf=456.78;

intn,a,b;

n=f;

a=n%10;/*赋值后,a是什么值?

*/

b=n/10%10;/*赋值后,b是什么值?

*/

printf("Thesumofthetensdigitandunitsdigitof%.2fis:

%d+%d=%d.\n",f,b,a,a+b);

}

Program

(2)

#include

main()

{floatf=456.78;

intn,a,b;

n=f;

a=n%10;

b=n%100/10;/*该语句与上面程序不同,看看有何区别?

*/

printf("Thesumofthetensdigitandunitsdigitof%.2fis:

%d+%d=%d.\n",f,b,a,a+b);

}

Output

Thesumofthetensdigitandunitsdigitof456.78is:

5+6=11.

3-6某种物品每年折旧费的计算方法如下:

编写一个程序,当给定某物品的购买价格、使用年限和每年的折旧费时,计算出其废品价值。

Program

#include

main()

{floatprice=120.65,year=3,depreciation=10.2,value;

value=price-year*depreciation;

printf("Thescrapvalueis%.2f.\n",value);

}

Output

Thescrapvalueis90.05.

3-7在库存管理中,某单个物品的经济定购数EOQ由下面等式给定:

而最优的定购时间间隔TBO由下面等式给定:

编写程序,给定需求率(单位时间内的物品数)、生产成本(每个定购)和储备成本(单位时间内每种物品),计算EOQ和TBO。

Program

#include

#include

main()

{intdemand=1000;

floatproduct_cost=3.5,storage_cost=0.63,eoq,tbo;

eoq=sqrt(2*demand*product_cost/storage_cost);

tbo=sqrt(2*product_cost/demand/storage_cost);

printf("EOQis%.2f,andTBOis%.2f.\n",eoq,tbo);

}

Output

EOQis105.41,andTBOis0.11.

⏹第4章输入输出操作管理

4-1输入两个数,将它们交换后输出。

Program

#include

main()

{intx,y,t;

printf("Pleaseinput2numbers:

");

scanf("%d%d",&x,&y);

printf("Beforeswap,the2numbersare:

%d,%d\n",x,y);

t=x;

x=y;

y=t;

printf("Afterswap,the2numbersare:

%d,%d\n",x,y);

}

Output

Pleaseinput2numbers:

35↵/*Blueisinput*/

Beforeswap,the2numbersare:

3,5

Afterswap,the2numbersare:

5,3

4-2输入一个十进制数,输出对应的八进制数和十六进制数。

Program

#include

main()

{intn;

printf("Pleaseinputadecimalnumber:

");

scanf("%d",&n);

printf("Theoctalis%o,andthehexadecimalis%x.\n",n,n);

}

Output

Pleaseinputadecimalnumber:

10↵/*Blueisinput*/

Theoctalis12,andthehexadecimalisa.

考虑:

如何得到下面的输出?

Pleaseinputadecimalnumber:

10↵/*Blueisinput*/

Theoctalis012,andthehexadecimalis0xa.

4-3编写程序,输入3个整数,计算并输出它们的平均值。

Program

#include

main()

{inta,b,c;

printf("Pleaseinput3integers:

");

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

printf("Theaverageis%.2f.\n",(a+b+c)/3.0);

}

Output

Pleaseinput3integers:

47-19↵/*Blueisinput*/

Theaverageis-2.67.

4-4编写一个程序,读取x和y的值,显示下面表达式的值:

(1)

(2)

(3)

Program

#include

main()

{floatx,y;

printf("Pleaseinputxandy:

");

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

printf("

(1)(x+y)/(x-y)=%.2f\n",(x+y)/(x-y));

printf("

(2)(x+y)/2=%.2f\n",(x+y)/2);

printf("(3)(x+y)(x-y)=%.2f\n",(x+y)*(x-y));

}

Output

Pleaseinputxandy:

3.54.1↵/*Blueisinput*/

(1)(x+y)/(x-y)=-12.67

(2)(x+y)/2=3.80

(3)(x+y)(x-y)=-4.56

4-5计算银行存款的本息。

编写程序,输入存款金额money、存期year和年利率rate,根据下列公式计算存款到期时的本息合计sum(税前),输出时保留两位小数。

Program

#include

#include

main()

{floatmoney,rate,sum;

intyear;

printf("Pleaseinputthedepositmoney:

");

scanf("%f",&money);

printf("Pleaseinputthedepositperiod:

");

scanf("%d",&year);

printf("Pleaseinputtheannualinterestrate:

");

scanf("%f",&rate);

sum=money*pow(1+rate,year);

printf("Thetotalprincipalandinterestis:

%.2f\n",sum);

}

Output

Pleaseinputthedepositmoney:

2500↵/*Blueisinput*/

Pleaseinputthedepositperiod:

3↵/*Blueisinput*/

Pleaseinputtheannualinterestrate:

0.023↵/*Blueisinput*/

Thetotalprincipalandinterestis:

2676.50

4-6输入圆柱的高h和半径r,求圆柱体积volume=π*r2*h。

Program

#include

#definePI3.14

main()

{floatvolume,r,h;

printf("Pleaseinputtheradiusofthecylinder:

");

scanf("%f",&r);

printf("Pleaseinputtheheightofthecylinder:

");

scanf("%f",&h);

volume=PI*r*r*h;

printf("Thevolumeofthecylinderis:

%.2f\n",volume);

}

Output

Pleaseinputtheradiusofthecylinder:

3.5↵/*Blueisinput*/

Pleaseinputtheheightofthecylinder:

12.7↵/*Blueisinput*/

Thevolumeofthecylinderis:

488.51

4-7编写一个程序,读取一个实数f,将其四舍五入的值赋值给整型变量n,输出n的值。

(尝试不用if语句完成本程序,并考虑负数是否适用)

Program

(1)

#include

main()

{floatf;

intn,m;

printf("Pleaseinputarealnumber:

");

scanf("%f",&f);

m=f*10;

m=m%10/5;/*m是什么值?

*/

n=f;

n=n+m;/*m有何作用?

*/

printf("Theroundedintegeris:

%d\n",n);

}

Program

(2)如果不明白if语句,可以在学完第5章后再看。

#include

main()

{floatf;

intn,m;

printf("Pleaseinputarealnumber:

");

scanf("%f",&f);

n=f+0.5;/*是否理解该语句?

*/

printf("Theroundedintegeris:

%d\n",n);

}

Output

(1)

Pleaseinputarealnumber:

3.6↵/*Blueisinput*/

Theroundedintegeris:

4

Output

(2)

Pleaseinputarealnumber:

-13.2↵/*Blueisinput*/

Theroundedintegeris:

-13

4-8编写程序,读入两个两位数字的整数,并按照如下形式输出这两个整数的乘积。

45*373151351665提示:

注意格式!

Program

#include

main()

{intx,y,m,n;

printf("Pleaseinput2integers:

");

scanf("%d%d",&x,&y);

printf("%5d\n*%3d\n------\n",x,y);

m=y%10;

n=y/10;

printf("%5d\n%4d\n------\n%5d\n",x*m,x*n,x*y);

}

⏹第5章判断与分支

5-1输入一个字符ch,根据不同情况进行输出:

(1)ch为小写字母,输出对应的大写字母;

(2)ch为大写字母,按照原样输出;(3)ch为数字,输出对应的数字;(4)ch为其他字符,输出“Othercharacter.”。

Program

#include

main()

{charch;

printf("Pleaseinputacharacter:

");

ch=getchar();

if(ch>='a'&&ch<='z')

printf("%c\n",ch-('a'-'A'));

elseif(ch>='A'&&ch<='Z')

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

elseif(ch>='0'&&ch<='9')

printf("%d\n",ch-'0');

elseprintf("Othercharacter.\n");

}

Output

(1)

Pleaseinputacharacter:

A↵/*Blueisinput*/

A

Output

(2)

Pleaseinputacharacter:

b↵/*Blueisinput*/

B

Output(3)

Pleaseinputacharacter:

3↵/*Blueisinput*/

3

Output(4)

Pleaseinputacharacter:

@↵/*Blueisinput*/

Othercharacter.

5-2为鼓励居民节约用水,自来水公司采用按月用水量分段计费的办法,居民应交水费y元与月用水量x吨的函数关系式如下(设x≥0)。

编写程序,输入用户的月用水量x吨,计算并输出该用户应支付的水费y元(保留两位小数)。

Program

#include

main()

{floatx,y;

printf("Pleaseinputthewaterconsumption:

");

scanf("%f",&x);

if(x<=15)

y=4*x/3;/*是否可以写成y=4/3*x;?

区别在哪里?

*/

else

y=2.5*x-10.5;

printf("Thewaterpriceis:

%.2f.\n",y);

}

Output

Pleaseinputthewaterconsumption:

27.9↵/*Blueisinput*/

Thewaterpriceis:

59.25

5-3输入一个年份year,判断year是否为闰年。

year若为闰年,需要满足下列条件之一:

(1)能被4整除,但不能被100整除(如2004年是闰年,2100年不是闰年)

(2)能被400整除(如2000年是闰年)

Program

#include

main()

{intyear;

printf("Pleaseinputtheyear:

");

scanf("%d",&year);

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

=0)||(year%400==0))

printf("%disaleapyear!

\n",year);

else

printf("%disnotaleapyear!

\n",year);

}

Output

Pleaseinputtheyear:

1900↵/*Blueisinput*/

1900isnotaleapyear!

5-4输入3个实数,将其按照降序输出(较大数在前),保留3位小数。

Program

(1)

#include

main()

{floatx,y,z;

printf("Pleaseinput3realnumbers:

");

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

if(x>y)

if(y>z)

printf("%.3f,%.3f,%.3f\n",x,y,z);

else{if(x>z)

printf("%.3f,%.3f,%.3f\n",x,z,y);

else

printf("%.3f,%.3f,%.3f\n",z,x,y);

}

elseif(x>z)

printf("%.3f,%.3f,%.3f",y,x,z);

else{if(y>z)

printf("%.3f,%.3f,%.3f\n",y,z,x);

else

printf("%.3f,%.3f,%.3f\n",z,y,x);

}

}/*程序结束时,x,y,z的值是否发生了变化?

*/

Program

(2)

#include

main()

{floatx,y,z,t;

printf("Pleaseinput3realnumbers:

");

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

if(x>y)

{t=x;x=y;y=t;}

i

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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