第九章单元测试
下列程序的输出结果是( )。
struct stu{
int num;
char name[10];
int age;
};
void fun(struct stu *p)
{
printf("%s\n",(*p).name);
}
int main(void)
{
struct stu students[3]= {{9801,"Zhang",20}, {9802,"Wang",19}, {9803,"Zhao",18} };
fun(students+2);
}
设有如下定义,
struct ss
{ char name[10];
int age;
char sex; } std[3],*p=std;
下面各输入语句中错误的是( )。struct S{
int n;
int a[20];
};
void f(int *a,int n)
{ int i;
for(i=0;i<n-1;i++)
a[i] = a[i]+i;
}
int main(void)
{ int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0;i<s.n;i++)
printf("%d,",s.a[i]);
}
上列程序的输出结果是( )。
- 对于结构数组s,可以引用数组的元素s[i],但不可以引用s[i]中的结构成员。( )
#include <stdio.h>
#include <string.h>
struct stu{
char name[9];
char sex;
float score[2];
};
void f(struct stu a)
{
struct stu b={"Zhao",'m',85.0,90.0};
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
int main(void)
{
struct stu c={"Qian",'f',95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
return 0;
}
上列程序的输出结果是( )。
A:Zhao B:Wang C:18 D:Zhang
答案:Zhao
A:scanf("%c",&std[0].sex); B:scanf("%d",&(*p).age); C:scanf("%s",&std.name); D:scanf("%c",&(p->sex));
A:2,4,3,9,12,12,11,11,18,9, B:3,4,2,7,9,8,6,5,11,10, C:2,3,1,6,8,7,5,4,10,9, D:1,2,3,6,8,7,5,4,10,9,
A:错 B:对
A:Zhao,f,95,92 B:Qian,f,95,92 C:Zhao,m,85,90 D:Qian,m,85,90