精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

大學C/C++語言程序設計基礎(第2版)

陽小華,馬淑萍 著 / 電子工業(yè)出版社

冥沙 上傳

查看本書

習題9答案

一、選擇題。

1.B ??2.A ??3.D ??4.D ??5.D ??6.D ??7.A ??8.D ??9.B ??10.A ??11.D

二、填空題。

1.

p->name(*p).name

%d,&p->score%d,&(*p).score

p->name(*p).name

p->score(*p).score

2.

???p p!=NULL ??p->next p->next!=NULL

???c++

???p->next

?

三、寫出程序的運行結(jié)果。

1

??12,34

2

??2

4

3

9

12

12

11

11

??18

??9

3

??Zhao,m,85,90

4

20

四、編程題

1.編寫程序:inputoutput函數(shù)輸入/輸出5個學生的數(shù)據(jù)記錄,其中每個學生包括學號(char num[6])、姓名(char name[8])、4門課程分數(shù)(score)信息。

參考代碼:

#include "stdio.h"

#include "stdlib.h"

#define N 5

typedef struct

{

char num[6];

char name[8];

float score[4];

}STU;

void input(STU *s,int n)

{

?int i,j;

?printf("Please input %d students' num,name,score[4]:\n",n);

?for(i=0;i<n;i++)

?{

?scanf("%s%s",s[i].num,s[i].name);

?for(j=0;j<4;j++)

?scanf("%f",&s[i].score[j]);

?}

}

void output(STU *s,int n)

{

int i,j;

printf("Students' information:\n");

??for(i=0;i<n;i++)

?{

?printf("%s ?%s ?",s[i].num,s[i].name);

?for(j=0;j<4;j++)

?printf("%2.0f ",s[i].score[j]);

?printf("\n");

?}

}

void ?main( )

{

STU s[N];

input(s,N);

output(s,N);

}

?

2.現(xiàn)有如下一個結(jié)構(gòu)體及變量,編程實現(xiàn)找到年齡最大的人,并輸出。

static struct man

{ ?char name[20];

???int age;

}?person[4]={"li",18,"wang",19,"zhang",20,"sun",22};

參考代碼

#include "stdio.h"

#include "stdlib.h"

static struct man

{ ?char name[20];

???int age;

} person[4]={"li",18,"wang",19,"zhang",20,"sun",22};

?

void ?main( )

{

int i,max_age,index;

max_age=person[0].age;

index=0;

for(i=1;i<4;i++)

if(person[i].age>max_age)

{

max_age=person[i].age;

index=i;

}

?????printf("The Oldest man is: ?%s,age:%d\n",person[index].name,person[index].age);

}

3.編寫程序:有5個學生,每個學生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學生號,姓名,3門課成績),計算出平均成績。

參考代碼:

#include "stdio.h"

#include "stdlib.h"

#define N 5

typedef struct

{

char num[6];

char name[8];

float score[3];

}STU;

void input(STU *s,int n)

{

?int i,j;

?printf("Please input %d students' num,name,score[3]:\n",n);

?for(i=0;i<n;i++)

?{

?scanf("%s%s",s[i].num,s[i].name);

?for(j=0;j<3;j++)

?scanf("%f",&s[i].score[j]);

?}

}

void main()

{

STU s[N];

int i,j;float average[N];

input(s,N);

for(i=0;i<N;i++)

{

average[i]=0;

for(j=0;j<3;j++)

???????????average[i]+=s[i].score[j];

average[i]/=3;

printf("%d個同學的平均成績?yōu)椋?/span>%f\n",i,average[i]);

}

}

?

4.建立一個鏈表,每一個節(jié)點包括的成員為學生學號、平均成績。用malloc開辟新節(jié)點。要求鏈表包括8個節(jié)點,從鍵盤輸入節(jié)點的數(shù)據(jù)。建立鏈表的函數(shù)名是create。

參考代碼:

#include "stdio.h"

#include "stdlib.h"

#define N 8

typedef struct student

{

char num[5];

float score;

struct student *next;

}STU;

STU *create(int n)

{

int i;

STU *head,*p,*q;

head=p=(STU *)malloc(sizeof(STU));

for(i=0;i<n;i++)

{

??printf("請輸入第%d個學生的學號num及成績score:\n",i+1);

??????q=(STU *)malloc(sizeof(STU));

??scanf("%s%f",q->num,&q->score);

??p->next=q;

??p=q;

}

?????p->next=NULL;

?return head; ?

}

void main()

{

STU *head,*p;

head=create(N);

p=head->next;

printf("Start->");

????while(p)

{

printf("學號:%s ?成績:%2.0f->",p->num,p->score);

p=p->next ;

}

printf("End\n");

}

習題10答案

一、選擇題。

1.D ???2.C ????3.B ??4.C ???5.B ????6.B ???7.A ???8.C ???9.A ???10.C ??

11.B ??12.C ??13.A ?14.A ??15.D

注:其中選擇題第4題和第8題雷同。

選擇題第13題的答案選項中,兩個數(shù)據(jù)之間應該有逗號。

二、填空題。

1.

NULL

2.

?"r"

?fp

3. fp=fopen(fn,"w")

ch!=?'#'

?ch = getchar( );

?

4.

?fin

?k,fout

???fopen("D:\\file2.txt",?"wb")??

5.

?FILE *fp

?"rb"

?

?

習題11答案

一、選擇題。

1.A ???2.C ????3.D ??4.B ???5.D ????6.A ???7.B ???8.B ???9.B ???10.B ??

二、填空題。

1. 自項向下

2. 循環(huán)結(jié)構(gòu)

3. 實例

4.屬性

5.對象


查看更多