C语言练习题1.docx
《C语言练习题1.docx》由会员分享,可在线阅读,更多相关《C语言练习题1.docx(20页珍藏版)》请在冰豆网上搜索。
![C语言练习题1.docx](https://file1.bdocx.com/fileroot1/2022-10/19/765ee2a4-caa9-49ec-9874-1346b63e7882/765ee2a4-caa9-49ec-9874-1346b63e78821.gif)
C语言练习题1
1.编写程序,要求用户输入一个三角形的三边边长分别为a,b,c,利用海伦公式求三角形的面积。
海伦公式:
#include
#include
voidmain()
{
floata,b,c,p,s;
printf("请输入三边a,b,c:
");
scanf("%f%f%f",&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%f,%f\n",p,s);
}
2.三个小朋友,大毛有糖果50粒,二毛有糖果43粒,三毛有糖果13粒。
现在他们三兄弟做游戏,从大毛开始,将自己的糖果三等分,三兄弟每人一份,多余的自己吃掉;然后二毛和三毛也依次这样做,问最后三兄弟各有多少糖果?
#include
voidmain()
{
inta=50,b=43,c=13;
a=a/3;
b=a+b;
b=b/3;
c=a+b+c;
a=a+b;
c=c/3;
b=b+c;
a=a+c;
printf("%d,%d,%d\n",a,b,c);
}
3.编写程序,要求用户输入某年年份,然后判断是否为闰年。
(闰年的条件是:
该年的年号能被4整除且不能被100整除,或该年的年号能被400整除,则该年是闰年,否则不是闰年。
)
#include
voidmain()
{
intyear;
printf("请输入年份");
scanf("%d",&year);
if(year%4==0&&year%100!
=0||year%400==0)
{
printf("闰年\n");
}
else
{
printf("平年\n");
}
}
4.编写程序,随机生成一个100以内的整数。
#include
#include
#include
voidmain()
{
inti;
srand(time(NULL));
i=rand()%100;
printf("%d\n",i);
}
5.编写一个程序,用户输入某年某月,求该月的天数。
#include
voidmain()
{
intyear,month,n;
printf("请输入年份月份:
");
scanf("%d%d",&year,&month);
if(year%4==0&&year%100!
=0||year%400==0)
{
if(month==2)
{
n=29;
}
}
else
{
if(month==2)
{
n=28;
}
}
switch(month)
{
case2:
break;
case1:
case3:
case5:
case7:
case8:
case10:
case12:
n=31;break;
case4:
case6:
case9:
case11:
n=30;break;
default:
printf("输入错误请重输:
");
}
printf("%d\n",n);
}
6.求分段函数的值。
0(x<0)
F(x)=
2X+1(x>=0)
#include
voidmain()
{
floatx,f;
printf("请输入x:
");
scanf("%f",&x);
if(x<0)
{
f=0;
}
else
{
f=2*x+1;
}
printf("%f\n",f);
}
7.已知函数
x+3(x>0)
y=0(x=0)
x*x–1(x<0)
#include
voidmain()
{
floaty,x;
printf("请输入x:
");
scanf("%f",&x);
if(x>0)
{
y=x+3;
}
else
{
if(x=0)
{
y=0;
}
else
{
y=x*x-1;
}
}
printf("%f\n",y);
}
编程输入x的值,输出y的值。
8.编写程序,计算邮局汇款的汇费。
如果汇款金额小于100元,汇费为1元;如果汇费在100元与5000元之间,按1%收取汇费;如果金额大于5000元,汇费为50元。
汇款金额由命令行输入。
#include
voidmain()
{
floata,w;
printf("请输入汇款金额:
");
scanf("%f",&a);
if(a<100)
{
w=1;
}
else
{
if(a<5000)
{
w=a*1/100;
}
else
{
w=50;
}
}
printf("%f\n",w);
}
9.计算1-2+3-4+5……+99-100的值
#include
voidmain()
{
inti,f=1,sum=0;
for(i=1;i<101;i++)
{
sum=sum+i*f;
f=f*(-1);
}
printf("%d\n",sum);
}
10.打印100以内所有能被3整除的数,每5个换一行。
#include
voidmain()
{
inti,n=0;
for(i=1;i<=100;i++)
{
if(i%3==0)
{
printf("%d",i);
n++;
}
if(n%5==0)
{
printf("\n");
}
}
}
11.计算1+1/2+1/3+……+1/100的值
#include
voidmain()
{
floati,sum=0;
for(i=1;i<=100;i++)
{
sum=sum+1/i;
}
printf("%f\n",sum);
}
12.编写一个程序,用户输入一个整数,判断该数是否是素数。
#include
voidmain()
{
intn,i,f;
scanf("%d",&n);
for(i=2;i<=n/2;i++)
{
f=1;
if(n%i==0)
{
f=0;
break;
}
}
if(f==0)
{
printf("%d不是素数",n);
}
else
{
printf("%d是素数",n);
}
}
13.编写一个程序,打印出100以内所有的素数,每5个换一行。
#include
voidmain()
{
inti,j,f,n=0;
for(i=2;i<=100;i++)
{
f=1;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
f=0;
break;
}
}
if(f==1)
{
printf("%d",i);
n++;
}
if(n%5==0)
{
printf("\n");
}
}
}
14.一个运输公司对用户计算运费公式:
总运费=单价*重量*距离*(1-折扣)。
单价为每吨每公里为1元。
路程(s)越远,每公里运费折扣越高,公式如下:
s<250km没有折扣
250=
500=
1000=
2000=
3000=编写一个程序,完成以下功能:
当运输公司输入货物的吨数和公里数,就能计算出这次运单的运费。
15.编写一个程序,获取系统的当前时间(取整点),若时间为5、6、7、8点,则显示“早上好”;若时间为9、10、11点,则显示“上午好”;若时间为12、13点,则显示“中午好”;若时间为14、15、16、17、18点,则显示“下午好”;若时间为19、20、21、22、23、24、1、2、3、4点,则显示“晚上好”。
#include
#include
#include
voidmain()
{
time_tt;
t=time(NULL);
structtm*tt;
tt=localtime(&t);
switch(tt->tm_hour)
{
case5:
case6:
case7:
case8:
printf("早上好\n");break;
case9:
case10:
case11:
printf("上午好\n");break;
case12:
case13:
printf("中午好\n");break;
case14:
case15:
case16:
case17:
case18:
printf("下午好\n");break;
default:
printf("晚上好\n");
}
}
16.所谓水仙花数是指一个三位正整数,它各位数字的立方之和等于此正整数。
例如,153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
试编写一个程序,判断用户输入的一个三位正整数是否是水仙花数。
#include
voidmain()
{
inta,b,c,n;
printf("请输入一个三位数n:
");
scanf("%d",&n);
a=n/100;
b=n%100/10;
c=n%100%10;
if(n==a*a*a+b*b*b+c*c*c)
{
printf("%d是水仙花数\n",n);
}
else
{
printf("%d不是水仙花数\n",n);
}
}
17.所谓水仙花数是指一个三位正整数,它各位数字的立方之和等于此正整数。
例如,153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
试编写一个程序,求出所有的水仙花数。
#include
voidmain()
{
inti;
inta,b,c;
for(i=100;i<1000;i++)
{
a=i/100;
b=i%100/10;
c=i%100%10;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",i);
}
}
}
18求200以内的所有素数的和。
(素数是一个大于1且只能被1和它本身整除的整数)
#include
voidmain()
{
inti,j,sum=0,f;
for(i=2;i<=200;i++)
{
for(j=2;j<=i/2;j++)
{
f=1;
if(i%j==0)
{
f=0;
break;
}
}
if(f==1)
{
sum=sum+i;
}
}
printf("%d\n"