C语言实验指导手册.docx

上传人:b****5 文档编号:3632423 上传时间:2022-11-24 格式:DOCX 页数:48 大小:294.56KB
下载 相关 举报
C语言实验指导手册.docx_第1页
第1页 / 共48页
C语言实验指导手册.docx_第2页
第2页 / 共48页
C语言实验指导手册.docx_第3页
第3页 / 共48页
C语言实验指导手册.docx_第4页
第4页 / 共48页
C语言实验指导手册.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

C语言实验指导手册.docx

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

C语言实验指导手册.docx

C语言实验指导手册

C语言实验指导手册

本实验指导需要在上课的基础上,参考教材和C函数手册.chm和tcstudy.chm帮助文档来动手完成,完成后给指导老师演示,并请指导老师打分!

此实验的目的是帮助初学者能够快速的掌握C语言程序设计的基本规范和设计技巧。

实验一:

C语言实验环境及C语言基础(C01)

实验目的:

1、熟悉c语言的编辑环境,掌握c程序的总体框架

2、了解c语言的执行步骤,学会跟踪与调试

第一部分:

实验环境安装测试和学习

一、C语言程序开发过程

编写一个完整的C程序需要经过以下5个步骤:

1)启动集成开发环境。

2)进入编辑环境。

3)建立一个新的.c文件,输入已有代码,并添加相应注释。

4)调试程序(编辑、编译、连接)

5)运行并分析程序输出结果。

在开发过程中,提到了编译,连接等名词,一些初学者还不能很好的对此加以区分,对C程序的编译过程了解得也不甚清晰,鉴于描述性语言往往不够简明,笔者特制作了下图供读者参考。

图1.1  C语言程序开发过程

说明:

图1.1中,如果编译、连接和执行时编译系统提示有错误或程序结果与预期不符,则需要重新修改源程序,直到编译、连接都通过且程序结果与预期相符。

【程序示例】编写程序,在屏幕上输出句子“让我们一起学习C语言”。

【解】 程序如下:

/*******************************************************

功能:

本程序在屏幕上输出“HelloWorld!

作者:

XXXXXX

编写时间:

XXXX-XX-XX

*******************************************************/   注释

#include        预编译命令(包含头文件)

main() {              主函数首部

printf(“HelloWorld!

\n”);       语句

}

程序简单说明:

(1)C语言程序必须在文件的开头包含头文件:

#include

(2)每个C程序必须包含且只能包含一个主函数main;

(3)函数体必须由一对花括号“{}”括起来;

(4)函数都是由语句构成,每条语句必须用“;”结束;

(5)C程序区分字母的大小写;

(6)/**/之间的内容为注释。

二、Win-TC环境

1、按指导老师要求安装Win-TC环境

2、打开Win-TC软件,选择新建文件,并输入以上代码如下:

3、保存到自己的文件夹中,然后单击编译链接运行。

4、查看运行结果,有错请调试

三、VisualC++6.0环境

第一步:

在指导老师的指导下安装VisualC++6.0。

第二步:

启动VisualC++6.0,进入集成开发环境。

选择【开始】→【所有程序】→【MicrosoftVisualStudio6.0】→【MicrosoftVisualC++6.0】即可进入到VC的集成开发环境中。

第三步:

创建C源程序。

为了使以后我们能够文凭及时地查找到编写的C程序,建议大家按照下面的操作步骤来进行。

我们以创建helloworld.c为例来进行说明。

(1)建立一个专属自己的工作区。

选择【File(文件)】→【New(新建)】,在弹出来的对话框中选择【Workspace(工作区)】页面,如图1.2所示。

在左边选择【BlankWorkspace】,在右侧输入工作区名字,并选择该工作区要存储的位置。

图1.2新建工作区

(2)建立一个工程。

选择【File(文件)】→【New(新建)】,在弹出来的对话框中选择【Project(工程)】页面,如图1.3所示。

在左侧选择【Win32ConsoleApplication】,在右侧设置好工程名称、存储位置,并选择添加至现有工作区,然后单击【确定】按钮,再按提示步骤进行操作即可。

(3)建立一个C语言源文件。

选择【File(文件)】→【New(新建)】,在弹出来的对话框中选择【File(文件)】页面,如图1.4所示。

在左侧选择【C++SourceFile】,在右侧添加工程,并设置好文件名(如helloworld.c)和存储路径,再单击【确定】按钮即可。

图1.4创建C程序源文件

图1.3

创建工程

第四步:

编辑C语言源程序。

界面如图1.5所示。

(1)在编辑窗格中输入C语言源程序。

(2)选择【File(文件)】→【Save(保存)】命令,或单击【Save】按钮‘

’,将源程序保存到helloworld.c中。

第五步:

执行C程序。

(1)选择【Build(编译)】→【Compile(编译)】命令,或单击【Complie】按钮‘

’,编译helloworld.c文件,得到helloworld.obj文件。

(2)选择【Build(编译)】→【Build(重建全部)】命令,或单击【Build】按钮’

’,生成可执行文件helloworld.exe。

(3)选择【Build(编译)】→【Execute(执行)helloworld.exe】命令,或单击【BuildExecute】按钮’

’,执行该程序。

编译、连接的过程中如果出现错误,则返回到第四步修改源程序。

     图1.5  VC环境下C程序的编辑、编译、连接、执行

第六步:

查看结果。

在第五步操作完成后,会弹出来如图1.6所示的执行结果窗口。

在该窗口中可以查看程序的执行结果是否与预期的相一致,如果不一致,将返回到第四步,修改源程序,重新执行。

              图1.6  查看结果

第七步:

继续编写下一个C程序。

如果要连续编辑、运行多个C程序,则需要重复第三步中的

(2)。

第二部分:

C语言基础实验

一、验证实验

1、打开集成环境,请输入以下代码,保存到test.c文件中,调试并运行查看结果:

#include

#include

voidmain()

{

printf("sqrt(2.0)=%f\n",sqrt(2.0));//在屏幕

getch();

}

请解释#include的含义______________________________________________

请释sqrt(2.0)的含义_______________________________________________________

2、新建一个程序文件jiecheng.c,输入以下代码

#include

voidmain()

{

ints=1;

inti,n=0;

printf("inputN:

");

scanf("%d",&n);

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

{

s=s*i;

}

printf("N!

=%d\n",s);

getch();

}

请解释ints=1的含义________________________________________________

请解释main()的含义_________________________________________________

二、设计实验

1、模仿上课例题和前面实验,设计一程序,输出以下内容:

*

***

*****

*******

2、模仿上课例题和前面实验,设计一程序,输出正弦30度的值:

Sin(30)=0.499999

填写试验报告

实验编号:

C01学生姓名:

实验时间:

教师签字:

实验效果评价

A

B

C

D

E

第一部分完成情况

第二部分完成情况

第三部分完成情况

总评

实验二:

基本数据类型、运算符与表达式及顺序结构程序设计(★C02)

实验目的:

1、掌握C语言基本数据类型及存储特性;

2、掌握C语言运算符及运算符优先级;

3、掌握C语言表达式。

4、掌握c语言顺序结构

5、掌握c语言基本输入输出

6、掌握c语言系统函数库的概念

第一部分:

验证实验

1、利用sizeof()输出各种基本数据类型的存储字节数。

使用以下代码测试并记录各种基本数据类型的存储长度,(注意:

不同的平台和编译系统中此存储长度是不一样的。

将观察的输出结果记录在下面:

char

unsignedchar

short

unsignedshort

int

unsignedint

long

unsignedlong

unsigned

float

double

2、为每一个数据类型按上表定义一个变量,输出变量的物理地址,观察他们的关系。

将物理地址统计如下,察看相邻物理地址之差与上表的关系。

输出变量地址的方法是:

(printf(“int:

%d\n”,&i);其中i为int型)

提示:

10进制表示的内存物理地址:

printf(“int:

%d\n:

”,&i);

16进制表示的内存物理地址:

printf(“int:

%p\n”,&i);

或printf(“int:

%0x\n”,&i);

8进制表示的内存物理地址:

Printf(“int:

%O\n”,&i);

数据类型

十进制形式

十六进制形式

八进制形式

数据类型

十进制形式

十六进制形式

八进制形式

char

unsignedchar

short

unsignedshort

int

unsignedint

long

unsignedlong

unsigned

float

double

3、打开集成环境,输入以下代码,调试运行:

请写出此程序的运行输入和输出结果:

 

4、编写一个c语言程序,测试下列各表达式(a=10,b=10要求将以下所有表达式写入一个程序里面。

1.a+=a

2.a-=2

3.a*=2+5

4.a%=4

5.a+=a-=a*=a

6.a=10,a%5,a+3

7.(a>10)?

(a=20):

(a=10)

8.a+++a++

9.++a+++a

10.++a,++b

第二部分:

实验分析

1、总结变量、数据类型、存储之间的关系。

 

2、总结所学运算符的优先级。

 

3、详细说明“++变量名”和“变量名++”之间的区别。

(如:

a++和++a在一个程序执行时到底有什么区别)

 

第三部分:

设计实验

1、编写求梯形面积的程序,数据由键盘输入。

 

2、输入一个字符,回显该字符并输出其ASCII码值。

 

填写试验报告

实验编号:

C02学生姓名:

实验时间:

教师签字:

实验效果评价

A

B

C

D

E

第一部分完成情况

第二部分完成情况

第三部分完成情况

总评

实验三:

分支编程(C03)

一、实验目的

1、掌握条件表达式;

2、掌握c语言分支控制结构

3、学会利用分支结构进行程序设计

第一部分:

实验内容

1、写出下面条件表达式的值。

其中a=3,b=4,c=5用(trueoffalse)

a+b>c

a--

a+b>c&&b==c

b>a&&c>a&&c>b&&0

!

(a>b)

a=1

c>a||b

a==1

c+b<=2*a&&1

a||b+c&&b-c

并用以下程序进行测试:

#include

voidmain()

{

inta=3,b=4,c=5;

if(_________________)printf("true");/*请填空测试*/

elseprintf("false");

getch();

}

2、if语句练习,将下面程序输入到计算机中,并编译执行,观察并记录两组不同的输入与输出;

第一个程序:

#include

voidmain()

{floatx,y,t;

scanf("%f,%f",&x,&y);

if(x

{t=x;x=y;y=t;}

printf("%f,%f",x,y);

getch();

}

操作:

输入3,5输出____________________________________

输入5,3输出____________________________________

第二个程序:

#include

voidmain()

{floatx,y,t;

scanf("%f,%f",&x,&y);

if(x

t=x;x=y;y=t;

printf("%f,%f",x,y);

getch();

}

操作:

输入3,5输出____________________________________

输入5,3输出____________________________________

请比较并说明此两个程序的异同点:

3、if-else语句练习,要求编程实现分段函数的计算

代码如下:

#include

voidmain()

{

inty,x;

printf("pleaseinputainteger:

");

scanf("%d",&x);

if(x<=1)y=2*x+1;

elsey=x*x+1;

printf("x=%d,y=%d",x,y);

getch();

}

输入-1时,输出:

输入2时,输出:

4、将下面程序输入到计算机中,并编译执行,观察并记录结果;

第一个程序:

voidmain()

{inti=2;

switch(i)

{case0:

printf("Monday");break;

case1:

printf("Tuesday");break;

case2:

printf("wednesday");break;

case3:

printf("thursday");break;

default:

printf("firday");}

}

输出结果:

第二个程序:

main()

{inti=2;

switch(i)

{case0:

printf("Monday");break;

case1:

printf("Tuesday");break;

case2:

printf("wednesday");

case3:

printf("thursday");

default:

printf("firday");}

}

输出结果:

请比较并说明两个程序的异同和为什么:

 

5、以下程序的输出结果是:

main()

{

inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

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

}

输出结果是:

A)0B)1C)2D)3

6、请写出以下程序的输出结果:

main()

{

inta=100;

if(a>100)printf(“%d\n”,a>100);

elseprintf(“%d\n”,a<=100);

}

输出结果:

7、若变量以正确定义,以下语句段的输出结果是:

x=0,y=2,z=3;

switch(x)

{

case0:

switch(y==2)

{case1:

printf(“*”);break;

case2:

printf(“%”);break;

}

case1:

switch(z)

{case1:

printf(“$”);

case2:

printf(“*”);break;

default:

printf(“#”);

}

}

输出结果:

8、将下列数学式改写成C语言的关系表达式或逻辑表达式A)B)

A)a=b或a4

第二部分:

分析总结

1、思考是否能用switch语句实现ifelse语句的功能?

为什么?

 

第三部分:

设计实验

1、求解方程ax2+bx+c=0的根

利用分支结构编程求解方程ax2+bx+c=0的根,要求考虑无解、无穷解、相等实根、不等实根和虚根的情况:

分析:

对系数a、b、c考虑以下情况

1)若a=0:

1b<>0,则:

x=-c/b;

2b=0,则:

c<>0时,无解;c=0时,无定解

2)若a<>0:

1b2-4ac>0,有两个不等的实根;

2b2-4ac=0,有两个相等的实根;

3b2-4ac<0,有两个共轭复根。

要求:

小数保留2位

1)代码

 

2)测试以下数据

3)

A

b

C

Result

0

0

8

0

2

8

0

0

0

1

2

1

1

3

2

1

3

1

2、货物征税问题,价格在1万元以上的征5%,5000元以上1万元以下的征3%,1000元以上5000元以下的征2%,1000元以下的免税。

读入货物价格,计算并输出税金。

请分别用switch语句和ifelseif编程实现

 

3、输入三个整数,输出最大的一个数。

 

填写试验报告

实验编号:

C03学生姓名:

实验时间:

教师签字:

实验效果评价

A

B

C

D

E

第一部分完成情况

第二部分完成情况

第三部分完成情况

总评

实验四:

循环程序设计(★C04)

实验目的:

1、掌握c语言的基本循环控制结构;

2、掌握c语言的基本循环控制结构之间的转换;

3、掌握c语言的基本循环控制结构与break、continue语句的结合应用;

4、会灵活运用循环结构进行程序设计。

第一部分:

验证实验

1、以下程序代码打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=13+53+33

#include

voidmain()

{

inti,j,k,n;

printf("\'waterflower\'numberis:

");

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10%10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

{

printf("%-5d",n);

}

}

printf("\n");

getch();

}

请分别解释阴影部分三条语句的作用:

 

2、判断下面程序的运行结果,并用while语句代替do-while语句重新编写程序,确保输出结果相同。

#include“stdio.h”

voidmain()

{

inti,sum;

i=5;

sum=0;

do

{

sum+=2*i;

i--;

}while(i>0);

printf(“i=%d,sum=%d\n”,i,sum);

}

用while语句代替后的代码是:

比较并写出while与do-while语句的区别:

 

2、以下程序的输出结果是:

A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$

main()

{inti;

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

{if(i%2)printf(“*”);

elsecontinue;

printf(“#”);

}

printf(“$\n”);

}

3、以下程序段的输出结果是:

A)12B)15C)20D)25

inti,j,m=0;

for(i=1;i<=15;i+=4)

for(j=3;j<=19;j+=4)m++;

printf(“%d\n”,m);

4、以下程序段的输出结果是:

A)10B)9C)10D)9

9898

8787

76

intn=10;

while(n>7)

{n--;

printf(“%d\n”,n);

}

5、以下程序段的输出结果是:

A)1B)30C)1-2D)死循环

intx=3;

do

{printf(“%3d”,x-=2);}

while(!

(--x));

6、当执行以下程序段后,i的值是、j的值是、k的值是

inta,b,c,d,i,j,k;

a=10;b=c=d=5;i=j=k=0;

for(;a>b;++b)i++;

while(a>++c)j++;

dok++;

while(a>d++);

第二部分:

分析总结

1、总结各种循环结构的特点及应用场合。

 

2、总结break语句和continue语句的用途,以及怎样转化为基本的循环控制结构。

 

第三部分:

设计实验

1、编程求n!

(要求在运行时输入n的值,n<=10)

要求:

编写三个程序,分别用while、do—while、for语句三种循环结构实现求n!

,输出格式为:

xxx!

=xxxxxx

 

2、利用循环结构编程输出如下图的图形符号。

 

 

 

(1)

 

 

(2)

 

3、用牛顿迭代法计算下列方程的根。

2x3-4x2+3x-6=0

提示:

牛顿迭代法(Newton'smethod)又称为牛顿-拉夫逊方法(Newton-Raphsonmethod),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。

多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。

设r是f(x)=0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y=f(x)的切线L,L的方程为y=f(x0)=—f'(x0)(x-x0),求出L与x轴交点的横坐标x1=x0-f(x0)/f'(x0),称x1为r的一次近似值。

过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴的横坐标x2=x1-f(x1)/f'(x1),称x2为r的二次近似值。

重复以上过程,得r的近似值序列,

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

当前位置:首页 > 小学教育 > 小升初

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

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