C语言程序设计实践实验题目Word版Word格式文档下载.docx
《C语言程序设计实践实验题目Word版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实践实验题目Word版Word格式文档下载.docx(59页珍藏版)》请在冰豆网上搜索。
men++;
}
程序2打印形状为直角三角形的乘法口诀。
#include"
stdio.h"
main()
{inti,j,result;
for(i=1;
i<
10;
i++)
{for(j=1;
j<
i;
j++)
{
result=i*j;
printf("
%d*%d=%-3d"
i,j,result);
/*-3d表示左对齐,占3位*/
}
\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"
typed