C语言实验教程题课本.docx

上传人:b****5 文档编号:8019974 上传时间:2023-01-28 格式:DOCX 页数:27 大小:19.45KB
下载 相关 举报
C语言实验教程题课本.docx_第1页
第1页 / 共27页
C语言实验教程题课本.docx_第2页
第2页 / 共27页
C语言实验教程题课本.docx_第3页
第3页 / 共27页
C语言实验教程题课本.docx_第4页
第4页 / 共27页
C语言实验教程题课本.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C语言实验教程题课本.docx

《C语言实验教程题课本.docx》由会员分享,可在线阅读,更多相关《C语言实验教程题课本.docx(27页珍藏版)》请在冰豆网上搜索。

C语言实验教程题课本.docx

C语言实验教程题课本

作业标题:

实验七、while和do...while循环结构的使用

作业内容:

编程题:

完成62页第7至第10题

#include

main()

{

 long x,r,t=1,m=0;

 printf("inputx:

");

 scanf("%ld",&x);

 do

 {

    r=x%10;

    m=m+r*t;

    t=t*8;

    x=x/10;

 }while(x!

=0);

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

}

结果:

inputx:

124

84

 #include

main()

{

 longx,r;

 printf("inputx:

");

 scanf("%ld",&x);

 do{

 r=x%10;

 printf("%d",r);

 x=x/10;

 }while(x!

=0);

}

inputx:

1358963421

1243698531

 

#include

#include

#define pi 3.14

main()

{

 doublea=0.0,b=pi,s,h;

 intn,i;;

 do

 {

  printf("inputn:

");

  scanf("%d",&n); 

 }while(n<100);

 h=pi/n;

 s=(sin(a)+sin(b))/2;

 for(i=1;i<=n-1;i++)

  s=s+sin(i*h);

 s=s*h;

 printf("s=%lf\n",s);

}

结果:

inputn:

14

inputn:

26

inputn:

34

inputn:

42

inputn:

58

inputn:

79

inputn:

85

inputn:

97

inputn:

100

s=1.999834

#include

main()

{

 inta=1;

 floatm;

 do

 {

 if(a%2==1&&a%3==2&&a%4==3&&a%5==4)break;

 a++;

 }while

(1);

 m=0.5*a;

 printf("%.2f\n",m);

}

结果:

29.50

作业标题:

作业2、for循环结构的使用

作业内容:

完成第63页8、9、10题

#include

#include

main()

{

 intm,k,i,n=0;

 for(m=101;m<=600;m=m+2)

 {

    k=sqrt(m);

 for(i=2;i<=k;i=i+1)

  if(m%i==0) break;

  if(i>=k+1) n=n+1;

 }

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

}

结果:

84

 

#include

#include

main()

{

 inta;

 for(a=1; ;a++)

 if((a%3==0)&&(a%5==0)&&(a%6==0))

    {

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

     break;

 }

}

结果:

30

 

#include

main()

{

 inti,k,n=0;

 for(i=5;i<=1000;i=i+5)

 { 

 n++;

 k=i/5;

 while(k%5==0)

 {

  n++;

  k=k/5;

 }

 }

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

}

结果:

249

实验教程63页5,6,7题

#include

main()

{

 intn;floats;

 s=1.0;

 for(n=10;n>1;n--)

  s=s+1/n;

 printf("%6.4f\n",s);

}

结果:

1.0000

1/n是取整运算其结果都是1

s=s+1/n应该为s=s+(float)1/n

 

有问题程序:

求“水仙花数”

#include"stdio.h"

main()

{

 intn,sum,t,m;

 sum=0;

 for(n=100;n<=999;n++)

 {

    m=n;  

 while(n!

=0)

 {

  t=n%10;

     sum=sum+t*t*t;

           n=n/10;

 }

 if(sum==m)

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

 }

}

 

#include

main()

{

 inti,a,b,c,sum;

 sum=0;

 for(i=100;i<=999;i++)

 {

 a=i%10;

 b=i/10-i/100*10;

 c=i/100;

 sum=a*a*a+b*b*b+c*c*c;

 if(i==sum)

 printf("%4d\n",i);

 }

}

结果:

153

 370

 371

 407

 

#include

main()

{

 inti,n;

 n=0;

 for(i=1000;i<=9999;i++)

    if(i%4==0&&i%10==6)

 n++;

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

}

结果:

450

作业标题:

实验十、函数与编译预处理

作业内容:

第70页第六、七题

#include"stdio.h"

intgcd(intm,intn)

{

 if(m%n==0)

  returnn;

 else

  returngcd(n,m%n);

}

voidmain()

{

 intm,n,t;

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

 if(m

 {t=m;m=n;n=t;}

   t=gcd(m,n);

 printf("gcd=%d\n",t);

}

结果:

6,94

gcd=2

同时求最大公约数和最小公倍数:

#include"stdio.h"

intgcd(intm,intn)

{

 if(m%n==0)

  returnn;

 else

  returngcd(n,m%n);

}

intfcd(intm,intn)

{

 inta,b;

 if(m%n==0)

  returnm;

 else

  a=m/gcd(m,n);

    b=n/gcd(m,n);

  returngcd(m,n)*a*b;

}

voidmain()

{

 intm,n,t,s;

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

 if(m

 {t=m;m=n;n=t;}

   t=gcd(m,n);

 s=fcd(m,n);

 printf("gcd=%d,fcd=%d\n",t,s);

}

结果:

12,8

gcd=4,fcd=48

 

#include"stdio.h"

main()

{

 inti,j,n;

   intc(intx,inty);

 printf("Inputn=");

 scanf("%d",&n);

 for(i=1;i<=n;i++)

 {

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

   printf("");

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

   printf("%3d",c(i,j));

    printf("\n");

 }

}

intc(intx,inty)

{

 intz;

 if(y==1||y==x)return1;

 else

 {z=c(x-1,y-1)+c(x-1,y);

  returnz;

 }

}

结果:

Inputn=6

       1

      1 1

     1 2 1

    1 3 3 1

   1 4 6 4 1

  1 51010 5 1

实验教程73页第4题

此程序是输入立方体的长宽高l/w/h,球立方体的体积及三个面x*y、x*z,y*z的面积。

注解:

由于C语言规定函数返回值只有一个,本程序中定义了三个外部变量s1,s2,s3,来存放三个面积,其作用域为整个程序,增加了函数返回值数据。

#include"stdio.h"

ints1,s2,s3;

intvs(inta,intb,intc)

{

 intv;

 v=a*b*c;

 s1=a*b;

 s2=b*c;

 s3=a*c;

 returnv;

}

main()

{

  intv,l,w,h;

  printf("\ninputlength,widthandheight\n");

  scanf("%d%d%d",&l,&w,&h);

  v=vs(l,w,h);

  printf("v=%ds1=%ds2=%ds3=%d\n",v,s1,s2,s3);

}

结果:

inputlength,widthandheight

4

3

6

v=72s1=12s2=18s3=24

作业标题:

实验十一、数组的基本定义与应用

作业内容:

第76页至78页

#include"stdio.h"

main()

{

 ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

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

  c[s[i]]++;

 for(i=1;i<5;i++)

  printf("%2d",c[i]);

 printf("\n");

}

结果:

4332

 

#include"stdio.h"

main()

{

 inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;

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

  for(k=i+1;k<4;k++)

   if(a[i][i]

   {t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}

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

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

}

结果:

6,4,3,2

 

#include"stdio.h"

main()

{

 inti,a[20],s,count;

 s=count=0;

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

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

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

 {

  if(a[i]<0)

   continue;

  s+=a[i];

  count++;

 }

 printf("s=%d\tcount=%d\n",s,count);

}

结果:

2

4

6

7

-7

-4

87

65

-83

-76

234

75

-45

86

4

68

-64

-23

56

78

s=772   count=13

Pressanykeytocontinue

 

#include"stdio.h"

main()

{

 intx[10],a[9],i;

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

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

 for(i=1;i<10;i++)

  a[i-1]=x[i]+x[i-1];

 printf("\n");

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

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

}

结果:

2642686535

8106814141188

 

#include"stdio.h"

main()

{

 intx,y,z,a[8],m,i=0;

 for(m=100;m<=999;m++)

 {

  x=m/100;

  y=m/10-x*10;

  z=m%10;

  if(x*100+y*10+z==x*x*x+y*y*y+z*z*z)

  {a[i]=m;i++;}

 }

   for(m=0;m

 printf("%6d",a[m]);

}

结果:

  153  370  371  407

 

#include"stdio.h"

main()

{

 floatx[1000],sum=0,ave,a;

 intn=0,i;

   printf("Entermark:

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

 while(a>0&&n<1000)

 {sum+=a;

 x[n]=a;

 n++;

 scanf("%f",&a);

 }ave=sum/n;

 printf("Output:

\n");

 printf("ave=%f\n",ave);

 for(i=0;i

  if(x[i]

}

结果:

Entermark:

86847894976769-1

Output:

ave=82.142860

78.000000

67.000000

69.000000

作业标题:

作业四、教材第158页编程题4、5、6题

作业内容:

编程题第4、5、6题

#include"stdio.h"

main()

{

 inta[700],i,max,num=0,k;

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

 {

  a[i]=i+1;

  k=a[i]*a[i];

  if(k%100000==a[i]||k%10000==a[i]||k%1000==a[i]||k%

100==a[i]||k%10==a[i]||k==a[i])

  {

   num++;

   max=a[i];

           printf("%d,%d\n",max,num);

  }

 }

}

结果:

1,1

5,2

6,3

25,4

76,5

376,6

625,7

 

#include"stdio.h"

main()

{

 intn;

 doublef[181],max=0;

 f[0]=f[1]=1;f[2]=0;

 for(n=3;n<=50;n++)

 {

  f[n]=f[n-1]-2*f[n-2]+f[n-3];

  if(max

 }

 printf("\nmax=%.01f",max);

}

结果:

 max=598325.0

 

#include"stdio.h"

main()

{

 inta[1001],i,s=0,n=1;

 for(i=1;i<=1000;i++)a[i]=i;

 a[1]=0;

 for(i=1;i<=1000;i++)

 {

  if(a[i]!

=0)

  {

   s+=1;

   if(s==50)

   {

    n++;

      if(n==1000)

    {printf("\na[%d]=%d",i,a[i]);

      break;

    }

      a[i]=0;s=0;

   }

  }

   if(i==1000)i=0;

 }

}

结果:

 a[630]=630

作业标题:

实验十二、字符数组、数组与函数

作业内容:

第78页至第81页。

#include"stdio.h"

main()

{

 charstr1[100],str2[100],c;

 inti,s;

 printf("Enterstring1:

");gets(str1);

   printf("Enterstring2:

");gets(str2);

 i=0;

 while((str1[i]==str2[i]&&str1[i]!

='\0'))

  i++;

 s=str1[i]-str2[i];

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

}

结果:

Enterstring1:

bdghekg

Enterstring2:

bdghjetk

-5

 

#include"stdio.h"

#include"string.h"

main()

{

 chara[]="acegikm";

 charb[]="bdfhjlnpq";

 charc[80],*p;

 inti=0,j=0,k=0;

 while(a[i]!

='\0'&&b[j]!

='\n')

 {if(a[i]

 else{c[k]=b[j];j++;}

 k++;

 }

 c[k]='\0';

 if(b[j]!

='\0')p=b+j;

 elsep=a+i;

 strcat(c,p);

 puts(c);

}

结果:

abcdefghijklmnpq

 

#include"stdio.h"

strle(chara[],charb[])

{

 intnum=0,n=0;

 while(a[num]!

='\0')num++;

 while(b[n])

 {a[num]=b[n];

 num++;n++;

 }

 return(num);

}

main()

{

   charstr1[81],str2[81];

   gets(str1);

   gets(str2);

   printf("%d\n",strle(str1,str2));

}

 结果:

qwerty

abcd

10

#include"stdio.h"

main()

{

   chars[80],c1,c2='';

   inti=0,num=0;

   gets(s);

   while(s[i]!

='\0')

 {

    c1=s[i];

     if(i==0)c2='';

    elsec2=s[i-1];

    if(c2=='')num++;

    i++;

 }

printf("Thereare%dwords.\n",num);

}

结果:

Iamastudent

Thereare4words.

 

#include"stdio.h"

#include"string.h"

voidreverse(chars[])

{

 inttemp,i,j;

 for(i=0,j=strlen(s)-1;i

 {

 temp=s[i];s[i]=s[j];s[j]=temp;

 }

}

main()

{

 charbin[20];unsignedn,i=0;

 printf("Inputadata");scanf("%d",&n);

 do

 {

 bin[i++]=n%2+'0';

 }while((n/=2)!

=0);

 bin[i]='\0';

 reverse(bin);

 puts(bin);

}

结果:

8

1000

 

#include"stdio.h"

main()

{

 floata[11],x;

 inti,j;

 printf("Input10numbersplease\n");

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

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

 printf("\n");

 for(i=1;i<10;i++)

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

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

  {

   x=a[j];

   a[j]=a[j+1];

   a[j+1]=x;

  }

  printf("Thesorted10numbers;\n");

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

  {

   if(i==5)

    printf("\n");

   printf("%f\t",a[i]);

  }

  printf("\n");

}

结果:

Input10numbersplease

4.35.27.068.24.479.13.36.2

Thesorted10numbers;

3.300000       4.300000       4.400000       5.200000       6.000000

6.200000       7.000000       7.000000       8.200000       9.100000

 

#include"stdio.h"

#include"string.h"

main()

{

 chara[20]="cehiknqtw";

 chars[]="fbla";

 inti,j,k;

 for(k=0;s[k]!

='\0';k++)

 {

 j=0;

 while(s[k]>=a[j]&&a[j]!

='\0')

  j++;

 for(i=j+1;a[i]!

='\0';i++)

  a[i]=a[i-1];

 a[j]=s[k];

 }

 puts(a);

}

 

#include"stdio.h"

main()

{

 intm[16],n,i,t,count=0;

 longa,k;

 printf("Resultis:

\n");

 for(n=10;n<200;n++)

 {

 k=0;

 t=1;

 a=n*n;

 for(i=1;a!

=0;i++)

 {

  m[i]=a%10;

  a/=10;

 }

 for(;i>1;i--)

 {

  k+=m[i-1]*t;

  t*=10;

 }

 if(k==n*n)

  printf("%2d:

%10d%10d\n",++count,n,n*n);

 }

}

结果:

Resultis:

      1:

        11       121

      2:

        22       484

      3:

        26       676

      4:

       101      10201

      5:

       111      

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

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1