《C语言程序设计》课件第7章.ppt
scanf(“%ld”,u.b);
printf(“b=%d\n”,u.b);
;
printf(c[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c\n,u.c[0],u.c[1],u.c[2],u.c[3]);
}5.下面这段程序的运行结果是。
#includestdio.h
structbook
{
charname[50];
intpages;
};voidmain()
{
structbookbook1={JaneEyre,385};
printf(%s%d,book1.name,book1.pages);
}二、选择题
1.下列结构定义正确的是()。
A.?struct{intx;inty}; B.?structs{intx;inty;};
C.?structs{intx;inty;} D.?structs{intx,inty;};
2.已知:
structx{inta;intb;}y;
则访问结构变量y的成员a的表达式正确的是()。
A.?y.a B.?x.a C.?y-a D.?*y.a3.定义了如下结构:
struct
{
intx;
inty;
}mm;
在main()函数中输出mm的成员值,正确的是()。A.printf(%d,mm);
B.?printf(%d%d,mm);
C.?printf(%d,%d,mm.x,mm.y);
D.?printf(%d,%d,mm-x,mm-y);4.定义了一个个人信息结构体personal,其中嵌套了一个出生年月的结构birth,在主程序中以“XXXX年XX月XX日”格式输出person1的出生年月的语句是()。structbirth
{
intyear;
intmonth;
intday;
};
structpersonal{
charID[18];
charname[10];
charsex;
structbirthdate;
}person1;A.?printf(“%4d%2d%2d”,date.year,date.month,date.day);B.?printf(%4d%2d%2d,person1.date.year,person1.date.month,person1.date.day);
C.?printf(%4d年%2d月%2d日,person1.date.year,person1.date.month,person1.date.day);
D.?printf(%4d%2d%2d,person1.date.year,年,person1.date.month,月,person1.date.day,日);5.一个整型数存储时占两个字节,低字节在左边,高字节在右边,利用联合体的特点取出整型数16961的高字节和低字节,下列程序运行结果正确的是()。unionint_byte
{
charc[2];
intd;
}ib;
voidmain()
{ ib.d=16961;
printf(“%d,%c”,ib.c[0],ib.c[0]);
printf(“,%d,%c”,ib.c[1],ib.c[1]);
}
A.?16,?,61,= B.?61,=,16,?
C.?66,B,65,A D.?65,A,66,B三、编程题
1.定义一个三角形结构,它有3个成员,分别表示三角形的3条边。编写一个函数来判断该3条边是否能构成一个直角三角形的函数,并编写测试程序检验。
2.编写一个工资计算程序,其中有不同的岗位(假设有工人和技术员两个岗位),不同的岗位资金的系数是不同的(假设分别是100和150)。编写一个函数用于计算工资,并编写测试程序检验。一、实训的目的与要求
1.掌握结构体和联合体的定义,理解struct和union是定义的关键字而不是类型;
2.熟悉各种结构、联合类型成员的引用方法;
3.应用结构体变量、指针及数组解决实际问题。【实训】二、实训内容
1.在“学生成绩管理信息系统”中,学生的信息由一个结构类型定义,通过不同的结构数组来存放学生的各种信息,也就是记录,每个结构数组的一个元素就是一条学生记录。假设学生结构成员有学号、姓名