百科园c语言题库第八章南信大,C语言上机题库百科园第八章南信大.docx

第八章

以下叙述中正确的是()

若有以下语句

typedefstruct S

{int g; char h;}T;

可用T定义结构体变量

T是struct S类型的变量

可用S定义结构体变量

S是struct类型的变量

当定义一个结构体变量时,系统分配给它的内存是( )。

结构体中最后一个成员所需内存量

成员中占内存量最大的容量

结构体中第一个成员所需内存量

各成员所需内存量的总和

若有以下定义:

struct link

{

int data;

struct link *next;

}a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构,若指针p指向a,指针q指向 c。

则能把c插入到a和b之间形成新的链表的语句是( ) A.p->next=&c;q->next=p->next;

p.next=q;q.next=p.next;

p->next=q; q->next=&b;

a.next=c; c.next=b;

/*N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。 请编写函数fun,它的功能是:求出平均分,由函数值返回。

例如,若学生的成绩是85,76,69,91,72,64,87,则平均分应当是78.625。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语 句。

试题程序:*/

#include

#include

#define N 8

struct slist

{ double s;

struct slist *next;

};

typedef struct slist STREC;

double fun(STREC *h)

{

/***********Begin***************/

/***********End**************/

}

STREC *creat(double *s) /*创建链表*/ {

STREC *h,*p,*q;

int i=0;

h=p=( STREC*)malloc(sizeof(STREC));

p->s=0;

while(i

{q=( STREC*)malloc(sizeof(STREC));

q->s=s[i];i++;p->next=q;p=q;

}

p->next=0;

return h;

}

outlist(STREC *h)

{

STREC *p;

p=h->next;

printf("head ");

do

{printf("->%4.1f ",p->s);

p=p->next; /*输出各成绩*/

}

while(p!=NULL);

printf("\n\n");

}

void main()

{

FILE *wf;

double s[N]={85,76,69,85,91,72,64,87},ave;

STREC *h;

h=creat(s);

outlist(h);

ave=fun(h);

printf("ave=%6.3f\n ",ave);

/******************************/

wf=fopen("debug\\out25.dat","w");

fprintf(wf,"%6.3f\n",ave);

fclose(wf);

/*****************************/

}

【参考代码】

double av=0.0;

STREC *p=h->next;

/*p直接指向"头节点"的下一个节点,即第一个成绩*/

while(p!=NULL)

{av=av+p->s; /*求总分数*/

p=p->next;

}

return av/N; /*返回平均值*/

/*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写 函数fun,该函数的功能是:

把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n 传回,平均分通过函数值返回。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干 语句。

试题程序: */

#include

# define N 12

typedef struct

{ char num[10];

double s;

} STREC;

double fun (STREC *a,STREC *b, int *n)

{

/*************Begin************/

/*************End*************/

}

void main()

{

FILE *wf;

STREC s

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值