用c语言编写程序出现undecla,济南大学C程序设计基础实验指导书

《济南大学C程序设计基础实验指导书》由会员分享,可在线阅读,更多相关《济南大学C程序设计基础实验指导书(48页珍藏版)》请在人人文库网上搜索。

1、程序设计基础实验指导书信息科学与工程学院潘玉奇 张玲 袁宁 编目 录实验1 C语言上机初步1实验2 选择结构编程8实验3 循环结构编程12实验4 数组编程15实验5 函数编程22实验6 数组和函数编程27实验7 简单指针编程31实验8 字符指针编程37实验9 数组与指针编程40实验10 结构体编程43实验1 C语言上机初步一、实验目的1、认识Visual C+ 6.0 的开发环境2、学会输入、调试并执行一个C+程序,二、学习内容1、创建一个工作文件夹在硬盘上创建一个工作文件夹,用来存放自己编写的C程序。例如:在E盘上建立文件夹“E:VC_PROGRAM”,以后创建的C程序都保存在该文件夹下。2。

2、、启动Visual C+ 6.0选择“开始”“程序”“Microsoft Visual C+ 6.0”“Microsoft Visual C+ 6.0”,Visual C+ 6.0启动后的开发环境见图1-1。图1-1 VC+ 6.0开发环境3、创建一个控制台应用程序所谓“控制台应用程序”是指那些需要与传统DOS系统保持程序的某种兼容,同时又不需要为用户提供完善界面的程序。简单地讲,就是指在Windows环境下运行的DOS程序,它没有windows图形接口,使用标准的命令窗口。Visual C+ 6.0中用AppWizard创建一个控制台应用程序步骤如下:(1) 选择“文件”“新建”菜单命令,将。

3、显示出“新建”对话框,见图1-2。图1-2 “新建”对话框(2) 在“新建”对话框的“工程”标签页中选择“Win32 Console Application”,然后在右侧上方的“工程名称”编辑框中输入控制台程序项目名称“ex_hello”,点击“位置”右侧的按钮,选择文件夹“E:VC_PROGRAM”,然后按“确定”按钮,将出现“Win32 Console Application”对话框,见图1-3。图1-3 Win32 Console Application对话框(3) 在“Win32 Console Application” 对话框中选择第3项“一个”Hello World!”程序”,单击。

4、“完成”按钮,系统将显示“新建工程信息”对话框,见图1-4。(4) 在“新建工程信息”对话框中单击“确定”按钮,将自动创建一个控制台程序,见图1-5。图1-4 “新建工程信息”对话框项目工作区图1-5 ex_hello 应用程序界面1(5) 在项目工作区窗口双击“ex_hello classes”或单击左侧的符号“+”,将出现“Globals”,再双击它,将出现“main(int agrgc, char *argv)”,见图1-6。图1-6 ex_hello 应用程序界面2(6) 认识开发环境菜单栏标题栏双击“main(int agrgc, char *argv)”,在文档窗口将出现“ex_h。

5、ello.cpp”编辑窗口,见图1-7。工具栏状态栏文档窗口输出窗口项目工作区图1-7 ex_hello 应用程序界面3标题栏的左侧显示当前的文件名,右侧有最小化,最大化和关闭三个按钮。菜单栏包含了开发环境中几乎所有的命令,其中一些常用的命令还被排列在工具栏中。工具栏上的按钮提出和一些菜单命令相对应,提供了经常使用的命令的一种快捷方式。项目工作区窗口包含有Class View和File View两个页面,图1-7显示的是Class View页面,单击窗口下方的File View标签将出现File View页面(见图1-8),从该页面中我们可以看到ex_hello应用程序包含的所有文件。File。

6、 View页面File View标签图1-8 File View页面文档窗口位于开发环境右侧,程序的源文件、资源文件、等都在这里显示。输出窗口在开发环境的底部,它包括组建、调试、在文件中查找等相关信息的输出。状态栏用于显示当前操作状态、文本光标所在的行列号等。(7) 编译运行程序单击编译工具条上的组建按钮“”,系统开始对ex_hello程序进行编译、连接,在输出窗口显示编译的内容,当出现ex_hello.exe - 0 error(s), 0 warning(s)时,表示ex_hello.exe已经正确地生成了,可以运行该程序。再单击编译工具条上的“”按钮,执行程序,运行结果将显示再控制台窗口。

7、中,见图1-9。图1-9 ex_hello程序运行结果在控制台窗口中的第2行文字“Press any key to continue”是系统自动加上的,表示ex_hello程序运行后,按任意键返回到VC+的开发环境。如果程序编译时出现错误,将在输出窗口显示错误信息,例如:输出函数printf少打了一个字母f,编译就会出错,输出窗口将显示如下信息(图1-10):错误编号说明错误出现在第8行Compiling.ex_hello.cpp错误:print是没有声明的标志符E:VC_PROGRAMex_helloex_hello.cpp(8) : error C2065: print : undecla。

8、red identifier指出编译中出现了一个错误执行 cl.exe 时出错.ex_hello.exe - 1 error(s), 0 warning(s)根据输出窗口提示的错误信息,我们对程序进行修改,然后再按“”按钮,若不再有错误,则运行程序,否则应继续修改错误。(8) 关闭工作空间程序运行结束后,如果想输入一个新程序,我们需要将当前的程序关闭,选择菜单栏中的“文件”“关闭工作空间”即可。具体的错误信息错误个数printf少了字母f图1-10 程序编译出错的情况4、输入一个新程序调试并运行方法1:按前面讲过的步骤新建一个“Hello World!”程序,注意在“新建”对话框的“工程名称”。

9、编辑框中输入一个新的项目名称(由用户自己确定),例如“ex1”,最后在main函数中输入程序代码(删去原有的printf(“Hello World!n”);)。方法2:与方法1类似,只是在出现“Win32 Console Application”对话框后,选择其中的第2项“一个简单的程序”,单击“完成”按钮,系统将显示“新建工程信息”对话框,再单击“确定”按钮,将自动创建一个控制台程序。注意要点击这里,才会出现右侧的代码编辑窗口加入#include命令加入程序代码图1-11 新建ex1程序方法3:在开发环境中单击工具栏“”左侧的新建文本文件按钮“”,打开一个新的文档窗口,在该窗口内输入我们的C。

10、程序(见图1-12),输入完代码后,先将程序保存下来,选择工具栏的保存按钮“”,此时将弹出一个“保存为”文件对话框,我们可以在E:VC_PROGRAM下新建一个名为ex1的文件夹,然后双击该文件夹(即打开该文件夹),再输入的程序名,如“ex1.cpp”(也可以起别的名字,但文件名的后缀必须是.cpp),过程见图1-13。新文件夹起名为ex1双击它或单击下面的“打开”按钮 点击图标,建一个新文件夹输入程序名,然后按“保存”按钮图1-13 保存程序注意:输入程序,修改错误后,程序只是没有了语法错误,还可能存在逻辑错误,所以在运行程序前,一定要先保存程序!三、实验内容1、输入教材P5例1.3,学习V。

11、C+开发环境的使用,学习如何调试和运行程序。2、输入以下程序,修改其中的错误直至程序可以正确运行。#inclduevoid main float r, area;scanf(“%d”, &r); aea=3.14159*r*rprintf(“area=%f, area); 实验2 选择结构编程一、实验目的1、学习使用VC+ 6.0 开发环境中的菜单命令(1)2、学会应用选择结构编程二、学习内容菜单栏位于VC+开发环境的上方,它包含了开发环境中几乎所有的命令,用鼠标单击选择的菜单项,将弹出相应的下拉菜单。如单击“文件”,出现其下拉菜单,如图2-1所示。图2-1 “文件”下拉菜单(1)“新建”命令。

12、的使用请参看实验1。(2)“打开”命令:打开已经存在的文件。单击“打开”命令将弹出一个“打开对话框”(见图2-2),选中要打开的文件,如“ex2.cpp”,再单击“打开”按钮即可打开该文件。图2-2 打开对话框以这种方式打开已存在的“.cpp”文件,不能直接运行程序,执行按钮是灰色的,无法选中。要运行程序必须先按组建按钮“”,这时会弹出一个消息对话框(见图2-3),上面的信息是:组建命令要求一个活动的工程工作区,你是否希望创建一个默认的工程工作区?这里必须选择“是”按钮。随后又弹出一个消息对话框(见图2-4),上面的信息是:该工程已经存在,继续这个操作将覆盖该工程,你确定要继续?这里也必须选择。

13、“是”按钮。这样程序才能组建成功,然后按“”按钮可以运行程序。图2-3 消息对话框1图2-4 消息对话框2(3)“关闭”命令:关闭文档窗口中的文档,但项目工作区的内容还会保留,如图2-5,我们通过项目工作区还可以重新打开已关闭的文件。图2-5 关闭文档后的环境(4)“打开工作空间”命令:打开已有程序的工程工作区文件,单击该命令后将弹出“打开工作区”对话框(见图2-6),选择“.dsw”文件,单击“打开”按钮即可。以这种方式打开的程序可以直接运行。图2-6 打开工作区对话框(5)“关闭工作空间”命令:单击该命令将关闭程序的工作空间,文档窗口和项目工作区都被关闭,执行后的状态如图2-7所示。项目工。

14、作区也被关闭图2-7 关闭工作空间后的开发环境(6)“保存”和“保存全部”命令:对控制台项目程序来说,这两个命令的区别不大,当我们新建一个程序后,可选择其中任意一个命令保存程序。(7)“最近文件”和“最近工作空间”命令:当鼠标移动到“最近文件”命令上时,该命令右侧将弹出二级菜单,列出最近打开过的文件,选择其中一个文件单击即可打开该文件,“最近工作空间”命令类似。(8)“退出”命令:单击该命令将退出VC编辑环境。三、实验内容1、用if语句编程实现输入三角形的三个边长,判断三边长是否能构成一个三角形,若能,则计算出三角形的面积,若不能,则输出信息告诉用户输入的三边长不能构成三角形。2、用switc。

15、h语句编程实现一个简单的计算器程序,输入两个数和一个运算符(设只有4个运算符+、-、*、/),根据输入的运算符进行运算,并输出结果。3、找出下面程序中的错误(提示:共有5个错误) 该程序用来计算以下分段函数e-x x0y= 1 x=0-ex x void main( ) int x,y; scanf(“%d”, &x);if(x0) y=exp(-x);if(xvoid main( ) int i, j;float s;for(i=7; i4; i-) s=0.0;for(j=i; j3; j-)s=s+i*j;printf(“s=%fn”,s);实验4 数组编程一、实验目的1、学习使用Ste。

16、p Over命令和Variables窗口2、学会应用一维数组编程二、学习内容源程序通过编译连接,没有错误,但运行结果却与我们设想的不同,这说明程序还存在着逻辑错误,如何修改逻辑错误呢?唯一的手段就是对程序进行跟踪调试,从而确定问题出现在什么地方。1、启动调试的方法原来的“组建”命令变为“调试”命令程序通过编译连接后,先保存程序,然后再运行程序,若运行结果有误,则需要进行调试。启动调试最简单的方法就是按F10键,按后将出现以下界面(见图4-1)和控制台窗口。跟踪箭头出现一个调试工具栏,可以用鼠标将它拖动到其他位置Watch窗口Variables窗口图4-1 调试界面在源代码视图中有跟踪箭头显示时。

17、表示Debugger正在运行,需要注意的是,跟踪箭头并不跳过变量声明部分,而箭头所指向的语句是下一次将要执行的代码行。2、调试工具栏与调试命令单击菜单栏中的“调试”命令,将出现下拉菜单,该菜单中的多数命令在调试工具栏中都有,如图4-2所示。跳出当前函数进入函数内部单步执行单步执行下一条语句(不进入函数)执行到光标所在的代码行停止调试执行程序直到遇到断点或程序结束从程序开始处进行调试图4-2 调试菜单和调试工具栏“”按钮Break Execution可以在当前点上挂起程序的执行。 “”按钮Apply Code Changes 可以在程序调试时修改源代码。调试工具栏第2行的按钮是用来控制打开对应的。

18、调试窗口,在图3-1中我们看到有Variables窗口和Watch窗口,因此调试工具栏中对应的按钮是凹下去的。下面分别介绍这些调试窗口:“”按钮:打开QuickWatch窗口,在该窗口中可以计算表达式的值。“”按钮:打开Watch窗口,该窗口查看应用程序的变量名及其当前值。“”按钮:打开Variables窗口,该窗口有3个标签,Auto标签显示当前和前一条语句中所使用的变量和返回值,Local标签显示当前函数中的所有局部变量,This标签显示This指针所指向对象的类型、名字及值。“”按钮:打开Registers窗口,该窗口显示CPU状态寄存器的内容。“”按钮:打开Memory窗口,该窗口显示。

19、该应用程序所占的内存内容。“”按钮:打开Call Stack窗口,该窗口显示所有未返回的被调用的函数名。“”按钮,打开Disassembly窗口,其中的汇编语言代码来自编译后程序的反汇编。3、Variables窗口以下是单步执行程序时,Variables窗口中Auto标签显示的内容,请注意观察当执行到不同的语句时,其中的变化。图4-3-1 Auto标签1 图4-3-2 Auto标签2图4-3-1是最初调试状态,跟踪箭头指向main函数的“”,此时Variables窗口中是空白的。再按F10,跟踪箭头指向“sum=0.0;”,这时Variables窗口中列出了所有变量名及其值(见图4-3-2),。

20、但这些变量值都是随机值。图4-3-3 Auto标签3 图4-3-4 Auto标签4继续按F10,注意图4-3-3中sum的值显示为红色的0.,继续按F10,观察图3-3-4,Variables窗口只显示了2个变量i和&n。目前跟踪箭头指向了scanf输入函数语句,所以再按F10,会发现跟踪箭头没有向下移动,此时我们需要转到控制台窗口输入n的值(见图4-3-5),按回车键后将回到调试窗口,且跟踪箭头指向while语句(见图4-3-6),而Variables窗口显示了4个值,因Auto标签包含当前和前一条语句中所使用的变量和返回值,i和n是属于while语句的,&n和scanf returned是。

21、属于scanf语句的。 图4-3-5 控制台窗口1 图4-3-6 Auto标签5继续按F10,跟踪箭头指向循环内的输入语句(见图4-3-7),再按F10跟踪箭头不动,说明此时又需要到控制台窗口输入数据(见图4-3-8)。图4-3-7 Auto标签6 图4-3-8 控制台窗口2输入85后的情况见图4-3-9,再按F10,见图4-3-10。继续按F10,将重复执行循环体内的3条语句,直到循环结束。 图4-3-9 Auto标签7 图4-3-10 Auto标签8循环结束后跟踪箭头指向“ave=sum/n;”,见图4-3-11,再按2次F10,跟踪箭头指向“”,见图4-3-12,此时控制台窗口会显示出程。

22、序结果。图4-3-11 Auto标签9 图4-3-12 Auto标签10跟踪箭头指向“”时,程序就要结束了,按F10并不会立即结束,所以这时我们按F5,会马上结束调试回到原来的编辑状态。使用Auto标签观察时有一个问题,它自动跟踪的变量范围比较狭窄,所以我们有时使用Local标签来观察当前函数的所有变量(见图4-4-1至图4-4-4)。图4-4-1 Local标签1 图4-4-2 Local标签2图4-4-3 Local标签3 图4-4-4 Local标签4三、实验内容1、编程对冒泡排序方法或选择排序方法进行改进。提示:(1)冒泡排序可能出现以下情况:设有10个数排序,按照冒泡排序算法需要9轮。

23、比较,但是由于输入的原始数据具有一定的顺序,所以可能进行3轮比较后10个数就已经排好了,而后面的6轮比较其实没有进行任何的数据交换,改进的目的就是要减少后面无意义的比较轮数。(2)选择排序的改进方向,分析选择排序过程发现,在每一轮的比较中交换次数太多,我们可以尽量减少交换次数,实际上每轮比较只要一次进行交换就能完成排序。2、编程找出一个二维数组中的鞍点,鞍点是指在该位置上的元素在该行上最大,在该列上最小。提示:从数组的第0行开始进行如下操作:在该行中找出最大值,然后标记出它所在的列号,再判断在该列中它是否是最小的,如果是则输出,并结束;如果不是则到下一行中去寻找鞍点。3、运用前面所讲的程序调试。

24、方法,找出下面程序中的逻辑错误,该程序要实现的功能是:输入10个数存放到数组a中,出其中最小的数与数组的a0交换, 找出最大的数与数组的a9交换,最后输出交换后的结果。#includevoid main( ) int i, max, min, temp, a10;for( i=0; iamax) max=i; if(aiint z;int fun1(int x) if(x0) return 1;else if(x #include int fun (int score, int m, int below) int i, k=0; float aver; for(i=0;ivoid fun (c。

25、har *s, int a, int b) while(*s) if (*s=A & *s=a & *s#include void main( ) char *p1, *p2, a20=language, b20=programme;int k, len;p1=a; p2=b;len=strlen(b);for(k=0; kvoid main( ) int a10=0,1,2,3,4,5,6,7,8,9;int i,n,temp,*p;scanf(%d, &n);for(i=1;ia; p-)*p=*(p-1);*a=temp;for(i=0;i#includevoid main( ) struct student int num;char name ;float score; stu, *p; p=stu;stu.num=1001。

你可能感兴趣的:(用c语言编写程序出现undecla,济南大学C程序设计基础实验指导书)