C语言实验报告范本

     

课程名称_____ C语言程序设计_____

实验项目___顺序结构程序设计___

实验仪器 ______计算机___________

系    别_____信息与通信工程学院_______

专    业______通信_________

班级/学号___通信1204 /2012010934__

学生姓名 ______王浩鑫_________  

实验日期 ____2013413___

成    绩 _______________________

           指导教师______周淑一 _________

一、        实验目的

1、             掌握C语言中,基本的输入输出函数的使用方法。

2、             掌握printf中转义字符’\t’,’\n’的用法。

3、             掌握赋值语句的用法。

4、             掌握算术表达式、赋值表达式的计算。

5、             掌握数学函数的使用。

二、        实验内容

1、    输入圆的半径 r ,计算圆的周长和面积 。其中 π =3.1416

输入: 圆的半径 r

输出:圆的周长c  面积 是s (均保留 2 位小数)

程序代码:

#include "stdio.h"

int main()

{

     float r,c,s,PI=3.1416;

         scanf("%f",&r);

         c=2*PI*r;

         s=PI*r*r;

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

     return 0;

}

圆角矩形标注: 截图内容三圆角矩形标注: 截图内容二圆角矩形标注: 截图内容一

2、编写程序,实现从键盘输入两个整数,输出它们的加减乘除取余五种算术运算结果的功能(结果均为整数)。假定除数不为0。

程序代码:

#include "stdio.h"

int main()

{

     int a,b;

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

     printf("%d+%d=%d\n",a,b,a+b);

     printf("%d-%d=%d\n",a,b,a-b);

     printf("%d*%d=%d\n",a,b,a*b);

     printf("%d/%d=%.2f\n",a,b,1.0*a/(1.0*b));

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

    return 0;

}

3、编写一个程序,其功能为:从键盘输入一个大写字母,将其转换为对应的小写字母,并输出。

程序代码:#include "stdio.h"

int main()

{

     char a;

     scanf("%c",&a);

    printf("%c\n",a+32);

     return 0;

}

4、产品的利润与产品生产成本以及销售收入有关:

利润=销售收入-生产成本,

销售收入=销售数量×售价,

生产成本=固定成本+可变成本,

可变成本=生产数量×单位可变成本。

假定生产的产品全部售出。

编写一个程序,其功能为:根据给定的销售数量、售价、固定成本、单位可变成本,计算利润,并输出(结果保留两位小数,使用double类型定义实型数据)。

输入

销售数量 售价 固定成本 单位可变成本

输出

利润

程序代码:

#include "stdio.h"

int main()

{

     double a,b,c,d,w;

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

     w=a*b-c-a*d;

     printf("%.2lf\n",w);

     return 0;

}

5、人口增长问题:按照每年0.2%的增长速度,我国现有人口13亿,10年后将有多少人口?

编写一个程序,其功能为:根据公式计算我国10年后的人口数,并输出(结果保留两位小数)。

p=p0(1+rate)n

其中,p0=13亿,rate=0.2%, n=10

输入

p0,rate, n的值

输出

10年后的人口数(单位:亿)

程序代码:

#include "math.h"

#include "stdio.h"

int main()

{

     float a,b,c;

     int n;

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

     c=a*pow(1+b,n);

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

     return 0;

}

6、输入时间的总秒数(整数),将其转换为hh:mm:ss的表示形式。

输入

只有一行,为一个整数,表示时间的总秒数。

输出

与输入的秒数对应的时间的时分秒表达形式。

程序代码:

#include "stdio.h"

int main()

{

     int a,b,c,d;

     scanf("%d",&a);

     b=a/3600;

     c=(a-b*3600)/60;

     d=a-b*3600-c*60;

     printf("%d:%d:%d\n",b,c,d);

     return 0;

}

三、    实验体会

通过这次试验让我懂得了整型到实型的强制转换,掌握了转义字符的使用方法和“scanf、printf”这种基本的函数,C程序的语句后千万不要忘记加“;”。

在学习到知识的同时,我对C程序的精密和美感有了更深的体会,希望第一章的学习能成为我C语言学习的良好开端。

 

第二篇:C语言实验报告答案

实验一

二、编程题(参考答案)

1、

#include “stdio.h”

void main()

{ int Math=82,eng=78,comp=91,average;

average=(Math+eng+comp)/3;

printf(“Math=%d,eng=%d,comp=%d,average=%d\n”,Math,eng,comp,average); }

2、

#include “stdio.h”

void main()

{ int n=152,d1,d2,d3;

d1=n%10;

d2=(n/10)%10;

d3=n/100;

printf(“整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n”,n,d1,d2,d3); }

3、

#include “stdio.h”

void main()

{ int n1,n2;

printf(“Enter n1,n2:”);

scanf(“%d,%d”,&n1,&n2);

printf(“%d+%d=%d\n”,n1,n2,n1+n2);

printf(“%d/%d=%d\n”,n1,n2,n1/n2);

printf(“%d%%%d=%d\n”,n1,n2,n1%n2);

}

三、改错题

原错误行(共三行):

/********************************** found ********************************/ #include “stdoi,h”

/********************************** found ********************************/ printf(“%d=%d*%d\n”,x);

/********************************** found ********************************/ printf(“%d*%d=%d\n”,y);

改正后:

#include “stdio.h”

printf(“%d=%d*%d\n”,y,x,x);

printf(“%d*%d=%d\n”,x,x,y);

实验二

一、改错题

1、原错误行(共三行):

/********************************** found ********************************/ #include “stdoi,h”

/********************************** found ********************************/ scanf(“%lf”,x);

/********************************** found ********************************/ y=1/x

改正后:

#include “stdio.h”

scanf(“%lf”,&x);

y=1/x;

2、原错误行(共两行):

/********************************** found ********************************/ { int i,sum;

/********************************** found ********************************/ for(i=1,i<=100,i++)

改正后:

{ int i,sum=0;

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

二、编程题 (本标题报告上漏印了)

2、 (因为报告上小题号就是从2开始的,没有第1题)

#include “stdio.h”

#include “math.h”

void main()

{ int a,b,c;

float s,area,perimeter;

printf(“请输入三角形的三边:”);

scanf(“%d,%d,%d”,&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

{ perimeter=a+b+c;

s=perimeter/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“area =%.2f,perimeter=%.2f\n”,area,perimeter);

}

else

printf(“不构成三角形”);

}

3、

#include “stdio.h”

void main()

{ int i,m,n;

float sum=0;

printf(“Enter m:”);

scanf(“%d”,&m);

printf(“Enter n:”);

scanf(“%d”,&n);

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

sum=sum+1.0/i;

printf(“sum=%.3f\n”,sum); }

4、

#include “stdio.h”

void main()

{ int i,n;

float sum=0;

printf(“Enter n:”);

scanf(“%d”,&n);

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

sum=sum+1.0/(2*i-1);

printf(“sum=%.2f\n”,sum); }

5、

#include “stdio.h”

void main()

{ int i,m,n;

long a=1,b=1;

printf(“Enter m:”);

scanf(“%d”,&m);

printf(“Enter n:”);

scanf(“%d”,&n);

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

a=a*i;

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

b=b*i;

printf(“%d!+%d!=%ld\n”,m,n,a+b); }

实验三

一、改错题

原错误行(共三行):

/********************************** found ********************************/ double sum;

/********************************** found ********************************/ for(i=1;i<10;i++)

sum=sum+fact(i);

printf(“1!+2!+?+10!=%f\n”,sum);

}

/********************************** found ********************************/ double fact(int n);

改正后:

double sum=0;

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

double fact(int n)

二、编程题

1、

int even(int n)

{ if(n%2==0)

return 1;

else

return 0;

}

2、

int prime(int x)

{ int n;

for(n=2;n<x;n++)

if(x%n==0)

return 0;

if(x>=2)

return 1;

else

return 0;

}

3、

#include “stdio.h”

int fun1(int n)

{ if(n%2==0)

return 1;

else

return 0;

}

int fun2(int x)

{ int n;

for(n=2;n<x;n++)

if(x%n==0)

return 0;

if(x>=2)

return 1;

else

return 0;

}

void main()

{ int i,m,n,a,b;

printf(“Enter m:”);

scanf(“%d”,&m);

printf(“Enter n:”);

scanf(“%d”,&n);

a=fun1(m);

b=fun2(n);

if(a==1) printf(“%d是偶数\n”,m); else printf(“%d是奇数\n”,m); if(b==1) printf(“%d是素数\n”,n); else printf(“%d不是素数\n”,n); }

实验四

一、改错题

1、原错误行(共两行):

/********************************** found ********************************/ { int i,s;

/********************************** found ********************************/ if(str[i]<=’0’||str[i]>=’9’)

改正后:

{ int i,s=0;

if(str[i]>=’0’&&str[i]<=’9’)

2、原错误行(共三行):

/********************************** found ********************************/ { int i,j,n,x,a[n];

/********************************** found ********************************/ a[i] =a[i+1];

/********************************** found ********************************/ a[i]=x; /*插入

改正后:

{ int i,j,n,x,a[10];

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

a[j]=x;

3、原错误行(共三行):

/********************************** found ********************************/ max=str;

/********************************** found ********************************/

if(max<str)

/********************************** found ********************************/

max=str;

改正后:

strcpy(max,str);

if(strcmp(max,str)<0)

strcpy(max,str);

4、原错误行(共两行):

/********************************** found ********************************/ void fun(int a[],int n) /*该函数求出a数组中n个元素奇数的个数*/

/********************************** found ********************************/ if(a[i]%2==0) m++;

改正后:

int fun(int a[],int n)

if(a[i]%2!=0) m++;

二、编程题

1、

#include “stdio.h”

void main()

{ int i,n,min,max,s1,s2,t,a[10];

printf(“请输入数据个数n值:”);

scanf(“%d”,&n);

printf(“请输入这%d个数:”,n);

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

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

min=a[0]; s1=0;

max=a[n-1]; s2=n-1;

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

{ if(a[i]<min) { min=a[i]; s1=i; } if(a[i]>max) { max=a[i]; s2=i; } }

if(s1!=0) { t=a[0];a[0]=a[s1];a[s1]=t; }

if(s2!=n-1) { t=a[n-1];a[n-1]=a[s2];a[s2]=t; } for(i=0;i<n;i++)

printf(“%d ”,a[i]);

}

2、

int sum(int a[],int n)

{ int i,sum=0;

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

sum+=a[i];

return sum;

}

实验五

一、改错题

1、原错误行(共两行):

/********************************** found ********************************/

scanf(“%d”,&p++);

/********************************** found ********************************/

x[0]=x[k];

改正后:

scanf(“%d”,p++);

x[0]=k;

二、编程题

1、

int search(int *a,int n,int x)

{ int i;

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

if(a[i]==x) return i;

return -1;

}

2、

int fun(char *s)

{ int i,j,n;

n=strlen(s);

for(i=0,j=n-1;i<n/2;i++,j--)

if(s[i]!=s[j])

return 0;

return 1;

}

3、

此题为选作题

#include “stdio.h”

void sort(int *a,int n)

{ int i,j,k,t;

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

{ k=i;

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

if(a[j]<a[k]) k=j;

if(k!=i)

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

}

}

main()

{ int a[10],i,n;

printf(“请输入n值:”);

} scanf(“%d”,&n); printf(“请输入这%d个元素值:”,n); for(i=0;i<n;i++) scanf(“%d”,&a[i]); sort(a,n); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n");

实验六

一、改错题(原错误行共两行):

/********************************** found ********************************/

{ scanf(“%d”,&score[j]);

/********************************** found ********************************/

printf("总分最高的学生是:%s,%d\n", name, sum);

改正后:

{ scanf(“%d”,&a[i].score[j]);

printf("总分最高的学生是:%s,%d\n", a[k].name, a[k].sum);

二、编程题

1、

#include "stdio.h"

typedef struct student /*定义结构体类型*/

{ long num;

char name[9];

int score[3];

float aver;

}STU;

void main()

{ STU a[10];

int i,j,n,s=0;

printf("输入n:");

scanf("%d",&n);

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

{ printf("输入第%d个学生的学号、姓名和3门课成绩:",i+1); scanf("%ld",&a[i].num);

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

s=0;

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

{ scanf("%d",&a[i].score[j]); s+=a[i].score[j]; }

a[i].aver=s/3.0;

}

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

printf("%s,%.2f分\n",a[i].name,a[i].aver);

}

三、填空题

;

}

;

实验七

一、改错题(原错误行共两行):

/********************************** found ********************************/ FILE fp;

/********************************** found ********************************/ if((fp=fopen(“a.txt”,“w”))!=NULL)

改正后:

FILE *fp;

if((fp=fopen(“a.txt”,“w”))==NULL)

二、编程题

1、

#include "stdio.h"

#include "string.h"

void main()

{ FILE *fp;

char a[10];

if((fp=fopen("test.txt","w"))==NULL)

{ printf("error");

exit(0);

}

scanf("%s",a);

strupr(a);

fputs(a,fp);

fclose(fp);

}

2、

#include "stdio.h"

#include "string.h"

void main()

{ FILE *fp;

char a;

if((fp=fopen("test.txt","r"))==NULL)

{ printf("error");

exit(0);

}

while(!feof(fp))

{ a=fgetc(fp);

printf("%c",a);

}

fclose(fp);

}

3、

#include "stdio.h"

#include "stdlib.h"

typedef struct student

{ long num;

char name[9];

int score[3];

float aver;

}STU;

void main()

{ FILE *fp;

int i,j,n,s;

STU a;

scanf("%d",&n);

if ((fp=fopen("stud.dat","wb"))==NULL)

{ printf("File connot be opened\n");

exit(0);

}

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

{ scanf("%ld",&a.num);

scanf("%s",a.name);

s=0;

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

{ scanf("%d",&a.score[j]); s+=a.score[j]; a.aver=s/3.0;

fwrite(&a,sizeof(STU),1,fp);

}

fclose(fp);

}

4、

#include "stdio.h"

#include "stdlib.h"

typedef struct student

{ long num;

char name[9];

int score[3];

float aver;

}STU;

void main()

{ FILE *fp;

int i,j,n,s;

STU a;

if ((fp=fopen("stud.dat","rb"))==NULL)

{ printf("File connot be opened\n"); }

exit(0);

}

while(fread(&a,sizeof(STU),1,fp)!=NULL)

{ printf("%ld\t%s\t",a.num,a.name);

printf("%d\t%d\t%d\t%.2f\n",a.score[0],a.score[1],a.score[2],a.aver); }

fclose(fp);

}

相关推荐