c语言课后习题源程序.docx
《c语言课后习题源程序.docx》由会员分享,可在线阅读,更多相关《c语言课后习题源程序.docx(48页珍藏版)》请在冰豆网上搜索。
c语言课后习题源程序
c语言课后习题源程序
第2章C语言概述
2.3参照例题,编写一个C语言程序,输出以下信息:
****************************
Hello,World!
****************************
程序代码如下:
#includevoidmain(void)/*主函数*/
{
printf(“****************************\n”);/*输出一行**/
printf(“HelloWorld!
\n”);/*输出HelloWorld!
*/
printf(“****************************\n”);/*输出一行**/
}
2.4编写一个C语言程序,输入a、b、c三个数,输出其中最大者。
程序代码如下:
#includevoidmain()/*主函数*/
{
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
return(z);/*将z的值返回,通过add带回调用处*/
}
第3章数据类型、运算符与表达式
3.7编写程序,输入两个字符,利用条件运算符,输出其中较小字符的ASCII码值。
程序代码如下:
voidmain()
{
charc1,c2;
inti;
printf("inputtwoletters:
");
scanf("%c,%c",&c1,&c2);/*注意:
输入的两个字符之间要用逗号隔开*/
i=c1printf("minimumASCIIis%d\n",i);
}
第4章程序控制结构
4.1用*号输出大写字母“C”的图案。
程序代码如下:
#includevoidmain()
{
printf("****\n");
printf("*\n");
printf("*\n");
printf("****\n");
}
4.2从键盘输入一个大写字母,要求分别用大小写字母形式输出该字母及对应的ASCII码值。
程序代码如下:
#includevoidmain()
{
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”。
程序代码如下:
#includevoidmain()
{
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#includevoidmain()
{
floatx,a,y;
printf("\nPleaseinputx,a:
");
if(x>-a&&xif(x==a||x==-a)/*或fabs(x)==a*/y=0;
if(xprintf("x=%g,a=%g,y=%g\n",x,a,y);
}
程序代码二:
#include#includevoidmain()
{
floatx,a,y;
printf("\nPleaseinputx,a:
");
scanf("%f,%f",&x,&a);
if(fabs(x)-a&&xelseif(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#includevoidmain()
{
floatx,a,y;
printf("\nPleaseinputx,a:
");
scanf("%f,%f",&x,&a);
if(fabs(x)if(fabs(x)y=sqrt(a*a-x*x);
else
y=0;
else
y=x-1;
}
4.5输入四个不相等的数,找出其中的最小数。
程序代码一:
#includevoidmain()
{
inta,b,c,d,min;
printf("\nPleaseinput4numbers:
");
scanf("%d%d%d%d",&a,&b,&c,&d);
min=a;/*先假设a为最小数min*/
if(bif(cif(dprintf("Theminimumnumberis:
%d\n",min);
}
程序代码二:
#includevoidmain()
{
inta,b,c,d,t1,t2,min;
printf("\nPleaseinput4numbers:
");
scanf("%d%d%d%d",&a,&b,&c,&d);
t1=(at2=(cmin=(t1printf("Theminimumnumberis:
%d\n",min);
}
4.6输入三个整数,分别放入x,y,z中,要求程序把数据重新按从小到大的顺序放入x,y,z中,然后输出x,y,z中的值。
程序代码如下:
#includevoidmain()
{
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的值*/
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("smalltobig:
%d%d%d\n",x,y,z);
}
4.7输入一个不多于4位的正整数,求它的位数,并按逆序输出各位数字。
程序代码一:
#includevoidmain()
{
inti,a,b,c,d;
printf("\nPleaseinputanumber(0-9999):
");
scanf("%ld",&i);
if(iprintf("Errorinput.");
else
{
if(ielseif(ielseif(ielsen=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);
}
}
}
程序代码二:
#includevoidmain()
{
inti,a,b,c,d;
printf("\nPleaseinputanumber(0-9999):
");
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语句编程。
程序代码如下:
#includevoidmain()
{
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分。
符合条件者就高不就低,只能获得高的那一项奖学金。
要求显示获奖的等级。
程序代码如下:
#includevoidmain()
{
ints1,s2,s3;floataver;
printf("\nInputthreescores:
");
scanf("%d,%d,%d