河北科技师范学院C程序设计课程实习院(系)名称:工商管理学院专业名称:信息管理与信息系统10级指导教师:刘书霞学生姓名:钱杰二○一一年七月课程实习一、C程序上机操作方法及运行环境编写一个C程序,输入a,b,c,d四个值,输出其中最小者。#includestdio.hmain(){inta,b,c,d,min,t,;scanf(%d,%d,%d,%d,&a,&b,&c,&d);t=(ab)?a:b;t=(ct)?c:t;min=(dt)?d:t;printf(min=%d\n,min);}课程实习二、C程序上机操作方法及运行环境从键盘输入三个字符,要求输出这三个字符,并输出它们的ASCII码及其ASCII码的平方根和的平方。提示:字符变量以它的ASCII码值参加运算;求平方根应用函数SQRT,此函数存放在数学函数库中;求出的平方根可能不是整数。#includestdio.h#includemath.hmain(){charc1,c2;floatt;scanf(%c,%c,&c1,&c2);printf(%c,%c\n,c1,c2);printf(%d,%d\n,c1,c2);t=(sqrt(c1)+sqrt(c2))*(sqrt(c1)+sqrt(c2));printf(%f\n,t);}课程实习三、循环结构程序设计1)输入两个正整数到m和n;2)如果m=n输出最大公约数m程序结束;3)若mn则m=m-n否则n=n-m;4)返回到2)(循环)。#includestudio.hvoidmain(){intm,n;scanf(%d%d,&m,&n);while(m!=n){if(mn)m=m-n;elsen=n-m;}printf(%d\n,m);}课程实习四、循环结构程序设计打印下面的图案###############includestdio.hmain(){inti,j,k;for(i=0;i=3;i++){for(j=0;j=i;j++)printf();for(k=0;k=4-i;k++)printf(*);printf(\n);}}课程实习五、数组的应用输入一个0到150之间的十进制整数,要求把此数转化为二进制形式。如:143↙10001111提示:十进制转化为二进制用倒序取余法,可将每次产生的余数依次存入一数组中,输出时将数组倒序输出。#includestdio.hmain(){inti,num,n,j,a[9];printf(输入数字:\n);scanf(%d,&num);for(i=0;i9;i++){a[i]=num%2;num=num/2;}printf(\n);for(j=8;j=0;j--)printf(%d,a[j]);printf(\n);}课程实习六、函数输入10个景区内的5个不同景点门票价位,分别用函数求:①每个景区平均价位;②每个景点的平均价位;③找出最高的价位所对应的景点和景区。#includestdio.h#definen110#definen25floata_jingqu[n1],a_jingdian[n2];voidmain(){voidinput(floata[][n2]);voidjingqu_aver(floata[][n2]);voidjingdian_aver(floata[][n2]);inthightest(int*q,int*d,floata[][n2]);floatd(floata[][n2]);inti,j,q=0,d=0;floatprice[n1][n2],h;input(price);jingqu_aver(price);jingdian_aver(price);printf(\n\n序号景点12345平均价位\n\n);for(i=0;in1;i++){printf(NO.%d,i+1);for(j=0;jn2;j++){printf(%8.2f,price[i][j]);}printf(%8.2f\n\n,a_jingqu[i]);}printf(景点平均);for(i=0;in2;i++){printf(%8.2f,a_jingdian[i]);}h=hightest(&s,&c,price);printf(\n\n最高价位为:%f是第%d个景区,第%d个景点的价位\n\n,h,q,d);}voidinput(floata[][n2]){inti,j;for(i=0;in1;i++){printf(\n\n输入%d个景区的5个价位\n\n,i+1);for(j=0;jn2;j++){scanf(%f,&a[i][j]);}}}voidjingqu_aver(floata[][n2]){inti,j;floats;for(i=0;in1;i++){s=0;for(j=0;jn2;j++){s+=a[i][j];}a_jingqu[i]=s/n2;}}voidjingdian_aver(floata[][n2]){inti,j;floats;for(i=0;in2;i++){s=0;for(j=0;jn1;j++){s+=a[j][i];}a_jingdian[i]=s/n1;}}inthightest(int*q,int*d,floata[][n2]){floathightest=0;inti,j;for(i=0;in1;i++){for(j=0;jn2;j++){if(a[i][j]hightest){hightest=a[i][j];*q=i+1;*d=j+1;}}}return(hightest);}课程实习七、指针输入10个整数,找出其中最小的数并与第一个数对换。写三个函数:①输入10个数②进行处理;③输出10个数。#includestdio.h#defineN10f(x,n)intx[],n;{int*p0,*p1,i,j,t,y;i=j=x[0];p0=p1=x;for(y=0;yn;y++){if(x[y]i){i=x[y];p0=&x[y];}elseif(x[y]j){x[y]=j;p1=&x[y];}}t=*p0;*p0=x[n-1];x[n-1]=t;t=*p1;*p1=x[n-1];x[n-1]=t;return;}main(){inta[10],u,*r;for(u=0;u10;u++)scanf(%d,&a[u]);f(a,10);for(u=0,r=a;u10;u++,r++)printf(%d,a[u]);printf(\n);}课程实习八、结构体、共用体有10个学生,每个学生的数据包括专业、姓名、5门课的成绩,从键盘输入10个学生的数据,要求打印出5门课的总平均成绩。#includestdio.h#defineN5structstu{charnum[10];charname[10];floatscore[5];floataverage;}stu[N];voidmain(){voidinput(structstu*p);voidaver(structstu*p);floataver_total(structstu*p);voidprint(structstu*p);structstu*p;p=stu;input(p);aver(p);print(p);}voidinput(structstu*p){inti,j;printf(按顺序依次输入学生的学号,姓名,成绩1,成绩2,成绩3,成绩4,成绩5\n);for(i=0;iN;i++){scanf(%s%s,(p+i)-num,(p+i)-name);for(j=0;j5;j++)scanf(%f,&((p+i)-score[j]));}}voidaver(structstu*p){inti,j;floatsum;for(i=0;iN;i++){sum=0;for(j=0;j5;j++){sum+=(p+i)-score[j];}(p+i)-average=sum/5;}}floataver_total(structstu*p){floatsum=0;for(;pstu+N;p++)sum+=p-average;return(sum/N);}voidprint(structstu*p){inti,j;structstu*q;floatmax=0;printf(五门课的总平均成绩为:%f\n\n,aver_total(p));for(i=0;iN;i++){if((p+i)-averagemax){max=(p+i)-average;q=p+i;}}printf(\n);课程实习九、文件学生基本记录:学号、姓名、专业、性别、出生日期、籍贯、入学时间、高数成绩、管理学成绩、英语成绩、经济学成绩、C语言成绩。功能要求:1.文件操作:可读入和保存学生数据文件。2.编辑:录入记录、删除记录、显示记录(可排序)。3.数据查询可按学号查询某学生记录;可按姓名查询某学生记录;可按各分数段查询学生记录;4.统计分别可按总平均和单科成绩统计各分数段学生人数,所占总人数的百分比,用饼图和数据描述。按入学时间分别统计历届学生总平均成绩为90-100分和小于60分的人数,用曲线(或直方图)和数据描述。5.尽量采用图形界面,界面要美观、操作要简单方便#includestdio.h#includestdlib.h#includestring.h#includeprocess.h#includectype.htypedefstruct{charnum[10];charname[10];intchinese;intmath;intenglish;intdianlu;doubleaver;}Student;Studentstu[99];intshuru(Studentstud[],intn)/*输入若干条记录*/{inti=0;charsign,x[10];doublea=0.0;while(sign!='n'&&sign!='N'){printf(输入学生学号:);scanf(%s,stu[n+i].num);printf(输入学生姓名:);scanf(%s,stu[n+i].name);printf(输入学生的语文、数学、英语、管理学分数:);scanf(%d%d%d%d,&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].guanlixue);a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+stu[n+i].guanlixue)/4;stu[n+i].aver=a;gets(x);/*清除多余的输入*/printf(是否继续输入?(Y/N):\n);scanf(%c,&sign);i++;}return(n+i);}voidxianshi(Studentstud[],intn)/*显示所有记录*/{inti;printf(----------------------------------------------------------\n);/*格式头*/printf(学号姓名语文数学英语管理学平均成绩\n);printf(----------------------------------------------------------\n);for(i=0;in;i++){printf(%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\n,stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].guanlixue,stu[i].aver);}}voidxiugai(Studentstud[],intn)/*修改*/{i