问答题
阅读下列程序说明和C代码,把应填入其中n处的字句写在对应栏内。
【说明】
下面的程序能够计算不同图形的面积。程序中把每个图形的数据定义成结构类型,利用共同体类型描述2种图形的数据。程序根据输入参数代表的图形类型,求出图形的面积并输出。
【程序】
struct Circle
{
float x,y; /*圆心位置*/
float r; /*圆半径*/
};
struct Rectangle
{
float width; /*矩形宽*/
float length; /*矩形长*/
};
union shape
{
struct Circle circle;/*圆数据结构*/
struct Rectangle rectangle;/*矩形数据结构*/
};
main()
{
union shape a;
float area;
int i;
printf(“input number: 1circle,2rectangle,3 end/n”);
scanf("%d",&i);
while{{U}} (1) {{/U}} /*循环接收输入,并计算输出*/
{
switch(i)
{
case 1:printf(“input radius:/n”);
scanf(“%f”,{{U}} (2) {{/U}};/*共同体类型变量接收输入*/
area=3.1415926*{{U}} (3) {{/U}};
printf(“the area of circle=%f/n”,area);
break;
case 2:printf(“input width and length :/n”);
seanf(“%f,%f”,{{U}} (4) {{/U}};/*共同体类型变量接收输入*/。
area={{U}} (5) {{/U}};
printf(“the area of rectangle=%f/n”,area);
break;
}
printf(“input number:1 circle,2 rectangle,3 end/n”);
scanf(“%d”,&i);
}
}
问答题
【正确答案】
【答案解析】
问答题
【正确答案】
【答案解析】&a.circle.r [解析] 将半径输入赋值给a的圆数据结构的r。
问答题
【正确答案】
【答案解析】a.circle.r*a.circle.r [解析] 计算圆的面积,此处采用圆周率乘两次半径的方法计算。
问答题
【正确答案】
【答案解析】&a.rectangle.width,&a.rectangle.length [解析] 当输入矩形的长宽。
问答题
【正确答案】
【答案解析】a.rectangle.width*a.rectangle.length [解析] 计算矩形的面积,并输出结果。