郑州大学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");}
}

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


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 返回首页