结构体共用体与枚举课后习题
1.定义一结构体,成员项包括一个字符型、一个整型。
编程实现结构体变量成员项的输入、输出,并通过说明指针引用该变量。
#include<stdio.h>
void main()
{
struct a
{
char b;
int c;
}d,*p;
p=&d;
printf("输入:\n");
scanf("%c",&(*p).b);
scanf("%d",&p->c);
printf("输出:\n");
printf("%c\n",(*p).b);
printf("%d\n",p->c);
}
2.建立一结构体,其中包括学生的姓名、性别、年龄和一门课程的成绩。
建立的结构体数组通过输入存放全班(最多45人)学生信息,输出考分最高的同学的姓名、性别、年龄和课
程的成绩。
#include<stdio.h>
void main()
{
int i,b,n;
float a;
printf("请输入班级的人数:");
scanf("%d",&n);
getchar();
struct person
{
char name[20];
char sex[10];
int year;
float score;
}stu[45];
for(i=0;i<n;i++)
{
printf("请输入第%d个学生的名字、性别、年龄及成绩\n",i+1);
gets(stu[i].name);
gets(stu[i].sex);
scanf("%d",&stu[i].year);
scanf("%f",&stu[i].score);
getchar();
}
for(b=0,a=stu[0].score,i=0;i<n;i++)
if(a<stu[i].score)
{
a=stu[i].score;
b=i;
}
printf("成绩最优秀的是第%d个学生\n",b+1);
printf("名字:%s 性别:%s 年龄:%d 成绩:%f\n",stu[b].name,stu[b].sex,stu[b].year,stu[b].score);
}
3.已知一个班有45人,本学期有两门课程的成绩,求:
●所有课程中的最高成绩,以及对应的姓名、学号和课程编号。
●课程1、2的平均成绩,并求出两门课程都低于平均成绩的学生姓名和学号。
●对编号1的课程从高分到低分排序(注意其他成员项应保持对应关系)。
说明:要求定义结构体,第一成员项为学生姓名,第二成员项为学号,另外两个成员项为两门课成绩,并要求分别用函数完成。
(本人注:由于人数太多,故改为4人)
#include<stdio.h>
#define N 4
struct person
{
char name[20];
long int number;
float score1;
float score2;
};
void shuru(struct person stu[N])
{
int i;
for(i=0;i<N;i++)
{
printf("请输入第%d个学生的名字、学号、成绩1及成绩2\n",i+1);
gets(stu[i].name);
scanf("%ld",&stu[i].number);
scanf("%f",&stu[i].score1);
scanf("%f",&stu[i].score2);
getchar();
}
}
void zuigao(struct person stu[N])
{
int b,i;
float a;
for(b=0,a=stu[0].score1,i=0;i<N;i++)
if(a<stu[i].score1)
{
a=stu[i].score1;
b=i;
}
printf("第一门课程成绩最优秀的是第%d个学生\n",b+1);
printf("名字:%s 学号:%ld 成绩:%f\n",stu[b].name,stu[b].number,stu[b].score1);
printf("\n");
for(b=0,a=stu[0].score2,i=0;i<N;i++)
if(a<stu[i].score2)
{
a=stu[i].score2;
b=i;
}
printf("第二门课程成绩最优秀的是第%d个学生\n",b+1);
printf("名字:%s 学号:%ld 成绩:%f\n",stu[b].name,stu[b].number,stu[b].score2);
printf("\n");
}
void pingjun(struct person stu[N])
{
int i;
float s1,s2,p1,p2;
for(s1=0,s2=0,i=0;i<N;i++)
{
s1+=stu[i].score1;
s2+=stu[i].score2;
}
p1=s1/N;
p2=s2/N;
for(i=0;i<N;i++)
{
if(stu[i].score1<p1)
printf("名字:%s 学号:%ld 此学生成绩小于第一门课的平均分\n",stu[i].name,stu[i].number);
if(stu[i].score2<p2)
printf("名字:%s 学号:%ld 此学生成绩小于第二门课的平均分\n",stu[i].name,stu[i].number);
}
printf("\n");
}
void paixu(struct person stu[N])
{
int i,j;
struct person t;
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(stu[j].score1<stu[j+1].score1)
{t=stu[j];stu[j]=stu[j+1];stu[j+1]=t;}
printf("按第一门课程从高到低排序为:\n");
for(i=0;i<N;i++)
printf("名字:%s 学号:%ld 成绩:%f\n",stu[i].name,stu[i].number,stu[i].score1); }
void main()
{
struct person stu[N];
shuru(stu);
printf("\n");
zuigao(stu);
pingjun(stu);
paixu(stu);
}
4.输入一字符串,用链表形式储存,每个结点的数据域存放一个字符,最后输出链表中的全部字符。
5.设有一个单向链表(设表长大于2),现欲将其倒置排序,试编写一函数实现此功能。
6.已知一无符号的整数占用了4个字节的内存空间,现欲从低位存储地址开始,将其每个字节作为单独的一个ASCII码字符输出,试用共同体实现上述转换。
7.已知一长度为2个字节的整数,现欲将其高位字节与低位字节相互交换后输出,试用共同体类型实现这一功能。
8.请定义枚举类型score,用枚举元素代表成绩的等级,如:90分以上为优(excellent),80—89分之间为良(good),60-79分之间为中(general),60分以下为差(fail),通过键盘输入一个学生的成绩,然后输出该生成绩的等级。
#include<stdio.h>
void main()
{
float a;
enum score{fail,general=6,good=8,excellent}a;
printf("请输入该学生的成绩:");
scanf("%f",&a);
switch(b);
{
case excellent:printf("excellent");break;
case good:printf("good");break;
case general:printf("general");break;
case fail:printf("fail");break;
}
}。
结构体与共用体相关题目练习
结构体与共用体1.说明一个结构体变量时系统分配给它的内存是A)各成员所需要内存量的总和 B)结构体中第一个成员所需内存量C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存量2.C语言结构体类型变量在程序执行期间A)所有成员一直驻留在内存中 B)只有一个成员驻留在内存中C)部分成员驻留在在内存中 D)没有成员驻留在内存中3.设有以下说明语句struct stu { int a ; float b ; } stutype ;则下面的叙述不正确的是A) struct 是结构体类型的关键字 B) struct stu 是用户定义的结构体类型C) stutype 是用户定义的结构体类型名 D) a和b都是结构体成员名4.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。
struct stud { char num[6]; int s[4]; double ave; } a,*p;5.程序中有下面的说明和定义struct abc { int x;char y;}struct abc s1,s2;则会发生的情况是A)编译出错B)程序将顺利编译、连接、执行C)能顺利通过编译、连接、但不能执行 D)能顺利通过编译、但连接出错6.有如下定义struct person { char name[9]; int age;};struct person class[10]={ " Johu", 17,"Paul", 19,"Mary", 18,"Adam", 16};根据上述定义,能输出字母M的语句是A) prinft(" %c\n",class[3].name); B) printf(" %c\n",class[3].name[1]);C) prinft(" %c\n",class[2].name[1]); D) printf(" %c\n",class[2].name[0]);7.下面程序的输出是A)0 B)1 C)3 D)6main(){ struct cmplx { int x; int y;} cnum[2]={1,3,2,7};printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}8.下列程序的输出结果是A)5 B)6 C)7 D)8struct abc { int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}};int t;t=s[0].a+s[1].b;printf("%d \n",t);}9.有以下程序struct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n" ,(*p).name); }main(){ struct stu students[3]={{9801,"Zhang",20} ,{9802,"Wang", 19} , {9803,"Zhao",18} };fun(students+2);}输出结果是A)Zhang B)Zhao C)Wang D)1810.设有如下定义:struct sk {int a ;float b ;}data ,*p ;若有p=&data ;,则对data中的a域的正确引用是A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a11.下面程序的输出结果为int dt[4]={10 ,20 ,30 ,40} ;struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] } ;main(){ p=aa ;printf("%d\n" , ++p->x );printf("%d\n" ,(++p)->x);printf("%d\n" , ++( *p->y));}A)10 B)50 C)51 D)6020 60 60 7020 21 21 3112.为了建立如图所示的存储结构(即每个结点含两个域, data 是数据域,next是指向结点的指针域,)请填空。
结构体公用体枚举类型习题
是对C语言中共用体类型数据的正确叙述: C 是对 语言中共用体类型数据的正确叙述: 语言中共用体类型数据的正确叙述 A)一旦定义了一个共用体变量后,即可引用该变量或该变 )一旦定义了一个共用体变量后, 量中的任意成员; 量中的任意成员; B)一个共用体变量中可以同时存放其所有成员; )一个共用体变量中可以同时存放其所有成员; C)一个共用体变量中不能同时存放其所有成员; )一个共用体变量中不能同时存放其所有成员; D)共用体类型数据可以出现在结构体类型定义中,但结构 )共用体类型数据可以出现在结构体类型定义中, 体类型数据不能出现在共用体类型定义中。 体类型数据不能出现在共用体类型定义中。
5.根据下面的定义,能打印出字母M的语句是 。 D 根据下面的定义,能打印出字母 的语句是 struct person{ char name[9]; int age; }; struct person c[10]={"John",17,"Paul",19,"Mary",18,"Adam",1 6}; A)printf("%c\n",c[3].name); ) B)printf("%c\n",c[3].name[1]); ) C)printf("%c\n",c[2].name[1]); ) D)printf("%c\n",c[2].name[0]); )
B
10.变量 所占内存字节数是 C 变量a所占内存字节数是 变量 A) 4 B) 5 C) 6 ) ) ) union u{ char st[4]; int i; long l;}; struct A{ int c; union u;}a;
D) 8 )
C语言数据结构-第9章 结构体共用体与枚举
"Shang Hai","13901000003"}}; int i; for(i=0;i<3;i++) { printf("%s,%d,%s,%s,",stud[i].name,stud[i].age,stud[i].sex,stud[i].xh); printf("%d,%d,%d,",stud[i].birthday.year,stud[i].birthday.month, stud[i].birthday.day); printf("%s,%s,%s\n",stud[i].nation,stud[i].address,stud[i].tel); } }
成员运算符“.”的优先级最高,在表达式中的结构体变量成员不 需要加括号。例如:
wang.age++;
相当于
(wang.age)++;
注意
13
结构体变量的成员名可以相同,但必须处在不同的层次。 例如:
sturct student { int no;
char name[20]; struct { int no; char classname[20]; }class; struct { int no; char groupname[20]; }group; }wang;
定义结构体类型名的同时定义结构体数组,例如:
struct student{…} stud[50];
C语言(结构体与共用体)习题与答案
{ for ( ; *s==*t; s++, t++ )
if (!*s) return 0 ;
return (*t-*s) ;
}
B.int strcmp2(char *s,char *t)
{ for ( ; *s++=*t++; )
if (!*s) return 0 ;
1、指针的含义是()。
A.名
B.一个标志
C.地址
D.值
正确答案:C
2、若已定义a为int型变量,则下面的语句中正确的是()。
A.int *p=*a;
B.int *p=&a;
C.int *p=a;
D.int p=&a;
正确答案:B
3、若有定义:int x,*p;则以下正确的赋值表达式是()。
A.*p=&x
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%4d,%4d,%4d\n",a,b,c);
}
A.5,-2,-7
B.5,2,3
C.-5,-12,7
D.-5,-12,-7
正确答案:D
11、以下程序运行的结果是()。
#include<stdio.h>
void main()
D.char *s="china";等价于char *s; s="china" ;
正确答案:D
15、函数strcmp(char *s,char *t)功能是()。
第9章结构体类型与共用体类型习题及答案
第九章结构体类型与公用体类型习题及其答案9-3编写程序,使用结构体类型,输出一年十二个月的英文名称及相应天数。
解:#include "stdio.h"struct date{char month[10];int daynumber;}main(){int i ;date a[12]={{n January u,31},{“February”,29}, {“March”,31}, {” Aprial”,30}, {”May“,31},{“June",30}, {“july”,31},{” August”,31},「'September”,30} ,{“October”,31},{"November",30},{"December",31}};for(i=0;i<12;i++);printf(u%d 月:%s %d\n",i+l,a[i].month,a[i].daynumber);}思考:如何对结构体变量进行初始化?对结构体变量的引用为何要体现为分量(或成员)的引用?9-4编写程序求空间任一点到原点的距离,点用结构体描述。
并请考虑求空间中任意两点的距离的程序。
解:#include "stdio.h"#include "math.h'1struct point{float x ;float y;float z;}void main()double dl,d2,d;point pl,p2 ;printfC请输入第一个点的坐标:“);scanf(”%f,%f,%f",&pl.x,&pl.y,&pl.z);printf(u W输入第二个点的坐标:”);scanf(”%f,%f,%f”,&p2.x,&p2.y,&p2.z);d 1 =sqrt(p l.x*p l.x+p l.y*p l.y+p l.z*p l.z);d2=sqrt(p2.x*p2.x+p2.y*p2.y+p2.z*p2.z);d=sqrt((p2.x-p l.x)*(p2.x-p l.x)+(p2.y-p 1 .y)*(p2.y-p l.y)+(p2.z-pl.z)*(p2.z-pl.z));printfC第一个点到原点的距离:%f\n”,dl);printf(“第二个点到原点的距离:%f\n”,d2);printfC俩点间的距离:%f\n”,d);}9-5编写输入、输出10个朋友数据的通讯录程序,每个朋友数据包括姓名、地址、邮编、电话、传呼、手机等数据。
学习情境七结构体、共用体与枚举习题
学习情境七结构体、共用体与枚举习题一、选择题1.若有如下说明,则的叙述是正确的(已知int类型占两个字节)。
struct st{ int a;int b[2];}a;A.结构体变量a与结构体成员a同名,定义是非法的B.程序只在执行到该定义时才为结构体st分配存储单元C.程序运行时为结构体st分配6个字节的存储单元D.类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后)2.设有以下说明语句:struct ex{ int x ;float y;char z ;} example;则下面的叙述中不正确的是。
A.struct是结构体类型的关键字B.example是结构体类型名C.x,y,z都是结构体成员名D.struct ex是结构体类型3.若有以下结构体定义:struct example{ int x;int y;}v2;则是正确的引用或定义。
A.example.x=10 B.example v2.x=10;C.struct v2; v2.x=10; D.struct example v2={10};4.已知:struct{ int i ;char c;float a;} ex;则sizeof(ex)的值是。
A.4B.5C.6D.75.下面程序的运行结果是main(){struct sample{int x;int y;}a[2]={1,2,3,4};printf(“%d\n”,a[0].x+a[0].y*a[1].y);}A.7B.9C.13D.166.已知:union{ int i ;float a;char c ;} ex;则sizeof(ex)的值是。
A.4B.5C.6D.77.有如下定义struct person{char name[9]; int age;};struct person class[10]={“Johu”, 17,“Paul”, 19“Mary”,18,“Adam”, 16,};根据上述定义,能输出字母M的语句是。
第8章结构型联合型和枚举型习题(C语言程序设计)
本文由ミ尒尒贡献 ppt文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
第8章 结构体联合体枚举 习题 一单项选择题. 一单项选择题 1. 设有以下定义语句,下列叙述中不正确的是( 设有以下定义语句,下列叙述中不正确的是( struct ex { int x; float y ;char z ;}example; ) A. struct是结构型的保留字 是结构型的保留字 B. example是结构型名 是结构型名 C. x,y,z是结构型成员名 是结构型成员名 D. ex是结构型名 是结构型名 一单项选择题.2 一单项选择题 2 以下定义结构型变量s的语句中不正确的是( 以下定义结构型变量 的语句中不正确的是( 的语句中不正确的是 A.#define ABC struct abc ABC {double a; char b[10]; }s; C. struct S {double a; char b[10]; }; B. struct abc {double a; char b[10]; }s; D. struct abc {double a; char b[10]; }abc; struct abc s; ) 一单项选择题.3 一单项选择题 若有定义语句: 若有定义语句: struct a {int a1; int a2;}a3; 以下赋值语句不正确的是( 以下赋值语句不正确的是( A. a.a1=4; C. a3={4,5} ) B. a2=4 D. a3.a2=5 一单项选择题. 一单项选择题 4. 定义如下结构型变量和结构型指针 struct sk { int a;float b}data,*p; 若指针p已经通过 指向结构型变量data,则引用 若指针 已经通过p=&data;指向结构型变量 已经通过 指向结构型变量 则引用 data中a成员的正确方式是: 成员的正确方式是: 中 成员的正确方式是 data p a A. (*p).data.a &data B. (*p).a C. p->data.a 结构体变量名 成员名 b 结构体变量名.成员名 D. p.data.a 指针变量) (*指针变量).成员 指针变量 成员 指针变量->成员 指针变量 成员 一单项选择题.5 一单项选择题 若要说明一个类型名STP 若要说明一个类型名STP , 使定义语句“ 等价于“ 使定义语句“STP s;”等价于“char *s; ” 等价于 以下选项中正确的是( 以下选项中正确的是( ) 类型重定义: 类型重定义: typedef 原类型名 新名; 新名; A.typedef STP B.typedef * char C. typedef STP D. typedef char char *s; STP; * char ; * STP; 一单项选择题.6 一单项选择题 某结构型变量定义如下, 某结构型变量定义如下,对该结构型变量中成员的 引用形式正确的是( 引用形式正确的是( ) struct abc{int s; char ch;}a1,*p; p=&a1; A. a1->s B. p->ch C. p.ch D. *p.s 一单项选择题. 一单项选择题 8. 若有下面的说明和定义: 若有下面的说明和定义: struct test m3 m1 { int m1; char m2; m2 float m3; ua union uu { char u1[c]; u1[5] int u2[2]; u2[2] }ua; }myaa; 的值是: 则sizeof(struct test)的值是: 的值是 二、填空题 2 设struct student {int no; int char name[12]; float score[3]; }s1,*p=&s1; s1,*p=&s1; 赋值1001的方法是( 的方法是( 用指针变量p给s1的成员 赋值 指针变量 给 的成员no赋值 的方法是 ) p->no=1001 (*p).no=1001 二、填空题 6 设有下列数据定义语句, 设有下列数据定义语句,则表 达式++p >b的值是 ++p- 的值是 达式++p->b的值是 p struct AB { int a; ab float b; }ab[2]={{4,3},{2,1}},*p=ab; ab[2]={{4,3},{2,1}},*p=ab; ={{4,3},{2,1}},*p ab[2] 4 ab[1] 3.0 4.0 2 ab[1] 1.0 ++p->b ++p++ p->b 二、填空题 5 ? 设有类型说明: ? enum color {red,yellow=4,white,black}; ? 则执行语句printf(“%d”,white);的结果是 二、填空题7 填空题 ? 设有定义语句: ? enum{B1,B2=10;B3,B4}x=B3; ? 则++x==B4的值是 三、写出程序运行结果1. 写出程序运行结果 struct st {int x; int *y;}*p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[1],80,&dt[3]}; main() { p=aa; printf(“%d”,++p->x); printf(“%d”,(++p)->x); printf(“%d”,++(*p->y)); 三、写出程序运行结果2. 写出程序运行结果 struct stu { int num; char name[10]; int age; }; void fun(struct stu *p) { printf(“%s\n”,(*p).name);} main() {struct stu students[3]={{9801,”zhang”,20}, {9802,”wang”,19}, {9803,”zhao”,18}}; fun( students+2) 实验11. 实验 三、实验练习 struct x{ int a; char *b;}*p; char y0[]=“Li”, y1[]=“Wang”; stuct x xw[]={{1,y0},{4,y1}}; main() p p=xw; printf(“%c”, ++*p->b); printf(“%d”,++p->a); printf(“%d”,++p->a); printf(“%d”,(++p)->a); printf(“%c\n”,*(p++)->b); } y0[3] L i xw[2] \0 1 y0 4 y1 y1[5] W a n g \01。
实验9 结构体、共用体与枚举类型答案
率。 其次,结构体指针作为函数参数:可以在函数中通过该指针引用结 构体,当在函数中修改了结构体的成员变量后,指针所指向的结构体本 身也被改变了。而当结构体变量作为函数参数;在函数中可通过变量直 接使用结构体,但是,如果在函数中修改了结构体的成员变量后,结构 体本身并未发生变化,只是副本被改变。
} } average = s/5 ; printf("平均成绩:%.2f\n",average); }
4、5位职工的月收入如下表所示: 部门 月收入 工号 姓名 (char (float (int num) (char name) department) salary) 技术科 010002 张援朝 6800 生产科 020006 李明瑞 2600 检验科 030018 王国庆 4800 后勤部 040026 刘小兵 3700 经营科 050068 吴 伟 1900 试编程求这5位职工的平均月收入,并输出月收入小于3000元的职 工的部门、工号、姓名与月收入等信息。源程序以ex9_8.c命名,保存 在自己的文件夹内。
保存在自己的文件夹内。
解: #include <stdio.h> struct bookinfo { char isbn[20]; char title[50]; char author[20]; char publisher[50]; char pubdate[30]; float price; }book[5] = {{"7115177810","Java实用教程","李钟 尉","人民邮电出版社","2008年5月",32.00}, {"7113101015","汇编语言程序设计","白小明","中国铁 道出版社","2009年8月",35.00}, {"7302108535","C语言程序设计","谭浩强","清华大学 出版社","2005年7月",26.00}, {"7301123713","网络工程实用教程","汪新民","北京大 学出版社","2008年2月",34.00}, {"7111283812","软件工程概论","郑人杰","机械工业出 版社","2010年3月",28.00}}; main() { int i; float average, s=0; for(i=0; i<5; i++) { s += book[i].price; if(book[i].price<30.00) { printf("书号:%s ",book[i].isbn); printf("书名:%s ",book[i].title);
结构体共用体与枚举课后习题
结构体共用体与枚举课后习题1.定义一结构体,成员项包括一个字符型、一个整型。
编程实现结构体变量成员项的输入、输出,并通过说明指针引用该变量。
#includevoid main(){struct a{char b;int c;}d,*p;p=&dprintf("输入:\n");scanf("%c",&(*p).b);scanf("%d",&p->c);printf("输出:\n");printf("%c\n",(*p).b);printf("%d\n",p->c);}2.建立一结构体,其中包括学生的姓名、性别、年龄和一门课程的成绩。
建立的结构体数组通过输入存放全班(最多45人)学生信息,输出考分最高的同学的姓名、性别、年龄和课程的成绩。
#includevoid main(){int i,b,n;float a;printf("请输入班级的人数:"); scanf("%d",&n);getchar();struct person{char name[20];char sex[10];int year;float score;}stu[45];for(i=0;i<n;i++)< p="">{printf("请输入第%d个学生的名字、性别、年龄及成绩\n",i+1);gets(stu[i].name);gets(stu[i].sex);scanf("%d",&stu[i].year);scanf("%f",&stu[i].score);getchar();}for(b=0,a=stu[0].score,i=0;i<n;i++)< p="">if(a<stu[i].score)< p="">{a=stu[i].score;b=i;}printf("成绩最优秀的是第%d个学生\n",b+1);printf("名字:%s 性别:%s 年龄:%d 成绩:%f\n",stu[b].name,stu[b].sex,stu[b].year,stu[b].score);}3.已知一个班有45人,本学期有两门课程的成绩,求:●所有课程中的最高成绩,以及对应的姓名、学号和课程编号。
2016C语言习题全集及答案:第八单元结构体和共用体
第八单元结构体和共用体一、选择题1、说明一个结构体变量时系统分配给它的内存是。
A. 各成员所需要内存量的总和B. 结构体中第一个成员所需内存量C. 成员中占内存量最大者所需的容量D. 结构中最后一个成员所需内存量2、 C 语言结构体类型变量在程序执行期间。
A. 所有成员一直驻留在内存中B. 只有一个成员驻留在内存中C. 部分成员驻留在在内存中D. 没有成员驻留在内存中3、设有以下说明语句struct stu { int a ; float b ; } stutype ;则下面的叙述不正确的是。
A. struct 是结构体类型的关键字B. struct stu 是用户定义的结构体类型C. stutype 是用户定义的结构体类型名D. a 和b 都是结构体成员名4、程序中有下面的说明和定义struct abc { int x;char y;}struct abc s1,s2;则会发生的情况是。
A. 编译出错B. 程序将顺利编译、连接、执行C. 能顺利通过编译、连接、但不能执行D. 能顺利通过编译、但连接出错5、有如下定义struct person { char name[9]; int age;};struct person class[10]={ " Johu", 17,"Paul", 19,"Mary", 18,"Adam",16};根据上述定义,能输出字母M 的语句是。
A. prinft(" %c\n",class[3].name);B. printf(" %c\n",class[3].name[1]);C. prinft(" %c\n",class[2].name[1]);D. printf(" %c\n",class[2].name[0]);6、下面程序的输出是。
