C语言函数练习题2.docx

上传人:b****8 文档编号:9809598 上传时间:2023-02-06 格式:DOCX 页数:46 大小:18.57KB
下载 相关 举报
C语言函数练习题2.docx_第1页
第1页 / 共46页
C语言函数练习题2.docx_第2页
第2页 / 共46页
C语言函数练习题2.docx_第3页
第3页 / 共46页
C语言函数练习题2.docx_第4页
第4页 / 共46页
C语言函数练习题2.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

C语言函数练习题2.docx

《C语言函数练习题2.docx》由会员分享,可在线阅读,更多相关《C语言函数练习题2.docx(46页珍藏版)》请在冰豆网上搜索。

C语言函数练习题2.docx

C语言函数练习题2

 

/*

 

姓名:

白银

日期:

2007.6.11

 

描述:

英尺,英寸,米,厘米之间的转换

*/

 

#include

 

floatGetInch(floatfeet);

floatGetMeter(floatinch);

 

floatGetCentiMeter(floatmeter);

 

voidmain()

{

 

floatinch;

floatmeter;

 

floatcentimeter;

 

floatfeet;

printf("请输入英尺的值\n");

scanf("%f",&feet);

inch=GetInch(feet);

 

printf("转换成英寸的结果是%.2f:

",inch);

printf("\n");

 

meter=GetMeter(GetInch(feet));

 

printf("转换成米的结果是%.2f:

",meter);

printf("\n");

 

centimeter=GetCentiMeter(GetMeter(GetInch(feet)));

printf("转换成米的结果是%.2f:

",centimeter);

printf("\n");

 

}

 

floatGetInch(floatfeet)

{

 

floatinch;

inch=feet*12;

 

returninch;

 

}

 

floatGetMeter(floatinch)

{

 

floatmeter;

 

meter=inch*2.54;

returnmeter;

 

}

floatGetCentiMeter(floatmeter)

 

{

 

floatcentimeter;

 

centimeter=meter*100;

returncentimeter;

 

}

 

/*

 

姓名:

白银

日期:

2007.6.11

 

描述:

底和高求三角形面积

*/

 

#include

 

floatGetArea(floath,floatl);

 

voidmain()

 

{

 

floatarea;

 

floath;

floatl;

 

printf("请输入底和高\n");

 

scanf("%f,%f",&l,&h);

 

area=GetArea(h,l);

printf("三角形面积=%.2f",area);

printf("\n");

}

 

floatGetArea(floath,floatl)

 

{

floatarea;

 

area=h*l/2;

returnarea;

 

}

 

/*

 

姓名:

白银

日期:

2007.6.11

 

描述:

函数递归求阶乘

*/

 

#include

intGetFactorial(intnumber);

 

voidmain()

 

{

 

intnumber;

unsignedlongintresult;

 

printf("请输入number的值\n");

scanf("%d",&number);

 

result=GetFactorial(number);

 

printf("结果是%d\n",result);

 

}

 

intGetFactorial(intnumber)

 

{

intresult;

 

if(number==1)

{

 

result=1;

 

}

else

 

{

result=GetFactorial(number-1)*number;

 

}

returnresult;

 

}

 

/*

 

姓名:

白银

日期:

2007.6.11

 

描述:

画出一个正方形

*/

 

#include

 

voidDraw(intnum);

 

voidOutPut1(intnum);

 

voidOutPut2(intnum);

 

voidmain()

 

{

 

intnum;

 

printf("请输入正方型的行数\n");

scanf("%d",&num);

 

Draw(num);

 

printf("\n");

 

}

voidOutPut1(intnum)

 

{

inti;

 

for(i=0;i

 

{

printf("*");

 

}

for(i=0;i

 

{

printf("\n");

 

}

 

}

 

voidOutPut2(intnum)

{

 

inti;

for(i=0;i

 

{

printf("\n");

 

}

for(i=0;i

 

{

 

printf("*");

}

 

}

 

voidDraw(intnum)

{

 

inti;

 

intj;

 

OutPut1(num);

for(i=0;i

 

{

for(j=0;j

 

{

 

if((i==0&&j==0)||(i==(num-1)&&j==0)||(i==(num-1)&&j==(num-1))||(i==0&&j==(num-1)))

{

printf("*");

 

}

else

 

{

printf("");

 

}

 

}

printf("\n");

 

}

OutPut2(num);

 

}

 

/*

 

姓名:

白银

日期:

2007.6.11

描述:

求出3个数字的立方的和

 

*/

 

#include

#include

 

floatGetNumber(floata,floatb,floatc);

 

voidmain()

 

{

floata,b,c;

 

floatnum;

printf("请输入3个数字\n");

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

 

num=GetNumber(a,b,c);

printf("结果=%.2f\n",num);

}

floatGetNumber(floata,floatb,floatc)

 

{

floatnum;

 

num=(float)(pow(a,3)+pow(b,3)+pow(c,3));

returnnum;

 

}

 

/*

 

作者:

白银

日期:

2007.6.11

 

描述:

输入一定的钱数,得出最少需要多少张

*/

 

#include

 

intGetMoney(int*num,intmoney);

 

voidmain()

{

 

inta[7];

 

int*p;

intnum;

 

p=#

 

printf("请输入钱数\n");

scanf("%d",p);

a[0]=GetMoney(p,100);

 

a[1]=GetMoney(p,50);

a[2]=GetMoney(p,20);

 

a[3]=GetMoney(p,10);

 

a[4]=GetMoney(p,5);

a[5]=GetMoney(p,2);

 

a[6]=GetMoney(p,1);

printf("需要100元的%d张\n",a[0]);

 

printf("需要50元的%d张\n",a[1]);

printf("需要20元的%d张\n",a[2]);

printf("需要10元的%d张\n",a[3]);

printf("需要5元的%d张\n",a[4]);

printf("需要2元的%d张\n",a[5]);

printf("需要1元的%d张\n",a[6]);

 

}

intGetMoney(int*num,intmoney)

 

{

intcount;

 

count=*num/money;

*num=*num%money;

 

returncount;

 

}

 

/*

 

作者:

白银

日期:

2007,6,11

描述:

输入一个数转换成16,2,12,7,8进制的数字,并且输出。

 

*/

 

#include

 

voidGetSixteen(intnum);//

转换成16进制

voidGetTwo(intnum);//

转换成2

进制

voidGetEight(intnum);//

转换成

8进制

voidGetTwelve(intnum);//

转换成12进制

voidGetSeven(intnum);//

转换成

7进制

voidSort(int*a,inti);//

反向输出

 

voidmain()

 

{

 

intnum;

 

printf("请输入一个数字\n");

 

scanf("%d",&num);

GetSixteen(num);

 

GetTwo(num);

GetEight(num);

 

GetTwelve(num);

GetSeven(num);

 

}

 

voidSort(int*a,inti)

 

{

 

intj;

for(j=i-1;j>=0;j--)

 

{

 

printf("%d",a[j]);

 

}

printf("\n");

 

}

 

voidGetSixteen(intnum)

 

{

inta[100];

 

inti=0;

intj;

 

printf("转换成16进制为:

");

while(num!

=0)

{

 

a[i]=num%16;

num=num/16;

 

i++;

}

 

for(j=i-1;j>=0;j--)

{

 

printf("%x",a[j]);

 

}

printf("\n");

 

}

 

voidGetTwo(intnum)

{

 

inta[100];

inti=0;

 

printf("转换成2进制为:

");

while(num!

=0)

{

 

a[i]=num%2;

 

num=num/2;

i++;

 

}

 

Sort(a,i);

 

}

voidGetEight(intnum)

 

{

inta[100];

 

inti=0;

 

printf("转换成8进制为:

");

while(num!

=0)

 

{

a[i]=num%8;

 

num=num/8;

i++;

 

}

Sort(a,i);

 

}

 

voidGetTwelve(intnum)

{

 

inta[100];

inti=0;

 

printf("转换成12进制为:

");

while(num!

=0)

 

{

a[i]=num%12;

 

num=num/12;

 

i++;

}

 

Sort(a,i);

 

}

voidGetSeven(intnum)

 

{

 

inta[100];

 

inti=0;

printf("转换成7进制为:

");

while(num!

=0)

{

 

a[i]=num%7;

 

num=num/7;

i++;

 

}

Sort(a,i);

 

}

 

/*

 

姓名:

白银

时间:

2007.6.11

 

描述:

输入半径,底和高求出圆的面积,周长和三角形面积

*/

 

#include

 

#definePI3.14

floatGetRoundArea(floatr);

 

floatGetRoundPerimeter(floatr);

floatGetTrigonArea(floathight,floatlength);

 

voidmain()

{

 

floatr;

 

floathight;

 

floatlength;

floatarea;

 

floatperimeter;

 

printf("请输入半径,高和底边长度\n");

 

scanf("%f%f%f",&r,&hight,&length);

area=GetRoundArea(r);

 

printf("圆的面积是%f\n",area);

perimeter=GetRoundPerimeter(r);

 

printf("圆的周长是%f\n",perimeter);

area=GetTrigonArea(hight,length);

printf("三角形的面积是%f\n",area);

 

}

 

floatGetRoundArea(floatr)

{

 

floatarea;

area=PI*r*r;

 

returnarea;

 

}

floatGetRoundPerimeter(floatr)

 

{

floatperimeter;

 

perimeter=2*PI*r;

 

returnperimeter;

 

}

floatGetTrigonArea(floathight,floatlength)

 

{

 

floatarea;

area=hight*length/2;

 

returnarea;

 

}

 

/*

 

姓名:

白银

日期:

2007.6.11

 

描述:

输入一个字符串,统计小写字母个数

*/

#include

 

#defineN10000

 

intGetNumber(char*a,intn);

 

voidmain()

{

 

chara[N];

inti;

 

intnum;

printf("请输入一个字符数组\n");

 

for(i=0;i

 

{

scanf("%c",&a[i]);

 

if(a[i]=='\n')

{

 

break;

}

 

}

num=GetNumber(a,i);

 

printf("数组中小写字母的个数是%d\n",num);

 

}

 

intGetNumber(char*a,intn)

 

{

inti;

 

intcount=0;

 

for(i=0;i

 

{

if(a[i]<='z'&&a[i]>='Z')

 

{

count++;

 

}

 

}

returncount;

 

}

 

/*

 

姓名:

白银

日期:

2007.6.11

描述:

输出一个由*和A或者a组成的三角形

*/

 

#include

 

charInput();

intInputNumber();

 

voidOutput(charc,intnum);

voidmain()

 

{

intc;

 

intnum;

 

c=Input();

num=InputNumber();

 

Output(c,num);

 

}

charInput()

 

{

 

charc;

 

charans='y';

printf("请输入a,A,或者*\n");

while(ans=='y')

{

 

fflush(stdin);

 

scanf("%c",&c);

if(c=='a'||c=='A'||c=='*')

 

{

break;

 

}

else

 

{

printf("输入错误,重新输入\n");

 

}

 

}

returnc;

 

}

 

intInputNumber()

 

{

 

intnum;

charans='y';

 

printf("请输入你要的三角型的行数(<26)\n");

 

while(ans=='y')

{

 

scanf("%d",&num);

 

if(num<26)

{

 

break;

 

}

 

else

{

 

printf("输入错误,重新输入\n");

}

 

}

 

returnnum;

}

 

voidOutput(charc,intnum)

{

 

inti;

intj;

 

for(j=1;j<=num;j++)

{

 

for(i=1;i<=num-j;i++)

 

{

printf("");

 

}

for(i=1;i<=2*j-1;i++)

 

{

printf("%c",c);

 

}

printf("\n");

 

}

 

}

 

/*

 

作者:

白银

日期:

2007.6.11

 

描述:

取得日期。

这个月多少天,输入的日期是否存在,取得下一天的日期

*/

 

#include

 

#include

intIsRealDays(intyear,intmonth,intday);

 

voidGetNextday(intyear,intmonth,intday);

 

intIsLeapyear(intyear);

intGetDays(intyear,intmonth);

 

voidmain()

 

{

intyear;

 

intmonth;

intday;

 

intresult;

 

intdays;

printf("请输入year\n");

scanf("%d",&year);

printf("请输入month\n");

scanf("%d",&month);

printf("请输入day\n");

 

scanf("%d",&day);

IsRealDays(year,month,day);

 

result=IsLeapyear(year);

 

if(result==1)

{

 

printf("闰年\n");

}

else

 

{

 

printf("不是闰年\n");

}

days=GetDays(year,month);

 

printf("这个月有%d天\n",days);

GetNextday(year,month,day);

 

}

 

intIsLeapyear(intyear)

{

 

intresult;

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

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

 

{

returnresult=1;

 

}

else

 

{

 

returnresult=0;

}

 

}

intGetDays(intyear,intmonth)

 

{

intdays;

 

switch(month)

{

 

case1:

 

case3:

case5:

 

case7:

 

case8:

case10:

 

case12:

 

days=31;

 

break;

case4:

 

case6:

case9:

 

case11:

 

days=30;

break;

 

case2:

if(IsLeapyear(year)==1)

 

{

days=29;

 

}

else

 

{

 

days=28;

}

 

break;

}

 

returndays;

}

 

intIsRealDays(intyear,intmonth,intday)

 

{

 

intresult;

 

if((month>12&&month<1)||year<0)

{

 

printf("错误的日期\n");

result=0;

}

 

elseif((day>GetDays(year,month))||day<1)

 

{

 

printf("错误的日期\n");

result=0;

 

}

else

 

{

 

printf("正确的日期\n");

result=1;

 

}

returnresult;

 

}

voidGetNextday(intyear,intmonth,intday)

 

{

if(IsRealDays(year,month,day)==0)

 

{

 

printf("错误\n");

exit(0);

 

}

if(day==GetDays(year,month))

 

{

if(month==12)

 

{

year++;

 

month=1;

 

day=1;

}

 

else

 

{

month++;

 

day=1;

 

}

 

}

else

 

{

day++;

 

}

 

printf("下一天是%d,%d,%d",year,month,day);

 

}

 

/*

 

姓名:

白银

日期:

2007.6.11

 

描述:

建立一个函数,输入数组元素,主函数调用这个数组,输出这个数组中元素的和

*/

 

#include

 

#defineN1000

intInPutArray(int*a);

 

voidmain()

{

 

intary[N];

 

intnum;

 

inti;

 

intsum=0;

num=InPutArray(ary);

 

for(i=0;i

 

{

 

sum=sum+ary[i];

}

 

printf("数组元素的和是%d\n",sum);

 

}

 

int

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

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1