c语言实验报告(共13页).doc
精选优质文档-倾情为你奉上C语言程序设计-实验报告1 姓名:许雅明 学号:0033年级:2011专业: 电气信息类实验目的:1、 熟悉C语言编译器2、 掌握基本的C代码编写方法与风格3、 掌握基本的数据类型、运算符与表达式的灵活运用4、 掌握顺序、分支结构程序设计思想与代码编写方法实验内容:1、在D盘根目录,创建以自己姓名拼音命名的文件夹,并创建exp1命名的子文件夹,本次实验所有代码均保存于该字文件夹;2、利用VC6编写代码,并运行、保存;3、从键盘输入3个整数,分别赋值给3个变量,并求出最小数,最后输出,并暂停、观察; 伪代码: 1,输入三个数分别赋值给a,b,c。 2,利用min函数求出最小数并输出。 代码: #include"stdio.h"#include"stdlib.h"void main() long a,b,c;int min(int ,int,int); printf("请输入3个整数n") ; scanf("%ld %ld %ld",&a,&b,&c); printf("这3个数中最小的数是:%ldn",min(a,b,c);system("pause");int min(int a,int b,int c) if(a>b) a=b; if(a>c) a=c; return a; 运行结果: 4、求出1100中,所有奇数的和; 伪代码: 1,用一个数保存奇数和 2, 用一个for循环累加3,输出这个数。 代码:#include"stdio.h"#include"stdlib.h"void main()int i, sum; sum=0; for(i=1;i<100;i+=2) sum+=i; printf("100以内的奇数和是:%dn",sum); system("pause"); 运行结果: 5、从键盘输入两个整数,并分别赋给变量m、n,求出最大公约数; 伪代码: 1,读入两个变量。 2,利用函数求出最大公约数。 3,输出最大公约数。 其中,第2部求精: 利用辗转相除法:将大的值除以小的数的值,取余数,再将小的值赋给余数,大的值是上一步小的值,直到余数为0,折上一步小的值是最大公约数。 代码:#include"stdio.h"#include"stdlib.h"void main() long a,b; long max(long a,long b) ; printf("请输入两个整数n"); scanf("%ld %ld",&a,&b); printf("这两个数的最大公约数是:%ldn",max(a,b);system("pause"); long max(long a,long b) long n; if(a>b) n=a; a=b;b=n; while(a!=0) n=a; a=b%a; b=n; ; return b; 运行结果: 6、从键盘输入两个整数,并分别赋给变量m、n,求出最小公倍数;伪代码: 1,读入两个数。 2,求出这两个数的最大公约数。 3,用这两个数的积除以这个数的最大公约数。 4,输出最小公倍数。 代码:#include"stdio.h"#include"stdlib.h"void main() long a,b; long max(long,long); long min(long,long); printf("请输入两个整数n"); scanf("%ld %ld",&a,&b); printf("这两个数的最小公倍数是:%ldn",min(a,b); system("pause");long max(long a,long b) long n; if(a>b) n=a; a=b;b=n; while(a!=0) n=a; a=b%a; b=n; ; return b ; long min(long a,long b) long max(long,long);a=a*b/max(a,b);return a; 运行结果: 7、从键盘输入一个整数,并赋予变量y,判断是否是闰年; 伪代码:1,读入一个数。2,看这个数是不是能被4整除但不能被100整除,或者能被400整除3,输出是不是闰年。代码:#include"stdio.h"#include"stdlib.h"void main() int n; printf("请输入一个年份n"); scanf("%d",&n); if(n%4=0&&n%100!=0)|n%400=0) printf("%d是闰年n",n); else printf("%d不是闰年n",n); system("pause");运行结果: 8、设计一个程序,实现对各种数据类型的混合运算,并输出其结果; 伪代码:1, 用各种函数的混合运算。2, 把他们相加。3, 输出结果。代码:#include"stdio.h"#include"stdlib.h"void main()int a; float b;double m;char c;printf("请输入一个整数,一个小数,一个字符n");scanf("%d %f %c",&a,&b,&c); m=a+b+c;printf("这几个数的和是%fn",m);system("pause");运行结果:9、教材P88,4.4; #include"stdio.h" void main() long a=3,b=4,c=5,u=51274,n=; char c1='a',c2='b' double y=2.4,z=-3.6,x=1.2; printf("a= %ld b= %ld c= %ldnx=%f,y=%f,z=%fnx+y= 3.6 y+z=-1.2 z+x=-2.40nu= 51274 n= n",a,b,c,x,y,z ); printf("c1=%c or %dn",c1,c1); printf("c2=%c or %dn",c2-32,c2); 10、教材P89,4.5、4.6、4.9 4.5 #include"stdio.h" void main() int a=5,b=7; double x=67.8564,y=-789.124; char c='A' long n=; unsigned u=65535; printf("%d%dn",a,b); printf("%3d%3dn",a,b); printf("%f,%fn",x,y); printf("%-10f,%-10fn",x,y); printf("%8.2f,%8.2f,%.4,%.4f,%3f,%3fn",x,y,x,y,x,y); printf("%e,%10.2en",x,y); printf("%c,%d,%o,%xn",c,c,c,c); printf("%ld,%lo,%xn",n,n,n); printf("%u,%o,%x,%dn",u,u,u,u); printf("%s,%5.3sn","COMPUTER","COMPUTER"); 4.6 输入,a=3 b=7 8.5 71.82 A a 4.9 #include"stdio.h"void main() int a; float b;printf("请输入一个华氏温度n");scanf("%d",&a);b=5.0/9.0*(a-32.0);printf("这个温度的摄氏温度是:%.2fn",b); 11、教材P108,例5.6 #include<stdio.h>#include<math.h>void main() double a,b,c,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The eqiation"); if(fabs(a)<=1e-6) printf("is not a quadraticn"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4fn",-b/(2*a); else if(disc>1e-6) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf("has distinct real roots:%8.4f and %8.4fn",x1,x2); else realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:n"); printf("%8.f+%8.4fin",realpart,imagpart); printf("%.4f-%8.4fin",realpart,imagpart); 12、教材P109,例5.7#include"stdio.h" void main() int c,s; float p,w,d,f; scanf("%f,%f,%d",&p,&w,&s); if(s>=3000) c=12; else c=s/250; switch(c) case 0: d=0;break; case 1: d=2;break; case 2: case 3: case 4: case 5: case 6: case 7: d=8;break; case 8: case 9: case 10: case 11: d=10;break; case 12: d=15;break; f=p*w*s*(1-d/100.0); printf("freight=%15.4fn",f); 13、教材P111,5.5 #include"stdio.h"void main() float x,y; printf("请输入一个n"); scanf("%f",&x); if(x<1) y=x; else if(x<10) y=2*x-1; else y=3*x-11; printf("y=%fn",y); 14、教材P112,5.7 伪代码:1, 读入一字符串。2, 利用字符窜的函数。3, 利用字符串的各种函数来到着输出,和统计个数,来一个一个的输出。代码:#include"stdio.h"#include"string.h"void main() long n,i; char a10; printf("请输入一个小于10位的整数n"); scanf("%s",a); n=strlen(a); printf("这个数共有%ld位n",n); for(i=0;i<n;i+) printf("%c ",ai); printf("n"); for(i=n;i>=0;i-) printf("%c",ai); printf("n"); 运行结果: 15、教材112,P5.8伪代码:1, 读入利润;2, 判断利润的区域。3, 根据利润输出奖金。 代码: 1(用if语句编写) #include"stdio.h"void main() float x,y; printf("请输入利润n"); scanf("%f",&x); if(x<) y=x*0.1; else if(x<) y=*0.1+(x-)*0.075; else if(x<) y=*0.1+*0.075+(x-)*0.05; else if(x<) y=*0.1+*0.075+*0.005+(x-)*0.03; else if(x<) y=*0.1+*0.075+*0.005+*0.03+(x-)*0.015; else y=*0.1+*0.075+*0.005+*0.03+*0.015+(x-)*0.01; printf("这个月的奖金是:%fn",y);2 (用switch编写)代码:#include"stdio.h"void main() float x,y; printf("请输入利润n"); scanf("%f",&x); switch(int)(x/) case 0:y=x*0.1;break; case 1: y=*0.1+(x-)*0.075;break ; case 2: case 3: y=*0.1+*0.075+(x-)*0.05;break; case 4: case 5: y=*0.1+*0.075+*0.005+(x-)*0.03;break; case 6: case 7: case 8: case 9: y=*0.1+*0.075+*0.005+*0.03+(x-)*0.015;break; case 10: default:y=*0.1+*0.075+*0.005+*0.03+*0.015+(x-)*0.01;break; ; printf("这个月的奖金是:%fn",y); 实验报告正文撰写要求1) 按实验内容逐个完成2) 每个实验内容分别画出流程图或伪代码3) 每个实验内容分别列出源代码4) 每个实验内容分别展示其运行结果5) 最后,总结本次实验的经验和教训专心-专注-专业