C语言实验报告.docx

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

C语言实验报告.docx

《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(23页珍藏版)》请在冰点文库上搜索。

C语言实验报告.docx

C语言实验报告

实验一:

11.输入4个整数,要求按由小到大的顺序输出,采用冒泡法。

#include

intmain()

{inti,j,a[4],t;

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

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

for(j=1;j<4;j++)

for(i=0;i<=3-j;i++)

if(a[i]>a[i+1])

{t=a[i+1];a[i+1]=a[i];a[i]=t;}

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

printf("%5d",a[i]);

}

运行结果:

实验二:

输入4个整数,要求按由小到大的顺序输出。

采用函数调用。

#include

{voidsort(intarray[],intn);

inta[4],i;

printf("enterarray:

\n");

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

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

sort(a,4);

printf("Thesortedarray:

\n");

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

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

printf("\n");

return0;

}

voidsort(intarray[],intn)

{inti,j,t;

for(j=0;j

for(i=0;i

if(array[i]>array[i+1])

{t=array[i];array[i]=array[i+1];array[i+1]=t;}

运行结果:

实验三:

输入两个正整数m和n,求其最大公约数和最小公倍数。

#include

intmain()

{intp,r,n,m,temp;

printf("请输入两个正整数n,m:

");

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

if(n

{

temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!

=0)

{

r=n%m;

n=m;

m=r;

}

printf("它们的最大公约数为:

%d\n",n);

printf("它们的最小公倍数为:

%d\n",p/n);

return0;

}

运算结果:

实验四

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用者两个函数,并输出结果。

maxyueshu(m,n)

intm,n;

{inti=1,t;

for(;i<=m&&i<=n;i++)

{if(m%i==0&&n%i==0)

t=i;

}

return(t);

}

minbeishu(m,n)

intm,n;

{intj;

if(m>=n)j=m;

elsej=n;

for(;!

(j%m==0&&j%n==0);j++);

returnj;

}

main()

{inta,b,max,min;

printf("entertwonumberis:

");

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

max=maxyueshu(a,b);

min=minbeishu(a,b);

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

}

运行结果:

实验五:

3用函数实现m*n的整型矩阵对角线元素之和,并用函数调用,用地址传递。

#include

intmain()

{

inti=0,j=0,a[3][3],s1,s2;

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

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

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

s1=a[0][0]+a[1][1]+a[2][2];

s2=a[0][2]+a[1][1]+a[2][0];

printf("s1=%d,s2=%d\n",s1,s2);

}

运行结果:

实验六:

13.编一个程序,将两个字符串连接起来,不要用strcat函数。

#include

intmain()

{voidconcatenate(charstring1[],charstring2[],charstring[]);

chars1[100],s2[100],s[100];

printf("inputstring1:

");

scanf("%s",s1);

printf("inputstring2:

");

scanf("%s",s2);

concatenate(s1,s2,s);

printf("\nThenewstringis%s\n",s);

return0;

}

voidconcatenate(charstring1[],charstring2[],charstring[])

{inti,j;

for(i=0;string1[i]!

='\0';i++)

string[i]=string1[i];

for(j=0;string2[j]!

='\0';j++)

string[i+j]=string2[j];

string[i+j]='\0';

}

运行结果:

实验七:

求方程a*x*x+b*x+c=0的根,用3个函数分别求当:

b*b-4*a*c大于0、等于0、和小于0时的根并输出结果。

从主函数输入a,b,c的值。

#include

#include

floatx1,x2,disc,p,q;

intmain()

{voidgreater_than_zero(float,float);

voidequal_to_zero(float,float);

voidsmaller_than_zero(float,float);

floata,b,c;

printf("inputa,b,c:

");

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

printf("equation:

%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);

disc=b*b-4*a*c;

printf("root:

\n");

if(disc>0)

{greater_than_zero(a,b);

printf("x1=%f\t\tx2=%f\n",x1,x2);

}

elseif(disc==0)

{equal_to_zero(a,b);

printf("x1=%f\t\tx2=%f\n",x1,x2);

}

else

{smaller_than_zero(a,b);

printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);

}

}

voidgreater_than_zero(floata,floatb)

{x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

}

voidequal_to_zero(floata,floatb)

{x1=x2=(-b)/(2*a);

}

voidsmaller_than_zero(floata,floatb)

{p=-b/(2*a);

q=sqrt(-disc)/(2*a);

}

运行结果:

实验八:

14.输入10个学生5门课的成绩,分别用函数实现下列功能:

<1>计算每个学生的平均分;

<2>计算每门课的平均分;

<3>找出所有50个分数中最高的分数所对应的学生和课程;

<4>计算平均分方差:

#include

#defineN10

#defineM5

floatscore[N][M];

floata_stu[N],a_cour[M];

intr,c;

intmain()

{inti,j;

floath;

floats_var(void);

floathighest();

voidinput_stu(void);

voidaver_stu(void);

voidaver_cour(void);

input_stu();

aver_stu();

aver_cour();

printf("\nNO.cour1cour2cour3cour4cour5aver\n");

for(i=0;i

{printf("\nNO%2d",i+1);

for(j=0;j

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

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

}

printf("\nawerage:

");

for(j=0;j

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

printf("\n");

h=highest();

printf("highest:

%7.2fNO.%2dcourse%2d\n",h,r,c);

printf("variance%8.2f\n",s_var());

return0;

}

voidinput_stu(void)

{inti,j;

for(i=0;i

{printf("\ninputscoreofstudent%2d:

\n",i+1);

for(j=0;j

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

}

}

voidaver_stu(void)

{inti,j;

floats;

for(i=0;i

{for(j=0,s=0;j

s+=score[i][j];

a_stu[i]=s/5;

}

}

voidaver_cour(void)

{inti,j;

floats;

for(j=0;j

{s=0;

for(i=0;i

s+=score[i][j];

a_cour[j]=s/(float)N;

}

}

floathighest()

{floathigh;

inti,j;

high=score[0][0];

for(i=0;i

for(j=0;j

if(score[i][j]>high)

{high=score[i][j];

r=i+1;

c=j+1;

}

return(high);

}

floats_var(void)

{inti;

floatsumx,sumxn;

sumx=0.0;

sumxn=0.0;

for(i=0;i

{sumx+=a_stu[i]*a_stu[i];

sumxn+=a_stu[i];

}

return(sumx/N-(sumxn/N)*(sumxn/N));

}

运行结果:

以上是输入10个学生的5门课的成绩,下面是输出结果:

实验九:

15写几个函数:

<1>输入10个职工的姓名和职工号;

<2>按职工号由小到大顺序排序,姓名顺序也随之调整;

#include

#include

#defineN10

intmain()

{voidinput(int[],charname[][8]);

voidsort(int[],charname[][8]);

intnum[N],number,flag=1,c;

charname[N][8];

input(num,name);

sort(num,name);

while(flag==1)

{printf("\ninputnumbertolookfor:

");

scanf("%d",&number);

printf("continuetonot(Y/N)?

");

getchar();

c=getchar();

if(c=='N'||c=='n')

flag=0;

}

return0;

}

voidinput(intnum[],charname[N][8])

{inti;

for(i=0;i

{printf("inputNO.:

");

scanf("%d",&num[i]);

printf("inputname:

");

getchar();

gets(name[i]);

}

}

voidsort(intnum[],charname[N][8])

{inti,j,min,templ;

chartemp2[8];

for(i=0;i

{min=i;

for(j=i;j

if(num[min]>num[j])min=j;

templ=num[i];

strcpy(temp2,name[i]);

num[i]=num[min];

strcpy(name[i],name[min]);

num[min]=templ;

strcpy(name[min],temp2);

}

printf("\nresult:

\n");

for(i=0;i

printf("\n%5d%10s",num[i],name[i]);

}

运行结果:

实验十:

16.写一个函数,输入一个十六进制数,输出相应的十进制数。

#include

#defineMAX1000

main()

{inthtoi(chars[]);

intc,i,flag,flag1;

chart[MAX];

i=0;

flag=0;

flag1=1;

printf("inputaHEXnumber:

");

while((c=getchar())!

='\0'&&i

{if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F')

{flag=1;

t[i++]=c;

}

elseif(flag)

{t[i]='\0';

printf("decimalnumber%d\n",htoi(t));

printf("continueornot?

");

c=getchar();

if(c=='N'||c=='n')

flag1=0;

else

{flag=0;

i=0;

printf("\ninputaHEXnumber:

");

}

}

}

}

inthtoi(chars[])

{inti,n;

n=0;

for(i=0;s[i]!

='\0';i++)

{if(s[i]>='0'&&s[i]<='9')

n=n*16+s[i]-'0';

if(s[i]>='a'&&s[i]<='f')

n=n*16+s[i]-'a'+10;

if(s[i]>='A'&&s[i]<='F')

n=n*16+s[i]-'A'+10;

}

return(n);

}

运行结果:

实验十一:

3.输入10个整数,将其中最小的数与第1个数对换,把最大数与最后一个数对换。

写成三个函数;输入10个数;进行处理;输出10个数。

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)  

{i=x[y];p0=&x[y];} 

elseif(x[y]

{j=x[y];p1=&x[y];}} 

t=*p0;*p0=x[n-1];x[n-1]=t; 

t=*p1;*p1=x[0];x[0]=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"); 

}

运行结果:

 

实验十二:

16、写一个函数,输入一个十六进制数,输出相应的十进制数。

#include

#defineMAX1000

intmain()

{inthtoi(chars[]);

intc,i,flag,flag1;

chart[MAX];

i=0;flag=0;flag1=1;

printf("inputaHEXnumber;");

while((c=getchar())!

='\0'&&i

{if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F')

{flag=1;t[i++]=c;}

elseif(flag)

{t[i]='\0';

printf("decimalnumber%d\n",htoi(t));

printf("continueornot?

");

c=getchar();

if(c=='N'||c=='n')

flag1=0;

else

{flag=0;i=0;

printf("\ninputaHEXnumber:

");

}

}

}

return0;

}

inthtoi(chars[])

{inti,n;n=0;

for(i=0;s[i]!

='\0';i++)

{if(s[i]>='0'&&s[i]<='9')

n=n*16+s[i]-'0';

if(s[i]>='a'&&s[i]<='f')

n=n*16+s[i]-'a'+10;

if(s[i]>='A'&&s[i]<='F')

n=n*16+s[i]-'A'+10;

}

return(n);

}

运行结果:

实验十三:

6.写出一函数,求一字符串的长度.在main函数中输入字符串,并输出其长度。

#include

intmain()

{intlength(char*p);

intlen;

charstr[20];

printf("inputstring;");

scanf("%s",str);

len=length(str);

printf("Thelengthofstringis%d.\n",len);

return0;

}

intlength(char*p)

{intn;

n=0;

while(*p!

='\0')

{n++;p++;}

return(n);

}

运行结果;

实验十四:

8.输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。

#include

intmain()

{intupper=0,lower=0,digit=0,space=0,other=0,i=0;

char*p,s[20];

printf("inputstring:

");

while((s[i]=getchar())!

='\n')i++;

p=&s[0];

while(*p!

='\n')

{if(('A'<=*p)&&(*p<='Z'))

++upper;

elseif(('a'<=*p)&&(*p<='z'))

++lower;

elseif(*p=='')

++space;

elseif((*p<='9')&&(*p>='0'))

++digit;

else

++other;p++;

}

printf("uppercase:

%dlowercase:

%d",upper,lower);

printf("space:

%ddigit:

%dother;%d\n",space,digit,other);

return0;

}

运行结果:

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

当前位置:首页 > 求职职场 > 笔试

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

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