c语言课后习题源程序.docx

上传人:b****6 文档编号:12260066 上传时间:2023-06-05 格式:DOCX 页数:115 大小:65.89KB
下载 相关 举报
c语言课后习题源程序.docx_第1页
第1页 / 共115页
c语言课后习题源程序.docx_第2页
第2页 / 共115页
c语言课后习题源程序.docx_第3页
第3页 / 共115页
c语言课后习题源程序.docx_第4页
第4页 / 共115页
c语言课后习题源程序.docx_第5页
第5页 / 共115页
c语言课后习题源程序.docx_第6页
第6页 / 共115页
c语言课后习题源程序.docx_第7页
第7页 / 共115页
c语言课后习题源程序.docx_第8页
第8页 / 共115页
c语言课后习题源程序.docx_第9页
第9页 / 共115页
c语言课后习题源程序.docx_第10页
第10页 / 共115页
c语言课后习题源程序.docx_第11页
第11页 / 共115页
c语言课后习题源程序.docx_第12页
第12页 / 共115页
c语言课后习题源程序.docx_第13页
第13页 / 共115页
c语言课后习题源程序.docx_第14页
第14页 / 共115页
c语言课后习题源程序.docx_第15页
第15页 / 共115页
c语言课后习题源程序.docx_第16页
第16页 / 共115页
c语言课后习题源程序.docx_第17页
第17页 / 共115页
c语言课后习题源程序.docx_第18页
第18页 / 共115页
c语言课后习题源程序.docx_第19页
第19页 / 共115页
c语言课后习题源程序.docx_第20页
第20页 / 共115页
亲,该文档总共115页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课后习题源程序.docx

《c语言课后习题源程序.docx》由会员分享,可在线阅读,更多相关《c语言课后习题源程序.docx(115页珍藏版)》请在冰点文库上搜索。

c语言课后习题源程序.docx

c语言课后习题源程序

 第2章C语言概述

2.3参照例题,编写一个C语言程序,输出以下信息:

****************************

       Hello,World!

****************************

程序代码如下:

#include/*编译预处理命令*/

voidmain(void)/*主函数*/

{

printf(“****************************\n”);/*输出一行**/

printf(“HelloWorld!

\n”);/*输出HelloWorld!

*/

printf(“****************************\n”);/*输出一行**/

}

2.4编写一个C语言程序,输入a、b、c三个数,输出其中最大者。

程序代码如下:

#include

voidmain()/*主函数*/

{

intmax(intx,inty);/*函数声明*/

inta,b,c,d;/*声明部分,定义变量*/

scanf("%d,%d,%d",&a,&b,&c);/*输入变量a、b、c的值*/

d=max(a,b);/*调用max函数,将得到的值赋给d*/

d=max(d,c);/*调用max函数,将得到的值赋给d*/

printf("max=%d\n",d);/*输出d的值*/

getch();

}

intmax(intx,inty)/*定义max函数,函数值为整型,形式参数x,y为整型*/

{

intz;/*max函数中的声明部分,定义本函数中用到的变量z为整型*/

if(x>y)

z=x;

else

z=y;

return(z);/*将z的值返回,通过add带回调用处*/

}

第3章数据类型、运算符与表达式

3.7编写程序,输入两个字符,利用条件运算符,输出其中较小字符的ASCII码值。

程序代码如下:

voidmain()

{

charc1,c2;

inti;

printf("inputtwoletters:

");

scanf("%c,%c",&c1,&c2);/*注意:

输入的两个字符之间要用逗号隔开*/

i=c1

c1:

c2;

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

}

 

第4章程序控制结构

4.1用*号输出大写字母“C”的图案。

程序代码如下:

#include

voidmain()

{

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

printf("*\n");

printf("*\n");

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

}

4.2从键盘输入一个大写字母,要求分别用大小写字母形式输出该字母及对应的ASCII码值。

程序代码如下:

#include

voidmain()

{

charc1,c2;

printf("Inputauppercaseletter:

");

c1=getchar();/*输入大写字母*/

c2=c1+32;/*将大写字母转换成对应的小写字母*/

printf("%c,%d\n",c1,c1);/*输出大写字母及对应的ASCII码值*/

printf("%c,%d\n",c2,c2);/*输出小写字母及对应的ASCII码值*/

}

4.3输入一个整数,判断它能否被3或7整除,若能整除,输出“YES”,否则输出“NO”。

程序代码如下:

#include

voidmain()

{

intn;

scanf("%d",&n);

if(n%3==0||n%7==0)/*判断能否被3或7整除*/

printf("YES\n");

else

printf("NO\n");

}

4.4输入x和a的值,按下列公式计算y的值。

程序代码一:

#include

#include

voidmain()

{

floatx,a,y;

printf("\nPleaseinputx,a:

");

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

if(x>-a&&x

y=sqrt(a*a-x*x);

if(x==a||x==-a)/*或fabs(x)==a*/

y=0;

if(x<-a||x>a)/*或fabs(x)>a*/

y=x-1;

printf("x=%g,a=%g,y=%g\n",x,a,y);

}

程序代码二:

#include

#include

voidmain()

{

floatx,a,y;

printf("\nPleaseinputx,a:

");

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

if(fabs(x)-a&&x

y=sqrt(a*a-x*x);

elseif(fabs(x)==a)/*或x==a||x==-a*/

y=0;

else

y=x-1;

printf("x=%g,a=%g,y=%g\n",x,a,y);

}

程序代码三:

#include

#include

voidmain()

{

floatx,a,y;

printf("\nPleaseinputx,a:

");

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

if(fabs(x)<=a)

if(fabs(x)

y=sqrt(a*a-x*x);

else

y=0;

else

y=x-1;

printf("x=%g,a=%g,y=%g\n",x,a,y);

}

4.5输入四个不相等的数,找出其中的最小数。

程序代码一:

#include

voidmain()

{

inta,b,c,d,min;

printf("\nPleaseinput4numbers:

");

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

min=a;/*先假设a为最小数min*/

if(b

if(c

if(d

printf("Theminimumnumberis:

%d\n",min);

}

程序代码二:

#include

voidmain()

{

inta,b,c,d,t1,t2,min;

printf("\nPleaseinput4numbers:

");

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

t1=(a

a:

b;/*比较a与b,较小者存入t1*/

t2=(c

c:

d;/*比较c与d,较小者存入t2*/

min=(t1

t1:

t2;/*比较t1、t2,较小者即为4个数中的最小数*/

printf("Theminimumnumberis:

%d\n",min);

}

4.6输入三个整数,分别放入x,y,z中,要求程序把数据重新按从小到大的顺序放入x,y,z中,然后输出x,y,z中的值。

程序代码如下:

#include

voidmain()

{

intx,y,z,t;

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

if(x>y)

{t=x;x=y;y=t;}/*交换x,y的值*/

if(x>z)

{t=z;z=x;x=t;}/*交换x,z的值*/

if(y>z)

{t=y;y=z;z=t;}/*交换z,y的值*/

printf("smalltobig:

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

}

4.7输入一个不多于4位的正整数,求它的位数,并按逆序输出各位数字。

程序代码一:

#include

voidmain()

{

inti,a,b,c,d;

printf("\nPleaseinputanumber(0-9999):

");

scanf("%ld",&i);

if(i<0||i>9999)

printf("Errorinput.");

else

{

if(i<=9)n=1;/*求i的位数*/

elseif(i<=99)n=2;

elseif(i<=999)n=3;

elsen=4;

printf("Thereare%ddigits.\n",n);

a=i%10;/*求i的个位数*/

b=i/10%10;/*求i的十位数*/

c=i/100%10;/*求i的百位数*/

d=i/1000%10;/*求i的千位数*/

printf("Reversedigit:

");

switch(n)

{case1:

printf("%d\n",a);break;

case2:

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

case3:

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

case4:

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

}

}

}

程序代码二:

#include

voidmain()

{

inti,a,b,c,d;

printf("\nPleaseinputanumber(0-9999):

");

scanf("%d",&i);

a=i%10;/*求i的个位数*/

b=i/10%10;/*求i的十位数*/

c=i/100%10;/*求i的百位数*/

d=i/1000%10;/*求i的千位数*/

if(d!

=0)/*千位数非0时*/

{printf("Thereare4digits.\n");/*4位数*/

printf("Reversedigit:

%d,%d,%d,%d\n",a,b,c,d);

}

elseif(c!

=0)/*千位数为0但百位数非0时*/

{printf("Thereare3digits.\n");/*3位数*/

printf("Reversedigit:

%d,%d,%d\n",a,b,c);

}

elseif(b!

=0)/*千、百位数为0但十位数非0时*/

{printf("Thereare2digits.\n");/*2位数*/

printf("Reversedigit:

%d,%d\n",a,b);

}

else/*千、百、十位数为0时*/

{printf("Thereare1digits.\n");/*1位数*/

printf("Reversedigit:

%d\n",a);

}

}

4.8输入一个年份和一个月份,输出该年的这个月有多少天。

用switch语句编程。

程序代码如下:

#include

voidmain()

{

unsignedy,m,d;

printf("\nInputyear-month:

");

scanf("%u-%u",&y,&m);

switch(m)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

d=31;break;

case2:

/*2月份要考虑是否闰年*/

d=(y%4==0&&y%100!

=0||y%400==0)?

29:

28;break;

case4:

case6:

case9:

case11:

d=30;break;

}

printf("Thereare%udaysthismonth.\n",d);

}

4.9编制程序,计算某个学生奖学金的等级,以三门课程成绩为评奖依据。

奖学金评奖标准如下:

符合下列条件之一者获一等奖:

(1)平均分大于95分者;

(2)有两门成绩是100分,且第三门课程成绩不低于80分者。

符合下列条件之一者获二等奖:

(1)平均分大于90分者;

(2)有一门成绩是100分,且其他课程成绩不低于75分者。

符合下列条件者获三等奖:

各门功课成绩不低于70分。

符合条件者就高不就低,只能获得高的那一项奖学金。

要求显示获奖的等级。

程序代码如下:

#include

voidmain()

{

ints1,s2,s3;floataver;

printf("\nInputthreescores:

");

scanf("%d,%d,%d",&s1,&s2,&s3);

aver=(s1+s2+s3)/3.0;

if(aver>95||s1==100&&s2==100&s3>=80||s1==100&&s3==100&s2>=80

||s2==100&&s3==100&s1>=80)

printf("Grade:

1\n");

elseif(aver>90||s1==100&&s2>=75&s3>=75||s2==100&&s1>=75&s3>=75

||s3==100&&s1>=75&s2>=75)

printf("Grade:

2\n");

elseif(s1>=70&&s2>=70&s3>=70)

printf("Grade:

3\n");

}

4.10输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。

C>40时,打印“Hot”

30

20

10

0

C≤0时,打印“Freezing”

程序代码如下:

#include

voidmain()

{

floatf,c;

printf("Inputthefahrenheittemperature:

");

scanf("%f",&f);

c=5.0/9.0*(f-32);/*将华氏温度转换成摄氏温度*/

if(c>40)

printf("Hot\n");

elseif(c>30)

printf("Warm\n");

elseif(c>20)

printf("RoomTemperature\n");

elseif(c>10)

printf("Cool\n");

elseif(c>0)

printf("Cold\n");

else

printf("Freezing\n");

}

4.11某商场开展购物打折活动,若购物款x在下述范围内,所付款y按对应折扣支付:

y=

x(x<1000)

0.9x(1000≤x<2000)

0.8x(2000≤x<3000)

0.7x(x≥3000)

从键盘输入购物款x,求实际所付款y。

程序代码一:

#include

voidmain()

{

floatx,y;

printf("Inputx:

");

scanf("%f",&x);

if(x<0)

printf("Inputerror.\n");

else

{

if(x<1000)

y=x;

elseif(x<2000)

y=0.9*x;

elseif(x<3000)

y=0.8*x;

else

y=0.7*x;

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

}

}

程序代码二:

#include

voidmain()

{

floatx,y;intc;

printf("Inputx:

");

scanf("%f",&x);

if(x<0)

printf("Inputerror.\n");

else

{

c=x/1000;

switch(c)

{

case0:

y=x;break;

case1:

y=0.9*x;break;

case2:

y=0.8*x;break;

default:

y=0.7*x;

}

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

}

}

4.12企业发放的奖金根据利润提成。

利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数。

程序代码一:

#include

voidmain()

{

floatx,y;

printf("\nInputtheprofitx=");

scanf("%f",&x);

if(x<=0)

printf("Noprize.\n");

else

{

if(x<=10e4)

y=x*0.1;

elseif(x<=20e4)

y=10e4*0.1+(x-10e4)*0.075;

elseif(x<=40e4)

y=10e4*0.1+10e4*0.075+(x-20e4)*0.05;

elseif(x<=60e4)

y=10e4*0.1+10e4*0.075+20e4*0.05+(x-40e4)*0.03;

elseif(x<=100e4)

y=10e4*0.1+10e4*0.075+20e4*0.05+20e4*0.03+(x-60e4)*0.015;

else

y=10e4*0.1+10e4*0.075+20e4*0.05+20e4*0.03+40e4*0.015+(x-100e4)0.01;

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

}

}

程序代码二:

#include

voidmain()

{

floatx,y;

printf("\nInputtheprofitx=");

scanf("%f",&x);

if(x<=0)

printf("Noprize.\n");

else

{

y10=10e4*0.1;/*利润为10万的奖金*/

y20=y10+10e4*0.075;/*利润为20万的奖金*/

y40=y20+20e4*0.05;/*利润为40万的奖金*/

y60=y40+20e4*0.03;/*利润为60万的奖金*/

y100=y60+40e4*0.015/*利润为100万的奖金*/

if(x<=10e4)y=x*0.1;

elseif(x<=20e4)y=y10+(x-10e4)*0.075;

elseif(x<=40e4)y=y20+(x-20e4)*0.05;

elseif(x<=60e4)y=y40+(x-40e4)*0.03;

elseif(x<=100e4)y=y60+(x-60e4)*0.015;

elsey=y100+(x-100e4)0.01;

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

}

}

4.13输入一个用24小时制表示的时间(h:

m),把它转换为用12小时制表示的时间并输出。

如:

输入9:

05,输出9:

05AM;输入12:

10,输出12:

10PM;输入14:

30,输出2:

30PM。

程序代码如下:

#include

voidmain()

{

inth,m;

printf("24hourtime:

");

scanf("%d:

%d",&h,&m);

if(h>=24||m>=60)

printf("Inputerror.\n");

elseif(h<12)

printf("12hourtime:

%d:

%02dAM\n",h,m);

elseif(h<13)

printf("12hourtime:

%d:

%02dPM\n",h,m);

else

printf("12hourtime:

%d:

%02dPM\n",h-12,m);

}

4.14输入一个学生的生日(年y1、月m1、日d1),再输入当前日期(年y2、月m2、日d2),求该生的实足年龄。

程序代码一:

#include

voidmain()

{

inty1,m1,d1,y2,m2,d2,age;

printf("Enterthebirthday(yyyy-mm-dd):

");

scanf("%d-%d-%d",&y1,&m1,&d1);

printf("Enterthecurrentdate(yyyy-mm-dd):

");

scanf("%d-%d-%d",&y2,&m2,&d2);

if(m1>m2)

age=y2-y1-1;

elseif(m1

age=y2-y1;

else/*m1==m2的情形*/

if(d1>d2)

age=y2-y

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

当前位置:首页 > 医药卫生 > 基础医学

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

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