高级语言程序设计实习报告.doc
- 文档编号:407827
- 上传时间:2022-10-09
- 格式:DOC
- 页数:14
- 大小:50.50KB
高级语言程序设计实习报告.doc
《高级语言程序设计实习报告.doc》由会员分享,可在线阅读,更多相关《高级语言程序设计实习报告.doc(14页珍藏版)》请在冰豆网上搜索。
《高级语言程序设计》实习报告
一、题目:
编写程序,用函数实现通过指针连接两个字符串。
1.需求说明
本实习题要求输入两个字符串,并将其中一个字符串通过指针连接到另一个字符串。
2.算法设计
(1)编写一个连接函数cat_string
a.先找到from字符串的末尾,以’\0’为标记;
b.将to字符串中的元素一个个的移到from字符串的末尾;
c.最后在to字符串末尾加上’\0’。
(2)编写主函数
a.先定义两个字符型指针变量a,b,和两个字符型数组str1,str2;使a指向数组str1,使b指向str2;
b.动态输入两个字符串,并将其打印出来;
c.调用cat_string函数,将字符串a连接到字符串b的末尾;
d.最后将结果打印出来。
(3)结束
3.程序清单:
#include
voidcat_string(char*from,char*to)
{
while(*to!
='\0')
to++;
for(;*from!
='\0';from++,to++)
*to=*from;
*to='\0';
}
main()
{
char*a,*b,str1[50],str2[100];
a=str1;
b=str2;
scanf("%s%s",a,b);
printf("string1=%s\nstring2=%s\n",a,b);
cat_string(a,b);
printf("\nsrting=%s\n",b);
}
4.运行结果分析
输入:
friend
boy
输出结果:
string1=friend
string2=boy
string=boyfriend
二、题目:
编写程序完成统计学生成绩。
功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对成绩前70%的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)。
1.需求说明
本实习题要求输入学生的姓名和成绩,将成绩从高到低排列,并将其打印输出,对成绩前70%的学生定义为合格,而后30%的学生定义为不合格。
也就是说,若有学生10名,则排名前7位的学生为合格,后3位为不合格。
2.算法设计
(1)先定义结构体student,其中包括学号num、姓名name、成绩score;
(2)输入所有学生信息;
(3)对学生成绩进行排序,用气泡排序法,从高到低排列。
成绩排序时,其它信息的顺序也做相应的调整。
(4)对成绩前70%的学生定为合格PASS;而后30%的学生定为不合格FALL;
(5)将成绩从高到低打印出来;
(6)结束。
3.程序清单:
#include
#defineSIZE10
structstudent
{intnum;
charname[10];
intscore;
}stu[SIZE],st;
main()
{inti,j;
charp[]="PASS",f[]="FALL";
for(i=0;i scanf("%d%s%d",&stu[i].num,stu[i].name,&stu[i].score); for(j=0;j<=SIZE-2;j++) for(i=0;i<=SIZE-1-j;i++) if(stu[i].score {st=stu[i];stu[i]=stu[i+1];stu[i+1]=st;} printf("numnamescoreresult\n"); for(i=0;i if(i printf("%2d%10s%5d%8s\n",stu[i].num,stu[i].name,stu[i].score,p); else printf("%2d%10s%5d%8s\n",stu[i].num,stu[i].name,stu[i].score,f); } 4.运行结果分析 输入: 1Li86 2Fun79 3Zhang81 4Wang90 5Min97 6Lin89 7Tan69 8Ling70 9Xi57 10Xu82 输出结果: numnamescoreresult 5Min97PASS 4Wang90PASS 6Lin89PASS 1Li86PASS 10Xu82PASS 3Zhang81PASS 2Fun79PASS 8Ling70FALL 7Tan69FALL 9Xi57FALL 三、题目: 从键盘上输入3个学生的信息,将它们存入文件student;然后再从文件中读出数据,显示在屏幕上。 1.需求说明 本实习题要求输入3个学生的信息,可以包括学号,姓名,年龄,性别,成绩,家庭住址等信息,将它们存入文件student;然后再从文件中读出数据,并将其显示在屏幕上。 2.算法设计 (1)先定义结构体student,其中包括学号num,姓名name,性别sex,年龄age,成绩score,家庭住址addr; (2)编写保存函数save a.先将文件打开; b.若(fp=fopen(“student”,”wb”))==NULL,则说明文件无法打开;反之文件能打开; c.在打开的文件中一一将信息写进去; d.最后,将文件student关闭。 (3)编写显示函数display a.先将文件打开; b.若(fp=fopen(“student”,”wb”))==NULL,则说明文件无法打开;反之文件能打开; c.从打开的文件中一一将信息读出,并将其显示在屏幕上; d.最后,将文件关闭。 (7)编写主函数 a.输入3个学生的所有信息; b.调用save()函数; c.调用display()函数; (5)结束。 3.程序清单: #include #defineSIZE3 structstudent {intnum; charname[15]; charsex[2]; intage; intscore; charaddr[30]; }stu[SIZE]; voidsave() {FILE*fp; inti; if((fp=fopen("student","wb"))==NULL) {printf("cannotopenfile\n"); return; } for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } voiddisplay() {FILE*fp; inti; if((fp=fopen("student","rb"))==NULL) {printf("cannotopenfile\n"); return; } printf("numnamesexagescoreaddr\n"); for(i=0;i {fread(&stu[i],sizeof(structstudent),1,fp); printf("%3d%-15s%-2s%3d%5d%-30s\n",stu[i].num,stu[i].name,stu[i].sex, stu[i].age,stu[i].score,stu[i].addr); } fclose(fp); } main() {inti; printf("Pleaseinputstudents'message: \n"); printf("num,name,sex,age,score,addr\n"); for(i=0;i scanf("%d%s%s%d%d%s",&stu[i].num,stu[i].name,stu[i].sex,&stu[i].age, &stu[i].score,stu[i].addr); printf("\n"); save(); display(); } 4.运行结果分析 Pleaseinputstudents’message: num,name,sex,age,score,addr 1ZhangFangF1996room_101 2WangMingM2086room_102 3XiaoDanF1981room_103 numnamesexagescoreaddr 1ZhangFangF1996room_101 2WangMingM2086room_102 3XiaoDanF1981room_103 四、题目: 编程解决百钱百鸡问题: 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”: 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何? 1.需求说明 本实习题要求解决百钱百鸡问题。 一只公鸡值5元,一只母鸡值3元,三只小鸡值1元。 如果用100元买100只鸡,公鸡,母鸡,小鸡各多少只? 2.算法设计 设公鸡、母鸡、小鸡各有x,y,z,题意规定用100元买100只鸡。 假定100元全部买公鸡的话,则最多可以买20只;若100元全部买母鸡,则最多可买母鸡33只,即x的值在0~20之间,y的取值在0~33之间。 根据题意可得到下面的等式: 5x+3y+z/3=100 x+y+z=100 所以此问题可归结为求这个不定方程的整数解。 (1)先定义3个变量x,y,z; (2)用外层循环控制公鸡的数量,x的范围在0~20之间; (3)用内层循环控制母鸡的数量,y的范围在0~33之间; (8)在内外层循环的控制下,小鸡数z的值受x,y的值的制约,z=100-x-y; (9)验证取z值的合理性及得到一组解的合理性,即同时满足z%3==0和5*x+3*y+z/3==100; (10)打印出所有合理的结果; (11)结束。 3.程序清单: #include main() {intx,y,z; for(x=0;x<=20;x++) for(y=0;y<=33;y++) {z=100-x-y; if(z%3==0&&5*x+3*y+z/3==100) printf("cock=%2dhen=%2dchicken=%2d\n",x,y,z); } } 4.运行结果分析 cock=0hen=25chicken=75 cock=4hen=18chicken=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 实习 报告