当前位置:首页 > 结构体与共用体
{ struct student * p0, * p1, * p2; p1=head; p0=stud; if(head= =NULL) {head=p0; p0->link=NULL;}
else while(p0->info
if(p0->info>=p1->info) { if(head= =p1) { (1) ; head=p0; } else {p2->link=p0; (2) ; } }
else {p1->link=p0; (3) ; } return(head); }
四、读程序写结果题
1.以下程序的运行结果是 。(1级) struct n {int x; char c; }; main( )
{ struct n a={10, ’x’}; func(a); printf ( “%d,%c”, a.x, a.c); } func(struct n b)
{b.x=20; b.c=’y’; }
2.以下程序的运行结果是 。(1级) main( )
{ struct EXAMPLE { struct {int x; int y; }in int a; int b; }e;
e.a=1; e.b=2; e.in.x=e.a * e.b; e.in.y=e.a + e.b; printf(“%d,%d”, e.in.x, e.in.y); } 3.以下程序的运行结果是 。(2级) main( )
{ static struct s1 {char c[4], *s; }s1={“abc”,”def”};
static struct s2 {char *cp; struct s1 ss1; }s2={“ghi”, {“jkl”, “mno”}}; printf(“%c,%c\\n”, s1.c[0], *s1.s); printf(“%s,%s\\n”, s1.c, s1.s);
printf(“%s,%s\\n”, s2.cp, s2.ss1.s); printf(“%s,%s\\n”, ++s2.cp, ++s2.ss1.s); }
4.以下程序的运行结果是 。(1级) struct s{ int a; float b; char *c; } main( )
{static struct s x={19,83.5,”zhang”}; struct s *px=&x; printf(“%d %.1f %s\\n”, x.a, x.b,x.c);
printf(“%d %.1f %s\\n”, px->a, (*px).b,px->c); printf(“%c %s\\n”, *px->c-1, &px->c[1]); }
5.以下程序的运行结果是 。(1级) struct stru {int x; char c; }; main( )
{ struct stru a={10, ’x’},*p=&a; func (p); printf ( “%d,%c”, a.x, a.c); } func (struct stru *b)
{b->x=20; b->c=’y’; }
6.以下程序的执行结果是 。(1级) #include
struct stu { int num;
char name[10]; int age; };
void fun(struct stu *p) {
printf(\ }
void main(void) {
struct stu students[3]={ {9801,\{9802,\{9803,\ fun(students+2); }
五、编程题
1.试利用结构体类型编制一程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。(1级)
2.试利用指向结构体的指针编制一程序,实现输入三个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成绩表。(1级)
3.请编程建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束。(链表头结点的data域不放数据,表空的条件是 ph->next = =NULL)。(2级)
4.已知head指向一个带头结点的单向链表,链表中每个结点包含字符型数据域(data)和指针域(next)。请编写函数实现在值为a的结点前插入值为key的结点,若没有值为a的结点,则插在链表最后。(2级)
共分享92篇相关文档