收藏 分销(赏)

C语言函数练习题2.doc

上传人:二*** 文档编号:4708694 上传时间:2024-10-10 格式:DOC 页数:26 大小:31KB 下载积分:5 金币
下载 相关 举报
C语言函数练习题2.doc_第1页
第1页 / 共26页
本文档共26页,全文阅读请下载到手机保存,查看更方便
资源描述
.   /* 姓名:白银 日期:2007.6.11 描述:英尺,英寸,米,厘米之间的转换 */ #include <stdio.h> float GetInch(float feet); float GetMeter(float inch); float GetCentiMeter(float meter); void main() {  float inch;  float meter;  float centimeter;  float feet;  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"); } float GetInch(float feet) {  float inch;  inch=feet*12;  return inch; } float GetMeter(float inch) {  float meter;  meter=inch*2.54;  return meter; } float GetCentiMeter(float meter) {  float centimeter;  centimeter=meter*100;  return centimeter; } /* 姓名:白银 日期:2007.6.11 描述:底和高求三角形面积 */ #include <stdio.h> float GetArea(float h,float l); void main() {  float area;  float h;  float l;  printf("请输入底和高\n");  scanf("%f,%f",&l,&h);  area=GetArea(h,l);  printf("三角形面积=%.2f",area);  printf("\n"); } float GetArea(float h,float l) {  float area;  area=h*l/2;  return area; } /* 姓名:白银 日期:2007.6.11 描述:函数递归求阶乘 */ #include <stdio.h> int GetFactorial(int number); void main() {  int number;  unsigned long int result;  printf("请输入number的值\n");  scanf("%d",&number);  result=GetFactorial(number);  printf("结果是%d\n",result); } int GetFactorial(int number) {  int result;  if(number==1)  {   result=1;  }  else  {   result=GetFactorial(number-1)*number;  }  return result; } /* 姓名:白银 日期:2007.6.11 描述:画出一个正方形 */ #include <stdio.h> void Draw(int num); void OutPut1(int num); void OutPut2(int num); void main() {  int num;  printf("请输入正方型的行数\n");  scanf("%d",&num);  Draw(num);  printf("\n"); } void OutPut1(int num) {  int i;  for(i=0;i<num;i++)  {   printf("*");  }  for(i=0;i<num;i++)  {   printf("\n");  }   } void OutPut2(int num) {  int i;  for(i=0;i<num;i++)  {   printf("\n");  }  for(i=0;i<num;i++)  {   printf("*");  } } void Draw(int num) {  int i;  int j;  OutPut1(num);  for(i=0;i<num;i++)  {   for(j=0;j<num;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 <stdio.h> #include <math.h> float GetNumber(float a,float b,float c); void main() {  float a,b,c;  float num;  printf("请输入3个数字\n");  scanf("%f%f%f",&a,&b,&c);  num=GetNumber(a,b,c);  printf("结果=%.2f\n",num); } float GetNumber(float a,float b,float c) {  float num;  num=(float) (pow(a,3)+pow(b,3)+pow(c,3));  return num; } /* 作者:白银 日期:2007.6.11 描述:输入一定的钱数,得出最少需要多少张 */ #include <stdio.h> int GetMoney(int *num,int money); void main() {  int a[7];  int *p;  int num;  p=&num;  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]);   } int GetMoney(int *num,int money) {  int count;  count=*num/money;  *num=*num%money;  return count; } /*  作者:白银  日期:2007,6,11  描述:输入一个数转换成16,2,12,7,8进制的数字,并且输出。。。。 */ #include <stdio.h> void GetSixteen(int num);//转换成16进制 void GetTwo(int num);//转换成2进制 void GetEight(int num);//转换成8进制 void GetTwelve(int num);//转换成12进制 void GetSeven(int num);//转换成7进制 void Sort(int *a,int i);//反向输出 void main() {  int num;  printf("请输入一个数字\n");  scanf("%d",&num);  GetSixteen(num);  GetTwo(num);  GetEight(num);  GetTwelve(num);  GetSeven(num); } void Sort(int *a,int i) {   int j;  for(j=i-1;j>=0;j--)  {   printf("%d ",a[j]);  }  printf("\n"); } void GetSixteen(int num) {  int a[100];  int i=0;  int j;  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");   } void GetTwo(int num) {  int a[100];  int i=0;  printf("转换成2进制为:");  while(num!=0)  {   a[i]=num%2;   num=num/2;   i++;  }  Sort(a,i); } void GetEight(int num) {  int a[100];  int i=0;  printf("转换成8进制为:");  while(num!=0)  {   a[i]=num%8;   num=num/8;   i++;  }  Sort(a,i); } void GetTwelve(int num) {  int a[100];  int i=0;  printf("转换成12进制为:");  while(num!=0)  {   a[i]=num%12;   num=num/12;   i++;  }  Sort(a,i); } void GetSeven(int num) {  int a[100];  int i=0;  printf("转换成7进制为:");  while(num!=0)  {   a[i]=num%7;   num=num/7;   i++;  }  Sort(a,i); } /* 姓名:白银 时间:2007.6.11 描述:输入半径,底和高求出圆的面积,周长和三角形面积 */ #include <stdio.h> #define PI 3.14 float GetRoundArea(float r); float GetRoundPerimeter(float r); float GetTrigonArea(float hight,float length); void main() {  float r;  float hight;  float length;  float area;  float perimeter;  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); } float GetRoundArea(float r) {  float area;  area=PI*r*r;  return area; } float GetRoundPerimeter(float r) {  float perimeter;  perimeter=2*PI*r;  return perimeter; } float GetTrigonArea(float hight,float length) {  float area;  area=hight*length/2;  return area; } /* 姓名:白银 日期:2007.6.11 描述:输入一个字符串,统计小写字母个数 */ #include <stdio.h> #define N 10000 int GetNumber(char *a,int n); void main() {  char a[N];  int i;  int num;  printf("请输入一个字符数组\n");  for(i=0;i<N;i++)  {   scanf("%c",&a[i]);   if(a[i]=='\n')   {    break;   }  }  num=GetNumber(a,i);  printf("数组中小写字母的个数是%d\n",num); } int GetNumber(char *a,int n) {  int i;  int count=0;  for(i=0;i<n;i++)  {   if(a[i]<='z'&&a[i]>='Z')   {    count++;   }  }  return count; } /* 姓名:白银 日期:2007.6.11 描述:输出一个由*和A或者a组成的三角形 */ #include <stdio.h> char Input(); int InputNumber(); void Output(char c,int num); void main() {  int c;  int num;  c=Input();  num=InputNumber();  Output(c,num); } char Input() {  char c;  char ans='y';  printf("请输入a,A,或者*\n");  while(ans=='y')  {    fflush(stdin);   scanf("%c",&c);   if(c=='a'||c=='A'||c=='*')   {    break;   }   else   {    printf("输入错误,重新输入\n");   }  }  return c; } int InputNumber() {  int num;  char ans='y';  printf("请输入你要的三角型的行数(<26)\n");  while(ans=='y')  {    scanf("%d",&num);   if(num<26)   {    break;   }   else   {    printf("输入错误,重新输入\n");   }  }  return num; } void Output(char c,int num) {  int i;  int j;  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 <stdio.h> #include <stdlib.h> int IsRealDays(int year,int month,int day); void GetNextday(int year,int month,int day); int IsLeapyear(int year); int GetDays(int year,int month); void main() {  int year;  int month;  int day;  int result;  int days;  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); } int IsLeapyear(int year) {  int result;  if((year%4==0&&year%100!=0)||year%400==0)  {   return result=1;  }  else  {   return result=0;  } } int GetDays(int year,int month) {  int days;  switch(month)   {   case 1:   case 3:   case 5:   case 7:   case 8:   case 10:   case 12:    days=31;    break;   case 4:   case 6:   case 9:   case 11:    days=30;    break;   case 2:    if(IsLeapyear(year)==1)    {     days=29;    }    else    {     days=28;    }    break;  }  return days; } int IsRealDays(int year,int month,int day) {   int result;  if((month>12&&month<1)||year<0)  {   printf("错误的日期\n");   result=0;  }  else if((day>GetDays(year,month))||day<1)  {   printf("错误的日期\n");   result=0;  }  else  {   printf("正确的日期\n");   result=1;  }  return result; } void GetNextday(int year,int month,int day) {  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 <stdio.h> #define N 1000 int InPutArray(int *a); void main() {  int ary[N];  int num;  int i;  int sum=0;  num=InPutArray(ary);  for(i=0;i<num;i++)  {   sum=sum+ary[i];  }  printf("数组元素的和是%d\n",sum); } int InPutArray(int *a) {  int i=0;  printf("请输入数组元素(00为退出输入)\n");  for(i=0;i<N;i++)  {   scanf("%d",a+i);   if(*(a+i)==00)   {    break;   }  }  return i; } /* 姓名:白银 日期:2007.6.11 描述:学院成绩管理 */ #include <stdio.h> #define N 1000 void Chose(); int InPut(int *a); void OutPut(int *a,int num); void Sort(int *a,int num); void main() {  Chose(); } void Chose() {   int *a;  int b=0;  int ary[N];  int num;  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);   }   else if(b==2)   {    Sort(a,num);   }   else if(b==3)   {    OutPut(a,num);   }  } } int InPut(int *a) {  int i;  printf("请输入学员的成绩(00为退出输入)\n");  for(i=0;i<N;i++)  {   scanf("%d",a+i);   if(*(a+i)==00)   {    break;   }  }  return i; } void OutPut(int *a,int num) {  int i;  printf("成绩输出\n");  for(i=0;i<num;i++)  {   printf("%d ",*(a+i));  }  printf("\n"); } void Sort(int *a,int num) {  int i;  int j;  int temp;  for(i=0;i<num-1;i++)  {   for(j=0;j<num-i-1;j++)   {    if(*(a+j)>*(a+j+1))    {     temp=*(a+j);     *(a+j)=*(a+j+1);     *(a+j+1)=temp;    }   }  }  printf("排序完成\n"); } 精选文档
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服