资源描述:
《c语言 第8章 带参宏递归及习题课.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、带参宏定义格式:#define宏名(参数表)字符串例如:#defines(a,b)a*bmain(){intm=s(3,4);printf(“m=%d”,m);}形参实参8.7编译预处理m=121#definesqr(x)x*xvoidmain(){printf("%d",sqr(2+3));}printf("%d",2+3*2+3);2#definesqr(x)(x)*(x)voidmain(){printf("%d",sqr(2+3));}printf("%d",(2+3)*(2+3));3第8章习题课41、使用函数求出所有的水仙花
2、数分析:判断范围:100~999假如:有一个函数fun可直接判断一个数是不是水仙花数,那么怎么编?voidmain(){intk;for(k=100;k<=999;k++)if(k是水仙花数)printf(“%d”,k);}fun(k)==1函数习题课5voidmain(){intk;for(k=100;k<=999;k++)if(fun(k)==1)printf(“%d”,k);}fun(intn)int{inta,b,c;a=n/100;b=n%100/10;c=n%10;if(a*a*a+b*b*b+c*c*c==n)re
3、turn1;elsereturn0;}函数习题课62、编写一个函数能够实现打印2~100之间所有素数。for(i=2;i<=100;i++)if(prime(i))printf("%d",i);prime(intn)int{intj;for(j=2;j<=n-1;j++)if(n%j==0)return0;return1;}函数习题课73、试编制一个求最大公约数的函数,并利用它求任意两个数的最大公约数和最小公倍数。gongyue(inta,intb)int{intr;r=m%n;while(r!=0){m=n;n=r;r=m%n;}}r
4、eturnn;函数习题课8voidmain(){inta,b;scanf("%d,%d",&a,&b);printf("gongyueis:%d",gongyue(a,b));printf("gongbeiis:%d",a*b/gongyue(a,b));}函数习题课9选择题:在以下所列的各函数原型声明中,正确的是:A、voidplay(var:Integer,varb:Integer);B、voidplay(inta,b);C、voidplay(inta,intb);D、Subplay(aasinteger,basintege
5、r)函数习题课10函数习题课选择题:在C语言程序中,_______。A、函数的定义可以嵌套,但调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用都不可以嵌套D、函数的定义和调用均可以嵌套嵌套定义:voidA(){inta,b;voidB(){intc;…}…}11选择题:在函数调用语句f(a,b,(c,d));中,实参个数是_______。A、3B、4C、5D、语法错误函数习题课12填空题:写出以下函数的原型声明:donut()函数接收一个整数,并输出若干个0,输出0的个数等于所接收整数的值。rand
6、om函数不接收任何数据,但返回一个整数。digits()函数接收一个双精度数和一个整数,并返回一个整数。函数习题课voiddonut(intn);intrandom(void);intdigits(doublea,intb);133a4bvoids(inta,intb){intt;t=a;a=b;b=t;printf("%d,%d",a,b);}voidmain(){intm=3,n=4;s(m,n);printf("%d,%d",m,n);}4a3b3m4n函数习题课程序阅读题3m4n14程序阅读题func(inta,intb
7、){staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;}voidmain(){intk=4,m=1,p;p=func(k,m);printf("%d",p);p=func(k,m);printf("%d",p);}函数习题课4k1mp0m2i4a1b3884a1b12171715f(5)=1*2*3*4*5=5!longf(intn){if(n==0
8、
9、n==1)return1;elsereturnf(n-1)*n;}voidmain(){printf("%ld",f(5));}函数习题课程序阅读题=f(4
10、)*5=f(3)*4*5=f(2)*3*4*5=f(1)*2*3*4*5165!11120求解结束5*4!4*3!3*2!2*1!1*22*36*424*5函数习题课17递归函数的设计和调用一个函数不仅可以