郑州大学C语言实验报告册

zzu c 语言实验报告册总结

    鉴于郑州大学c程序报告网上无完整答案,故将后面没有答案的部分补充,以供同学参考。
  • for循环的使用
 9.1
 #include<stdio.h>
void main()
{
    int m=3,n=5,s=1,k=1,i,l=1;
    for(n=1;n<=5;n++)
        s=s*n;
    for(m=1;m<=3;m++)
        k=k*m;
    for(i=1;i<=(5-3);i++)
        l=l*i;
    printf("%d",s/k/l);
}
  • 数组的使用
 9.2
#include<stdio.h>
# define n 20
void main()
{
int a[n],i,FS=0;float V;
a[0]=1,a[1]=1;
for(i=2;i<n;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<n;i++)
FS=FS+a[i];
V=FS*1.0/n;
printf("%d %f",FS,V);
}
  • 函数的使用
 9.3
#include<stdio.h>
#include<math.h>
# define n 10
void main()
{ 
  double f(double x);
  double s(double x,double y,double h);
  double a=0,b=3.14159,di,sn=0,r[n+1];
  int i;
    di=(b-a)/n;
    r[0]=a;
  for(i=1;i<=n;i++)
        r[i]=r[i-1]+di;
    for(i=0;i<n;i++)
        sn=sn+s(f(r[i]),f(r[i+1]),di);
        printf("%0.3f",sn);
}
double f(double x)
    {double f;
    f=sin(2*x)+x;
    return(f);}
double s(double x,double y,double h)
    {double s;
     s=(x+y)*h/2;
     return(s);}
  • break函数的使用
     9.4
#include<stdio.h>
void main()
{   int judge(int m);
    int i=1,k;
    for(k=99;k>=1;k--)
    {if(judge(k))
       {printf("%d\n",k);i++;}
     if(i==4) break;}
}
int judge(int m)
    {int i,re=1;
    for(i=2;i<m;i++)
    if(m%i==0)
    {re=0;break;}
    return(re);} 
  • while循环的使用
    9.5
#include<stdio.h>
#include<math.h>
void main()
{
double f(double x);
double f1(double x);
double a=1.0;
do
{a=a-f(a)/f1(a);}
while (fabs(f(a))>1.0e-5);
printf("%f",a);
}


double f(double x)
{  double f;
   f=x*x*x*x*x+2*x*x*x-x*x+x+1;
   return(f);}
double f1(double x)
{  double f1;
   f1=5*x*x*x*x+6*x*x-2*x+1;
   return(f1);}
  • if函数的使用
   9.6
#include<stdio.h>
#define n1 100
#define n2 200
void main()
{
    int i,s=0;
    for(i=n1;i<=n2;i++)
        if(i)
            s=s+i;
        printf("%d",s);
}
int judge(int m)
    {int i,re=1;
    for(i=2;i<m;i++)
    if(m%i==0)
    {re=0;break;}
    return(re);}
  • 元素的交换
    11.1
#include<stdio.h>
void main()
{void swap(int *p1,int *p2);
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(a>c)
swap(&a,&c);
if(b>c)
swap(&b,&c);
printf("%d %d %d",a,b,c);
}
    void swap(int *p1,int *p2)
    {int temp;
    temp=*p1;*p1=*p2;*p2=temp;}
  • 调用键盘输入
    11.2
#include<stdio.h>
void main()
{int n,i;
float a[20];
scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%f",&a[i]);
     for(i=0;i<n;i++)
        printf("%5.2f  ",*(a+n-1-i));
}
  • 指针的简单使用
11.3
#include<stdio.h>
void main()
{float a=3,b=2;
float *p1,*p2;float temp;
p1=&a;p2=&b;
temp=*p1;*p1=*p2;*p2=temp;
printf("%0.2f %0.2f",a,b);
}
  • 字符串数组
11.4
#include<stdio.h>
void main()
{int n;
char *p[]={"January","February","March","April","May",
"June","July","August","September","October","November","December"};
scanf("%d",&n);
printf("%s\n",p[n-1]);
}
  • 使用指针交换
11.5
#include<stdio.h>
void main()
{void swap(int *p1,int *p2);
int i,j;
int a[10]={653,29,6,78,222,2,827,8,2,99};
for(i=0;i<=9;i++)
for(j=i;j<=9;j++)
if(a[i]<a[j])
swap(&a[i],&a[j]);
for(i=0;i<=9;i++)
printf("%d\t",a[i]);
}
void swap(int *p1,int *p2)
    {int temp;
    temp=*p1;*p1=*p2;*p2=temp;}
  • 字符串命令gets()的使用
11.6
#include<stdio.h>
void main()
{
    char str[1000];char *p=str;int i;
    gets(str);
    printf("%s",p);
}
  • strlen()的使用
11.7
#include<stdio.h>
#include<string.h>
void main()
{
char a[]="liuyangwangbadan   ";
printf("%d",strlen(a));
}
  • 字符比较命令的使用
11.8
#include<stdio.h>
#include<string.h>
#define m 100
#define n 3
void main()
{
    char a[m],b[n],c[n];
    int i,num=0,d,j;
    gets(a);
    gets(b);//b[n]只能输入n-1个数,因为"\o",占了一个长度
    for(i=0;i<m-n;i++)
    {for(j=0;j<n-1;j++)
    {
        *(c+j)=*((a+i)+j);
    d=strcmp(b,c);
    if(d==0)
        num++;}
    }
        printf("%d\n",num);

}
  • 二维数组的使用
12.1
#include<stdio.h>
void main()
{
    float a[2][3];int i,j;
    for(i=0;i<=1;i++)
        for(j=0;j<=2;j++)
            scanf("%f",&a[i][j]);
for(i=0;i<=1;i++)
{for(j=0;j<=2;j++)
        printf("%3.0f",a[i][j]);
        printf("\n");}
}
  • 利用数组找最大值和最小值
12.2
#include<stdio.h>
void main()
{
    int a[3][6],max,min,i,j,maxi,maxj,mini,minj;
    for(i=0;i<=2;i++)
        for(j=0;j<=5;j++)
            scanf("%d",&a[i][j]);
        max=min=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=5;j++)
{if(a[i][j]>max)
    {
        max=a[i][j];maxi=i;maxj=j;
    }
    if(a[i][j]<min)
    {
        min=a[i][j];mini=i;minj=j;
    }
}
    printf("%d %d %d\n%d %d %d\n",max,maxi,maxj,min,mini,minj);
}
  • 求学生平均值和挑选满足条件的学生
12.3
#include<stdio.h>
void main()
{
    int a[3][4],s,i,j;double ave[3];
    for(i=0;i<=2;i++)
        for(j=0;j<=3;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<=2;i++)
    {{ s=0;
    for(j=0;j<=3;j++)
    s=s+a[i][j];}
    ave[i]=s/4.0;}
    printf("%5.2f,%5.2f,%5.2f",ave[0],ave[1],ave[2]);
     for(i=0;i<=2;i++)
     {for(j=0;j<=3;j++)
          if(a[i][j]<60)
          {printf("\n第%d个学生超过一门课程不及格\n",i+1);break;}
          }
}
  • 条件表达式的使用
12.4
#include<stdio.h>
void main()
{   int *readd(int x,int y);
    *readd(9,11);
printf("%d",readd(9,10));
}
    int *readd(int x,int y)
    {int*p=&x;int*q=&y;
        return((x>y)?p:q);
    }
  • strcpy()函数的使用
    12.5
#include<stdio.h>
#include<string.h>
void main()
{  char a[5][10];char b[10]={'0','0','0','0','0'};int i;
for(i=0;i<=4;i++)
gets(a[i]);
for(i=0;i<=4;i++)
{if(strcmp(b,a[i])<0)
strcpy(b,a[i]);}
printf("%s",b);
}
  • 文件的读写,我就都写在一块了哈。
14.1
 在d盘根目录下右键单击新建一个名为“chengji”的文本文档输入如下数据并保存
1001 zhangsan 78 90 89

1002 lisi 99 88 77

1003 wangwu 89 76 55

1004 zhaoliu 53 55 44 
14.2
#include <stdio.h>

#include <stdlib.h>

#define  N  5

 main( )

{

  FILE *fp;

  int num,sc1,sc2,sc3,score,i;

  char name[10];

  if((fp=fopen("d:\\chengji.txt","r"))==NULL)

  { printf("Error");

    exit(0);

  }//检验是否有数据

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

  { fscanf(fp,"%d%s%d%d%d\n",&num,name,&sc1,&sc2,&sc3);    score=sc1+sc2+sc3;

    printf("%6d%10s%6d%6d%6d%6d\n",num,name,sc1,sc2,sc3,score/3);//向fp指向的文件中
                                                               //按格式读取数据

  }

  fclose(fp);}
14.3
14.4
结构体不做要求。
14.5
14.5
#include <stdio.h>

#include <stdlib.h>

void main( ) 

{    

  FILE *fp1,*fp2; 

  char ch;

  if(( fp1=fopen("c:\\tc\\file4.c", "r"))==NULL) //以读文本文件方式打开原有文件
  { printf("Error");

    exit(0);

  }

if(( fp2=fopen("c:\\tc\\file5.c", "w"))==NULL) //以写文本文件方式打开目标文件
{ printf("Error");

    exit(0);

  }

ch=fgetc(fp1);

  while(ch!=EOF)

  { 

fputc(ch,fp2);  //把该字符写入目标磁盘文件
ch=fgetc(fp1);  //从原有磁盘文件中读一个字符
  }

fclose(fp1);

fclose(fp2);

}
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int a[100][5],b[100],i,j;FILE *fp;
    for(i=0;i<=99;i++)
        for(j=0;j<=4;j++)
            a[i][j]=(rand()%500+1);
        fp=fopen("D:\\1.0.txt","w+");
        for(i=0;i<=99;i++)
        {{for(j=0;j<=4;j++)
        fprintf(fp,"%d  ",a[i][j]);}
        fprintf(fp,"\n");}
        fclose(fp);
        if((fp=fopen("D:\\1.0.txt","r"))==NULL)
        {
            printf("cannot find what you need,please check it!");
            exit(0);
        }

        for(i=0;i<=99;i++)
        {int a=0,b=0,c=0,d=0,f=0;
        fscanf(fp,"%d%d%d%d%d",&a,&b,&c,&d,&f);
        printf("%d\t",b+c+d+f);}
        fclose(fp);
}
15.1
#include<stdio.h>
void main()
{
    int i;
    for(i=2;i<=17;i++)
    {printf("%2d ",i);
    if((i-1)%4==0)
        printf("\n");}
}

最后,祝同学们逢考必过。


C语言实训心得总结.doc C语言实训心得 10903090113 李新程 在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。 在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对C语言的学习产生浓厚的兴趣。 还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲课中海给我们分享他在公司上班的一些心得和体会,还有那些我们应该注意的事项,这些是平时上课时无法学到的,是更深层次的巨大收获。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆嵩

有打赏才有动力,你懂的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值