C程序设计课程实习.docx

上传人:b****2 文档编号:18017237 上传时间:2023-08-05 格式:DOCX 页数:41 大小:23.70KB
下载 相关 举报
C程序设计课程实习.docx_第1页
第1页 / 共41页
C程序设计课程实习.docx_第2页
第2页 / 共41页
C程序设计课程实习.docx_第3页
第3页 / 共41页
C程序设计课程实习.docx_第4页
第4页 / 共41页
C程序设计课程实习.docx_第5页
第5页 / 共41页
C程序设计课程实习.docx_第6页
第6页 / 共41页
C程序设计课程实习.docx_第7页
第7页 / 共41页
C程序设计课程实习.docx_第8页
第8页 / 共41页
C程序设计课程实习.docx_第9页
第9页 / 共41页
C程序设计课程实习.docx_第10页
第10页 / 共41页
C程序设计课程实习.docx_第11页
第11页 / 共41页
C程序设计课程实习.docx_第12页
第12页 / 共41页
C程序设计课程实习.docx_第13页
第13页 / 共41页
C程序设计课程实习.docx_第14页
第14页 / 共41页
C程序设计课程实习.docx_第15页
第15页 / 共41页
C程序设计课程实习.docx_第16页
第16页 / 共41页
C程序设计课程实习.docx_第17页
第17页 / 共41页
C程序设计课程实习.docx_第18页
第18页 / 共41页
C程序设计课程实习.docx_第19页
第19页 / 共41页
C程序设计课程实习.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C程序设计课程实习.docx

《C程序设计课程实习.docx》由会员分享,可在线阅读,更多相关《C程序设计课程实习.docx(41页珍藏版)》请在冰点文库上搜索。

C程序设计课程实习.docx

C程序设计课程实习

河北科技师范学院

C程序设计课程实习

 

院(系)名称:

工商管理学院

专业名称:

信息管理与信息系统10级

指导教师:

刘书霞

学生姓名:

钱杰

二○一一年七月

课程实习一、C程序上机操作方法及运行环境

编写一个C程序,输入a,b,c,d四个值,输出其中最小者。

#include

main()

{

inta,b,c,d,min,t,;

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

t=(a

a:

b;

t=(c

c:

t;

min=(d

d:

t;

printf("min=%d\n",min);

}

课程实习二、C程序上机操作方法及运行环境

从键盘输入三个字符,要求输出这三个字符,并输出它们的ASCII码及其ASCII码的平方根和的平方。

提示:

字符变量以它的ASCII码值参加运算;求平方根应用函数SQRT,此函数存放在数学函数库中;求出的平方根可能不是整数。

#include

#include

main()

{

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)若m>n则m=m-n否则n=n-m;

4)返回到2)(循环)。

#include

voidmain()

{

intm,n;

scanf("%d%d",&m,&n);

while(m!

=n)

{

if(m>n)m=m-n;

elsen=n-m;

}

printf("%d\n",m);

}

课程实习四、循环结构程序设计

打印下面的图案

#####

####

###

##

#include

main()

{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

提示:

十进制转化为二进制用倒序取余法,可将每次产生的余数依次存入一数组中,输出时将数组倒序输出。

#include

main()

{inti,num,n,j,a[9];

printf("输入数字:

\n");

scanf("%d",&num);

for(i=0;i<9;i++)

{a[i]=num%2;

num=num/2;

}

printf("\n");

for(j=8;j>=0;j--)

printf("%d",a[j]);

printf("\n");

}

课程实习六、函数

输入10个景区内的5个不同景点门票价位,分别用函数求:

①每个景区平均价位;

②每个景点的平均价位;

③找出最高的价位所对应的景点和景区。

#include

#definen110

#definen25

floata_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;i

{

printf("NO.%d",i+1);

for(j=0;j

{

printf("%8.2f",price[i][j]);

}

printf("%8.2f\n\n",a_jingqu[i]);

}

printf("景点平均");

for(i=0;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;i

{

printf("\n\n输入%d个景区的5个价位\n\n",i+1);

for(j=0;j

{

scanf("%f",&a[i][j]);

}

}

}

voidjingqu_aver(floata[][n2])

{

inti,j;

floats;

for(i=0;i

{

s=0;

for(j=0;j

{

s+=a[i][j];

}

a_jingqu[i]=s/n2;

}

}

voidjingdian_aver(floata[][n2])

{

inti,j;

floats;

for(i=0;i

{

s=0;

for(j=0;j

{

s+=a[j][i];

}

a_jingdian[i]=s/n1;

}

}

inthightest(int*q,int*d,floata[][n2])

{

floathightest=0;

inti,j;

for(i=0;i

{

for(j=0;j

{

if(a[i][j]>hightest)

{

hightest=a[i][j];

*q=i+1;

*d=j+1;

}

}

}

return(hightest);

}

课程实习七、指针

输入10个整数,找出其中最小的数并与第一个数对换。

写三个函数:

①输入10个数

②进行处理;

③输出10个数。

#include

#defineN10

f(x,n)

intx[],n;

{int*p0,*p1,i,j,t,y;

i=j=x[0];p0=p1=x;

for(y=0;y

{if(x[y]

{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;u<10;u++)

scanf("%d",&a[u]);

f(a,10);

for(u=0,r=a;u<10;u++,r++)

printf("%d",a[u]);

printf("\n");

}

课程实习八、结构体、共用体

有10个学生,每个学生的数据包括专业、姓名、5门课的成绩,从键盘输入10个学生的数据,要求打印出5门课的总平均成绩。

#include

#defineN5

structstu

{

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;i

{

scanf("%s%s",(p+i)->num,(p+i)->name);

for(j=0;j<5;j++)

scanf("%f",&((p+i)->score[j]));

}

}

voidaver(structstu*p)

{

inti,j;

floatsum;

for(i=0;i

{

sum=0;

for(j=0;j<5;j++)

{

sum+=(p+i)->score[j];

}

(p+i)->average=sum/5;

}

}

floataver_total(structstu*p)

{

floatsum=0;

for(;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;i

{

if((p+i)->average>max)

{

max=(p+i)->average;

q=p+i;

}

}

printf("\n");

课程实习九、文件

学生基本记录:

学号、姓名、专业、性别、出生日期、籍贯、入学时间、高数成绩、管理学成绩、英语成绩、经济学成绩、C语言成绩。

功能要求:

1.文件操作:

可读入和保存学生数据文件。

2.编辑:

录入记录、删除记录、显示记录(可排序)。

3.数据查询

可按学号查询某学生记录;

可按姓名查询某学生记录;

可按各分数段查询学生记录;

4.统计

分别可按总平均和单科成绩统计各分数段学生人数,所占总人数的百分比,用饼图和数据描述。

按入学时间分别统计历届学生总平均成绩为90-100分和小于60分的人数,用曲线(或直方图)和数据描述。

5.尽量采用图形界面,界面要美观、操作要简单方便

#include"stdio.h"

#include

#include

#include"process.h"

#include"ctype.h"

typedefstruct

{

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;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)/*修改*/

{

inti=0,choice=1;

charx[10];

while(choice!

=0)

{printf("请输入您要修改的学生的学号:

\n");

scanf("%s",x);

for(i=0;;i++)

{

if(strcmp(stu[i].num,x)==0)break;

}

printf("请选择您要修改的内容:

\n");

printf("----------------------\n");

printf("|姓名请按1|\n");

printf("|语文请按2|\n");

printf("|数学分数请按3|\n");

printf("|英语分数请按4|\n");

printf("|管理学请按5|\n");

printf("|退出请按0|\n");

printf("+----------------------+\n");

printf("请输入您的选择:

");

scanf("%d",&choice);

switch(choice)

{

case0:

break;

case1:

printf("请输入新姓名:

");

scanf("%s",stu[i].name);

break;

case2:

printf("请输入新的语文分数:

");

scanf("%d",&stu[i].chinese);

break;

case3:

printf("请输入新的数学分数:

");

scanf("%d",&stu[i].math);

break;

case4:

printf("请输入新的英语分数:

");

scanf("%d",&stu[i].english);

break;

case5:

printf("请输入新的管理学分数:

");

scanf("%d",&stu[i].guanlixue);

break;

default:

printf("\n无效选项!

");

break;

}break;

}

return;

}

intshanchu(Studentstud[],intn)/*按姓名查找,删除一条记录*/

{chars[20];

inti;

intj;

i=0;

printf("输入要删除记录的姓名:

");

scanf("%s",s);

while(strcmp(stu[i].name,s)!

=0&&i

if(i==n)

{printf("notfind!

\n");

return(n);}

for(j=i;j

{

strcpy(stu[j].num,stu[j+1].num);

strcpy(stu[j].name,stu[j+1].name);

stu[j].chinese=stu[j+1].chinese;

stu[j].math=stu[j+1].math;

stu[j].english=stu[j+1].english;

stu[j].guanlixue=stu[j+1].guanlixue;

stu[j].aver=stu[j+1].aver;

}

printf("DeleteSuccessed!

\n");

return(n-1);

}

 

voidchaxun_xingming(Studentstud[],intn)/*按姓名查找并显示一个记录*/

{chars[20];

inti=0;

printf("输入姓名:

");

scanf("%s",s);

while(strcmp(stu[i].name,s)!

=0&&i

if(i==n)

{printf("notfind!

\n");/*输入失败信息*/

return;}

printf("他的姓名、学号是:

%s%s\n",stu[i].name,stu[i].num);/*输出该学生信息*/

printf("语文高数英语管理学平均成绩是:

%d,%d,%d,%d,%lf\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].guanlixue,stu[i].aver);

}

voidchaxun_pingjun(Studentstud[],intn)/*按平均成绩查找并显示一个记录*/

{doubles;

inti=0;

printf("输入平均成绩:

");

scanf("%lf",&s);

while(stu[i].aver!

=s&&i

if(i==n)

{printf("notfind!

\n");/*输入失败信息*/

return;

}

printf("他的学号是:

%s\n",stu[i].num);/*输出该学生信息*/

printf("他的姓名是:

%s\n",stu[i].name);

printf("他的语文、数学、英语、管理学分数是:

%d%d%d%d\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].guanlixue);

}

voidpaixu_xuehao(Studentstud[],intn)/*按学号排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(strcmp(stud[j].num,stud[j+1].num)>0)

{strcpy(t,stud[j].num);

strcpy(stud[j].num,stud[j+1].num);

strcpy(stud[j+1].num,t);

strcpy(x,stud[j].name);

strcpy(stud[j].name,stud[j+1].name);

strcpy(stud[j+1].name,x);

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].guanlixue;stu[j].guanlixue=stu[j+1].guanlixue;stu[j+1].guanlixue=w;

}

return;

}

voidpaixu_pingjun(Studentstud[],intn)/*按平均成绩排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(stu[j].aver>stu[j+1].aver)

{y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].guanlixue;stu[j].guanlixue=stu[j+1].guanlixue;stu[j+1].guanlixue=w;

strcpy(x,stu[j].name);

strcpy(stu[j].name,stu[j+1].name);

strc

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2