《C语言》实验报告
学 院: 专 业: 班 级: 1班 学 号: 1140100114 姓 名:指导教师:
年 月
实验一 简单C程序
【实验目的】
1、 掌握上机运行一个C程序的全部过程。
2、 初步学会VC++集成环境的使用方法。
3、 初步学会差错和排错的技能。
4、 加深理解程序执行的过程以及程序设计的有关概念。
【实验步骤】
1、启动VC++集成环境。
2、在编辑状态下输入源程序,保存后生成扩展名为cpp的源文件。
3、对源文件进行编译,生成扩展名为obj的目标文件,如果编译通不过,再回到编辑状态修改程序。
4、对目标文件进行连接,生成扩展名为exe的可执行文件。
5、最后运行可执行文件,得到程序运行结果。
注:具体实验内容为第1,2,3章作业,每题要有题目,源程序,C编译系统下的编译示图,C编译系统下的运行结果示图。
【题目一】 编写一个C程序,输入a b c 三个值,输出其中最大值
【源程序】
# include <stdio.h>
int main ()
{
}
int max(int x,int y)
{
}
int z; if(x>y)z=x; else z=y; return(z); int max(int x,int y); int a,b,c,d; scanf("%d%d%d",&a,&b,&c); d=max(max(a,b),c); printf("max=%d\n",d); return 0;
【C编译系统下的编译示图】
C编译系统下的运行结果示图
【题目二】请编写程序将“China”译成密码,密码的规律是用原来的字母后面第4个字母代替原来的字母。例如字母“A”后面第4个字母是“E”代替“A”。因此“China”译成“Glmre”。请编写程序,用赋初值的方法使c1.c2.c3.c4.c5这五个变量的值分别为“G”“l”“m”“r”“e”.分别用Putchar函数和Printf函数输出这五个字符。
【源程序】
# include <stdio.h>
int main ()
{
char c1='C',c2='h',c3='i',c4='n',c5='a'; putchar(c1+4); putchar(c2+4);
putchar(c3+4);
putchar(c4+4);
putchar(c5+4);
return 0;
}
# include <stdio.h>
int main ()
{
char c1='C',c2='h',c3='i',c4='n',c5='a',a,b,c,d,e; a=c1+4; b=c2+4; c=c3+4; d=c4+4; e=c5+4; printf("a=%c",b=%c,c=%c,d=%c,e=%c\n",a,b,c,d,e); return 0; }
【C编译系统下的编译示图】
【C编译系统下的运行结果示图】
题目2:设圆的半径为r=1.5,圆柱体h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编写程序。
源程序
#include <stdio.h>
#define PI 3.14
int main ()
{
int h;
float r,s1,s2,c,v;
scanf("%d,%f",&h,&r);
v=4.0/3*PI*r*r*r;
c=2*PI*r;
s1=PI*r*r;
s2=4*PI*r*r;
printf("v=%.2f\n",v);
printf("c=%.2f\n",c);
printf("s1=%.2f\n",s1);
printf("s2=%.2f\n",s2);
return 0;
}
编译试图
运行结果
实验二 选择结构
【实验目的】
1、掌握逻辑运算和逻辑表达式的用法。
2、掌握选择结构的程序设计方法。
3、掌握if语句和switch语句。
4、了解c语言表示逻辑量的方法,以0代表“假”,以非0代表“真”。
注:具体实验内容为第4章作业,每题要有题目,源程序,C编译系统下的编译示图,C编译系统下的运行结果示图。
【题目一】给个不多于5位的正整数
1, 求出他是几位数
2, 分别输出每一位数
3, 按逆序输出
【源程序】
#include<stdio.h>
int main()
{
int a,b,c,d,e,f,g,h;
scanf("%d",&a);
if(a<10)b=1,c=a%10,h=c;
else if(a<100)b=2,d=a/10%10,c=a%10,h=c*10+d;
else if(a<1000)b=3,e=a/100%10,d=a/10%10,c=a%10,h=c*100+d*10+e;
else
if(a<10000)b=4,f=a/1000%10,e=a/100%10,d=a/10%10,c=a%10,h=c*1000+d*100+e*10+f; else if(a<100000)
b=5,g=a/10000%10,f=a/1000%10,e=a/100%10,d=a/10%10,c=a%10,h=c*10000+d*1000+e*100+f*10+g;
printf("b=%d,c=%d,d=%d,e=%d,f=%d,g=%d,h=%d/n",b,c,d,e,f,g,h);
return 0;
}
【C编译系统下的编译示图】
【C编译系统下的运行结果示图】
实验三 循环结构
【实验目的】
1、掌握循环语句的执行过程及用法。
2、初步掌握循环语句设计的基本技巧。
3、掌握用do while语句,while语句和for语句实现循环的方法。
4、学会单步跟踪的操作方法。
注:具体实验内容为第5章作业,每题要有题目,源程序,C编译系统下的编译示图,C编译系统下的运行结果示图。
【题目一】
一个数如果恰好等于它的因子之和,这个数九称为完数编写程序找小虎1000以内所有完数 一这种形式输出
6 its factors are 1,2,3
【源程序】
#include<stdio.h>
int main()
{
int m,i,j,s;
for(m=6;m<1000;m++)
{s=m-1;
for(i=2;i<m;i++)
if(m%i==0)s=s-i;
if(s==0)
{
printf("%5d its factors are 1",m); for(j=2;j<m;j++)
if(m%j==0)
printf("%d",j); printf("\n");}
}
}}
【C编译系统下
的编译示图】
【C编译系统下的运行结果示图】
题目2
140.7题
源程序
#include<stdio.h>
int main()
{
int i,a=0,b=0,c=0,sum;
for(i=1;i<=100;i++)
a+=i;
for(i=1;i<=50;i++)
a+=i*i;
for(i=1;i<=10;i++)
b+=1/i;
sum=a+c+b;
printf("sum=%d",sum);
return 0;
}
编译试图
运行结果
1题目
Sn=a+aa+aaa…….(n个a)现在以为输入N,A求SN 源程序
#include<stdio.h>
int main()
{
int i,s,t,n,a;
scanf("%d,%d",&n,&a);
s=a;
t=a;
for(i=2;i<=n;i++) {
t=10*t+a; s+=t; }
printf("%d",s); return 0; }
2编译试图
3运行结果
实验四 数组与函数
【实验目的】
1、 掌握一维和二维数组的定义及应用。
2、 掌握一维和二维数组的基本编程技巧。
3、 掌握使用函数进行程序设计的方法。
注:具体实验内容为第6,7章作业,每题要有题目,源程序,C编译系统下的编译示图,C编译系统下的运行结果示图。
【题目一】
输出杨辉三角形
【源程序】
#include<stdio.h>
int main()
{
int a[10][10],i,j;
for(i=0;i<10;i++)
for(j=0;j<=i;j++)
{if(i==j||j==0)
a[i][j]=1;
else a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
【C编译系统下的编译示图】
【C编译系统下的运行结果示图】
题目2
有一个已经排好的序的数组民谣求输入一个数后,按原来排序的逆序输出,入 8,6,5,4,1输出1,4,5,6,8
源程序
#include<stdio.h>
int main()
{
int a[5]={{8},{6},{5},{4},{1}};
int b[5],i;
for(i=0;i<5;i++)
{printf("%5d",a[i]);
b[4-i]=a[i];
}
printf("\n");
for(i=0;i<5;i++)
{printf("%5d",b[i]);
}
printf("\n");
return 0;
}
编译试图
运行结果
题目
输出年月日计算改日是改年的多少天 源程序
#include<stdio.h>
int main()
{
int find(int x,int y,int z); int year,month,date, day;
scanf("%d%d%d",&year,&month,&date); day=find(year,month,date);
printf("the date is%dth days\n",day); return 0;
}
int find(int x,int y,int z)
{int i,s,t,days=0;
if(x%4==0)t=1;
else t=0;
for(i=1;i<y;i++)
{if(i==2)s=2-t;
else s=0;
days+=30+i%2-s;
}
days=days+z;
return(days);
}
编译试图
运行结果
题目
输入10个学生的,5门课程的分数,分别用函数实现下列功能
1. 计算每个学生的平均成绩
2. 计算每门课的平均成绩
3. 找出50个分数的中最高分和分数所对应的成绩
源程序
#include <stdio.h>
#define N 10
#define M 5
float score[N][M];
float a_stu[N],a_cour[M];
int r,c;
int main()
{ int i,j;
float h;
float s_var(void);
float highest();
void input_stu(void);
void aver_stu(void);
void aver_cour(void);
input_stu();
aver_stu();
aver_cour();
printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver\n"); for(i=0;i<N;i++)
{printf("\n NO %2d ",i+1);
for(j=0;j<M;j++)
printf("%8.2f",score[i][j]);
printf("%8.2f\n",a_stu[i]);
}
printf("\naverage:");
for (j=0;j<M;j++)
printf("%8.2f",a_cour[j]);
printf("\n");
www.99jianzhu.com/包含内容:建筑图纸、PDF/word/ppt 流程,表格,案例,最新,免费下载,施工方案、工程书籍、建筑论文、合同表格、标准规范、CAD图纸等内容。