c语言大作业非常经典

合集下载

完整版C语言100个经典题目

完整版C语言100个经典题目

完整版C语言100个经典题目在学习和掌握C语言编程技巧的过程中,解决各种经典题目是非常重要的。

下面是一份C语言的100个经典题目,帮助你提高编程能力和理解C语言的核心概念。

1. 编写一个程序,输出"Hello, World!"。

2. 编写一个程序,从键盘输入两个整数,然后输出它们的和。

3. 编写一个程序,从键盘输入两个整数,然后交换它们的值。

4. 编写一个程序,输出1到100之间所有的奇数。

5. 编写一个程序,输出1到100之间所有能被3整除的数。

6. 编写一个程序,判断一个年份是否为闰年。

7. 编写一个程序,将一个字符串逆序输出。

8. 编写一个程序,求出一个整数的阶乘。

9. 编写一个程序,判断一个数是否为素数。

10. 编写一个程序,输入一个字符串,然后统计其中的字母、数字和空格的个数。

11. 编写一个程序,将一个字符串转换为大写字母。

12. 编写一个程序,从键盘输入一个字符串,然后去除其中的重复字符。

13. 编写一个程序,将一个字符串按照指定分隔符进行拆分,并输出拆分后的结果。

14. 编写一个程序,将一个字符串中的所有单词首字母大写。

15. 编写一个程序,找出一个整数数组中的最大值。

16. 编写一个程序,找出一个整数数组中的最小值。

17. 编写一个程序,计算一个整数数组中所有元素的平均值。

18. 编写一个程序,对一个整数数组进行冒泡排序。

19. 编写一个程序,对一个整数数组进行选择排序。

20. 编写一个程序,对一个整数数组进行插入排序。

21. 编写一个程序,对一个整数数组进行快速排序。

22. 编写一个程序,计算斐波那契数列的第n个数字。

23. 编写一个程序,计算一个整数的平方根。

24. 编写一个程序,判断一个字符串是否为回文字符串。

25. 编写一个程序,输入一个正整数n,然后输出n行杨辉三角。

26. 编写一个程序,将一个二维整数数组进行转置。

27. 编写一个程序,将一个二维整数数组进行矩阵乘法运算。

c语言经典题

c语言经典题

以下是一些经典的C语言题目:
1. 计算斐波那契数列的第n项
2. 实现冒泡排序
3. 实现选择排序
4. 实现插入排序
5. 实现快速排序
6. 实现归并排序
7. 实现二分查找
8. 实现字符串反转
9. 实现字符串连接
10. 实现字符串比较
11. 实现字符串分割
12. 实现链表操作(插入、删除、遍历等)
13. 实现二叉树操作(插入、查找、遍历等)
14. 实现队列操作(入队、出队、查看队首等)
15. 实现栈操作(入栈、出栈、查看栈顶等)
16. 实现哈希表操作(插入、查找、删除等)
17. 实现矩阵乘法
18. 实现矩阵转置
19. 实现矩阵求逆
20. 实现链表反转
21. 实现链表合并
22. 实现链表排序
23. 实现链表查找
24. 实现链表删除
25. 实现链表插入
26. 实现字符串匹配算法(KMP算法)
27. 实现回文判断算法(Manacher算法)
28. 实现字符串分割算法(Strtok算法)
29. 实现字符串转换算法(Base64算法)
30. 实现字符串加密算法(Caesar算法)。

C语言经典作业题

C语言经典作业题

1若定义如下变量和数组:int i;*pstatic int a[10] ={1,2,3,4,5,6,7,8,9,10};p=a;则执行下面的语句输出结果是【】。

for(i=3;i<6;i++) printf(“%d”,*(p+i));A) 3 4 5 6 B) 1 2 3 C) 4 5 6 D)3 6 9 2若定义如下变量和数组:int i;static int x[3][3]={1,2,3,4,5,6,7,8,9};则执行下面的语句输出结果是是【】。

for(i=0;i<3;i++)(printf(“%d”,x[i][i]);A) 3 5 7 B) 1 4 7 C) 1 5 9 D)3 6 93若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10}则取元素值6的表达式是【】。

A) *p+6B) *(p+6)C) *p+=5D)p+54下列选项中,不正确的赋值语句是【】A)++j;B) n1=(n2=(n3=0));C) k=i==j;D)a=b+c=15下面程序运行时的输出结果是【】main(){int a=5;printf("\na=%d", ++a+2);}A) a=6 B) 8 C) a=5 D) a= 86下面程序的循环结束后i的值是【】main(){int i;for(i=0;i<10;i++) ;printf("\n%d", i);} ;A) 11 B) 9 C)10 D) 287C语句printf(“y=%d”,(9^2*8+3) % 3*4);运行输出的结果是【】.A) y=0B) y=3C) 8D)y=88判断字符型变量s1的值在…0‟到…9‟之间,正确的表达式是【】A)(s1>=‟0‟) & (s1<=‟9‟)B)(s1>=‟0‟) and (s1<=‟9‟)C)(…0‟<=s1<=‟9‟)D)(s1<=‟9‟) && (s1>=‟0‟)9根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为【】main(){char ch1,ch2,ch3;输入语句printf("%c%c%c",ch1,ch2,ch3);}输入形式:A B C输出形式:A BA) scanf("%c%c%c",&ch1,&ch2,&ch3);B) scanf("%c,%c,%c",&ch1,&ch2,&ch3);C) scanf("%c %c %c ",&ch1,&ch2,&ch3);D) scanf("%c%c",&ch1,&ch2,&ch3);10若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是【】A) scanf("%d%lx,%le",&x,&y,&z);B) scanf("%2d*%d,%lf",&x,&y,&z);C) scanf("%x%*d,%o",&x,&y);D)scanf("%x%o%6.2f",&x,&y,&z);1.下面程序输出的结果是【】。

C语言大作业

C语言大作业

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <memory.h>char username[10];struct course{intcoursenum;char coursename[20];int mark;int chosen;int completed;intfinalscore;}courses[18]={{0,"English_1",3,0,0},{1,"English_2",3,0,0},{2,"Chinese_1",3,0,0}, {3,"Chinese_2",3,0,0},{4,"Math_1",4,0,0},{5,"Math_2",4,0,0},{6,"Physics_1",2,0,0},{7,"Physics_2",2,0,0},{8,"Chemistry_1",2,0,0},{9,"Chemistry_2",2,0,0},{10,"History",2,0,0},{11,"Biology",2,0,0}, {12,"Geography",2,0,0},{13,"Politics",2,0,0},{14,"Musuc",1,0,0},{15,"Art",1,0,0},{16,"PE_1",1,0,0},{17,"PE_2",1,0,0}};struct teacher{char subject[20];char teachername[20];int days[4];int sections[4];}teachers[20][3]={ {{"English_1","Albert",{1,3,5},{1,2,3}},{"English_1","Luke",{1,2,5},{2,2,4}},{" English_1","Thomas",{2,3,4},{1,2,1}}},{{"English_2","Albert",{1,3,5},{1,2,3}},{"English_2","Luke",{1,2,5},{2,2,4}},{"English_2","Thomas",{ 2,3,4},{1,2,1}}},{{"Chinese_1","Tyler",{1,2,4},{2,2,2}},{"Chinese_1","Van",{2,3,4},{3,1,3}},{"Chinese_1","Reed",{1,3 ,4},{1,3,2}}},{{"Chinese_2","Tyler",{1,2,4},{2,2,2}},{"Chinese_2","Van",{2,3,4},{3,1,3}},{"Chinese_2","Reed",{1,3 ,4},{1,3,2}}},{{"Math_1","Paul",{2,3,4,5},{1,3,1,1}},{"Math_1","Robert",{1,3,4,5},{1,2,1,2}},{"Math_1","Tom",{1 ,2,3,4},{2,3,1,3}}},{{"Math_2","Paul",{2,3,4,5},{1,3,1,1}},{"Math_2","Robert",{1,3,4,5},{1,2,1,2}},{"Math_2","Tom",{1 ,2,3,4},{2,3,1,3}}},{{"Physics_1","Lee",{2,5},{4,2}},{"Physics_1","Martin",{1,5},{4,3}},{"Physics_1","Roy",{2,5},{4,2}}}, {{"Physics_2","Lee",{2,5},{4,2}},{"Physics_2","Martin",{1,5},{4,3}},{"Physics_2","Roy",{2,5},{4,2}}}, {{"Chemistry_1","Hunk",{1,3},{3,1}},{"Chemistry_1","James",{2,4},{1,2}},{"Chemistry_1","Tony",{1 ,5},{3,1}}},{{"Chemistry_1","Hunk",{1,3},{3,1}},{"Chemistry_2","James",{2,4},{1,2}},{"Chemistry_2","Tony",{1 ,5},{3,1}}},{{"History","Sean",{2,5},{3,4}},{"History","Oscar",{2,4},{4,4}},{"History","Neil",{2,5},{2,4}}},{{"Biology","Keith",{2,5},{3,4}},{"Biology","Marks",{2,4},{4,4}},{"Biology","John",{2,5},{2,4}}}, {{"Geography","Glen",{1,3},{4,4}},{"Geography","Jimmy",{1,5},{3,1}},{"Geography","Lori",{1,5},{4, 3}}},{{"Politics","Jason",{1,3},{4,4}},{"Politics","Lance",{1,5},{3,1}},{"Politics","Oliver",{1,5},{4,3}}}, {{"Musuc","Henry",{4},{4}},{"Musuc","Jack",{3},{4}},{"Musuc","Kevin",{3},{4}}}, {{"Art","Ken",{4},{4}},{"Art","Marcy",{3},{4}},{"Art","Randy",{3},{4}}},{{"PE_1","Vern",{4},{3}},{"PE_1","Terry",{3},{3}},{"PE_1","Ryan",{4},{4}}},{{"PE_2","Vern",{4},{3}},{"PE_2","Terry",{3},{3}},{"PE_2","Ryan",{4},{4}}},};struct table{char sub[20];char tea[20];int empty;}tables[6][5];void curriculum(){inti,j;printf("\tMon\t\tTue\t\tWen\t\tThu\t\tFri\n");for (i=1;i<=4;++i){printf("%d\t",i);for (j=1;j<=5;++j){if (strlen(tables[j][i].sub)>=8)printf("\b%s\t",tables[j][i].sub);else printf("\b%s\t\t",tables[j][i].sub);}printf("\n\t");for (j=1;j<=5;++j){printf("\b%s\t\t",tables[j][i].tea);}printf("\n");}}void chooseteacher(int n){inti,j,m,k=0;printf("teachers of %s:\n",courses[n].coursename);for (i=0;i<3;++i){printf("%d %s days\\sections:",i+1,teachers[n][i].teachername);for (j=0;j<courses[n].mark;++j){printf("%d\\%d ",teachers[n][i].days[j],teachers[n][i].sections[j]);}printf("\n");}printf("Please choose.Press 999 to watch current curriculum.Press 0 to be back.\n");while (scanf("%d",&m)&&m){if (m==999)curriculum();else{if (m>=1&&m<=3){m=m-1;for (i=0;i<courses[n].mark;++i){if (tables[teachers[n][m].days[i]][teachers[n][m].sections[i]].empty==1){printf("Time crash,please choose again!\n");k=1;break;}}if (k==0){for (i=0;i<courses[n].mark;++i){strcpy(tables[teachers[n][m].days[i]][teachers[n][m].sections[i]].sub,courses[n].coursename);strcpy(tables[teachers[n][m].days[i]][teachers[n][m].sections[i]].tea,teachers[n][m].teachername) ;tables[teachers[n][m].days[i]][teachers[n][m].sections[i]].empty=1;}printf("You have chosen Teacher %s's %s lesson successfully!\n",teachers[n][m].teachername,courses[n].coursename);courses[n].chosen=1;break;}}else printf("Error,Please choose again.\n");}k=0;}}void choosecourse(){inti,n,j;printf("Please choose course.Press 999 to watch current curriculum.Press 0 to end choosing.\n"); printf("num\tname\t\tmark\n");for (i=0;i<18;++i){j=strlen(courses[i].coursename);if (courses[i].completed==0){if(j<8)printf("%d\t%s\t\t%d\n",courses[i].coursenum+1,courses[i].coursename,courses[i].mark);elseprintf("%d\t%s\t%d\n",courses[i].coursenum+1,courses[i].coursename,courses[i].mark);}}while (scanf("%d",&n)){if (n==0)break;if (n==999){curriculum();continue;}if (n>=1&&n<=18){if (n==2||n==4||n==6||n==8||n==10||n==18){if (courses[n-2].chosen==0){printf("You haven't chosen %s,please choose %s first.\n",courses[n-2].coursename,courses[n-2].coursename);continue;}}if (courses[n-1].chosen==1){printf("You have chosen it!choose again or exit.\n");continue;}else{chooseteacher(n-1);printf("Please choose course continue.\n");}}else printf("Error,please choose again\n");}}void deletecourse(){intn,i,j;printf("Please input the number of the course you want to delete.\n");scanf("%d",&n);if (courses[n-1].chosen==0){printf("You haven't chosen it.\n");}else{if (courses[n-1].completed==1){printf("You have completed it and can't delete it.\n");}else{courses[n-1].chosen=0;for (i=1;i<=5;++i){for (j=1;j<=4;++j){if (strcmp(tables[i][j].sub,courses[n-1].coursename)==0){strcpy(tables[i][j].sub,"none");strcpy(tables[i][j].tea,"none");tables[i][j].empty=0;}}}printf("You have delete the course %s.",courses[n-1].coursename);}}}void procompleted(){int i;printf("More completed:\n");for (i=0;i<18;++i){if (courses[i].completed==1){printf("%d %s\t\tcompleted!\n",i+1,courses[i].coursename);}}printf("Need to take:\n");for (i=0;i<18;++i){if (courses[i].completed==0){printf("%d %s\t\tNot completed!\n",i+1,courses[i].coursename);}}}void coursemanage(){int n;while (1){printf("Please choose.\n");printf("0 exit.\n1 Choose course.\n2 Watch current curriculum.\n3 Delete course.\n4 Watch program completion.\n");scanf("%d",&n);if (0<=n&&n<=4){if (n==1)choosecourse();if (n==2)curriculum();if (n==3)deletecourse();if (n==4)procompleted();if (n==0)return;}else{printf("Error,please choose again.\n");}}}void givescore(){inti,m;for (i=0;i<18;++i){if (courses[i].chosen==1&&courses[i].completed==0){printf("Give the scores of %s:",courses[i].coursename);while (scanf("%d",&m)){if (m<0||m>100)printf("Error,give again:");else break;}courses[i].finalscore=m;if (m>=60)courses[i].completed=1;if (m<60)courses[i].chosen=0;}}}void acs(){FILE *fp;int i;char p;printf("Printfscores:y\\n?\n");getchar();while (scanf("%c",&p)){if (p!='n'&&p!='y'){printf("Error,input again.\n");}else break;}if (p=='y')fp=fopen("f:\\acs.txt","w");for (i=0;i<18;++i){if (courses[i].finalscore>=0){printf("%s :%d\n",courses[i].coursename,courses[i].finalscore);if (p=='y'){fprintf(fp,"%s :%d\n",courses[i].coursename,courses[i].finalscore);}}}if (p=='y')fclose(fp);}void pcs(){FILE *fp;char p;printf("Printfscores:y\\n?\n");getchar();while (scanf("%c",&p)){if (p!='n'&&p!='y'){printf("Error,input again.\n");}else break;}if (p=='y')fp=fopen("f:\\pcs.txt","w");for (i=0;i<18;++i){if (courses[i].finalscore>=60){printf("%s :%d\n",courses[i].coursename,courses[i].finalscore);if (p=='y'){fprintf(fp,"%s :%d\n",courses[i].coursename,courses[i].finalscore);}}}if (p=='y')fclose(fp);}void aacs(){FILE *fp;int i;char p;double ave,sums=0,summ=0;printf("Printfscores:y\\n?\n");getchar();while (scanf("%c",&p)){if (p!='n'&&p!='y'){printf("Error,input again.\n");}else break;}if (p=='y')fp=fopen("f:\\aacs.txt","w");for (i=0;i<18;++i)if (courses[i].finalscore>=0){sums+=courses[i].finalscore*courses[i].mark;summ+=courses[i].mark;}}ave=sums/summ;printf("The average scores of all the courses you have taken is %.2lf.\n",ave);if (p=='y'){fprintf(fp,"The average scores of all the courses you have taken is %.2lf.\n",ave);}if (p=='y')fclose(fp);}void pacs(){FILE *fp;int i;char p;double ave,sums=0,summ=0;printf("Printfscores:y\\n?\n");getchar();while (scanf("%c",&p)){if (p!='n'&&p!='y'){printf("Error,input again.\n");}else break;}if (p=='y')fp=fopen("f:\\pacs.txt","w");for (i=0;i<18;++i){if (courses[i].finalscore>=60){sums+=courses[i].finalscore*courses[i].mark;summ+=courses[i].mark;}}ave=sums/summ;printf("The average scores of all the courses you have passed is %.2lf.\n",ave);if (p=='y'){fprintf(fp,"The average scores of all the courses you have passed is %.2lf.\n",ave);}if (p=='y')fclose(fp);}void upcs(){FILE *fp;int i;char p;printf("Printfscores:y\\n?\n");getchar();while (scanf("%c",&p)){if (p!='n'&&p!='y'){printf("Error,input again.\n");}else break;}if (p=='y')fp=fopen("f:\\upcs.txt","w");for (i=0;i<18;++i){if (courses[i].finalscore>=0&&courses[i].finalscore<60){printf("%s :%d\n",courses[i].coursename,courses[i].finalscore);if (p=='y'){fprintf(fp,"%s :%d\n",courses[i].coursename,courses[i].finalscore);}}}if (p=='y')fclose(fp);}void scorequery(){int n;while (1){printf("Please choose :\n");printf("1 Watch all the scores of all the courses you have taken.\n");printf("2 Watch all the scores of all the courses you have passed.\n");printf("3 Watch the average scores of all the courses you have taken.\n");printf("4 Watch the average scores of all the courses you have passed.\n"); printf("5 Watch all the scores of all the courses you haven't passed.\n");printf("0 exit.\n");scanf("%d",&n);if (n<0||n>5){printf("Error,please choose again.\n");continue;}else{if (n==0)return ;if (n==1)acs();if (n==2)pcs();if (n==3)aacs();if (n==4)pacs();if (n==5)upcs();}}}int main(){intn,i,j,t=0;for (i=0;i<18;++i){courses[i].finalscore=-1;}printf("Welcome to ZC Educational Administration System\n");printf("Please input your name:\n");scanf("%s",username);printf("Hello %s!\nPlease choose.\n",username);while (1){t++;printf("Term %d\n",t);if (t==5){printf("Sorry,Youdid't completed all the courses,and can't graduate.\n");}for (i=0;i<18;++i){if (courses[i].completed==1)continue;else break;}if (i==18){printf("Congratulation!You have passed all the courses\n");break;}printf("1 Course management.\n2 Score query.\n");for (i=0;i<=5;++i) for (j=0;j<=4;j++){strcpy(tables[i][j].sub,"None");strcpy(tables[i][j].tea,"None");tables[i][j].empty=0;}scanf("%d",&n);if (n==0)break;if (n==1){coursemanage();printf(">>>>>>>>>>>>>>>take classes>>>>>>>>>>>>>>>>>>>>>>>>>>\n");printf("Please give scores of the courses that the student %s have chosen this term.\n",username);givescore();}if (n==2)scorequery();if (n<0||n>2){printf("Error,please choose again.\n");}}return 0;}。

c语言经典题目100题

c语言经典题目100题

1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。

万年历c语言大作业

万年历c语言大作业

万年历c语言大作业C大作业万年历#include "stdio.h"#include#includeint dayofyear[2]={365,366};intdayofmonth[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}};//是否是瑞年int isleapyear(int year){if (0==year%100 && 0==year%400 || 0!=year%100 && 0==year%4) return 1;elsereturn 0;}//公元一月一号到公元某年某月的总天数int alldays(int y,int m){int a,b,c=0;for (a=m;a>1;a--)c=c+dayofmonth[isleapyear(y)][a-2];for (b=1;b<y;b++)< p="">c=c+dayofyear[isleapyear(b)];return c;}//公元一月一号到公元前某年某月的总天数int days(int y,int m){int a,b,c=0;for (a=m;a<=12;a++)c=c+dayofmonth[isleapyear(y)][a];for (b=y+1;b<0;b++)c=c+dayofyear[isleapyear(b)];return c;}//输出到屏幕void outputtoscreen(int year,int month,int i,int l){int j,k;printf("****第%d年***第%d月****\",year,month);printf(" 日一二三四五六\");if (l==6){for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++) {printf("%4d",k);if ((i+k+1)%7==0)printf("\");}}else{for (j=0;j<l+1;j++)< p="">printf(" ");for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++) {printf("%4d",k);if ((i+k+1)%7==0)printf("\");}}printf("\\");}//输出到文件void outputtofile(FILE *fp,int year,int month,int i,int l) {int j,k;fprintf(fp,"****第%d年***第%d月****\",year,month); fprintf(fp,"日\一\二\三\四\五\六\");if (l==6){for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++) {fprintf(fp,"%d\",k);if ((i+k+1)%7==0)fprintf(fp,"\");}}else{for (j=0;j<l+1;j++)< p="">fprintf(fp,"\");for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++) {fprintf(fp,"%d\",k);if ((i+k+1)%7==0)fprintf(fp,"\");}}fprintf(fp,"\\");}//查询一个月日期int onemonth(){FILE *fp;int i,l;int choice;int year,month;system("cls");fp=fopen("d:\\\\onemonth.txt","w");printf("\");printf("\请输入要查询的年份和月份:\");scanf("%d%d",&year,&month);if (year>0)i=alldays(year,month);else if (year<0)i=days(year,month);else{printf("error\");return (0);}l=i%7;outputtoscreen(year,month,i,l); //调用输出到屏幕函数printf("\请选择是不是要输出到文本:\");printf("1: 是!\");printf("2: 否!\");scanf("%d",&choice);if(choice==1) //输入到文件{outputtofile(fp,year,month,i,l); //调用输出到文件函数} elsereturn (0);fclose(fp);getch();}//查询一年的日期int oneyear(){FILE *fp;int i,l;int year,month;int choice;system("cls");fp=fopen("d:\\\\oneyear.txt","w");printf("\请输入要查询的年份:\");scanf("%d",&year);for (month=1;month<13;month++){if (year>0)i=alldays(year,month);else if (year<0)i=days(year,month);else{printf("error\");return (0);}l=i%7;outputtoscreen(year,month,i,l); //调用输出到屏幕函数} printf("\\");printf("\请选择是不是要输出到文本:\");printf("1: 是!\");printf("2: 否!\");scanf("%d",&choice);if (choice==1) //输入到文件{for (month=1;month<13;month++){if (year>0)i=alldays(year,month);else if (year<0)i=days(year,month);else{fprintf(fp,"error\");return (0);}l=i%7;outputtofile(fp,year,month,i,l); //调用输出到文件函数} }elsereturn (0);fclose(fp);getch();}//查询某天是周几int oneday(){int i,l;int year,month,day;system("cls");printf("\\\请输入要查询的日期\");scanf("%d%d%d",&year,&month,&day);if (year>0)i=alldays(year,month);else if (year<0)i=days(year,month);else{printf("error\");return (0);}l=(i+day)%7;printf("\\\\\您查询的内容结果是\\");printf("%d年%d月%d日是星期%d\",year,month,day,l); getch();}//查询一段时间的int somemonth(){int year1,year2;int month1,month2;int year,month;int i,j,k,l;int count,choice;int temp;FILE *fp;system("cls");fp=fopen("d:\\\\somemonth.txt","w");printf("\\\请输入起始日期:\");scanf("%d%d",&year1,&month1);printf("\\\请输入终止日期:\");scanf("%d%d",&year2,&month2);year=year1;month=month1;if (year1>year2 || (year1==year2 && month1>month2)) {temp=year1;year1=year2;year2=temp;temp=month1;month1=month2;month2=temp;}if (year2>=year1 && year1!=0 && year2!=0){if ( year1>0 && year2>0) //以下为输入到屏幕{i=alldays(year1,month1);j=alldays(year2,month2);count=i;for (k=0;k<j-count;k++)< p="">{l=i%7;outputtoscreen(year1,month1++,i,l);i=alldays(year1,month1);if (year1==year2 && month1>=month2+1)break;if (month1>12){month1=1;year1++;}}}printf("\请选择是不是要输出到文本:\"); printf("1: 是!\");printf("2: 否!\");scanf("%d",&choice);if (choice==1){if ( year>0 && year2>0) //以下为输入到屏幕{i=alldays(year,month);j=alldays(year2,month2);count=i;for (k=0;k<j-count;k++)< p="">{l=i%7;outputtofile(fp,year,month++,i,l);i=alldays(year,month);if (year==year2 && month>=month2+1) break;if (month>12){month=1;year++;}}}}fclose(fp);}else{printf("error\");return (0);}getch();}void countof2date(){int y1,y2,d1,d2,m1,m2;int i,j,k,l=0;system("cls");printf("\\");printf("\请输入一个日期:\");scanf("%d%d%d",&y1,&m1,&d1);printf("\请输入另一个日期:\");scanf("%d%d%d",&y2,&m2,&d2);j=d1;k=d2;for (m1;m1>1;m1--)j=j+dayofmonth[isleapyear(y1)][m1-1]; // 将日期1归于一月一号;for (;y1<y2;y1++)< p="">l=l+dayofyear[isleapyear(y1)];for (m2;m2>1;m2--)k=k+dayofmonth[isleapyear(y2)][m2-1]; // 将日期2归于一月一号;i=l+k-j; // 计算两年年初的日期之差;printf("%d\",i);getch();}int thedayafterN(){int indays;int i,l;int year,month,day;system("cls");printf("\\\请输入一个日期:\");scanf("%d%d%d",&year,&month,&day);printf("\请输入要经过的天数:\");scanf("%d",&indays);if (year>0)i=alldays(year,month);else if (year<0)i=days(year,month);else{printf("error\");return (0);}l=(i+indays+day)%7;while (indays>=dayofyear[isleapyear(year)]){indays-=dayofyear[isleapyear(year++)];}while (indays>=dayofmonth[isleapyear(year)][month]){indays-=dayofmonth[isleapyear(year)][month++];}printf("\\\\\您查询的内容结果是\\");printf("****%d年***%d月***%d日***星期%d****",year,month,indays+day,l);getch();}int mainmenu(){int choice;system("cls");printf("\");printf(" \\请输入要选择的服务项:\\");printf("** 1: 查询某年中的某个月\");printf("** 2: 查询某年\");printf("** 3: 查询某天是周几\");printf("** 4: 查询一段时间日期\");printf("** 5: 查询两个日期间共有多少天\");printf("** 6: 输入一个日期,和一个整数n,查询n天以后的日期\");printf("** 0: 退出\\\\\\");printf("您要查询的内容是:");scanf("%d",&choice);return (choice);}void choose(){int sign=0;for(;;){system("cls");switch(mainmenu()){case 1:onemonth();break;case 2:oneyear();break;case 3:oneday();break;case 4:somemonth();break;case 5:countof2date();break;case 6:thedayafterN();break;case 0:{sign=1;break;}}if(sign==1)break;}}void main(){printf("\\\\\\\\\ **************************************\\"); printf("\\\ 欢迎使用万年历查询器!!\\");printf("\\ **************************************\\\\");printf("\\\\ 请按回车键继续!!\");getchar();choose();}</y2;y1++)<></j-count;k++)<> </j-count;k++)<> </l+1;j++)<></l+1;j++)<></y;b++)<>。

大连理工大学c语言大作业

大连理工大学c语言大作业

大连理工大学c语言大作业第一篇:大连理工大学c语言大作业程序设计大作业总结报告——<东北大馅饺子馆>的点餐/帐目信息管理系统选题意义;餐厅账目繁多,通过本系统可以实现餐厅管理的自主化。

更加适应这个信息化的社会。

通过对账目、订单的管理与排序。

也能使餐厅管理者更加直观地看出产品之间的优劣与受众。

使其能够更好的调动资源,达到餐厅的快速发展目的。

设计方案;1)任务分析该系统应包括两大界面—用户界面和管理界面。

用户界面包括用户点餐功能并将用户点餐信息存入账单文件中。

管理界面包括记录饺子的单价,库存等信息并将这些信息按一定规律排列供管理者参考,还要记录每天的收入与库存消耗。

2)系统组成框图系统组成如下图所示,点餐/帐目信息管理系统中任务调度模块是信息管理的指挥中心,所有的功能模块均通过该模块集中管理和调用。

数据文件是用于将改变的记录随时保存起来,I/O交互模块是指数据按键和控制按键的响应操作。

数据按键是窗口的输入输出。

系统平台I/O交互任务调度数据文件添加账目查询账目查询原料销量排序当天收入功能模块设计;本管理系统开发的过程中成功地完成很多函数的编写,而且全部通过程序调试。

下面针对与该系统相关的主要功能函数的编写思路和实现方法作总结。

1)数据描述与数据文件(1)数据描述;系统中共定义了三种结构体分别是struct list(账单信息)、struct dump(原材料信息)、struct system(管理信息)其中账单信息成员定义如下; struct list/*账单信息 */ { int num;/*编号*/ intmonth;/*月份*/ int date;/*日期*/ int table;/*桌号*/ int people;/*人数*/ int add;/*收款金额*/ };原材料信息;struct dump/*原材料信息*/ { int num;/*编号*/ char a[40];/*名称*/ int price;/*单价*/ int quantity;/*库存*/ };管理信息;struct system { struct dump data;/*点餐*/ int cash;/*收款*/ int sale;/*销量*/ int p;/*人数*/ };(2)数据文件;共定义四个数据文件;记录编号的文件count、记录原料的文件dumplings、记录账单的文件customer、数据处理文件system。

c语言练习题带答案)-绝对经典题目不看后悔

c语言练习题带答案)-绝对经典题目不看后悔

1单选题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。

A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。

C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

C语言大作业

C语言大作业

#include<stdio.h>#include<string.h>#include<stdlib.h> //exit()的头文件#include<conio.h> //屏幕操作函数#define N 100 //控制学生记录的容量#define M 3 //控制课程数#define LEN 9void menu();void browse();typedef struct student //定义学生结构体{char num[11]; //把学号定义成字符数组类型,一来学号可能比较长,二来可直接用strcmp来比较,确保无雷同char name[20];int score[M];double ave;}STU;STU stu[N]; //定义一个外部学生结构体变量/*****以写的方式保存数据到文件的函数【原数据将被覆盖】*****/int save(int n) //保存函数,保存n个记录{FILE *fp;int i;if((fp=fopen("zhouhao.txt","wb"))==NULL)//以二进制写的方式打开,在此前的记录被覆盖{printf("无法打开文件!\n任意键退出程序... ...\n");getch(); //预防闪屏return 0;}for(i=0;i<n;i++)if(stu[i].ave!=0) //在后面的del()函数中通过将stu[i].ave=0来表示该记录被删除了if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)//开始写入文件printf("文件写入发生错误\n");fclose(fp);return 0; // 注意下这个地方,我只是随便赋的值,只是为了消除一个警告}/********【拷贝函数单纯的将一个文件拷贝到另一个文件中】*******/void copy(){char outfile[20],infile[10]; //保存源文件名和目标文件名FILE *sfp,*tfp; //定义指向源文件(sourcefile)和目标文件(targetfile)的指针STU *p=NULL; //定义临时指针,暂存读出的记录system("CLS"); //清屏;printf("请输入需要被复制的文件名(默认数据处理在zhouhao.txt中):\n");scanf("%s",infile); //输入源文件名if((sfp=fopen(infile,"rb"))==NULL)//以二进制方式打开源文件{printf("无法打开文件!\n任意键退出程序... ...\n");//显示不能打开文件的信息getch();return;}printf("另存为...,比如:hao.txt:\n"); //提示输入目标文件名scanf("%s",outfile); //输入目标文件名if((tfp=fopen(outfile,"wb"))==NULL)//以二进制写方式打开目标文件{printf("无法打开文件!\n\n");//显示不能打开文件的信息getch();return; //退出程序,同exit(0)}while(!feof(sfp)) //读文件直到文件尾fputc(fgetc(sfp),tfp); //从stp复制文件到tfpfclose(sfp); //关闭源文件fclose(tfp); //关闭目标文件printf("\n复制成功!!!\n"); //显示拷贝成功信息printf("\n输入任意键返回主菜单");getch();menu();}/***【加载记录或可以计算记录个数的函数】***/int load(){FILE *fp;int i;if((fp=fopen("zhouhao.txt","rb"))==NULL) //以二进制读的方式打开{printf("无法打开文件!\n任意键退出程序... ...\n"); //显示不能打开文件的信息getch(); //预防闪屏return 0;}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp); //将文件数据读入学生结构体fclose(fp);return(i-1); //返回目前总的记录个数,注意是i-1}/***【一个任务结束时的选择浏览还是返回的函数】***/void printf_back(){int w;printf("\n\t操作成功!^_^\n");printf("\t接着干什么?\n\t1).立刻浏览全部数据\t2).返回:[ ]\b\b");scanf("%d",&w);if(w==1)browse();elsemenu();}/***【显示数据结构项目函数】***/void printf_face(){printf("\n\t学号\t姓名\t\t 数学\t 英语C语言平均分\n"); //显示行头}/***【求平均分函数】因为后面在修改数据中要专门重算平均数***/void average(int i){int j,sum;for(sum=0,j=0;j<M;j++)sum+=stu[i].score[j];stu[i].ave=sum*1.0/M;}/*******【学号长度处理函数】********/void no_deal(int i){int j,l,a;l=strlen(stu[i].num);if(l<LEN){for(j=LEN-l,a=0;j<LEN;j++){stu[i].num[j]=stu[i].num[a++];}stu[i].num[i]='\0';for(a=0;a<LEN-l;a++)stu[i].num[a]='0';}if(l>LEN)stu[i].num[l]='\0';}/*******【学号输入函数】*******/int no_input(int i,int n) //i表示第i个学生信息,n表示比较到第n个学生{int j,k,w1;do{w1=0;printf("学号:\t\t 【%d位,低于%d位前面补0,长的截尾处理!】\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b",LEN,LEN);scanf("%s",stu[i].num);no_deal(i);for(j=0;stu[i].num[j]!='\0';j++) //学号输入函数,作了严格的规定if(stu[i].num[j]<'0' || stu[i].num[j]>'9') //判断学号是否为数字{puts("别开玩笑!只能输入0——9.好吧,再给你一次机会,别让我失望!\n");w1=1; //这个w1=1,表示学号中输入了不是数字的字符break;}if(w1!=1) //w1!=1,确保验证时学号已经是由0-9的数组成的for(k=0;k<n;k++) //比较到第n个学生if(k!=i && strcmp(stu[k].num,stu[i].num)==0)//判断学号是否有雷同{puts("已经存在啦!重来一次!\n");w1=1; //w1=1,表示学号存在雷同break;}}while(w1==1); //总之,w1=1代表学号输入又问题,要重新输入return 0;}/***【分数输入函数】***/int score_input(int i){int j;for(j=0;j<M;j++){printf("分数%d:",j+1);scanf("%d",&stu[i].score[j]);}return 0;}/***【输入一整条记录的函数】***/void input(int i){no_input(i,i); //调用输入学号的函数printf("姓名:");scanf("%s",stu[i].name); //输入姓名score_input(i); //输入分数average(i); //计算平均分}/***【显示一整条记录的函数】***/void printf_one(int i){int j;printf("%11s %-14s",stu[i].num,stu[i].name); //输出学号和姓名for(j=0;j<M;j++)printf("%9d",stu[i].score[j]); //输出分数printf(" %9.2f\n",stu[i].ave); //输出平均分}/*【显示----函数顶部】*/void topput___(){printf("\n 记录浏览");printf("\n--------------------------------------------------------------------------------\n");}/*【显示----函数底部】*/void puts___(){printf("\n\n--------------------------------------------------------------------------------\n");}/*【修改记录函数】*/int modify_data(int i,int n) //修改数据函数,修改第i个记录{int c,w1;do{puts("\n你想修改什么: =>\n\n1).学号\t2).姓名\t3).数学\t4).英语\t5).C语言\n6).重输所有分数\t7).重输所有记录\t8).取消并返回");printf("想好就输,快:[ ]\b\b");scanf("%d",&c);if(c>8 || c<1)puts("\n选择失误!严肃点,再来一次!");//判断选择是否错误,若是则重新选择getchar(); //当输入时字符时可以防止死循环,觉得这个很重要,老师也没提过}}while(c>8 || c<1);do{switch(c) //选择要修改的项目{case 1:no_input(i,n);break;case 2:printf("姓名:");scanf("%s",stu[i].name);break;//调用学号输入函数case 3:printf("数学:");scanf("%d",&stu[i].score[0]);break;case 4:printf("英语:");scanf("%d",&stu[i].score[1]);break;case 5:printf("C语言:");scanf("%d",&stu[i].score[2]);break;case 6:score_input(i);break;case 7:input(i);break;case 8:menu(); //break; 在最后,有没有无所谓}if(c>2 && c<7)average(i); //由于3,4,5,6项改变的同时也把平均分动了,必须修正一下puts("\n现在:\n");printf_face();printf_one(i); //显示修改后的数据printf("\n你确定你目前的决定?\n\n\t1).当然啦! \t2).不不不,重修改一下!\n\t3).算了还是走吧,别保存了![ ]\b\b");//是否确定scanf("%d",&w1); //选择2则表示这次修改错误要重新修改}while(w1==2);return w1; //返回控制值}/* * * * * * * * * * * * 输入模块* * * * * * * * * * * */void enter(){int i,n;system("CLS"); //引用外部清屏,clrscr()在VC++中不好用printf("输入你要记录的学生数吧:(1~%d)?\t['0'返回]:\n",N);scanf("%d",&n); //要输入的计入个数if(n==0)menu(); //输0 的时候返回else{printf("\n\t好的!开始输入...\n");for(i=0;i<n;i++)printf("\n请输入第%d个的记录.\n",i+1);input(i); //调用输入函数}if(i!=0)save(n); //调用保存函数printf_back();} //一个任务结束时让用户选择是浏览还是返回}/*******************************追加模块*************************************/ int add(){int i,n,m,k;FILE *fp;system("CLS");n=load(); //获得总记录的个数,并加载记录printf("你需要加入多少学生:(0 ~ %d)?:",N-n);scanf("%d",&m); //输入要追加记录的个数if(m==0)menu();else{k=m+n;for(i=n;i<k;i++){printf("\n请输入第%d个的记录.\n",i-n+1);input(i); //调用输入函数}if((fp=fopen("zhouhao.txt","ab"))==NULL)//以ab方式打开,追加保存{printf("文件打不开!\n"); //显示不能打开文件的信息getch();return 0;}for(i=n;i<k;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件写入错误!\n");fclose(fp);printf_back(); //一个任务结束时让用户选择是浏览还是返回}return 0;}/***************************** 修改模块*************************/{struct student s;int i,n,k,w0=0,w1,w2=0;n=load(); //获得总记录的个数,并加载记录do{system("CLS");k=-1;/*****给用户看所有的记录以便用户确认要修改的记录*****/topput___();printf_face();for(i=0;i<n;i++)printf_one(i); //调用显示一个记录的函数puts___();/*****给用户看所有的记录以便用户确认要修改的记录*****/do{printf("\n\n输入你要修改记录的学号! 学号. :\t【'Ctrl-z' 退出】");if(scanf("%s",s.num)!=1) //输入要修改数据的学号menu();for(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.num,stu[i].num)==0){k=i; //找到要修改的记录s=stu[i]; //把stu[i](即把当次修改的学生记录)备份给s,以便用户反悔时恢复}if(k==-1)printf("\n\n不存在! 请重新输入~");}while(k==-1); //当K=-1表示没有找到printf_face(); //调用显示数据结构项目函数printf_one(k); //显示查找的记录w1=modify_data(k,n); //修改学生记录并且返回保存控制值w1,w1=1则表示用户已确认修改[w1只能是1或3(1代表确认修改,3代表不保存返回)] if(w1==1) //w1=1代表确认修改{printf("\n操作成功!\n\n决定修改别的吗?\n\n\t1).是的\t2).不!保存并返回\t[ ]\b\b");scanf("%d",&w0);w2=1; //来控制保存,使w2=1是标记已有过修改}else //此时w1=3,表示不保存返回{w0=0;if(w2==1) //w2=1表示已有过修改stu[k]=s; //反悔了,将修改前的值复原}if(w0!=1 && w2==1) //w0不等于1则表示正常返回,w2=1表示在此之前有修改过,这时就保存用户已确认修改的并返回save(n); //w2不等于1表示在此之前没有修改过,而又反悔这次修改,则不保存,保存时覆盖原先数据}while(w0==1);menu(); //返回主菜单}/*******************************删除模块*************************/void del(){struct student s;int i,k,n,c,w0=1;system("CLS");n=load(); //获得总记录的个数,并加载记录do{system("CLS");k=-1;/*给用户看全部记录以便确认要删除的记录*/topput___();printf_face(); //调用显示数据结构项目的函数for(i=0;i<n;i++)if(stu[i].ave!=0)printf_one(i); //显示所有数据puts___();/*给用户看全部记录以便确认要删除的记录*/do //输入要删除记录的学号,并寻找{printf("\n\n输入你要删除记录的学号! NO.:\t【'Ctrl-z' 退出】");if(scanf("%s",s.num)!=1)menu();for(i=0;i<n;i++)if(strcmp(s.num,stu[i].num)==0){k=i; //重赋k值表示找到寻找的数据s=stu[i];}if(k==-1) //k=-1表示没找到相同的printf("\n\n不存在! 请重新输入!");}while(k==-1);puts("\n");printf_face();printf_one(k); //显示要删除的记录printf("\n你确定?\n\t1).确定2).不,我要删除其他的3).不保存退出[ ]\b\b");//给用户一次反悔的机会scanf("%d",&c);if(c==1){stu[k].ave=0; //这是很重要的,通过stu[k].ave=0,通知保存的时候忽略掉,不进行保存printf("\n\n操作成功!\n\n要继续删数据吗?\n\t1).继续2).返回主菜单\t[ ]\b\b");scanf("%d",&w0);}if(c==3)w0=0; //w0=0不删除直接返回if(w0!=0 && c!=3) //只有当确认删除后返回才保存,不删除直接返回则不保存,且不保存在此之前删除过的记录save(n);}while(w0==1);menu();}/**************************************浏览(全部)模块*****************************************/void browse(){int i,n;n=load(); //获得总记录的个数,并加载记录system("CLS");topput___();printf_face(); //调用显示数据结构项目的函数for(i=0;i<n;i++) //循环输出所有学生的信息printf_one(i);puts___();printf("\n\t 这里一共有%d 个记录!\n",n);printf("\n\t 输入任意键返回主菜单... ...");getch();menu();}/*******************************查找模块************************************/ void search(){int i,n,k,w1=1,w2,w3,w4;struct student s;system("CLS");n=load(); //获得总记录的个数,并加载记录do{do{k=-1;printf("\n\n输入你要查找记录的主人公! 姓名:");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,stu[i].name)==0){k=i;printf_one(k); //考虑到同名的情况,可能输出不只一个,把所有的记录都查找一下}if(k==-1) //k=-1表示没找到相同的{printf("\n\n不存在! 请重新输入!");printf("\n\n要继续吗?\n\t1).继续\t 2).不,我要返回\t[ ]\b\b");scanf("%d",&w1);}}while(k==-1 && w1!=2); //k=-1表示没找到要查找的对象,w1!=2表示继续查找w4=w3=0; //初始化w4=w3=0if(k!=-1){printf("\n\n接着干什么?\n\t1).再次查找2).修改3).删除4).返回主菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 2:w3=modify_data(k,n);break;case 3:{printf("\n\n你确定了吗?\n\t1).确定2).不,还是返回吧! \t[ ]\b\b");scanf("%d",&w4);if(w4==1) //w4=1,表示确定删除stu[k].ave=0; //表示删除,当stu[k].ave=0,在save()中就不保存该数据,表示删除break;}}if(w3==1 || w4==1){save(n);printf("\n\n操作成功!");printf("\n\n接着干什么?\n\t1).再次查找2).返回[ ]\b\b");scanf("%d",&w2);}}}while(w2==1);menu();}/*******************************排序模块(按平均成绩)*********************************/void order(){int i,j,k,n;struct student s;system("CLS"); //清屏n=load(); //获得总记录的个数,并加载记录for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(stu[j].ave>stu[k].ave) //选择法排序,按平均分降序k=j;s=stu[i];stu[i]=stu[k];stu[k]=s;}save(n);puts("\n\n");printf_back();}/**********************************主界面************************************/ void menu(){int n,w1;do{system("CLS");;puts("\n\t\t\t\t学生信息管理系统\n");puts("\t ------- 周浩\n");puts("\t ************************ 主菜单*********************\n\n");puts("\t\t\t 1.初始数据输入(会覆盖已有数据)");puts("\t\t\t 2.可选择个数的数据添加");puts("\t\t\t 3.数据部分修改");puts("\t\t\t 4.数据部分删除");puts("\t\t\t 5.数据查看与浏览");puts("\t\t\t 6.数据查找(按姓名)");puts("\t\t\t 7.数据排序(按平均分降序)");puts("\t\t\t 8.已有文件文件拷贝");puts("\t\t\t 0.退出系统");puts("\n\n\t ****************************************************\n");printf("\t输入你的选择(0~8):[ ]\b\b");scanf("%d",&n);if(n<0 || n>8){w1=1;printf("\t你的选择不再0 到8 之间,按任意键重新输入!");getch();}elsew1=0;}while(w1==1);switch(n){case 1:enter();break;case 2:add();break;case 3:modify();break;case 4:del();break;case 5:browse();break;case 6:search();break;case 7:order();break;case 8:copy();break;case 0:exit(0);break;}}/************************************主函数***************************************/void main(){menu();}。

C语言程序设计100个经典例子(可编辑修改word版)

C语言程序设计100个经典例子(可编辑修改word版)

经典C 语言程序设计100 例1.数字排列2.奖金分配问题3.已知条件求解整数4.输入日期判断第几天5.输入整数进行排序6.用*号显示字母C 的图案7.显示特殊图案8.打印九九口诀9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a 的值19.求解"完数" 20.球体自由落下物理问题21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100 之内的素数37.对10 个数进行排序38.求3*3 矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出41.static 定义静态变量用法42.使用auto 定义变量用法43.使用static 的另一用法44.使用external 的用法45.使用register 定义变量方法46.宏#define 命令练习(1) 47.宏#define 命令练习(2) 48. 宏#define 命令练习(3)49.#if #ifdef 和#ifndef 的综合应用50.#include 的应用练习51.学习使用按位与& 52. 学习使用按位或|53.学习使用按位异或^ 54.取一个整数从右端开始的4~7 位。

55.学习使用按位取反~56.用circle 画圆形57.学用line 画直线58.用rectangle 画方形59.画图综合例子60.画图综合例子261.打印杨辉三角形62.学习putpixel 画点63.画椭圆ellipse 64.利用ellipse and rectangle 画图65.画个最优美的图案66.输入3 个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序80.海滩猴子分桃81.已知公式条件求数字82.八进制转换为十进制83.求0-7 所能组成的奇数个数84. 由两个素数之和表示的偶数85.判断一个素数能被几个9 整除86.两个字符串连接程序87.结构体变量传递88. 读取数字的整数值并打印出该值个数的*89.数据加密90.专升本一题91.时间函数举例1 92.时间函数举例293.时间函数举例3 94.一个猜数游戏95.家庭财务管理小程序96.计算字符串中子串出现的次数97.输入字符并保存到磁盘98.字符串转换成大写字母并输出保存99.文件操作应用1100.文件操作应用2c 语言经典100 题【实用】【程序1】题目:有1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

C语言课外大作业

C语言课外大作业

《高级语言程序设计》课外实习作业为了达到熟练掌握C语言的编程,适应以后毕业设计、工作、信息化社会等要求,希望同学们在课外加强自学,查找资料,相互探讨,完成一项课外作业练习。

请选择下列题目中的一个,画出程序流程图,用C语言编写程序,并在自己的计算机上完成调试和运行。

把程序文档、程序代码和运行结果发到老师的邮箱。

一、设计一个全班的同学录管理系统:设计相关的信息字段,最好用照片;要有录入、修改、删除、搜索、查看等编辑功能;所有数据信息存入到一个文件或者一个数据库之中;有打印功能(或选择打印功能)。

可自行设计一些功能,自行设计一些图形化界面等。

二、设计一个班级成绩管理系统,能够管理平时作业成绩、考勤次数、实验成绩、期末考试成绩,并按照设定的比例计算总成绩。

能够进行各项成绩的统计分析。

要有录入、修改、删除、搜索、查看等编辑功能;所有数据信息存入到一个文件或者一个数据库之中;有打印功能(或选择打印功能)。

可自行设计一些功能,自行设计一些图形化界面等。

三、设计一个非对称加密程序:应用歌德巴赫猜想的原理,即任何一个大于2的偶数,都可以分解为两个不同的质数之和。

任意输入一个一定范围内的偶数,计算出它的两个质数。

用其中的一个质数,设计一种简单的加密方法,对一组字符串信息进行加密。

然后,只有输入另一个质数,反算出加密的质数,才能解密。

用程序实现和演示加密过程。

四、设计一个简单的数学表达式分析程序:直接通过一个输入界面输入的数学表达式,是一个字符串,计算机不能直接识别它,因此也不能完成相应的计算。

设计一个简单的数学表达式分析程序,通过键盘直接输入一些简单的数学表达式,然后分解成计算机可以实现相应计算的程序。

用程序实现和演示整个过程。

C语言实训大作业

C语言实训大作业

C语言实训大作业As a person, we must have independent thoughts and personality.
1.基于链表的“学生信息管理系统”
实验内容:编写并调试程序,实现学校各专业班级学生信息的管理。

定义学生信息的链表结点类型,包括:学号、姓名、班级、专业、3门成绩。

实验要求:
(1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用
相应的函数。

(2)定义函数CreateList:按学号由小到大,建立有序的链表。

逆序输入 n
个学生信息(调用n次input),学号大的先输入,建立带头结点的单
链表。

(3)定义函数Output:以指向某个学生结点的指针为参数,将学生信息格式
化输出。

(4)定义函数Save:将某个学生信息存入文件。

(5)定义函数Fetch:从文件中随机读取某个学生的信息。

(6)定义函数Search_num:查找指定学号的学生,返回指向该学生结点的指
针。

(7)定义函数InsertList:在函数中输入一个学生的信息,将该学生信息插
入到链表中的相应位置,并保持此链表按学号的有序性。

(8)定义函数Delete_num:从链表中删除指定学号的学生。

(9)定义函数Search_major _subject_score:查找某个专业的、某门课程
的成绩小于某个分数的学生,返回指向该学生结点的指针。

(10)定义函数Delete_ major _subject:从链表中删除某个专业的、某
门课程的成绩小于某个分数的学生。

100个经典C语言编程例子(答案另附)

100个经典C语言编程例子(答案另附)

100个经典C语言编程例子(答案另附)1:计算 A+B 的问题时间限制:1000MS 内存限制:10000K总提交数:1347 正确数:655问题描述输入两个整数 a 和 b ,计算 a+b 的结果并输出。

输入两个整数输出一个整数输入样例1 2输出样例32:Hello World!时间限制:1000MS 内存限制:65536K总提交数:848 正确数:693问题描述编写第一个C语言程序。

在屏幕上输出:Hello World!输入程序没有输入输出Hello World!输入样例输出样例Hello World!提示1、输出的内容要与题目的要求完全一样,不能多字符也不能少字符。

3:两个整数的值互换时间限制:1000MS 内存限制:65536K总提交数:1235 正确数:530问题描述输入两个整数a,b ,将 a 和 b 的值互换,并输出。

例如:输入: 2 5输出: 5 2输入两个整数输出两个整数输入样例2 5输出样例5 2提示注意输入和输出的格式,两个数据之间用一个空格隔开。

问题来源4:计算三门课程总分和平均分时间限制:1000MS 内存限制:65536K总提交数:1190 正确数:482问题描述输入三门课程的成绩,输出总分和平均分。

要求:(1)输入三个数,用空格隔开。

输入的数可以是小数。

(2)输出两个数,用空格隔开。

输出的数保留两位小数。

例如:输入: 75 80 90输出: 245.00 81.67 输入输入三个数,用空格隔开。

输入的数可以是小数。

输出输出两个数,用空格隔开。

输出的数保留两位小数。

输入样例75 80 90输出样例245.00 81.67问题来源5:鸡兔同笼问题时间限制:1000MS 内存限制:65536K总提交数:872 正确数:443问题描述这个问题,是我国古代著名趣题之一。

大约在1500年前,《孙子算经》中就记载了这个有趣的问题。

书中是这样叙述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。

C语言经典练习题50道(附答案)

C语言经典练习题50道(附答案)

1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。

#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。

#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。

#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。

#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。

#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。

c语言编程题经典100例

c语言编程题经典100例

c语言编程题经典100例下面是经典的c语言编程题100例,每道题目都涵盖了c语言编程的各个方面,包括基本数据类型、条件语句、循环结构、函数与指针等。

通过这100道题目的练习,可以帮助初学者快速掌握c语言编程的基础知识,也有助于进一步深入了解c语言的高级特性。

1. 打印Hello World。

2. 输入一个整数,判断是否为偶数。

3. 输入两个整数,求它们的和、差、积、商和余数。

4. 输入一个整数,求它的绝对值。

5. 输入一个字符,判断它是否为字母。

6. 输入三个整数,找出其中的最大值。

7. 输入一个字符,判断它是否为数字。

8. 输入一个整数,判断它是否为质数。

9. 输入两个字符串,比较它们的大小。

10. 输入一个字符,将它转换为大写或小写。

11. 输入一个浮点数,求它的平方根。

12. 输入一个整数,将它按位取反。

13. 输入一个字符串,翻转它的顺序。

14. 输入一个字符串,统计其中的元音字母个数。

15. 输入一个整数,将它转换为二进制数。

16. 输入两个整数,交换它们的值。

17. 输入一个二维数组,输出它的转置矩阵。

18. 输入一个数组,找出其中的最大值和最小值。

19. 输入一个数组,求它的平均数、中位数和众数。

20. 输入一个数组,判断它是否为回文数。

21. 输入一个字符串,统计其中的单词数量。

22. 输入一个字符串,统计其中的字符数、单词数和行数。

23. 输入两个字符串,判断它们是否为同构字符串。

24. 输入一个字符数组,将它转换为整数。

25. 输入一个浮点数,将它转换为分数。

26. 输入一个浮点数,将它四舍五入到整数。

27. 输入一个字符串,将其中的数字字符替换为其他字符。

28. 输入两个数组,把它们合并成一个新的数组。

29. 输入一个二维数组和一个数值,查找并输出它在二维数组中的位置。

30. 输入一个字符串,判断它是否为回文字符串。

31. 输入两个整数,求它们的最大公约数和最小公倍数。

32. 输入一个表达式,求它的值。

c语言经典一百题

c语言经典一百题

c语言经典一百题
以下是一些经典的 C 语言题目,这些题目可以帮助你提高编程技能和加深对 C 语言的理解。

1. 输出 "Hello, World!"
2. 求出 1 到 100 的所有素数
3. 求出斐波那契数列的第 n 项
4. 判断一个数是否为回文数
5. 将一个字符串反转
6. 求出数组中的最大值和最小值
7. 求出数组中所有元素的和
8. 将一个字符串中的字符按字母顺序排序
9. 实现冒泡排序算法
10. 实现选择排序算法
11. 求出数组中所有奇数的和
12. 实现插入排序算法
13. 求出数组中所有偶数的和
14. 判断一个数是否为奇数或偶数
15. 求出两个数的最大公约数
16. 求出两个数的最小公倍数
17. 判断一个年份是否为闰年
18. 将一个十进制数转换为二进制数
19. 将一个二进制数转换为十进制数
20. 求出两个数的和、差、积和商
21. 求出数组中所有数字的平均值
22. 将一个字符串中的字符按字母顺序降序排序
23. 将一个字符串中的单词倒序输出
24. 求出数组中所有数字的个数
25. 求出数组中所有正数的个数
26. 求出数组中所有负数的个数
27. 将一个字符串中的字母按字母顺序升序排序,其他字符按字母顺序降序排序
28. 将一个字符串中的单词按长度升序排序,长度相同的单词按字母顺序降序排序
29. 将一个字符串中的单词按长度降序排序,长度相同的单词按字母顺序升序排序
30. 求出数组中所有数字的绝对值之和。

100个经典c语言例题(带答案)

100个经典c语言例题(带答案)

100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

C语言程序设计题比较经典的编程作业

C语言程序设计题比较经典的编程作业

C语言程序设计“C语言程序设计上机实习”是为了加强学生对C语言的进一步理解和应用、为学习后续课程打下良好编程基础而开设的一门实践课。

1.系统名称:简易教学管理系统的设计与实现2.准备数据①用记事本新建一文本文件,文件名为:“班名+序号”,如信计11班的12号同学所建的文件名应为:“XJ0112”。

将本班的M名学生在本学期的N门考试课的成绩(要求用真实的课程名、假想的分数,并要求将自己的学号假定为1,将自己的每门课的分数都定在90分以上,而将别人的每门课的分数都定在95分以下。

)输入到这个文件中,建议按如下形式存放(注:20≤M≤50、5≤N≤8,下文以M=4,N=3为例):学号姓名英语C语言数学1 我自己96 93 992 张某76 89 893 李某91 96 674 王某75 58 56…………②用记事本新建另一文本文件,文件名为:“班名+KC”,如信计11班的所有同学所建的文件名应为:“XJ01KC”。

将本班本学期的N门真实的课程名及其学分输入到这个数据文件中,建议按如下列形式存放:编号课程名称课程学分1 英语 6.02 C语言 4.53 数学 5.5…………3.功能要求在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,并根据以上内容计算每个学生N门课的加权平均分(保留1位小数,4舍5入),并按平均分排列名次,平均分相同则名次并列。

然后显示菜单,利用菜单调用各个函数,分别完成如下功能:(注意:若文本文件XJ0112存放在D盘的ABC文件夹中,则fopen()函数中的文件名应为:”D:\\ABC\\XJ0112.txt”)。

1)用C语言创建一个数据文件,文件名为:“MC+班号+序号”,如信计11班的12号同学所建的文件名应为:“MC0112.txt”。

用来存放班级排名后的成绩表,要求按以下形式存放。

名次学号姓名英语C语言数学……平均成绩1 1 我自己96 93 99 ……95.53 2 张某76 89 89 ……80.54 3 李某91 96 67 …… 78.2N x x y i N i 21)(-=∑=x 2 4 王某 75 58 56 …… 88.85 5 赵某 58 67 77 …… 68.5…………………………2) 分别统计全班每门课的平均分和标准差,并计算各分数段(60分以下;60~69;70~79;80~89;90分以上)的学生人数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>#define N 100struct student{char name[10];int num;char sex[10];float math;float yingyu;float zhengzhi;float ywen;float aver;float sum;}stu;//菜单void menu() /*便于操作员使用*/{ /*清屏*/system("cls");printf(" * 欢迎使用学生成绩管理系统* \n");printf(" * ======================= * \n");printf(" * 请选择相应的功能: * \n");printf(" * 1.成绩录入* \n");printf(" * 2.查询成绩* \n");printf(" * 3.修改成绩* \n");printf(" * 4.插入成绩* \n");printf(" * 5.报表输出* \n");printf(" * 6.统计输出* \n");printf(" * 7.删除操作* \n");printf(" * 0.退出系统* \n" );printf(" * ======================= * \n");printf(" \n\n\n\n\n\n\n\n\n * * 机101-S1 林凯(201023701102) 制作* * \n");}//成绩录入void input(){system("cls");FILE *fp;student xs; /*定义一个结构体变量来装从文件中读出来的数据*/int c=1;if((fp=fopen("student.dat","ab"))==NULL){printf("can't open file!\n");exit(0);}printf("\n 成绩录入");printf("\n****************************************************");while(c++) /*中间加油break,可使循环中断*/{printf("\n 请输入您的姓名(姓名为end结束):");scanf("%s",);if(strcmp(,"end")==0) break;/*判断姓名是否为end,用字符串判断*/printf("\n 请输入学号:");scanf("%d",&xs.num);printf("\n 性别:");scanf("%s",&xs.sex);printf("\n 请输入高数的成绩:");scanf("%f",&xs.math);printf("\n 请输入英语的成绩:");scanf("%f",&xs.yingyu);printf("\n 请输入政治的成绩:");scanf("%f",&xs.zhengzhi);printf("\n 请输入语文的成绩:");scanf("%f",&xs.ywen);xs.aver=0;/*给平均分变量赋初值*/xs.aver=(xs.math+xs.yingyu+xs.zhengzhi+xs.ywen)/4;xs.sum=0;xs.sum=xs.math+xs.yingyu+xs.zhengzhi+xs.ywen;fwrite(&xs,sizeof(stu),1,fp); //将成绩信息写入文件system("cls");}fclose(fp);}void xingming(){FILE *fp;student xs;char name[10];printf("\n 输入要查学生的姓名: ");scanf("%s",name);if((fp=fopen("student.dat","rb"))==NULL){printf("can't open file!\n");exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(strcmp(,name)==0)/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/{printf("\n 学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","高数","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d%6s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex, xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);break;}}if(feof(fp))printf("\n 查找失败!!!"); /*学生不存在*/fclose(fp);}void xuehao(){FILE *fp;student xs;int num;printf("\n 输入要查学生的学号: ");scanf("%d",&num);if((fp=fopen("student.dat","rb"))==NULL){printf("can't open file!\n");exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/{printf("\n 学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","高数","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d%6s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex,xs .math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);break;}}if(feof(fp)) printf("\n 查找失败!!!");fclose(fp);}//查询void search(){char ch1;system("cls");printf(" 请输入按何种方式查询:\n");printf("\n 1-姓名,2-学号:");ch1=getchar();/*用字符接收*/switch(ch1)/*判断*/{case '1':xingming();break;case '2':xuehao();break;}printf("\n 按任意键返回主菜单");getch();/*让屏幕停留同时按任意键返回*/}//修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;void modi(){student xs;FILE *fp;char name[10];system("cls");printf("\n 输入要修改的学生的姓名: ");scanf("%s",name);if((fp=fopen("student.dat","rb+"))==NULL){printf("can't open file!\n");exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(strcmp(,name)==0)/*判断输入要修改的姓名是否存在*/{printf(" 修改前学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","高数","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d %6s %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex,xs.math,xs.y ingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);printf("\n 请输入该生的高数成绩:");scanf("%f",&xs.math);printf("\n 英语成绩:");scanf("%f",&xs.yingyu);printf("\n 政治成绩:");scanf("%f",&xs.zhengzhi);printf("\n 语文成绩:");scanf("%f",&xs.ywen);xs.aver=(xs.math +xs.yingyu +xs.zhengzhi +xs.ywen)/4;xs.sum=xs.math +xs.yingyu +xs.zhengzhi +xs.ywen;break;}}if(!feof(fp)){printf(" \n 修改后的学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","高数","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d %6s %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex,xs.math,xs.y ingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);fseek(fp,sizeof(stu),1);/*负号表示后退,1表示文件当前位置*/fwrite(&xs,sizeof(stu),1,fp);/*再写入,同时把要修改的那个覆盖掉*/}elseprintf("\n 学生不存在,修改失败!!");fclose(fp);printf("\n 按任意键返回主菜单");getch();}//插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。

相关文档
最新文档