C语言实验样本.docx

上传人:b****4 文档编号:3486198 上传时间:2022-11-23 格式:DOCX 页数:30 大小:23.90KB
下载 相关 举报
C语言实验样本.docx_第1页
第1页 / 共30页
C语言实验样本.docx_第2页
第2页 / 共30页
C语言实验样本.docx_第3页
第3页 / 共30页
C语言实验样本.docx_第4页
第4页 / 共30页
C语言实验样本.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C语言实验样本.docx

《C语言实验样本.docx》由会员分享,可在线阅读,更多相关《C语言实验样本.docx(30页珍藏版)》请在冰豆网上搜索。

C语言实验样本.docx

C语言实验样本

C语言实验样本

(2003年)

实验一:

C语言运行环境

一、实验目的:

1.了解TC环境的组成

2.学习TC环境的使用方法

3.了解C语言程序从编辑、编译连接到运行并得到运行结果的过程

二、实验内容:

1.了解TC环境的组成

2.进入、退出和定制TC环境

3.运行演示程序

4.编写程序

三、实验用设备仪器及材料:

计算机一台

四、实验源程序

第一个程序,输出字符

main()

{

printf(“ThisisaCprogram\n”);

printf(“Iamastudent\n);

}

 

编写程序,实现求整数10,20,30的平均值

main()

{floata=10,b=20,c=35,x;

x=(a+b+c)/3;

printf("x=%f\n",x);

}

实验二:

数据类型及顺序结构

一、实验目的:

(1)进一步熟悉TC环境的使用方法。

(2)学习C语言赋值语句和基本输入输出函数的使用。

(3)编写顺序结构程序并运行。

(4)了解数据类型在程序设计语言中的意义。

二、实验内容:

(1)编程序,输出如下图形。

**

****

******

********

ain()

{

printf("**\n");

printf("****\n");

printf("******\n");

printf("********\n");

}

(2)编写程序,实现下面的输出格式和结果:

a=5,b=7,a-b=-2,a/b=71%

c1=computer,c2=comp,c3=comp

A=31.19,y=-31.2,z=31.1900

s=3.11900e+002,t=-31.2e+001

main()

{

inta=5,b=7,c,d,g,y;

floate,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.4s\n",y,y,y);

printf("x=%5.2f,y=-%4.1f,z=%7.4f\n",f,h,f);

printf("s=%e,t=-%5.3e\n",10*f,h);

}

(3)编写程序,输入变量的x值,分别输出变量y的值,并分析输出结果。

1y=2.4*x-1/2

2y=x%2/5-x

3y=x>10&&x<100

4y=x>=10||x<=1

5y=(x-=x*10,x/=10)

要求变量x,y是float型。

main()

{

intx;

floaty;

scanf("%d",&x);

y=2.4*x-1/2;

printf("y=%f\n",y);

y=x%2/5-x;

printf("y=%f\n",y);

y=x>10&&x<=100;

printf("y=%f\n",y);

y=x>=10||x<1;

printf("y=%f\n",y);

y=(x-=x*10,x/=10);

printf("y=%f\n",y);

}

(4)调试下列程序,使之能正确输出3个整数之和及3个整数之积。

main()

{

inta,b,c;

printf(“Pleaseenter3numbers:

”);

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

ab=a+b;

ac=a*c;

printf(“a+b+c=%d\n”,ac+b);

printf(“a*b*c=%d\n”,ab*c);

}

调试后的程序:

main()

{

inta,b,c,ab;

longac;

printf("Pleaseenter3numbers:

");

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

ab=a+b;

ac=a*c;

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

printf("a*b*c=%ld\n",ac*b);

}

(5)运行下列程序,分析输出结果。

main()

{inta=10;

longintb=10;

floatx=10.0;

doubley=10.0;

printf(“a=%d,b=%ld,x=%f,y=%lf\n”,a,,b,x,y);

printf(“a=%ld,b=%d,x=%lf,y=%f\n”,a,b,x,y);

printf(“x=%f,x=%e,x=%g\n”,x,x,x);

}

 

三、实验用设备仪器及材料:

软件需求:

TurboC2.0版本。

硬件需求:

Pc机以上微机,打印机。

 

实验三:

选择结构程序设计

一、实验目的:

1.正确使用关系表达式和逻辑表达式表示条件

2.学习选择语句if和switch的使用方法

3.进一步熟悉Tc环境,学习TC环境提供的调试工具

二、实验内容:

4.调试程序,使之具有如下功能:

输入a,b,c三个整数,求最小值

5.编写程序,求解下列分段函数:

x(-5

y=x-1(x=0)

x+1(0

100其他

三、实验用设备仪器及材料:

计算机一台

四、实验源程序

(1)

main()

{

inta,b,b;

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

if((a

printf(“min=%d\n”,a)

elseif(b

printf(“min=%d\n”,c);

else

printf(“nofindminimun\n”);

}

(2)

#include

main()

{

longx,x1,x_len=0,y,h[10],i,m=0;

printf("\nInputthenumber:

");

scanf("%ld",&x);

x1=x;

y=x*x;

while(x>0)

{x=x/10;

x_len=x_len+1;

}

for(i=0;i

{h[i]=y%10;

y=y/10;

m=h[i]*pow(10,i)+m;

}

if(x1==m)printf("%ldyes%ld*%ld=%ld",x1,x1,x1,x1*x1);

elseprintf("%ldno%ld*%ld=%ld",x1,x1,x1,x1*x1);

}

 

实验四:

循环结构程序设计

一、实验目的:

(1)学习循环语句for、while、do-while语句的使用方法。

(2)学习用循环语句实现各种算法,例如穷举法、迭代法等。

(3)进一步熟悉TC环境。

二、实验内容:

(1)下列程序计算SUM得知。

调试该程序,使之能正确地计算SUM。

计算公式如下:

SUM=1+1/2+1/3+1/4+……+1/n

main()

{intt,s,I,n;

scanf(“%d”,&n);

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

t=1/I;

s=s+t;

printf(“s=%f\n”,s);

}

调试后的程序:

main()

{

inti,n;

floatt=0,s=0;

scanf("%d",&n);

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

{

t=1.0/i;

s=s+t;

}

printf("s=%f\n",s);

}

(2)下面程序的功能是计算n!

main()

{intI,n,s=1;

printf(“Pleaseentern:

”);

scanf(“%d”&n);

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

s=s*I;

printf(%d!

=%d”,n,s);

}

调试后的程序:

main()

{

inti,n;

floats=1.0;

printf("Pleaseentern:

");

scanf("%d",&n);

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

s=s*i;

printf("%d!

=%f\n",n,s);

}

此程序计算n<=7时,结果正确。

改正程序使之能正确计算20!

(3)北京体育彩票采用整数1、2、3……、36表示36种体育运动,一张彩票可以选择7种运动。

编写程序,选择一张彩票的号码,使这张彩票的7个号码之和是105且相邻两个号码之差按顺序依次是1、2、3、4、5、6。

例如第一个号码是1,则后续号码应是2、4、7、11、16、22。

main()

{

inta,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;j<7;j++)

{

k=k+j;

printf("%d",k);

}

}

}

printf("\n");

}

(4)编写程序实现输入整数n,输出如下所示由数字组成的菱形。

1

121

12321

1234321

123454321

1234321

12321

121

1

源程序如下:

main()

{

inti,j,k,n;

scanf("%d",&n);

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

{

for(j=1;j<=30-3*i;j++)

printf("");

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

printf("%3d",k);

for(k=i-1;k>0;k--)

printf("%3d",k);

printf("\n");

}

for(i=n-1;i>0;i--)

{

for(j=1;j<=30-3*i;j++)

printf("");

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

printf("%3d",k);

for(k=i-1;k>0;k--)

printf("%3d",k);

printf("\n");

}

}

三、实验用设备仪器及材料:

软件需求:

TurboC2.0版本。

硬件需求:

Pc机以上微机,打印机。

 

实验五:

数组

一、实验目的:

6.掌握数组的定义、赋值和输入输出方法

7.学习用数组实现相关的算法

8.进一步熟悉Tc环境,学习TC环境调试数组

二、实验内容:

9.输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。

三、实验用设备仪器及材料:

计算机一台

四、实验源程序

main()

{

inti,n,a[10];

floatav;

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

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

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

{

printf("%d",a[i]);

if((i+1)%3==0)

printf("\n");

}

printf("\n");

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

av+=a[i];

printf("av=%.1f\n",av/10);

}

 

实验六:

字符数据处理

一、实验目的:

(1)掌握C语言中字符数组和字符串处理函数的使用。

(2)掌握在字符串中删除和插入字符的方法。

(3)熟悉TC环境的调试字符串程序的方法。

二、实验内容:

(1)调试下列程序,使之具有如下功能:

任意输入两个字符串,并存放在a,b两个数组中。

然后把较短的字符串放在a数组,较长的字符放在b数组,并输出。

Main()

{chara[10],b[10];

intc,d,k;

scanf(“%s”,&a);

scanf(“%s”,&b);

printf(“a=%s,b=%s\n”,a,b);

c=strlen(a);

d=strlen(b);

if(c>d)

for(k=0;k

{ch=a[k];a[k]=b[k];b[k]=ch;}

printf(“a=%s\n”,a);

printf(“b=%s\n”,b);

}

#include"string.h"

调试后的程序:

Main()

{

chara[10]={'\0'},b[10]={'\0'};

intc,d,k,ch;

scanf("%s",a);

scanf("%s",b);

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

c=strlen(a);

d=strlen(b);

if(c>d)

for(k=0;k<=c;k++)

{

ch=a[k];

a[k]=b[k];

b[k]=ch;

}

printf("a=%s\n",a);

printf("b=%s\n",b);

}

_

(2)编写程序,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。

以“stop”作为输入的最后一个字符串。

#include"string.h"

main()

{

chari[10]={'\0'},j[10]={'\0'},k[10]={'\0'};

inta,b,c;

scanf("%s",i);

scanf("%s",j);

scanf("%s",k);

printf("i=%s\nj=%s\nk=%s\n",i,j,k);

a=strlen(i);

b=strlen(j);

c=strlen(k);

printf("i=%d,j=%d,k=%d\n",a,b,c);

if(a>b&&a>c)

printf("long:

i=%s\n",i);

elseif(b>a&&b>c)

printf("long:

j=%s\n",j);

elseif(c>a&&c>b)printf("long:

k=%s\n",k);

}

_

(3)编写程序,输入任意一个含有空格的字符串(至少10个字符),删除指定位置的字符后输出该字符串。

如:

输入“BEIJING123”和删除位置4,则输出:

“BEIJING123”。

main()

{

chars[128];

intn,i,l;

printf("Enterastring:

\n");

gets(s);

printf("Enterlocate:

");

scanf("%d",&n);

l=strlen(s);

for(i=n-1;i

s[i]=s[i+1];

printf("%s\n",s);

}_

三、实验用设备仪器及材料:

软件需求:

TurboC2.0版本。

硬件需求:

Pc机以上微机,打印机。

 

实验七:

函数

(1)

一、实验目的:

10.学习C语言中的函数的定义和调用方法

11.掌握通过参数在函数传递的方法

12.熟悉TC环境对包含函数调用的程序的调试方法

二、实验内容:

13.使用函数fun()判断整数是否为素数的函数,并用该函数求1000以内的素数平均值。

三、实验用设备仪器及材料:

计算机一台

四、实验源程序

#include"math.h"

main()

{

inta=0,k,n=0;

floatav;

for(k=2;k<=1000;k++)

if(fun(k))

{

a+=k;

n++;

av=a/n;

}

printf("av=%f\n",av);

}

fun(intn)

{

inti,y=0;

for(i=2;i

if(n%i==0)y=1;

elsey=0;

returny;

}

 

实验八:

函数

(2)

一、实验目的:

1.掌握含多个源文件的程序的编译、联接和调试运行的方法。

2.学习递归程序设计,掌握递归函数的编写规律。

3.熟悉TC环境的调试函数程序的方法。

二、实验内容:

1.编写两个函数,其功能分别为:

(1)求N个整数的次大值和次小值。

(2)求两个整数的最大公约数和最小公倍数。

输入10个整数,调用函数求它们的次大值和次小值,及次大值和次小值的最大公约数和最小公倍数。

要求:

这两个函数和主函数分属3个文件。

求最大公约数和最小公倍数的方法。

辗转相除法:

两个数相除,若不能整除,则以除数作为被除数,作数作为除数,继续相除,直到余数为0时,当前除数就是最大公约数。

而原来两个数的积除以最大公约数的商就是最小公倍数。

128

12%8的值为4

8%4的值为0

则4为最大公约数,12*8/4为最小公倍数。

相减法:

两个数中的大数减小数,其差与减数再进行大数减小数,直到差与减数相等为止,此时的差或减数就是最大公约数。

而原来两个数的积除以最大公约数所得的就是最小公倍数。

128

12-8=48-4=4

则4为最大公约数,12*8/4为最小公倍数。

假定保存主函数的文件名是“file1.c”,保存求次大值和次小值函数的文件名是“file2.c”

保存求最大公约数和最小公倍数函数的文件名是“file3.c”。

现在再编辑一个文件,它的内容如下:

file1.c

file2.c

file3.c

保存这个文件为“file.prg”。

这是一个项目文件,表示文件中指定的几个源文件是经编译连接后生成一个名为“find.exe”的可执行文件。

我们要将项目文件名通知TC环境,按+

键,选择“Project”菜单的“Projectname”选项,在“Projectname”窗口输入项目文件名。

编译系统这时将根据项目文件指出的源文件名分别进行编译,然后把编译后的各目标文件(文件)连接后生成可执行文件。

intmf(inta[11])

{

inti,j,t;

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

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

printf("\n");

for(j=1;j<=9;j++)

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

if(a[i]

{

t=a[i];

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

a[i+1]=t;

}

a[1]=a[2];

a[2]=a[9];

}

inthf(inta[11])

{

intr,u,v,i;

u=a[1];

v=a[2];

i=u*v;

while((r=u%v)!

=0)

{

u=v;

v=r;

}

a[1]=v;

a[2]=i/v;

}

main()

{

inta[11];

mf(a);

printf("%d,%d\n",a[1],a[2]);

hf(a);

printf("%d,%d\n",a[1],a[2]);

}_

2.用递归的方法求下面函数的值:

递归公式为:

#include

#include

doublefun(doublex,intn)

{

if(n>1)return(sqrt(x+fun(x,n-1)));

elsereturn(sqrt(x));

}

main()

{

doublex,y;

intn;

printf("Enternx=");

scanf("%d%lf",&n,&x);

y=fun(x,n);

printf("f(%lf,%d)=%lf\n",x,n,y);

}

3.一个递归函数,实现将任意的十进制正整数转换为作进制数。

#include

intten_to_eight(intval,chara[])

{

intb,t,i;

b=val%8;

t=val/8;

if(t>0)i=ten_to_eight(t,a);

elsei=0;

a[i]=b+'0';

a[i+1]='\0';

return(i+1);

}

voidmain()

{

intv;

chars[80];

printf("Enteranumber:

");

scanf("%d",&v);

ten_to_eight(v,s);

printf("result:

%s\n",s);

}

三、实验用设备仪器及材料:

软件需求:

TurboC2.0版本。

硬件需求:

Pc机以上微机,打印机。

实验九:

指针

(1)

一、实验目的:

1.掌握指针变量的定义与引用

2.掌握指针与变量、指针与数组的关系

3.掌握用数组指针作为函数参数的方法

4.熟悉TC环境的调试指针程序的方法

二、实验内容:

输入12个数,然后按每行4个数输出。

三、实验用设备仪器及材料:

计算机一台

四、实验源程序

main()

{

intj,k,a[12],*p;

p=a;

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

scanf("%d",p++);

p=a;

for(j=1;j<13;j++)

{

printf("%d",*p++);

if(j%4==0)

printf("\n");

}

}

 

voidsort(int*a[],intn)

{

inti,j,k,t;

for(i=0;i

k=i;

for(j=i+1;j

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

if(k!

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

}

}

voidmain(void)

{

intb[10];

int*c[10];

inti;

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

{

printf("Enteraint");

scanf("%d",b+i);

c[i]=b+i;

}

sort(c,10);

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

printf("%d",b[i]);

printf("\n");

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

printf("%d",*c[i]);

printf("\n");

}_

 

实验十:

指针(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1