C语言程序设计实践实验题目.doc





《C语言程序设计实践实验题目.doc》由会员分享,可在线阅读,更多相关《C语言程序设计实践实验题目.doc(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验题目:循环结构程序设计实验目的:1.熟悉VC+6.0的运行环境,掌握C程序的执行方法;2.掌握三种基本数据类型、部分运算符号和常用函数;3.掌握三种循环控制语句及break和continue语句的使用方法;4.掌握循环结构的嵌套及正确控制计数型循环结构次数的方法。实验内容:程序1:搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次搬完,问男、女和小孩各若干?#include “stdio.h”main() int men,women,children; men=0; while(men=8) women=0; while(women=11) children=36-me
2、n-women; if(men*4+women*3+children/2= =36)&children%2= =0) printf(“men=%d,women=%d,children=%dn”,men,women,children); women+; men+; 程序2 打印形状为直角三角形的乘法口诀。#include stdio.h main() int i,j,result; for (i=1;i10;i+) for(j=1;ji;j+) result=i*j; printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/ printf(n);/*每一行后换
3、行*/ 程序3 求1000以内的所有素数。#include “stdio.h”main( ) int m,i;for(m=2;m=100;m+) for(i=2;im-1) printf(%5d,m); 程序4:计算和统计旅客运费程序 。由键盘输入旅客行李重量(w),按公式 :若( w50kg)f=1.5*50 + 2.8*(w-50) ( w50kg ) 计算运费,要求: (1)打印每位旅客的顺序号,行李重量,应付运费 ; (2)假定每天最多办理100人的行李托运手续或当w0时循环结束, 下班时打印出全天的运费总收入和办理的总人数。方法一(while结构) #include “stdio.h
4、”main( ) int num=0; float w,f,total=0; scanf(%f ,&w); while (w0&num100 ) if (w=50) f=1.5*w; else f=1.5*50+2.8*(w-50); num+; printf ( %d,%6.0f,%8.2fn,num,w,f); total+=f; scanf (%f,&w); printf (Customers=%d TotalIncome=%10.2fn,num,total);方法二(do-while结构)#include “stdio.h”main( ) int num=0; float w,f,to
5、tal=0; do scanf(%f ,&w); if (w=0) break; if (w=50) f=1.5*w; else f=1.5*50+2.8*(w-50); num+; printf ( %d %6.0f %8.2fn,num,w,f); total+=f; while (num0&num=100;num+) if (w=50) f=1.5*w; else f=1.5*50+2.8*(w-50); printf ( %d %6.0f %8.2fn,num,w,f); total+=f; scanf(%f,&w); printf (Customers=%d TotalIncome=
6、%10.2fn,num,total); 实 验 二:数组实验目的:1.更加灵活的使用一维数组和二维数组 2.把数组和指针结合使用实验内容:1.约瑟夫环问题由n个人围成一个首尾相连的圈报数。从第一个人开始,从1开始报数,报到3的人出圈,剩下的人继续从1开始报数,直到所有的人都出圈为止。求出所有人的出圈顺序。 #includemain()int a10; int n=8,i,k=0,j=1,len; len=n; i=0; /给数组赋值 for(i=0;i0) if(ak%n0) if(j%3=0) printf(%dn,ak%n);/找到要出圈的人,并把圈中人数减一 ,最后一个人才输出 ak%n
7、=-1; j=1; k+; len-; else/报数不是3 k+; j+; else/遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数 k+; 2.学生成绩统计与分析输入10名学生的英语、C语言、计算机文化基础成绩,统计每名学生三科成绩的平均分,分析三门课程的优秀率,85分以上为优秀。#include void main()int grade104;int i,j,average,egood,cgood,jgood;for(i=0;i10;i+)printf(请输入第%d个学生的英语、c语言、计算机n,i+1);for(j=0;j3;j+)scanf(%d, &gradeij )
8、;egood=cgood=jgood=0;for(i=0;i10;i+) /10个人average=0;for(j=0;j=85) if(j=0) egood+; if(j=1) cgood+; if(j=2) jgood+;gradei3=average/3;for(i=0;i10;i+)printf(第%d个学生的三科平均分为:%dn,i+1,gradei3);printf(英语成绩优秀的学生为%dn,egood);printf(C语言成绩优秀的学生为%dn,cgood);printf(计算机成绩优秀的学生为%dn,jgood);3.利用指针实现数组合并数组a:“1,7,9,11,13,1
9、5,17,19”; 数组b:“2,4,6,8,10”,两个数组合并为数组c,按升序排列。#includevoid main() int paixu (int c);int a8=1,7,9,11,13,15,17,19;int b5=2,3,6,8,10;int c13;int *p,*q,*s;for(p=a,s=c;p8+a;p+,s+)*s=*p;for(q=b;qb+5;q+,s+)*s=*q;paixu(c);paixu(int c)int i,j,k;for(j=0;j12;j+)for(i=0;ici+1) k=ci;ci=ci+1;ci+1=k;for(i=0;i13;i+)p
10、rintf(%dn,ci);实 验 三:函数实验目的:1.更加灵活的使用数组和指针作为函数参数;2.更加灵活使用指针处理字符串。实验内容:1.字符串复制输入一个长度不大于30的字符串,将此字符串中从第m个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针方法处理字符串。2.插入字符串从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。注意,这两个字符串最长均可达到26个字符、最短均可为0个字符。将字符串s2插入字符串s1中,生成一个新的字符串s。插入方法为s2的第i个字符插入到原s1的第i个字符后,如果s2比s1(假定s1的长度为L1)长,则s2的第L1个字符
11、开始到s2结尾的所有字符按在s2中的顺序放在新生成的字符串s之后。用指针完成程序。3.学生成绩管理系统某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。(1)计算每个学生的总分;(2)按总分成绩由高到低排出成绩的名次;(3)打印出名次表,包括名次、学生编号、各科分数、总分;要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的操作。 实 验 四:结构体实验目的:1.更加灵活的使用数组作为函数参数;2.初步掌握开发一个小型实用系统的基本方法;3.初步掌握书写程序设计开发文档的能力。实验内容:程序一:学生信息管理
12、系统编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求:小组分工情况小组分工情况统计表班级信息工程学院 计算机科学与技术专业 2012级 软件工程(方向) 班 组名称学生信息管理系统项目组长 (本次项目小组组长)组员组员学号工作简介一 需求分析 I设计一个学生成绩管理系统至少具有以下功能:(1)菜单功能:采用文本菜单界面。(2)学生信息的建立。(3)学生信息的增加。(4)学生信息的删除。(5)学生信息的修改。(6)学生信息的查找。II数据库结构struct student char num10; char name10; char xibie10; char se
13、x; int age; st30;二 总体设计框架结构图(系统的功能结构图)学生成绩管理系统输入增加.退出程序流程图: (visio)退出结束开始输出菜单根据菜单输入n的值选择程序输入增加删除修改查找三、详细设计(流程图!)四、程序源代码(参考答案)1.用结构体数组完成2.用结构体指针完成1. #include stdio.h#include string.htypedef struct node char num10; char name10; char xibie10; char sex; int age; st;int n;st *creslink() int i; st s10; pr
14、intf(请输入要录入的人数:); scanf(%d,&n); for (i=0;i=n-1;i+) printf(请输入第%d名学生的学号,姓名,系别,年龄,性别:,i+1); scanf(%s%s%s%d%c,si.num,si.name,si.xibie,&si.age,&si.sex); return s;int getlen(st s) return n;insert(st s,char num,char name,char xibie,int age,char sex) strcpy(sn.num,num); strcpy(sn.name,name); strcpy(sn.xibi
15、e,xibie); sn.age=age; sn.sex=sex; n+; delete(st s,char num)int i,j; for(i=0;in;i+) if(strcmp(si.num,num)=0)break; for(j=i+1;jn;j+)sj-1=sj; n-;void list(st s) int i; printf(学号t姓名t系别t年龄t性别n); for(i=0;in;i+) printf(%st%st%st%dt%cn,si.num,si.name,si.xibie,si.age,si.sex); void main() int k,f,age; char nu
16、m10,name10,xibie10,sex; st *s; while(1) printf(nnttt学生信息管理系统n); printf(tt*n); printf(ttt1.录入学生信息n); printf(ttt2.插入新学生信息n); printf(ttt3.删除学生信息n); printf(ttt4.输出学生信息n); printf(ttt5.输出学生总数n); printf(ttt6.退出n); printf(tt*n); printf(请选择:); scanf(%d,&k); switch(k) case 1:s=creslink();break; case 2: printf
17、(请输入新学生的学号,姓名,系别,年龄,性别:); scanf(%s%s%s%d%c,num,name,xibie,&age,&sex); insert(s,num,name,xibie,age,sex); break; case 3:printf(请输入要删除的学生的学号:); scanf(%s,num); delete(s,num); break; case 4:list(s);break; case 5:f=getlen(s);printf(学生总数为:%d,f);break; case 6:return; 2.#include stdio.h#include string.h#defi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实践 实验 题目

限制150内