高级语言程序设计实验指导书编者:苑俊英2010.9前言本实验指导书是《高级语言程序设计实验》课程的配套教材,本指导书中的实验内容涉及到高级语言中各个章节的知识点,并对任课教师和学生以指导。
该指导书的实验一至实验十二为专题实验,实验十三为综合实验,除了从各个知识点对学生加以实践外,还以综合项目的形式,让学生体会团队合作、中小型项目的开发过程和方法,锻炼其综合运用所学知识的能力和动手实践的能力。
本实验指导由苑俊英执笔完成,由于作者水平有限,难免有不妥之处,请各位老师和专家指正!目录实验相关 (4)实验一 C程序的运行环境和运行C程序的方法 (6)实验二数据类型、运算符和表达式(1) (8)实验三数据类型、运算符和表达式(2) (11)实验四最简单的C程序设计 (13)实验五逻辑结构程序设计 (15)实验六循环结构程序设计 (16)实验七数组 (17)实验八函数1 (19)实验九函数2 (20)实验十指针 (21)实验十一结构体和共用体 (22)实验十二位运算 (23)实验十三文件 (24)综合实验 (25)实验相关1.每次实验准备(1)了解所用计算机系统的性能和使用方法(2)复习和掌握与本实验有关的教学内容(3)准备好上机所需程序(4)需事先估计运行中可能出现的问题,针对不同的问题进行修改(5)准备好调试和运行时所需的数据2.实验要求(1)一人一组,独立上机(综合实验除外)。
(2)上机过程出现的问题,除了是系统问题外,一般应独立解决,不要轻易举手求助老师。
对出错信息进行分析、判断,学习如何调试程序。
(3)独立完成实验,按时交实验报告。
3.实验步骤(1)进入C工作环境(Turbo C、Turbo C++、Visual C++、Visual Studio 2008、Eclipse、CodeBlocks)(2)编辑程序(3)检查程序的书写错误并修改(4)编译和连接,根据出错信息进行更改,直到编译连接通过为止(5)运行程序并分析运行结果是否合理和正确(6)输出程序清单和运行结果(7)书写实验报告4.实验报告(1)实验报告应包括以下内容:(2)题目(3)程序清单(4)运行结果(5)对运行结果的分析及本次实验取得的经验,如果程序未通过,应分析其原因实验一 C程序的运行环境和运行C程序的方法1.实验目的(1)了解所用计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。
(3)通过运行简单的C程序,初步了解C源程序的特点。
2.实验内容及步骤(1)查看所用的计算机系统已安装的C编译系统,例如:VC++ 6.0、TC、VS2008等,进入自己熟悉的C语言集成开发环境。
(2)熟悉集成开发环境的使用方法。
(3)输入并运行一个简单、正确的程序Exp1_1.c。
Exp1_1.c:#include <stdio.h>void main(){printf("This is a C Program.!");}对该程序进行编译,查看是否有语法错误并修改;编译、连接通过后,运行程序,观察并分析运行结果。
(4)输入并编辑一个有错误的C程序Exp1_2.c。
Exp1_2.c:#include <stdio.h>void main(){int a,b,suma=123;b=456;sum=a+bprint("sum is %d\n", sum);}编译并分析编译信息窗口的错误信息,逐个修改直到不出现错误为止;运行程序,分析运行结果。
(5)输入并运行一个在运行时需要输入数据的程序Exp1_3.c。
Exp1_3.c:#include <stdio.h>void main( ) // 定义主函数{ // 主函数体开始int max(int x,int y); // 对被调用函数max的声明int a,b,c; // 定义变量a,b,cprintf("input a & b:");scanf("%d,%d",&a,&b); // 输入变量a和b的值c = max(a,b); // 调用max函数,将得到的值赋给cprintf("max=%d\n",c); // 输出c的值}int max(int x,int y) //定义max函数,函数值为整型, 形式参数x和y为整型{int z; //定义本函数中用到的变量z为整型if (x > y) z = x;else z = y;return(z); //将z的值返回,通过max带回到调用函数的位置}编译并运行以上程序,输入数据不同数据并查看结果。
(6)对教材第1章习题1.5,完成以下内容:a)分析并编写源程序;b)检查程序是否有错误(包括语法错误和逻辑错误),有则改之;c)编译、连接,分析编译信息,如果有错误找出原因并修改;d)运行程序,输入数据并分析结果;e)将调试好的程序保存在自己的用户目录中,文件名自定;f)关闭所用集成环境之后重新打开,通过文件菜单中的“打开”命令将刚刚保存的文件打开。
实验二数据类型、运算符和表达式(1)1.实验目的(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型变量,以及对其赋值的方法。
(2)掌握不同的类型数据之间赋值的规律。
(3)学会使用C的算术运算符及表达式。
(4)进一步熟悉C程序的编辑、编译、连接和运行的过程。
2.实验内容及步骤(1)输入并运行程序Exp2_1.c至Exp2_6.c, 查看每个程序的编译及运行结果,分析各程序有什么区别,输出运行结果。
Exp2_1.c:#include <stdio.h>void main( ) // 定义主函数{char c1, c2;c1='a';c2='b';printf("%c %c\n",c1, c2);}Exp2_2.c:#include <stdio.h>void main( ) // 定义主函数{char c1, c2;c1='a';c2='b';printf("%c %c\n",c1, c2);prinft("%d %d\n",c1, c2);}Exp2_3.c:#include <stdio.h>void main( ) // 定义主函数{int c1, c2;c1='a';c2='b';printf("%c %c\n",c1, c2);prinft("%d %d\n",c1, c2);}Exp2_4.c:#include <stdio.h>void main( ) // 定义主函数{char c1, c2;c1=a;c2=b;printf("%c %c\n",c1, c2);prinft("%d %d\n",c1, c2);}Exp2_5.c:#include <stdio.h>void main( ) // 定义主函数{char c1, c2;c1="a";c2="b";printf("%c %c\n",c1, c2);prinft("%d %d\n",c1, c2);}Exp2_6.c:#include <stdio.h>void main( ) // 定义主函数{char c1, c2;c1=300;c2=400;printf("%c %c\n",c1, c2);prinft("%d %d\n",c1, c2);}(2)输入并运行教材第3章习题3.6,将运行结果和人工分析结果对照,是否一致。
(3)输入并运行习题3.10,查看运行结果。
(4)将(3)中的第6、7行改为以下两条语句后再运行,查看运行结果m=i++;n =++j;(5)将(3)中的程序改为Exp2_7.c至Exp2_9.c,运行并分析结果。
Exp2_7.c:#include <stdio.h>void main( ) // 定义主函数{int i, j;i = 8;j = 10;printf("%d, %d\n", i++, j++);}Exp2_8.c:#include <stdio.h>void main( ) // 定义主函数{int i, j;i = 8;j = 10;printf("%d, %d\n", ++i, ++j);}Exp2_9.c:#include <stdio.h>void main( ) // 定义主函数{int i, j;i = 8;j = 10;printf("%d, %d, %d, %d\n", i, j, i++, j++);}(6)对教材中的习题3.7,完成以下内容:a)分析并编写源程序;b)检查程序是否有错误(包括语法错误和逻辑错误),有则改之;c)编译、连接,分析编译信息,如果有错误找出原因并修改;d)通过该程序,掌握整型、字符型数据之间的关系及转换方法。
实验三数据类型、运算符和表达式(2)1.实验目的(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型变量,以及对其赋值的方法。
(2)掌握不同的类型数据之间赋值的规律。
(3)进一步熟悉C程序的编辑、编译、连接和运行的过程。
2.实验内容及步骤(1)输入并编译程序Exp3_1.c、Exp3_2.c,根据编译错误,将程序修改正确,并查看输出结果。
Exp3_1.c:#include <stdio.h>void main(){float g; h;float tax, rate;g = e5;tax = rate*g;}Exp3_2.c:include <stdio.h>void main() / This is a c program /{cows, legs, integer;printf ("How many people legs did you count?\n);scanf("%c",legs);cows = legs/4;printf("That implies there are %f people.\n",cows);}(2)一年约有3.156*107s。