C语言程序设计实践实验题目Word下载.docx

上传人:b****1 文档编号:3276098 上传时间:2023-05-01 格式:DOCX 页数:68 大小:185.63KB
下载 相关 举报
C语言程序设计实践实验题目Word下载.docx_第1页
第1页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第2页
第2页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第3页
第3页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第4页
第4页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第5页
第5页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第6页
第6页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第7页
第7页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第8页
第8页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第9页
第9页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第10页
第10页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第11页
第11页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第12页
第12页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第13页
第13页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第14页
第14页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第15页
第15页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第16页
第16页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第17页
第17页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第18页
第18页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第19页
第19页 / 共68页
C语言程序设计实践实验题目Word下载.docx_第20页
第20页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计实践实验题目Word下载.docx

《C语言程序设计实践实验题目Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实践实验题目Word下载.docx(68页珍藏版)》请在冰点文库上搜索。

C语言程序设计实践实验题目Word下载.docx

}

\n"

);

/*每一行后换行*/

程序3求1000以内的所有素数。

main()

{

intm,i;

for(m=2;

m<

=100;

m++)

{for(i=2;

=m-1;

i++)

if(m%i==0)break;

if(i>

m-1)printf("

%5d"

m);

程序4:

计算和统计旅客运费程序。

由键盘输入旅客行李重量(w),按公式:

若(w<

=50kg)f=1.5*w,若(w>

50kg)f=1.5*50+2.8*(w-50)(w>

50kg)

计算运费,要求:

(1)打印每位旅客的顺序号,行李重量,应付运费;

(2)假定每天最多办理100人的行李托运手续或当w≤0时循环结束,下班时打印出全天的运费总收入和办理的总人数。

方法一(while结构)

#include“stdio.h”

intnum=0;

floatw,f,total=0;

scanf("

%f"

&

w);

while(w>

0&

num<

100)

{if(w<

=50)f=1.5*w;

elsef=1.5*50+2.8*(w-50);

num++;

printf("

%d,%6.0f,%8.2f\n"

num,w,f);

total+=f;

scanf("

%f"

printf("

Customers=%dTotalIncome=%10.2f\n"

num,total);

方法二(do-while结构)

do

{scanf("

if(w<

=0)break;

%d%6.0f%8.2f\n"

}while(num<

100);

方法三(for结构)

intnum;

for(num=1;

w>

num++)

{if(w<

 

实验二:

数组

1.更加灵活的使用一维数组和二维数组

2.把数组和指针结合使用

1.约瑟夫环问题

由n个人围成一个首尾相连的圈报数。

从第一个人开始,从1开始报数,报到3的人出圈,剩下的人继续从1开始报数,直到所有的人都出圈为止。

求出所有人的出圈顺序。

#include<

stdio.h>

{inta[10];

intn=8,i,k=0,j=1,len;

len=n;

i=0;

//给数组赋值

for(i=0;

n;

a[i]=i+1;

//i为元素下标,j代表当前要报的数,len表示圈中当前人数

while(len>

0){

if(a[k%n]>

if(j%3==0){

printf("

%d\n"

a[k%n]);

//找到要出圈的人,并把圈中人数减一,最后一个人才输出

a[k%n]=-1;

j=1;

k++;

len--;

else{//报数不是3

j++;

}

else//遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数

2.学生成绩统计与分析

输入10名学生的英语、C语言、计算机文化基础成绩,统计每名学生三科成绩的平均分,分析三门课程的优秀率,85分以上为优秀。

#include<

voidmain()

intgrade[10][4];

inti,j,average,egood,cgood,jgood;

{

printf("

请输入第%d个学生的英语、c语言、计算机\n"

i+1);

for(j=0;

3;

j++)

scanf("

%d"

&

grade[i][j]);

egood=cgood=jgood=0;

i++)//10个人

average=0;

j++)//三门课程

{

average+=grade[i][j];

if(grade[i][j]>

=85)

{

if(j==0)egood++;

if(j==1)cgood++;

if(j==2)jgood++;

}

grade[i][3]=average/3;

第%d个学生的三科平均分为:

i+1,grade[i][3]);

英语成绩优秀的学生为%d\n"

egood);

C语言成绩优秀的学生为%d\n"

cgood);

计算机成绩优秀的学生为%d\n"

jgood);

3.利用指针实现数组合并

数组a:

“1,7,9,11,13,15,17,19”;

数组b:

“2,4,6,8,10”, 

两个数组合并为数组c,按升序排列。

{intpaixu(intc[]);

inta[8]={1,7,9,11,13,15,17,19};

intb[5]={2,3,6,8,10};

intc[13];

int*p,*q,*s;

for(p=a,s=c;

p<

8+a;

p++,s++)

*s=*p;

for(q=b;

q<

b+5;

q++,s++)

*s=*q;

paixu(c);

paixu(intc[])

{inti,j,k;

for(j=0;

12;

for(i=0;

12-j;

if(c[i]>

c[i+1])

{k=c[i];

c[i]=c[i+1];

c[i+1]=k;

13;

c[i]);

实验三:

函数

1.更加灵活的使用数组和指针作为函数参数;

2.更加灵活使用指针处理字符串。

1.字符串复制

输入一个长度不大于30的字符串,将此字符串中从第m个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。

要求用指针方法处理字符串。

2.插入字符串

从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。

注意,这两个字符串最长均可达到26个字符、最短均可为0个字符。

将字符串s2插入字符串s1中,生成一个新的字符串s。

插入方法为s2的第i个字符插入到原s1的第i个字符后,如果s2比s1(假定s1的长度为L1)长,则s2的第L1个字符开始到s2结尾的所有字符按在s2中的顺序放在新生成的字符串s之后。

用指针完成程序。

3.学生成绩管理系统

某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。

(1)计算每个学生的总分;

(2)按总分成绩由高到低排出成绩的名次;

(3)打印出名次表,包括名次、学生编号、各科分数、总分;

要求程序运行后先打印出一个菜单,提示用户选择:

成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的操作。

实验四:

结构体

1.更加灵活的使用数组作为函数参数;

2.初步掌握开发一个小型实用系统的基本方法;

3.初步掌握书写程序设计开发文档的能力。

程序一:

学生信息管理系统

编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求:

小组分工情况

小组分工情况统计表

班级

信息工程学院计算机科学与技术专业2012级软件工程(方向)班组

名称

项目组长

(本次项目小组组长)

组员

组员学号

工作简介

一需求分析

I设计一个学生成绩管理系统至少具有以下功能:

(1)菜单功能:

采用文本菜单界面。

(2)学生信息的建立。

(3)学生信息的增加。

(4)学生信息的删除。

(5)学生信息的修改。

(6)学生信息的查找。

II数据库结构

structstudent

{charnum[10];

charname[10];

charxibie[10];

charsex;

intage;

}st[30];

二总体设计

框架结构图(系统的功能结构图)

程序流程图:

(visio)

三、详细设计

(流程图!

四、程序源代码(参考答案)

1.用结构体数组完成

2.用结构体指针完成

1.#include"

string.h"

typedefstructnode

}st;

intn;

st*creslink()

inti;

sts[10];

请输入要录入的人数:

"

n);

for(i=0;

=n-1;

{printf("

请输入第%d名学生的学号,姓名,系别,年龄,性别:

%s%s%s%d%c"

s[i].num,s[i].name,s[i].xibie,&

s[i].age,&

s[i].sex);

returns;

intgetlen(sts[])

returnn;

insert(sts[],charnum[],charname[],charxibie[],intage,charsex)

{strcpy(s[n].num,num);

strcpy(s[n].name,name);

strcpy(s[n].xibie,xibie);

s[n].age=age;

s[n].sex=sex;

n++;

delete(sts[],charnum[])

{inti,j;

if(strcmp(s[i].num,num)==0)break;

for(j=i+1;

s[j-1]=s[j];

n--;

voidlist(sts[])

{inti;

学号\t姓名\t系别\t年龄\t性别\n"

%s\t%s\t%s\t%d\t%c\n"

s[i].num,s[i].name,s[i].xibie,s[i].age,s[i].sex);

intk,f,age;

charnum[10],name[10],xibie[10],sex;

st*s;

while

(1)

\n\n\t\t\t学生信息管理系统\n"

\t\t*************************************\n"

\t\t\t1.录入学生信息\n"

\t\t\t2.插入新学生信息\n"

\t\t\t3.删除学生信息\n"

\t\t\t4.输出学生信息\n"

\t\t\t5.输出学生总数\n"

\t\t\t6.退出\n"

请选择:

k);

switch(k)

{case1:

s=creslink();

break;

case2:

请输入新学生的学号,姓名,系别,年龄,性别:

num,name,xibie,&

age,&

sex);

insert(s,num,name,xibie,age,sex);

break;

case3:

请输入要删除的学生的学号:

%s"

num);

delete(s,num);

break;

case4:

list(s);

case5:

f=getlen(s);

学生总数为:

f);

case6:

return;

2.#include"

#definenull0

structnode*next;

}slink;

slink*creslink()

slink*head,*p,*s;

inti,n;

scanf("

if(n<

1)

returnnull;

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

head->

next=null;

=n;

s=(slink*)malloc(sizeof(slink));

i);

s->

num,s->

name,s->

xibie,&

s->

p->

next=s;

p=s;

returnhead;

intgetlen(slink*head)

slink*p;

intn;

p=head->

next;

n=0;

while(p!

=null)

n++;

p=p->

insert(slink*head,charnum[],charname[],charxibie[],intage,charsex)

slink*p,*q;

p=head;

while(p->

next!

=null)p=p->

q=(structnode*)malloc(sizeof(slink));

strcpy(q->

num,num);

name,name);

xibie,xibie);

q->

sex=sex;

age=age;

next=p->

next=q;

delete(slink*head,charnum[])

slink*p,*q;

=null&

strcmp(p->

next->

num,num)!

=0)

p=p->

q=p->

next=q->

free(q);

voidlist(slink*head)

slink*p;

while(p!

p->

num,p->

name,p->

xibie,p->

age,p->

slink*head;

head=creslink();

insert(head,num,name,xibie,age,sex);

delete(head,num);

list(head);

f=getlen(head);

实验五文件操作

1.初步了解C语言中文件操作的类型;

2.掌握文件的打开、关闭及读写的操作

3.能熟练进行字符及数据块的读写操作,为后续的课程设计打好基础。

从键盘上输入若干个学生的学号及考试成绩,将这些数据写入磁盘文件y.dat中。

(由学号等于0作终止标记)

{structstudent

{intnum;

floatscore;

};

structstudentstu;

FILE*fp;

fp=fopen("

y.dat"

"

w"

%d%f"

stu.num,&

stu.score);

while(stu.num!

{fprintf(fp,"

%d%f\n"

stu.num,stu.score);

fclose(fp);

程序2:

设有一文件cj.dat存放了50个人的成绩(英语、计算机、数学),存放格式为:

每人一行,成绩间由逗号分隔。

计算三门课平均成绩,统计个人平均成绩大于或等于90分的学生人数。

main()

{FILE*fp;

inti=0,num=0;

floatx,y,z,s1=0,s2=0,s3=0;

fp=fopen("

cj.txt"

r"

while(i<

=50)

{fscanf(fp,"

%f,%f,%f"

x,&

y,&

z);

s1=s1+x;

s2=s2+y;

s3=s3+z;

if((x+y+z)/3>

=90)

num=num+1;

i++;

分数高于90的人数为:

fclose(fp);

程序3:

统计上题cj.dat文件中每个学生的总成绩,并将原有数据和计算出的总分数存放在磁盘文件“stud”中。

{FILE*fp1,*fp2;

floatx,y,z;

fp1=fopen("

fp2=fopen("

stud.txt"

while(!

feof(fp1))

{fscanf(fp

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2