1、C语言实验样本C语言实验样本(2003年)实验一:C语言运行环境一、 实验目的:1 了解TC环境的组成2 学习TC环境的使用方法3 了解C语言程序从编辑、编译连接到运行并得到运行结果的过程二、 实验内容:1 了解TC环境的组成2 进入、退出和定制TC环境3 运行演示程序4 编写程序三、 实验用设备仪器及材料:计算机一台四、 实验源程序第一个程序,输出字符main()printf(“This is a Cprogramn”);printf(“I am a studentn);编写程序,实现求整数10,20,30的平均值main()float a=10,b=20,c=35,x;x=(a+b+c)/
2、3;printf(x=%fn,x);实验二:数据类型及顺序结构一、 实验目的:(1) 进一步熟悉TC环境的使用方法。(2) 学习C语言赋值语句和基本输入输出函数的使用。(3) 编写顺序结构程序并运行。(4) 了解数据类型在程序设计语言中的意义。 二、实验内容:(1)编程序,输出如下图形。 * * * * * * * * * * * * * * * * * * *ain() printf(* *n); printf(* * * *n); printf(* * * * * *n); printf(* * * * * * * *n);(2)编写程序,实现下面的输出格式和结果:a= 5,b= 7,a-
3、b=-2,a/b= 71%c1=computer,c2=comp ,c3= compA=31.19,y= -31.2,z=31.1900s=3.11900e+002,t= -31.2e+001main() int a=5,b=7,c,d,g,y; float e,f=31.19,h; y=COMPUTER; c=a-b; e=(1.0*a/b); d=1000000*e/10000; g=(f*100+5)/10; h=g/10.0; printf(a=%3d,b=%3d,a-b=%d,a/b=%3d%n,a,b,c,d); printf(c1=%s,c2=%-6.4s,c3=%6.4sn,y
4、,y,y); printf(x=%5.2f,y= -%4.1f,z=%7.4fn,f,h,f); printf(s=%e,t= -%5.3en,10*f,h);(3) 编写程序,输入变量的x值,分别输出变量y的值,并分析输出结果。1 y=2.4*x-1/22 y=x%2/5-x3 y=x10&x=10|x10&x=10|x1; printf(y=%fn,y); y=(x-=x*10,x/=10); printf(y=%fn,y); (4) 调试下列程序,使之能正确输出3个整数之和及3个整数之积。main() int a,b,c;printf(“Please enter 3 numbers:”)
5、;scanf(“%d,%d,%d”,&a,&b,&c);ab=a+b;ac=a*c;printf(“a+b+c=%dn”,ac+b);printf(“a*b*c=%dn”,ab*c);调试后的程序:main() int a,b,c,ab; long ac; printf(Please enter 3 numbers:); scanf(%d,%d,%d,&a,&b,&c); ab=a+b; ac=a*c; printf(a+b+c=%dn,ab+c); printf(a*b*c=%ldn,ac*b);(5)运行下列程序,分析输出结果。 main() int a=10;long int b=10;
6、float x=10.0;double y=10.0;printf(“a=%d,b=%ld,x=%f,y=%lfn”,a,b,x,y);printf(“a=%ld,b=%d,x=%lf,y=%fn”,a,b,x,y); printf(“x=%f,x=%e,x=%gn”,x,x,x); 三、实验用设备仪器及材料:软件需求:Turbo C2.0版本。硬件需求:Pc机以上微机,打印机。 实验三:选择结构程序设计一、实验目的:1 正确使用关系表达式和逻辑表达式表示条件2 学习选择语句if和switch的使用方法3 进一步熟悉Tc环境,学习TC环境提供的调试工具二、实验内容:4 调试程序,使之具有如下功
7、能:输入a,b,c三个整数,求最小值5 编写程序,求解下列分段函数:x (-5x0) y= x-1 (x=0)x+1 (0x10)100 其他三、实验用设备仪器及材料:计算机一台四、实验源程序(1)main()int a,b,b;scanf(“%d%d%d”,&a,&b,&c);if(ab)&(ac)printf(“min=%dn”,a)else if(ba)&(bc)printf(“min=%dn”,c);else printf(“no find minimunn”);(2)#includemain() long x,x1,x_len=0,y,h10,i,m=0; printf(nInput
8、 the number:); scanf(%ld,&x); x1=x; y=x*x; while(x0) x=x/10; x_len=x_len+1; for(i=0;ix_len;i+) hi=y%10; y=y/10; m=hi*pow(10,i)+m; if(x1=m)printf(%ld yes %ld*%ld=%ld,x1,x1,x1,x1*x1); else printf(%ld no %ld*%ld=%ld,x1,x1,x1,x1*x1);实验四:循环结构程序设计一、实验目的:(1)学习循环语句for、while、do-while语句的使用方法。(2)学习用循环语句实现各种算法,
9、例如穷举法、迭代法等。(3)进一步熟悉TC环境。二、 实验内容:(1)下列程序计算SUM得知。调试该程序,使之能正确地计算SUM。计算公式如下:SUM=1+1/2+1/3+1/4+1/nmain()int t,s,I,n;scanf(“%d”,&n);for(I=1;I=n;I+)t=1/I;s=s+t;printf(“s=%fn”,s);调试后的程序:main() int i,n; float t=0,s=0; scanf(%d,&n); for(i=1;i=n;i+) t=1.0/i; s=s+t; printf(s=%fn,s);( 2 ) 下面程序的功能是计算n!。 main() in
10、t I,n,s=1;printf(“Please enter n:”);scanf(“%d”&n);for(I=1;I=n;I+)s=s*I;printf(%d!=%d”,n,s);调试后的程序:main() int i,n; float s=1.0; printf(Please enter n:); scanf(%d,&n); for(i=1;i=n;i+) s=s*i; printf(%d!=%fn,n,s);此程序计算n=7时,结果正确。改正程序使之能正确计算20!。(3) 北京体育彩票采用整数1、2、3、36表示36种体育运动,一张彩票可以选择7 种运动。编写程序,选择一张彩票的号码,
11、使这张彩票的7个号码之和是105且相邻两个号码之差按顺序依次是1、2、3、4、5、6。例如第一个号码是1,则后续号码应是2、4、7、11、16、22。 main() int a,i,j,k,s; s=1+2+4+7+11+16+22; a=s; for(i=1;i=7;i+) s=s+7; if(s=105) k=(s-a)/7; printf( %d,k+=1); for(j=1;j7;j+) k=k+j; printf( %d,k); printf(n);(4)编写程序实现输入整数n,输出如下所示由数字组成的菱形。 1 1 2 11 2 3 2 1 1 2 3 4 3 2 11 2 3 4
12、 5 4 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1源程序如下: main() int i,j,k,n; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=30-3*i;j+) printf( ); for(k=1;k0;k-) printf(%3d,k); printf(n); for(i=n-1;i0;i-) for(j=1;j=30-3*i;j+) printf( ); for(k=1;k0;k-) printf(%3d,k); printf(n); 三、实验用设备仪器及材料:软件需求:Turbo C2.0版本。硬件需求:Pc
13、机以上微机,打印机。 实验五:数组一、实验目的:6 掌握数组的定义、赋值和输入输出方法7 学习用数组实现相关的算法8 进一步熟悉Tc环境,学习TC环境调试数组二、实验内容:9 输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。三、实验用设备仪器及材料:计算机一台四、实验源程序main()int i,n,a10;float av;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)printf( %d,ai);if(i+1)%3=0)printf(n);printf(n);for(i=0;id)for(k=0;kd) for (k=0;kb
14、&ac) printf(long:i=%sn,i); else if(ba&bc) printf(long:j=%sn,j); else if(ca&cb)printf(long:k=%sn,k);_(3) 编写程序,输入任意一个含有空格的字符串(至少个字符),删除指定位置的字符后输出该字符串。如:输入 “”和删除位置,则输出: “BEIJING123”。main() char s128; int n,i,l; printf(Enter a string:n); gets(s); printf(Enter locate : ); scanf(%d,&n); l = strlen(s); for
15、 (i=n-1; il; i+) si = si+1; printf(%sn,s);_ 三、实验用设备仪器及材料:软件需求:Turbo C2.0版本。硬件需求:Pc机以上微机,打印机。 实验七:函数(1)一、实验目的:10 学习C语言中的函数的定义和调用方法11 掌握通过参数在函数传递的方法12 熟悉TC环境对包含函数调用的程序的调试方法二、实验内容:13 使用函数fun()判断整数是否为素数的函数,并用该函数求1000以内的素数平均值。三、实验用设备仪器及材料:计算机一台四、实验源程序#include math.hmain()int a=0,k,n=0;float av;for(k=2;k=
16、1000;k+)if(fun(k)a+=k;n+;av=a/n;printf(av=%fn,av);fun(int n)int i,y=0;for(i=2;in;i+)if(n%i=0) y=1;else y=0;return y;实验八:函数(2)一、实验目的:1掌握含多个源文件的程序的编译、联接和调试运行的方法。2学习递归程序设计,掌握递归函数的编写规律。3熟悉TC环境的调试函数程序的方法。二、实验内容:1编写两个函数,其功能分别为:(1)求N个整数的次大值和次小值。(2)求两个整数的最大公约数和最小公倍数。输入10 个整数,调用函数求它们的次大值和次小值,及次大值和次小值的最大公约数和最
17、小公倍数。要求:这两个函数和主函数分属3个文件。求最大公约数和最小公倍数的方法。辗转相除法:两个数相除,若不能整除,则以除数作为被除数,作数作为除数,继续相除,直到余数为0时,当前除数就是最大公约数。而原来两个数的积除以最大公约数的商就是最小公倍数。12 812%8 的值为48%4 的值为0则4 为最大公约数,12*8/4为最小公倍数。相减法:两个数中的大数减小数,其差与减数再进行大数减小数,直到差与减数相等为止,此时的差或减数就是最大公约数。而原来两个数的积除以最大公约数所得的就是最小公倍数。12 812-8=4 8-4=4则4 为最大公约数,12*8/4为最小公倍数。假定保存主函数的文件名
18、是“file1.c”,保存求次大值和次小值函数的文件名是“file2.c”保存求最大公约数和最小公倍数函数的文件名是“file3.c”。现在再编辑一个文件,它的内容如下: file1.c file2.c file3.c保存这个文件为“file.prg”。这是一个项目文件,表示文件中指定的几个源文件是经编译连接后生成一个名为“find.exe”的可执行文件。我们要将项目文件名通知TC环境,按+ 键,选择“Project”菜单的“Project name”选项,在“Project name”窗口输入项目文件名。编译系统这时将根据项目文件指出的源文件名分别进行编译,然后把编译后的各目标文件(文件)连
19、接后生成可执行文件。 int mf(int a11) int i,j,t; for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(j=1;j=9;j+) for(i=1;i=10-j;i+) if(aiai+1) t=ai; ai=ai+1; ai+1=t; a1=a2; a2=a9;int hf(int a11) int r,u,v,i; u=a1; v=a2; i=u*v; while(r=u%v)!=0) u=v; v=r; a1=v; a2=i/v;main() int a11; mf(a); printf(%d,%dn,a1,a2); hf(a)
20、; printf(%d,%dn,a1,a2);_ 2.用递归的方法求下面函数的值:递归公式为: #include#includedouble fun(double x, int n) if (n1) return(sqrt(x + fun(x, n - 1); else return(sqrt(x);main() double x,y; int n; printf(Enter n x = ); scanf(%d%lf,&n,&x); y=fun(x,n); printf(f(%lf,%d)=%lfn,x,n,y);3.一个递归函数,实现将任意的十进制正整数转换为作进制数。#include in
21、t ten_to_eight(int val, char a) int b, t, i; b = val % 8; t = val / 8; if (t 0) i = ten_to_eight(t, a); else i = 0; ai = b + 0; ai+1 = 0; return (i + 1);void main() int v; char s80; printf(Enter a number : ); scanf(%d,&v); ten_to_eight(v,s); printf(result : %sn,s);三、实验用设备仪器及材料:软件需求:Turbo C2.0版本。硬件需求
22、:Pc机以上微机,打印机。实验九: 指针(1)一、实验目的:1掌握指针变量的定义与引用2掌握指针与变量、指针与数组的关系3掌握用数组指针作为函数参数的方法4熟悉TC环境的调试指针程序的方法 二、实验内容:输入12个数,然后按每行4个数输出。三、实验用设备仪器及材料:计算机一台四、实验源程序main()int j,k,a12,*p;p=a;for(j=0;j12;j+)scanf(%d,p+);p=a;for(j=1;j13;j+)printf( %d,*p+);if(j%4=0)printf(n);void sort(int *a,int n) int i, j, k, t; for (i=0
23、; in-1; i+) k = i; for (j=i+1; jn; j+) if (*aj*ak) k=j; if (k != i) t = ak; ak = ai; ai = t; void main(void) int b10; int *c10; int i; for(i = 0; i 10; i+) printf(Enter a int ); scanf(%d, b+i); ci=b+i; sort(c,10); for(i = 0; i 10; i+) printf(%d ,bi); printf(n); for(i = 0; i 10; i+) printf(%d ,*ci); printf(n);_实验十: 指针(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1