c语言复习题问题详解49题.docx
《c语言复习题问题详解49题.docx》由会员分享,可在线阅读,更多相关《c语言复习题问题详解49题.docx(54页珍藏版)》请在冰豆网上搜索。
![c语言复习题问题详解49题.docx](https://file1.bdocx.com/fileroot1/2022-10/26/e80d389e-5bd8-4d5c-9ce9-64557f4ddfa3/e80d389e-5bd8-4d5c-9ce9-64557f4ddfa31.gif)
c语言复习题问题详解49题
一、顺序结构程序设计========================================
1三角形的三边长为a,b,c,计算三角形面积的公式为:
area=,s=
要求编写程序,从键盘输入a,b,c的值,计算并输出三角形的面积。
#include
#include
voidmain()
{
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("a=%,b=%,c=%,s=%\n",a,b,c,s);
printf("area=%\n",area);
}
2编程从键盘输入圆的半径r,计算并输出圆的周长和面积。
#include"stdio.h"
voidmain()
{
floatr,c,area;
printf("请输入圆的半径:
");
scanf("%f",&r);
c=2*Pi*r;
area=Pi*r*r;
printf("该圆的周长是%.2f,面积是%.2f\n",c,area);
}
二、选择结构程序设计==========================================
1从键盘任意输入一个年号,判断它是否是闰年。
假如是闰年,输出“Yes〞,否如此输出“No〞。
符合如下条件之一者是闰年:
■能被4整除,但不能被100整除。
■能被400整除。
#include
main()
{
intyear,flag;
printf("Enteryear:
");
scanf("%d",&year);
if((year%4==0&&year%100!
=0)||(year%400==0))
{
flag=1;/*如果year是闰年,如此标志变量flag置1*/
}
else
{
flag=0;/*否如此,标志变量flag置0*/
}
if(flag)
{
printf("%disaleapyear!
\n",year);/*打印“是闰年〞*/
}
else
{
printf("%disnotaleapyear!
\n",year);/*打印“不是闰年〞*/
}
}
2通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
#include
main()
{
charch;
scanf("%c",ch);
if((ch>=97&&ch<=122)||(ch>=65&&ch<=98))
{
printf("ItisanEnglishcharacter!
\n");
}
elseif(ch<=57&&ch>=48)
{
printf("Itisadigitcharacter!
\n");
}
elseif(ch==95)
{
printf("Itisaspacecharacter!
\n");
}
else
{
printf("Itisothercharacter!
\n");
}
}
3华氏和摄氏温度的转换公式为C=5/9×〔F-32〕。
其中,C表示摄氏温度,F表示华氏温度。
要求:
华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。
#include
#include
main()
{
intupper,step;
floatfahr=0,celsius;
upper=300;
step=20;
while(fahr{
celsius=5.0/9*(fahr-32);
printf("%\t%\n",fahr,celsius);
fahr=fahr+step;
}
}
4编程判断输入整数的正负性和奇偶性。
#include
main()
{
intm;
printf("Inputm:
");
scanf("%d",&m);/*输入一个整数*/
if(m>0)/*是否为正数*/
{
if(m%2==0)/*是正数,且能被2整除,如此是正偶数*/
{
printf("%disapositiveeven\n",m);
}
else/*不能被2整除,如此是正奇数*/
{
printf("%disapositiveodd\n",m);
}
}
elseif(m<0)/*判断是否为负数*/
{
if(m%2==0)
{
printf("%disanegativeeven\n",m);/*是负偶数*/
}
else
{
printf("%disanegativeodd\n",m);/*是负奇数*/
}
}
else
{
printf("%diszero.Itisaneven\n",m);/*是0*/
}
}
5编程计算分段函数
输入x,打印出y值。
流程图如图1-2所示。
#include
#include
main()
{
intx;
doubley;
printf("Inputx:
");
scanf("%d",&x);/*输入一个整数*/
if(x>0)
{
y=exp(-x);/*如果大于0,计算y=exp(-x)的值*/
}
elseif(x==0)
{
y=1;/*x=0,如此y=1*/
}
else
{
y=-exp(x);/*x<0,如此y=-exp(x)*/
}
printf("y=%f\n",y);
}
6输入三角形的三条边a,b,c,判断它们能否构成三角形。
假如能构成三角形,指出是何种三角形〔等腰三角形、直角三角形、一般三角形〕。
#include
#include
#defineLIMIT1e-1
main()
{
floata,b,c;
intflag=1;
printf("Inputthethreeedgelength:
");
scanf("%f,%f,%f",&a,&b,&c);/*输入三角形的三条边*/
/*三角形的根本条件*/
if((a+b)>c&&((b+c)>a)&&((a+c)>b))
{
if(fabs(a-b)<=LIMIT||fabs(b-c)<=LIMIT
||fabs(c-a)<=LIMIT)/*等腰三角形的条件*/
{
printf("等腰");
flag=0;
}
if(fabs(a*a+b*b-c*c)<=LIMIT
||fabs(a*a+c*c-b*b)<=LIMIT
||fabs(c*c+b*b-a*a)<=LIMIT)/*直角三角形的条件*/
{
printf("直角");
flag=0;
}
if(flag)
{
printf("一般");
}
printf("三角形\n");
}
else
{
printf("不是三角形\n");
}
}
7在屏幕上显示一X如下所示的时间表:
*****Time*****
1morning
2afternoon
3night
Pleaseenteryourchoice:
操作人员根据提示进展选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示"Goodmorning",选择2时显示"Goodafternoon",选择3时显示"Goodnight",对于其他选择显示"Selectionerror!
",用switch语句编程实现。
#include
main()
{
charc;
printf("*****Time*****\n");
printf("1morning\n");
printf("2afternoon\n");
printf("3night\n");
printf("pleaseenteryourchoice");/*建立相应的菜单*/
c=getchar();/*输入选项*/
switch(c)/*通过switch选择*/
{
case1:
printf("Goodmorning\n");
break;
case2:
printf("Goodafternoon\n");
break;
case3:
printf("Goodnight\n");
break;
default:
printf("Selectionerror!
\n");
}
}
8读入一个年份和月份,打印出该月有多少天〔考虑闰年〕,用switch语句编程。
#include
main()
{
intyear,month;
printf("Inputyear,month:
");
scanf("%d,%d",&year,&month);/*输入相应的年和月*/
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
printf("31days\n");
break;
case2:
if((year%4==0&&year%100!
=0)||(year%400==0))
{
printf("29days\n");/*闰年的2月有29天*/
}
else
{
printf("28days\n");/*平年的2月有28天*/
}
break;
case4:
case6:
case9:
case11:
printf("30days\n");
break;
default:
printf("Inputerror!
\n");
}
}
三