C语言程序设计85669.doc
第2章 数据类型、运算符与表达式
2.1 指出下列变量名中,哪些是合法的,哪些是非法的。如果非法,为什么?
Int,char,345,ABdf,c&d,string*,_322,alpf_beat,JOHN.smith,3ab
解:ABdf,_322,alpf_beat合法,其它的非法
Int,char非法是因为它们都是C语言关键字;
345,3ab非法是因为变量名不能以阿拉伯数字开头;
c&d,string*,JOHN.smith非法是因为变量名中只能由字母、数字和下划线组成。
2.2 计算下列表达式的值
(1)a+b%3*(int)(a-b)/4 (设a=13.6,b=8)
(2)(x+y)/2+(int)x%(int)y (设x=4.5,y=2.5)
(3)z*=3+6,z/z=z/2,z+=z-=z*=z (设z=6)
解:(1) 15.600000;(2)3.500000;(3)0。
第3章 顺序结构程序设计
3.1 若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765, c1=‘a’,c2=‘b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。
a=□3□□b=□4□□c=□5
x=1.200000,y=2.400000,z=-3.600000
x+y=□3.600□□y+z=-1.20□□z+x=-2.40
c1=ˊaˊ□or□97(ASCII)
c2=ˊbˊ□or□98(ASCII)
(□表示空格,下同)
参考源程序如下:
main()
{int a=3,b=4,c=5;
long int u=51274,n=128765;
float x=1.2,y=2.4,z=3.6;
char c1='a',c2='b';
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%f,y=%f,z=%f\n",x,y,z);
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6ld n=%9ld\n",u,n);
printf("%s %s %d%s\n","c1='a'","or",c1,"(ASCII)");
printf("%s %s %d%s\n","c2='a'","or",c2,"(ASCII)");
}
3.2用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82, c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?
main()
{
int a,b;float x,y;char c1c2;
scanf("a=%d_b=%d",&a,&b);
scanf("_x=%f_y=%e",&x,&y);
scanf("_c1=%c_c2=%c",&c1,&c2);
}
输入方法如下:
a=3□b=7
□x=8.5□y=71.82
□c1=A□c2=a
3.2 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。
参考源程序:
main()
{float r,h,C1,Sa,Sb,Va,Vb;
scanf("%f,%f",&r,&h);
C1=2*3.14*r;
Sa=3.14*r*r;
Sb=4*Sa;
Va=4*3.14*r*r*r/3;
Vb=Sa*h;
printf("C1=%.2f\n",C1);
printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);
}
3.3输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9,输出要求有文字说明,取位2小数。
参考源程序如下:
main()
{float F,c;
scanf("%f",&F);
c=5*(F-32)/9;
printf("输入的华氏温度为:%.2f,则摄氏温度为%.2f",f,c);
}
3.4 已知三角形的三边长,求其面积。
解:假设输入的三边能构成三角形,三角形的面积公式为:
Area=
其中S=(a+b+c)/2。
参考源程序如下:
#include “math.h”
Main()
{
Float a,b,c,s,area;
Printf(“请输入三角形的三边:”);
Scanf(“%f,%f,%f”,&a,&b,&c);
S=(a+b+c)/2.0;
Area=sqrt(s*(s-a)*(s-b)*(s-c));
Printf(“三角形的三边为:%7.2f, %7.2f, %7.2f\n”,a,b,c);
Prinft(“三角形的面积为: