C语言知识学习函数理解练习知识题2.docx
- 文档编号:17103499
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:20
- 大小:17.78KB
C语言知识学习函数理解练习知识题2.docx
《C语言知识学习函数理解练习知识题2.docx》由会员分享,可在线阅读,更多相关《C语言知识学习函数理解练习知识题2.docx(20页珍藏版)》请在冰点文库上搜索。
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); } 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=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 知识 学习 函数 理解 练习