当前位置:文档之家› C语言程序设计实验讲义2014

C语言程序设计实验讲义2014

C语言程序设计实验指导书

目录

说明 (3)

实验一(一)C语言程序初步 (4)

实验一(二)数据类型、运算符与表达式 (11)

实验二(二)输入与输出 (13)

实验三选择结构 (15)

实验四(一)条件型循环结构 (18)

实验四(二)记数型循环结构 (19)

实验五数组一 (20)

实验六数组二 (21)

实验七函数(一) (22)

实验八函数(二) (23)

实验九指针的概念、指针的运算以及指针与数组 (25)

实验十(一)结构体 (26)

实验十(二)文件 (28)

说明

C程序设计同其他程序设计一样,使实践性很强的课程。除了要听好课,多看课外书外,还需大量的上机实践才能更好地理解和掌握所学到的内容。一般来说,上机和讲课时间之比应不少于1:1。但由于目前各校安排的教学时数限制,课内时间将更多的精力用于讲课上,课内安排的上机时间相对较少,学生不要因此对上机的重要性有所误解。学生应在课外再花一定的时间进行C语言的上机实践,这样才能学好该门课。

上机实验的目的有以下几个方面:

⑴验证所编写的程序的正确性。

⑵进一步理解教材和课堂授课中介绍的内容

⑶熟练地掌握C程序开发环境的使用,为今后开发大型软件打好基础。

⑷学习和掌握一般程序的调试和测试方法。

上机前应充分做好以下准备工作:

⑴复习和掌握与本次实验有关的教学内容。

⑵根据本次实验的内容,在纸上编写好准备上机调试的程序,并初步检查无误。

⑶准备好对程序进行测试的数据。

⑷对每种测试数据,给出预期的程序运行结果。

⑸预习实验步骤,对实验步骤中提出的一些问题进行思考。

上机实验后,应及时写出实验报告,实验报告应包括以下内容:

⑴实验目的和内容。

⑵程序说明,包括程序结构、各模块的算法。

⑶打印出的调试正确的源程序。

⑷打印出的程序运行记录(包括对不同测试数据的运行结果)。

⑸针对实验步骤中提出的问题,写出解决办法及对运行结果的分析。

实验一(一)c语言程序初步

一、实验目的

(1)了解和使用 Visual C++ 6.0(简称 VC)集成开发环境。

(2)熟悉 VC 的控制台应用程序的开发、调试步骤和方法。

(3)掌握 C 程序的编辑、编译、链接和运行过程。

(4)了解项目、文件、工作区等基本概念。

(5)能理解常见错误的提示信息,并根据提示进行改错。

二、C 语言的相关知识点

2.1 C 语言的组成特点:

(1)C 语言的基本构成要素是函数,程序的入口点是主函数。程序从主函数的第一条语句开始执行,主函数的最后一条语句执行完毕,程序执行结束。

(2)程序是处理数据的,所以一般的程序都会有输入输出语句。C 语言的输入输出是以库函数的形式给出的。基本的输入输出函数是 scanf 和 printf。

(3)C 语言库函数的原型说明都是放在相关的头文件中的,函数 scanf 和 printf 放在 stdio.h 文件中。

2.2 C 语言上机开发程序过程

现在我们暂时不考虑怎么样设计一个程序。假设我们已经在纸上或头脑里编写出了一个 C 语言程序,那么如何上机实践将我们的想法或者在纸上编写的程序变成可执行的程序,以验证我们所编写的程序是否正确呢?这是初学 C 语言时必须解决的问题。这个过程可以用图 1-1 来说明。

图 1-1 C 语言上机实践过程

1.编辑、修改源程序

首先我们需要一个编辑器以编辑或者修改源程序。理论上讲,任何一个文本处理器都可以作为源程序编辑器,最简单的编辑器就是 Windows 操作系统的记事本程序。当然现在大多数 C 语言集成开发环境都自带编辑器。这一步的输出结果是源程序文件(例如 xx.c)。

C 语言的源程序文件一般以.c 作为扩展名。

2.将源程序编译成二进制文件

源程序编辑完成后,这一步使用编译器编译源程序。编译器完成以下两方面的任务。

(1)检查源程序语法。如果源程序中存在语法错误,那么编译器会给出语法错误的相

关提示信息。不同的编译器给出的语法错误信息的详细程度不同。但即使最简单的编译器,也会给出语法错误所在的行号。更高级的编译器还会给出语法错误具体信息,例如变量未定义、括号不匹配等。

(2)编译生成目标文件。如果源程序已经没有语法错误,那么用编译器将源程序编译成二进制代码文件,实质上就是将 C 语言语句翻译成对应的二进制机器指令,将这些二

进制机器指令保存到一个文件中,这样的文件称为目标文件(例如 xx.obj)。

3.构建可执行程序

在第 2 步生成的目标文件尽管是机器指令,但是一般情况下还不能直接运行,必须

使用连接器将目标文件构建成可执行程序,这个过程也称为连接过程。连接器完成下面

几个任务:

(1)绝大多数的 C 语言程序都需要标准库函数支持,所有的标准库函数都已经被编译

成二进制代码,并且存放在一个库文件之中。所以必须将库文件与目标文件合并在一起(链

接)才能构成独立的可执行文件。如果某些函数在本程序中没有实现,在库函数中也没有

实现,那么连接器也会报错。

(2)不同的操作系统,其可执行文件的格式不一样。必须将目标文件转换成操作系统能认识的可执行文件格式。

需要说明的是,现代的集成开发环境一般都将编辑器、编译器和连接器集成在一起,我

们上机时能够明确“看见”的只有源程序编辑器(实际上是编辑窗口),而编译器和连接器

在后台工作,不需要我们手动调用,只需要按一两个按钮或者快捷键即可。详细情况见本

章后面的实验范例。

2.3 集成开发环境介绍

集成开发环境(Intergrated Development Environment,IDE)可以给程序员提供很大的帮助。大多数的 IDE 包含编辑器、编译器、链接器、调试器这四个组件。

程序员使用 IDE 的主要原因是开发应用程序的各个组成部分之间可方便地进行切换。

一般一个特定的 IDE 负责处理一种编程语言,但也有一些支持多种编程语言的 IDE,例如

NetBeans、Microsoft Visual Studio、MyEclipse、WinDev 和 Xcode 等。

IDE 的宗旨是提供一个强大和易于使用的用于创作、修改、编译、部署、调试软件,并增加开发人员的软件生产效率的环境。

目前用得最多的 C/C++集成开发环境有下面几种:

(1)微软公司的 Visual C++系列:Visual C++是微软 Visual Studio 套件的一个组成部分,可以独立安装。作为初学者,比较适用的是 Visual C++ 6.0,Visual C++ 6.0 是微软 1998 年发布的 Visual studio 6.0 套件的一部分,是基于 Windows 平台的 C/C++语言开发工具。它不仅支持 C++语言的编程,也兼容 C 语言的编程。尽管微软公司后续又发布了多个 Visual Studio 套件(如 2003 版、2005 版、2008 版和2010 版),但是作为初学者,Visual C++ 6.0 最合适。

微软 Visual Studio 套件只能用在 Windows 操作系统下,也就是说,只能开发Windows应用程序,不能开发其他操作系统的应用程序。

(2)Codeblocks。Code::Blocks (codeblocks)是一个开源、免费、跨平台的 C/C++

集成开发环境。官方网站上称其能满足最苛刻的用户需求。其功能比较强大,可以扩展插

件,有插件向导功能,可以方便地创建自己的插件。Code::Blocks 是用 C++编写的(用

wxWidgets 库),捆绑了 MinGW 编译器。Codeblocks 集成开发环境是跨操作系统平台的,

因此 Codeblocks 既可以开发 Windows应用程序,也可以开发 UNIX(Linux)系统的应用程序。

(3)PellsC。PellsC 是一个小巧的 C/C++集成开发环境。其特点是界面与 VC++ 6.0 相似,快捷键与 VC++ 6.0 完全相同,可以作为 VC++ 6.0 的替代品。

三.实验内容

Visual C++ 6.0 集成环境的使用。

1.问题描述

使用 Visual C++ 6.0 集成环境编辑、编译并运行下面的示例程序:

#include

int main(void)

{ printf("My name is 名字!\n"); /* 名字=真名*/

printf("This is my first C program!\n");

return 0;

}

说明:本题要求完成一个字符串的输出,并且是“依葫芦画瓢”!

2.实验步骤

(1)首先建立一个存放 C 语言源程序的文件夹。本例中,我们在 F 盘的文件夹Meshwork 下创建一个子文件夹 C_E。后续实验的所有文件都放在这个文件夹下①。本书所有实验文件夹的完整的路径是:F:\Meshwork\C_E。

(2)启动 VC++ 6.0 开发环境。选择菜单“开始”→“程序” →Microsoft Visual Studio 6.0→Microsoft Visual C++ 6.0,得到 Visual C++ 6.0 启动后的用户界面,如图 1-2 所示。

图1-2 Visual C++ 6.0 用户界面

①注:建议大家养成一个好习惯,每次实验前建立一个自己的独立文件夹。

(3)创建新项目。

①单击菜单 File→New,显示 New 对话框,如图 1-3 所示。

图1-3 “新建”对话框

②在左边标签栏中,选中 Project 标签,然后在标签下面的列表栏中选择 Win32 Console Application(Win32 控制台应用程序①)。在右边的 Project name 输入框中输入

一个项目名,本例输入“ep3_1”。在 Location 位置框中,单击按钮,选择项目所在

的路径,这里我们选择在第(1)步中建立的文件夹路径 F:\Meshwork\My_CP\,单击“确

定”按钮。

③在“Win32 Consol Application-Step 1 of 1”对话框中选择 An empty project 单选项。然后单击“完成”按钮,如图 1-4 所示。

图1-4 Win32 Consol Application-Step 1 of 1 对话框

①“控制台应用程序”是一种在 DOS 窗口中运行的基于字符界面的程序。由于这种类型的

应用程序比纯 Windows 界面程序简单,这样使得我们可以将精力先投入到学习使用 C 编

程语言,而不需要把过多的精力投入到学习复杂的 Windows 界面编程中去。

(4)建立 C 语言源程序文件。

①单击菜单 File→New,显示 New 对话框,选择 Files 标签,如图 1-5 所示。在列表栏中,选择 C++ Source File,然后在右边的 File 输入框中输入源程序的文件名ep3_1.c。

图1-5 “新建”窗口

②单击“确定”按钮,则创建完成了一个源程序文件,并出现编辑窗口,如图 1-6 所示。

图 1-6 C++源程序编辑窗口

③在“源程序编辑”窗口下编辑 C 源程序,如图 1-7 所示。

图 1-7 编辑 C 源程序

(5)编译链接和运行源程序。

①选择菜单项 Build,出现“compile ep3_1.c”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在屏幕下方的 Build 窗口中(如图 1-8 所示)。所显示的错误信息中指出该错误所在行号和该错误的性质。用户可根据这些错误

信息定位、修改程序错误。

图1-8 “编译”窗口

②编译无错误后,可进行链接生成可执行文件(.exe),这时选择 Build 下拉菜单中的“build e3_1.exe”选项。Build 窗口出现如图 1-9 所示的信息说明编译链接成功,

并生成以源文件名为名字的可执行文件(ep3_1.exe)。

图1-9 编译链接信息

③运行可执行文件的方法是选择 Build 菜单项中的“Execute ep3_1.exe”选项。这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中,如图1-10 所示。

图 1-10 运行 C 程序结果

(6)关闭和打开工作区。单击菜单“文件”→“关闭工作区”,关闭工作区。单击菜单“文件”→“打开工作区”,在弹出的对话框中选定“F:\meshwork\my_cp\ep3_1 \ep3_1.dsw”,单击“打开”按钮,则可打开工作区,对已建立的项目文件进行修改。四.实验要求及总结

1.对上述实验进行总结,将自己在这次实验中所学到的C语言程序上机操作方法及步骤写在实验报告中。

2.如果只是开发控制台应用程序,可以采用更简单的方法和步骤(假设我们新建的程序文

件名是 xx.c)。

①在存放程序的文件夹下新建文本文件 xx.c;

②用鼠标双击 xx.c 文件,自动打开 VC++开发平台;

③编辑程序语句;

④编译程序(按快捷工具栏的编译按钮或者快捷键 Ctrl+F7),自动建立项目文件。

3. 整理上机步骤,总结经验和体会。

4. 完成实验报告和上交程序。

实验一(二)数据类型、运算符与表达式

一.实验目的

1. 掌握一个C语言源程序的完整结构

2. 掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量以及对它们赋值的方法。

3. 能对变量正确赋值,掌握不同的类型数据之间赋值的规律

4. 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+ +)和自减(——)运算符的使用。

5. 掌握对运算符和表达式的正确使用

6. 进一步熟悉C程序的编辑、编译、连接和运行的过程。

7. 熟悉对程序的调试过程

二. 预习知识

1. 一个C语言源程序程序的结构

2. 各种不同类型变量的定义方式

3. 赋值的相关知识

4. 各种运算的优先级和结合方式

5. 有关表达式的相关知识

三.实验内容

1、下面的程序试图计算由键盘输入的任意两个整数的平均值:

#include

int main(void)

{

int x,y,a;

scanf(“%x,%y,&x,&y);

a=(x+y)/2;

printf(“The average is :”a);

return 0;

}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)2,6

(1)1,3

(3)-2,-6

(4)-1,-3

(5)-2,6

(6)-1,3

(7)1,0

(8)1,6

(9)32800,33000

(10)-32800,33000

(1)、分析上述哪几组测试用例较好?通过测试,你发现程序有什么错误了吗?若有错误,请指出错误原因。

(2)、操作符sizeof 用以测试一个数据或类型所占用的存储空间的字节数。请编写一个程序,测试各基本数据类型所占用的存储空间大小。

2、输入以下程序

#include

int main(void)

{

int j,k,m,n;

k=8;

j=10;

m=k++;

n=++j;

printf(“%d,%d,%d,%d”,k,j,m,n);

return 0;

}

(1)、运行程序,观察结果。

(2)、分析++在变量之前和在变量之后的不同点?

3、编写一个C语言程序,测试下列各表达式

i , j

i + 1,j + 1

i + + ,j + +

+ + i, + + j

i + + + + + j

+ + i + + + + + j + +

要求在各表达式中i 和j都分别有相同的初值。在实验中注意下列问题:

(1)哪些表达式是错误的?为什么?

(2)理解+,++,++i,i++的意义和优先级别。

四.实验要求及总结

1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。

2. 整理上机步骤,总结经验和体会。

3. 完成实验报告和上交程序。

实验二(一)输入与输出

一.实验目的

1. 掌握scanf()、printf()、getchar()、putchar()函数的使用方法。

2. 能使用“\n”等转义字符,对输出的结果进行控制。

3. 掌握C语言中使用最多的一种语句——赋值语句的使用方法。

4. 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

5. 了解程序编写的步骤

6. 掌握根据程序要求确定算法的方法

7. 掌握简单顺序结构程序的设计方法

二. 预习知识

1. Scanf()、printf()、getchar()、putchar()函数的功能和格式。

2. 顺序结构程序的基本结构及执行

3. 算法的描述与编写

三.实验内容

(1) 掌握各种格式转换符的正确使用方法

①输入程序

#include

int main(void)

{

int a,b;

float d,e;

char c1,c2;

double f,g;

long m,n;

unsigned int p,q;

a=16;b=62;

c1=′a′;c2=′b′;

d=3.56;e=-6.87;

f=3157.890121;g=0.123456789;

m=50000;n=-60000;

p=32768;q=40000;

printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);

printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\mp=%u,q=%u\n",f,g,m,n,p,q);

return 0;

}

②运行此程序并分析结果。

③在此基础上,修改程序的第8~13行:

a=61;b=62;

c1=a;c2=b;

f=3157.890121;g=0.123456789;

d=f;e=g;

p=a=m=50000;q=b=n=-60000;

运行程序,分析结果。

④改用scanf函数输入数据而不用赋值语句,scanf函数如下:

scanf("%d,%d,%c,%c,%f,%f,%lf,%lf%ld,%ld,%u,%u",&a,&b,&cl,&c2,&d,&e,&m,&n,&p,&q);

输入的数据如下:

61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000↙(说明:lf和ld格式符分别用于输入double型和long型数据)分析运行结果。

⑤在④的基础上将printf语句改为:

printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e);

printf("f=%f,g=%f\nml=%d,n=%d,np =%d,q=%d\n",f,g,m,n,p,q);

运行程序。

⑥将p、q改用%o格式符输出。

⑦将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。

(2) 编写程序

设圆半径=1.5,圆柱高=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。

(3) 编程序,用getchar函数读入两个字符给cl、c2,然后分别用putchar函数和scanf函数输出这两个字符。

上机运行程序,比较用printf和putchar函数输出字符的特点。

四.实验要求及总结

1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。

2. 整理上机步骤,总结经验和体会。

3. 完成实验报告和上交程序。

实验三选择结构

一.实验目的

1. 了解C语言表示逻辑量的方法(以O代表“假”,以非O代表“真”)。

2. 学会正确使用逻辑运算符和逻辑表达式。

3. 熟练掌握if语句和switch语句。

4. 结合程序掌握一些简单算法。

5. 进一步巩固前面实验成果

6. 学习调试程序。

二. 预习知识

1. if、switch语句的用途和格式规范

2. if语句和switch语句之间的转换

3. break语句的用途

三. 注意事项

(1)对于if语句

if结构:根据一定条件选择执行一条(或一组)语句。

if-else 结构:

根据一定条件从两条(或两组)语句选择执行一条(或一组)语句。

if-else if-else 结构

根据一定条件从多条(或多组)语句中选择执行一条(或一组)语句。

if语句的嵌套

注意if和else的配对问题,else总是与它前面最近的if语句配对

(2)带break语句的switch语句

使用break语句可以结束当前的switch结构,从而保证在switch结构中,一旦有一个条件满足,执行相应的语句组后将退出分支结构,不再执行其他语句组,真正实现“多选一”的分支选择功能

(3)If语句和switch语句的转换

进行转换时要把握和处理好if语句中的条件表达式与switch语句常量表达式之间的关系。

四.实验内容

1、题目

有如下程序段:

{

/* …… */

if (a>1&&b= =0) x=x/a;

if(a==2||x>1) x=x+1;

/* …… */

}

要求完善上面的程序,并增加一些输入语句和输出语句,以便使上述程序能在不同的a,b和x 值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。(2)、实验步骤

记下分别使用下列各组数据运行时的操作流程。

(1)a=1,b=1,x=1;

(2)a=1,b=1,x=2;

(3)a=3,b=0,x=1;

(4)a=2,b=1,x=4;

(5)a=2,b=1,x=1;

(6)a=1,b=0,x=2;

(7)a=2,b=1,x=1;

(8)a=3,b=0,x=2。

2、编写调试程序实现如下功能

已知三个数a,b,c,找出最大值放于max中。

分析:由已知可得在变量定义时定义四个变量a,b,c 和max,a,b,c 是任意输入的

三个数,max是用来存放结果最大值的。第一次比较a 和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else 形式。第二次比较max和c,把最大数存

入max中,用if语句的第一种形式if形式。Max即为a,b,c中的最大值。

3、编写调试程序实现如下功能

输入某学生的成绩,经处理后给出学生的等级,等级分类如下:

90 分以上(包括90):A

80至90 分(包括80):B

70至80 分(包括70):C

60至70 分(包括60):D

60 分以下:E

方法一:(用if嵌套`)

分析:

由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80 分,等级为B;否则,如果成绩大于70 分,等级为C;否则,如果成绩大于60分为D;否则,如

果成绩小于60 分,等级为E;但当我们输入成绩时也可能输错,出现小于0 或大于100,

这时也要做处理,输出出错信息。因此,再用if 嵌套前,应先判断输入的成绩是否在

0~100 之间。

方法二:用switch语句

分析:

switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,

所以在以用switch 语句之前,必须把0~100 之间的成绩分别化成相关的常量。所有A (除100 以外),B,C,D 类的成绩的共同特点是十位数相同,此外都是E 类。则由此可得把score除十取整,化为相应的常数。

五.实验要求及总结

1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。

2. 整理上机步骤,总结经验和体会。

3. 完成实验报告和上交程序。

一.实验目的

1. 理解循环结构的概念

2. 掌握对while、do while 语句的使用

3. 掌握while与do while 语句之间的异同点

二. 预习知识

1. while与do while语句构成的循环

2. While与do while语句构成的循环的比较

3. 应用while与do while语句解决一些实际应用问题

三. 实验内容

编程序并上机调试运行。

1.分别用while语句、do-while语句编写程序,计算e≈1+1/1!+1/2!+...+1/n!

实验步骤与要求:

(1) 用单重循环编写程序

(2) 使误差小于给定的ε,设ε=10-5

(3) 除了输出e以外,同时还要输出总的项数n

2. 火柴棍游戏

假设有21根火柴棍,两人轮流拿取,每次可以取1-4根,不能多拿,也不能少拿。谁拿最后一根,谁就认输。

提示:电脑每次拿的火柴棍的数目是5减去你上轮哪的数目

实验步骤与要求:

(1) 你拿的火柴棍数目不在1-4应提示重新拿。

(2) 分别用while语句、do-while语句编写程序

四.实验要求及总结

1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。

2. 整理上机步骤,总结经验和体会。

3. 完成实验报告和上交程序。

一.实验目的

1. 掌握对for 语句及其特殊形式的使用

2. 掌握for语句与while语句之间的转换

3. 掌握循环的嵌套

4. 学会调试程序

二. 预习知识

1. for语句构成的循环及其特殊形式

2. for与while语句之间的转换

3. 循环的嵌套的用法

三. 实验内容

编程序并上机调试运行。

1.编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5)

1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1

1 2 3 4 3 2 1

1 2 3 2 1

1 2 1

1

2. 体育彩票采用整数1、2、3……、36表示36种体育运动,一张彩票可以选择7 种运动。编写程序,选择一张彩票的号码,使这张彩票的7个号码之和是105且相邻两个号码之差按顺序依次是1、2、3、4、5、6。例如第一个号码是1,则后续号码应是2、4、7、11、16、22。

四.实验要求及总结

1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。

2. 整理上机步骤,总结经验和体会。

3. 完成实验报告和上交程序。

一、实验目的:

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

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

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

二.实验内容

1.排序并插入

(1)已知一个有10个元素的数组,请排序。

(2)今输入一个数,要求按原来排序的规律将它插入数组中。

方法一:选择法排序

首先找出值最小的数,然后把这个数与第一个数交换,这样值最小的数就放到了第一个位置;然后,在从剩下的数中找值最小的,把它和第二个数互换,使得第二小的数放在第二个位置上。以此类推,直到所有的值从小到大的顺序排列为止。

方法二:冒泡法排序

从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

2. 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。

三.实验要求及总结

1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。

2. 整理上机步骤,总结经验和体会。

3. 完成实验报告和上交程序。

相关主题
文本预览
相关文档 最新文档