Harbin Institute of TechnologyC语言与数据结构实验指导书刘梅索莹田文龙哈工大电子与信息工程学院电子工程系实验1 实验平台一、实验目的1.掌握Microsoft Visual C++ 6.0集成环境的使用方法。
2.掌握C程序在Microsoft Visual C++ 6.0开发环境中的编辑、编译、链接和运行全过程二、实验内容1)启动Microsoft Visual C++ 6.0开发环境双击桌面应用程序图标或云兄“开始”菜单程序组中的Microsoft Visual C++ 6.0应用程序,启动VC++,如图所示图1.1 VC++初始界面2)建立C源程序文件方法1:单机工具栏的“新建文本文件”按钮,打开文本文件编辑界面如下图所示图1.2 文本文件编辑界面方法2:执行“文件”->“新建”命令,在“文件”选项卡下选择C++ Source File 文件类型,然后输入C源程序文件名和保存文职,如图所示,然后单击“确定”按钮,打开源程序文件编辑界面,如图1.4所示。
注意:输入C源程序文件名时必须带上扩展“.c”,否则默认创建的是扩展名为“.cpp”的C++文件。
3)编辑源文件方法1:在如图1.2所示的文本文件编辑界面中输入源程序代码,如图1.5所示。
方法2:在如图1.4所示的C源程序文件编辑界面中编辑源程序代码,如图1.6所示。
图1.3 新建文件图1.4 C源程序文件编辑界面图1.5 文本文件编辑界面编辑源文件图1.6 C源程序编辑界面编辑源文件4)保存源文件源文件编辑结束后,执行“文件”->“保存”命令保存文件,文本文件编辑界面中编辑的源文件保存时必须在文件名后加上扩展名“.c”,否则保存的是扩展名为txt的文本文件,不能编译运行。
5)组件文件执行“组建”->“组建”命令或直接按F7功能键或单机工具栏Build按钮,可以对源文件进行编译、链接而不运行改程序。
当然也可以先执行“组建”->“编译”(快捷键Ctrl+F7)命令编译文件,再执行“组建”->“组建”(快捷键F7)命令链接文件。
由于VC++有工作区的要求,所以组建时,系统提示需要建立工作区,如图1.7所示。
单机“是”按钮,系统会自动建立工作区,组建后的结果如图1.8所示。
图1.7 提示建立工作区图1.8 组建源程序结果注意:图1.8下方的“组建”信息窗口中的内容说明了组建的结果,必须保证错误(error(s))数为0才能运行程序。
6)运行文件执行“组建”->“执行”命令或直接按Ctrl+F5键或单机工具栏BuildExecute按钮,可以运行程序,结果显示在用户输出窗口中,如图1.9所示。
图1.9 用户输出窗口注意:如果要编辑下一个C源程序,由于新建的文件不会自动加入工作区,因此需要先关闭当前工作区。
方法是执行“文件”->“关闭工作空间”命令,或者关闭后重新启动VC++,再按照上述方法建立、编辑新的C源文件,让VC++自动建立工作区。
7)运行“加法”程序在VC++环境中建立并编辑实现加法运算的源程序,然后组建该文件,结果如图1.10所示。
运行该文件,并按要求输入数据,得到运行结果。
图1.10 VC++环境下组建“加法”程序后的界面实验2 顺序结构程序设计一、实验目的1.掌握上机运行C程序的全过程。
2.掌握各种格式说明符的使用方法。
3.掌握格式输入输出函数scanf()和printf()的用法。
4.熟悉字符输入输出函数getchar()和putchar()的用法。
二、实验内容1.格式说明符的使用。
创建并编辑输入输出各个类型数据的程序,分析各个格式说明符的作用。
2.编写“输入输出字符”程序,功能如下:使用getchar()函数接收一个字符,用printf()函数显示;使用scanf()函数接收一个字符,用putchar()函数显示。
3.编写“求三角形面积”程序,功能如下:输入三角形三边长,求三角形的面积。
已知三角形的三边长a、b、c,则该三角形的面积公式为:09okm其中,()/2=++。
s a b c4.编写“圆柱体”程序,功能如下:设圆柱体的半径r=2.5,圆柱高h=5.0,求出该圆柱体的表面积和体积。
要求:用scanf()函数输入数据,输出时要求有文字说明,取小数点后两位数字。
三、实验指导1.格式说明符的使用(参考教材)2. “输入输出字符”程序1)编程分析(1)需要定义字符型变量存放输入的数据;(2)用scanf()函数输入字符时,要注意不要接收缓冲区中已有的字符。
2)参考程序#include "stdio.h"main(){char a,b,c;printf("1.Input a character:\n");a=getchar();c=getchar();printf("The character is:%c\n\n",a);printf("2.Input a character:\n");scanf("%c",&b);printf("The character is:");putchar(b);putchar('\n');}3. “求三角形面积”程序1)编程分析(1)该问题的解决过程如下:(2)需要定义实型(float或double)变量存放相应的数据;(3)计算面积需要用到开平方函数sqrt(),该函数原型包含在头文件math.h中,因此需要在程序开始将头文件包含进来;(4)根据实际情况确定各个变量在输出时的宽度和小数位数。
2)参考程序#include “stdio.h”#include “math.h”main(){float a,b,c,s,area;printf(“Input a,b,c:\n”);scanf(“%f ,%f,%f”,&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*s(s-a)*(s-b)*(s-c));printf(“a=%7.2f,b=%7.2f,c=%7.2f\n”,a,b,c);printf(“area=%9.2f\n”,area);}3. “圆柱体”程序1)编程分析(1)该问题的解决过程如下:(2)需要定义实型(float或double)变量存放相应的数据;(3)计算过程中需要用到常数π,为使用方便,在程序开始用宏定义命令define 将常数3.14159(即π)用PI表示;(4)输出数据时根据要求确定各个变量的宽度和小数位数(本例采用10.2)。
2)参考程序#include “stdio.h”#define PI 3.14159main(){float r,h;double s,v;printf(“Input the value of r and h:\n”);scanf(“%f ,%f”,&r,&h);s=2*PI*r*r+2*PI*r*h;v=PI*r*r*h;printf(“The value of s is:%10.2f\n”,s);printf(“The value of v is:%10.2f\n”,v);}实验3 选择结构程序设计一、实验目的1.学会使用逻辑表达式表示条件的方法。
2.掌握switch语句的用法。
二、实验内容1.switch语句的应用编写计算器程序。
要求从键盘任意输入两个数值,然后输入一个四则运算符,自动完成运算后输出结果。
三、实验指导1.switch语句的应用1)编程分析(1)四则运算共有加(+)、减(-)、乘(*)、除(/)4种运算,要做出判断需使用switch语句。
(2)当输入符号为四则运算之外的符号时,不进行任何运算,但应给出相应的提示信息。
当使用提示信息时,switch语句应含有default子句。
2)参考程序#include “stdio.h”void main(){float x,y;char p;scanf(“%f,%f”,&x,&y);p=getchar();switch(p){case ’+’:printf(“%f+%f=%f\n”,x,y,x+y);break;case ‘-’:printf(“%f-%f=%f\n”,x,y,x-y);break;case ‘*’:printf(“%f*%f=%f\n”,x,y,x*y);break;case ‘/’:printf(“%f/%f=%f\n”,x,y,x/y);break;default:printf(“Input is error!\n”);}}3)程序调试调试程序时,+、-、*、/及非四则运算符的情况都应予以调试。
实验4 循环结构程序设计一、实验目的1.通过本实验,加深对循环控制结构有关概念的理解。
2.掌握二重循环结构程序的设计方法。
二、实验内容1.阶乘累加问题。
编写程序,求1!+2!+3!+…+n!的值。
2.取彩球问题。
有12个彩球:3个白色,5个红色,4个黄色,从中任意取n 个球12≤≤(2n ),求出所有不同的取法。
三、实验指导1.阶乘累加问题1)编程分析(1)本实验内容为求解阶乘问题。
(2)求n!用一个循环即可实现。
(3)求1!+2!+3!+…+n!的值,需要在求阶乘程序之外增加一个外重循环。
2)参考程序#include “stdio.h”void main(){long int s=1,t;int i,j,n;printf(“n=”);scanf(“%d”,&n);for(i=2;i<=n;i++){for(t=1,j=1;j<=i;j++)t*=j;s+=t;}printf(“s=%ld\n”,s);}3)程序调试(1)输入一个不大的正整数,分析程序执行结果。
(2)输入一个零或者负数,分析程序执行结果。
(3)输入一个很大的正整数,分析程序执行结果。
(4)当程序结果不符合要求时,修改程序,直到对任何输入数据都能输出正确的执行结果,或者给出一个明确的提示信息。
例如,当输入数据非法时,给出一个错误的提示信息。
2.取彩球问题1)编程分析本题用到“穷举”算法。
穷举的基本思想是对问题的所有可能性一一测试,直到找到解或将全部可能状态都测试过为止。
“穷举”的核心是依次测试循环体。
循环控制有两种办法:计数法和标志法。
计数法要先确定循环次数,然后逐次测试,完成测试次数后循环结束;标志法是达到某一目标后循环结束。
2)参考程序#incude “stdio.h”void main(){int n,white,red,yellow,count=0;printf(“Input”);scanf(“%d”,&n);printf(“white red yellow\n”);for(white=1;white<=3;white++)for(red=1;red<=5;red++){yellow=n -white -red;if(yellow>=1&&yellow<=4){printf(“%5d%5d%5d\n”,white,red,yellow);count++;}}printf(“Total:%d\n”,count);}3)程序调试(1)输入不小于2并且不大于12的整数值,查看并分析程序结果。