北京交通大学C语言综合程序设计(黄宇班)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

综合程序设计

一、实验目的

(1)培养和锻炼对具有一定复杂度和规模的问题的分析与求解能力。(2)掌握程序设计的综合方法,能综合应用各种数据类型实现较复杂数据的存储。

(3)培养良好的C程序设计风格与代码规范意识。

二、课程设计内容

(一)设计一个菜单程序:1、寻找肇事汽车车牌号

2、形成的新数

3、替换后的新字符串

4、狗熊吃包谷

5、学生的平均分

6、再见

(二)具体内容如下:

1.寻找肇事汽车车牌号

一辆汽车撞人后逃跑,4个目击者提供如下线索:

甲:牌照3、4位相同。乙:牌号为31XXXX。

丙:牌照5、6位相同。丁:3~6位是一个整数的平方。

请根据4个目击者的话,找出肇事汽车车牌号。

Int a,b;

for

2. 形成的新数

将长整型数s中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。、

例如,当s中的数为87653129时,t中的数为862。

3.替换后的新字符串

将s所指字符串中出现的与t1所指字符串相同的子串,全部替换为t2所指字符串,所形成的新串放在w所指的数组中,要求t1 和t2所指字符串的长度相同。例如,当s所指字符串中的内容为“abcdabfab”,t1所指子串中的内容为“ab”,

t2所指子串中的内容为“99”时,在w所指的数组中的内容应为“99cd99f99”4.狗熊吃包谷

狗熊到玉米地吃包谷,第一天吃了一半又拿走一个回去喂小狗熊。第二天又去吃了剩下的一半,走时仍然带一个回去。以后每天都吃前一天剩下的一半,拿走一个。到第十天时,狗熊到地里一看,只剩下一个包谷了。求地里一共有多少包谷?

5.学生的平均分

链表也是一种结构,我们把它单独作为一个知识点学习,最后为检查一下同学们学习能力,请同学们在自己阅读完链表的相应知识点以后,做以下题目:N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是求出平均分,并由函数值返回。请在{ }中填写相应的程序。

例如,假定学生的成绩为85、76、69、85、91、72、64、87,则平均分应为78.625。#include

#include

#define N 8

struct slist

{ double s;

struct slist *next;

};

typedef struct slist STREC;

double fun(STREC *h)

{

double aver=0.0;

while(h!=NULL)

{

aver+=h->s;

h=h->next;

}

aver/=N;

return aver;

}

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!=0);

printf("\n\n");

}

int main()

{ 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.3lf\n",ave);

return 0;

}

参考答案:

double aver=0.0;

while(h!=NULL)

{

aver+=h->s;

h=h->next;

}

aver/=N;

return aver;

程序:

#include

#include

#include

#include

#include

#define N 8

struct slist

{

double s;

struct slist *next;

};

typedef struct slist STREC;

void draw();

void link();

void corn();

void average();

int menu_select();

int main()

{

for(;;)

{

switch(menu_select())

{

case 1:

draw();break;

case 2:

link();break;

case 3:

bored();break;

case 4:

corn();break;

case 5:

average();break;

case 6:

printf("Goodbye!\n");

exit(0);

}

}

return 0;

}

int menu_select()

{

char s;

int cn;

printf("1、寻找肇事汽车车牌号\n");

printf("2、形成的新数\n");

printf("3、替换后的新字符串\n");

printf("4、狗熊吃包谷\n");

printf("5、求学生的平均分\n");

相关文档
最新文档