C语言函数练习题.docx

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

C语言函数练习题.docx

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

C语言函数练习题.docx

C语言函数练习题

 

/*

姓名:

白银

日期:

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);

}

intInPutArray(int*a)

{

 inti=0;

 printf("请输入数组元素(00为退出输入)\n");

 for(i=0;i

 {

  scanf("%d",a+i);

  if(*(a+i)==00)

  {

   break;

  }

 }

 returni;

}

/*

姓名:

白银

日期:

2007.6.11

描述:

学院成绩管理

*/

#include

#defineN1000

voidChose();

intInPut(int*a);

voidOutPut(int*a,intnum);

voidSort(int*a,intnum);

voidmain()

{

 Chose();

}

voidChose()

 int*a;

 intb=0;

 intary[N];

 intnum;

 a=ary;

 while(b!

=4)

 {

  printf("请选择想要的服务\n");

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

  printf("1.输入成绩\n2.成绩排序\n3.成绩输出\n4.退出");

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

  scanf("%d",&b);

  if(b==1)

  {

   num=InPut(a);

   printf("学员总数是%d",num);

  }

  elseif(b==2)

  {

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

当前位置:首页 > PPT模板 > 动态背景

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

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