1、C语言函数练习题2/*姓名:白银日期: 2007.6.11描述:英尺,英寸,米,厘米之间的转换*/#include 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);
2、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 GetC
3、entiMeter(float meter)float centimeter;centimeter=meter*100;return centimeter;/*姓名:白银日期: 2007.6.11描述:底和高求三角形面积*/#include 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
4、 h,float l)float area;area=h*l/2;return area;/*姓名:白银日期: 2007.6.11描述:函数递归求阶乘*/#include int GetFactorial(int number);void main()int number;unsigned long int result;printf( 请输入 number 的值 n);scanf(%d,&number);result=GetFactorial(number);printf( 结果是 %dn,result);int GetFactorial(int number)int result;if(n
5、umber=1)result=1;elseresult=GetFactorial(number-1)*number;return result;/*姓名:白银日期: 2007.6.11描述:画出一个正方形*/#include 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;inum;i+)printf
6、(*);for(i=0;inum;i+)printf(n);void OutPut2(int num)int i;for(i=0;inum;i+)printf(n);for(i=0;inum;i+)printf(*);void Draw(int num)int i;int j;OutPut1(num);for(i=0;inum;i+)for(j=0;jnum;j+)if(i=0&j=0)|(i=(num-1)&j=0)|(i=(num-1)&j=(num-1)|(i=0&j=(nu m-1)printf(*);elseprintf( );printf(n);OutPut2(num);/*姓名:
7、白银日期: 2007.6.11描述:求出 3 个数字的立方的和*/#include #include 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( 结果 =%.2fn,num);float GetNumber(float a,float b,float c)float num;num=(float) (pow(a,3)+pow(b,3)+pow(c,
8、3);return num;/*作者:白银日期: 2007.6.11描述:输入一定的钱数,得出最少需要多少张*/#include int GetMoney(int *num,int money);void main()int a7;int *p;int num;p=#printf( 请输入钱数 n);scanf(%d,p);a0=GetMoney(p,100);a1=GetMoney(p,50);a2=GetMoney(p,20);a3=GetMoney(p,10);a4=GetMoney(p,5);a5=GetMoney(p,2);a6=GetMoney(p,1);printf( 需
9、要 100 元的 %d张 n,a0);printf( 需要 50 元的 %d张 n,a1);printf( 需要 20 元的 %d张 n,a2);printf( 需要 10 元的 %d张 n,a3);printf( 需要 5 元的 %d张 n,a4);printf( 需要 2 元的 %d张 n,a5);printf( 需要 1 元的 %d张 n,a6);int GetMoney(int *num,int money)int count;count=*num/money;*num=*num%money;return count;/*作者:白银日期: 2007, 6, 11描述:输入一个数转换成
10、16, 2, 12,7, 8 进制的数字,并且输出。*/#include 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);GetTw
11、o(num);GetEight(num);GetTwelve(num);GetSeven(num);void Sort(int *a,int i)int j;for(j=i-1;j=0;j-)printf(%d ,aj);printf(n);void GetSixteen(int num)int a100;int i=0;int j;printf( 转换成 16 进制为 :);while(num!=0)ai=num%16;num=num/16;i+;for(j=i-1;j=0;j-)printf(%x ,aj);printf(n);void GetTwo(int num)int a100;in
12、t i=0;printf( 转换成 2 进制为 :);while(num!=0)ai=num%2;num=num/2;i+;Sort(a,i);void GetEight(int num)int a100;int i=0;printf( 转换成 8 进制为 :);while(num!=0)ai=num%8;num=num/8;i+;Sort(a,i);void GetTwelve(int num)int a100;int i=0;printf( 转换成 12 进制为 :);while(num!=0)ai=num%12;num=num/12;i+;Sort(a,i);void GetSeven(
13、int num)int a100;int i=0;printf( 转换成 7 进制为 :);while(num!=0)ai=num%7;num=num/7;i+;Sort(a,i);/*姓名:白银时间: 2007.6.11描述:输入半径,底和高求出圆的面积,周长和三角形面积*/#include #define PI 3.14float GetRoundArea(float r);float GetRoundPerimeter(float r);float GetTrigonArea(float hight,float length);void main()float r;float hight
14、;float length;float area;float perimeter;printf( 请输入半径,高和底边长度 n);scanf(%f%f%f,&r,&hight,&length);area=GetRoundArea(r);printf( 圆的面积是 %fn,area);perimeter=GetRoundPerimeter(r);printf( 圆的周长是 %fn,perimeter);area=GetTrigonArea(hight,length);printf( 三角形的面积是 %fn,area);float GetRoundArea(float r)float area;a
15、rea=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 #define N 10000int GetNumber(char *a,int n);void main()ch
16、ar aN;int i;int num;printf( 请输入一个字符数组 n);for(i=0;iN;i+)scanf(%c,&ai);if(ai=n)break;num=GetNumber(a,i);printf( 数组中小写字母的个数是 %dn,num);int GetNumber(char *a,int n)int i;int count=0;for(i=0;in;i+)if(ai=Z)count+;return count;/*姓名:白银日期: 2007.6.11描述:输出一个由 *和 A 或者 a 组成的三角形*/#include char Input();int InputNum
17、ber();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;elseprintf( 输入错误,重新输入 n);return c;int InputNumber()int num;char ans=y;printf( 请输入你要的三
18、角型的行数 (26)n);while(ans=y)scanf(%d,&num);if(num26)break;elseprintf( 输入错误,重新输入 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 #include int IsRea
19、lDays(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( 请输入 yearn);scanf(%d,&year);printf( 请输入 monthn);scanf(%d,&month);printf( 请输入 dayn);scanf(%d,&day);Is
20、RealDays(year,month,day);result=IsLeapyear(year);if(result=1)printf( 闰年 n);elseprintf( 不是闰年 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;elsereturn result=0;int GetDays(int year,
21、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;elsedays=28;break;return days;int IsRealDays(int year,int month,int day)int result;if(month12&month1)|yearGetDays(year,mont
22、h)|day1)printf( 错误的日期 n);result=0;elseprintf( 正确的日期 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;elsemonth+;day=1;elseday+;printf( 下一天是 %d,%d,%d,year,month,day);/*姓名:白银日期: 2007.6.11描述:建立一个函数,输入数组元素,主函数调用这个数组,输出这个数组中元素的和*/#include #define N 1000int InPutArray(int *a);void main()int aryN;int num;int i;int sum=0;num=InPutArray(ary);for(i=0;inum;i+)sum=sum+aryi;printf( 数组元素的和是 %dn,sum);int
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1