资源描述:
《程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1_ 第9章.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第9章[习题9-1]定义一个带参数的宏,使两个参数的值互换。设计主函数调用宏将一维数组a和b的值进行交换。/*c9_1.c*/#include#definechange(x,y)t=x;x=y;y=tvoidmain(void){intx,y,t;printf("Inputtwonumbers:");scanf("%d%d",&x,&y);change(x,y);printf("x=%d,y=%d",x,y);}[习题9-2]定义一个判断某年year是否为闰年的宏,设计主函数调用之。/*c9_2
2、.c*/#include#defineleap(x)(x%4==0&&x%100!=0)
3、
4、x%400==0voidmain(){intyear;scanf("%d",&year);if(leap(year))printf("%disleapyear!",year);elseprintf("%disNOTleapyear!",year);}[习题9-3]编写一个程序,求出三个数中的最大数,要求用带参数的宏实现。/*c9_3.c*/#include#definemax2(a,
5、b)(a>b?a:b)#definemax3(a,b,c)max2(a,b)>c?max2(a,b):cvoidmain(void){inta,b,c;floatx,y,z;printf("输入三个整数:");scanf("%d,%d,%d",&a,&b,&c);printf("最大整数为:%d",max3(a,b,c));printf("输入三个实数:");scanf("%f,%f,%f",&x,&y,&z);printf("最大实数为:%g",max3(x,y,z));}[习题9-4]编写一个程序,将用户
6、输入的一个字符串中大小写字母互换,即大写字母转换为小写字母,小写字母转换为大写字母。要求定义判断是大写、小写字母的宏以及大小写相互转换的宏。/*c9_4.c*/#include#defineisupper(c)((c)>='A'&&(c)<='Z')#defineislower(c)((c)>='a'&&(c)<='z')#definetolower(c)(isupper(c)?((c)+('a'-'A')):(c))#definetoupper(c)(islower(c)?((c)-('a'-'A
7、')):(c))voidmain(){chars[20];inti;printf("输入字符串:");scanf("%s",s);for(i=0;s[i];i++)if(isupper(s[i]))s[i]=tolower(s[i]);elseif(islower(s[i]))s[i]=toupper(s[i]);printf("转换的结果:%s",s);}[习题9-5]编写一个程序,求三角形的面积,三角形面积计算公式为:area=其中,s=(a+b+c)/2,a,b,c为三角形的边长。定义两个带参数的宏,一个用
8、于求s,另一个求area。/*c9_5.c*/#include#include#defines(a,b,c)((a+b+c)/2)#definearea(a,b,c)(sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c)))voidmain(void){floatx,y,z,s;printf("输入x,y,z:");scanf("%f,%f,%f",&x,&y,&z);if(x+y>z&&x+z>y&&y+z>x){s=area(x
9、,y,z);printf("三角形面积=%g",s);}elseprintf("三边长不能构成一个三角形");}[习题9-6]设有变量a=3,b=4,c=5,d=1.2,e=2.23,f=–43.56,编写程序,输入这些变量的值,并使程序输出为:a=□□3,b=4□□□,c=**5d=1.2e=□□2.23f=–43.5600□□**(其中□表示空格)/*c9_6.c*/#includevoidmain(void){inta,b,c;floatd,e,f;printf("a=");scanf
10、("%d",&a);printf("b=");scanf("%d",&b);printf("c=");scanf("%d",&c);printf("d=");scanf("%f",&d);printf("e=");scanf("%f",&e);printf("f=");scanf("%f",&f);printf("a=%3d,b=%-4d,c=