评语: C 语言课程设计报告 班 级: 电气1004 学 号: ********* * 名: *** 指导教师: ** 2 0 1 1 年 0 7 月 1 8 日 自动化与电气工程学院 C 语言课程设计 - 1 - 1 基本题目 1 .1 题目 1.1 题目 有17 个人围成一圈,从0 号的人开始报数,凡报到3 的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号。 1.2 题目分析 创建一个指针变量,指针变量中的初值为 0 至 16。然后通过 for 循环将指针变量中所指的值是三的倍数的变量赋值为 0,最后找出所要找的值。 1.3 程序 #include #define N 17 int main() { int i,j,k,a[N+1],*p; for(i=0,p=a;p<=a+N;i++,p++) *p=i; p=a+1; k=N; for(i=0,j=1;k!=1;j++) { if(p>(a+N)) p=a+1; if(*p!=0) i++; if(i%3==0&&i!=0) { *p=0;i=0;k--; } p++; } for(i=1;i<=N;i++) if(a[i]!=0) printf("最后留下的是%d\n",a[i]); return 0; } 1.4 流程图 自动化与电气工程学院 C 语言课程设计 - 2 - 图1.1 基本题目的流程图 Y Y N Y N Y Y Y N 开始 输出最后留下的值 i=0 p <=a+N *p =i, i++, p ++ p =a+N i=0,p =a N=17 p >a+N N k !=1 *p !=0 i++ i%3!=0 *p =0,i=0,k -- p ++,j++ p =a+1, i=0, j=0 p ++,j++ N i<=N N i++ 结束 自动化与电气工程学院 C 语言课程设计 - 3 - 1.5 程序的运行结果 基本体运行结果如图1.2 所示: 图1.2 基本题目运行结果 2 改错题目 2.1 改正后程序 #include int main() { int x=1; int y; y=x++; printf("y=%d ",y); int z; z=++x; printf("z=%d\n",z) return 0; } 2.2 程序运行结果 程序完成的功能:用x 的初始值算出y 与z 的值。 改正后的运行结果如图2.1 所示: 自动化与电气工程学院 C 语言课程设计 - 4 - 图2.1 改正后的运行结果 3 .综合题目 3.1 题目 班级成绩管理系统,对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。 3.2 程序的主要功能 本程序实现对一个班学生某几门课程的录入,成绩的显示、成绩的保存、对成绩进行排、对成绩进行修改、对成绩进行统计(包括每门课程的最高分、平均分、超过每门平均分的人数等),运行程序后退出程序。 3.3...