第一题答案:
60.5
70.5
运行过程:首先 struct xscj xs[]={{1,60,61},{2,70,71}};这条语句是对结构体数组xs赋初值,{1,60,61}分别赋值给xs[0].n=1, xs[0].cj1=60, xs[0].cj2=61;xs[0].cj3未赋值。同理,{2,70,71}分别赋值:xs[1].n=2, xs[1].cj1=70, xs[1].cj2=71;xs[1].cj3未赋值.
其次,
for(i=0;i<2;i++){
xs[i].cj3=(xs[i].cj1+xs[i].cj2)/2;
printf("%5.1f\n",xs[i].cj3);
}
这条语句是分别对xs[1],xs[2]的cj3字段赋值,赋值为(cj1+cj2)/2的值。输出语句 printf("%5.1f\n",xs[i].cj3);限定了输出宽度和小数点位数,故输出60.5 和 70.5.
2.第二题填空:st.name @st.age
首先明白scanf的格式:
scanf("格式化字符串",变量地址表);
“变量地址表”是接受输入数据的变量的地址。第一个输入格式是%s,接收字符串,字符串名字即为首地址,所以直接st.name就可以了;第二个格式是%d,接收整型数据,所以必须取地址,使用取地址符号&,所以第二空答案就是&st.age.
第一题
#include <stdio.h>// 打印两行,分别是:
60 + 61 / 2 = 60.5
70 + 71 / 2 = 71.7
第二题
#include <stdio.h>st.name
&st.age