C语言上机实验.docx
- 文档编号:6710640
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:10
- 大小:27.27KB
C语言上机实验.docx
《C语言上机实验.docx》由会员分享,可在线阅读,更多相关《C语言上机实验.docx(10页珍藏版)》请在冰豆网上搜索。
C语言上机实验
实验时间:
第1次实验:
3.13
第2次实验:
3.20,3.27
第3次实验:
4.3,4.10
第4次实验:
4.17,4.24
第5次实验:
5.8
第6次实验:
5.155.22
第7次实验:
5.29
第8次实验:
6.5
第9次实验:
6.12
实验内容按照指导书内容填写,可以把自己上机编写的程序、遇到的问题、解决办法写上(得到高分的条件)。
先暂时写前三次,第四次结束后再写。
在有输入输出的程序部分,应该写上输入输出的结果,以表示程序能正确工作。
实验一编程环境的使用
一、目的和要求
1.了解编程环境的使用。
2.学会处理简单的错误,观察运行结果。
3.掌握基本的输入输出。
二、实验原理
VisualC++6.0是一个集成的开发环境,包括编辑、编译连接和调试。
编写程序的主要过程是:
建立工作区、建立工程、添加源文件、输入程序、运行程序、改正出现的错误直到有正确的输出结果。
三、实验内容及步骤
1.编程环境的使用。
(1)打开VisualC++6.0开发环境。
(2)单击“文件-〉新建”菜单命令,显示出“新建”对话框(如图1-3)。
在新建对话框单击“工程”标签,选中Win32ConsoleApplication项,然后在工程框中键入控制台应用程序项目名称,并且选中空工程。
(3)添加C++源文件,输入文件名。
(4)打开编辑窗口,输入程序,保存。
(5)编译运行程序,找到其错误位置,改正错误。
2.完成计算加减法的练习。
四、思考问题
1.如何使用不同的数据类型。
2.如何处理输入输出。
3.如何查找程序中的错误?
实验二选择结构
一、目的和要求
1.掌握if...else及其嵌套的用法。
2.掌握switch的用法。
二、实验原理
if语句是专门用来实现选择结构的语句,是根据一个条件满足与否来决定是否执行某条语句或从两个语句中选择一个语句执行。
if-else语句的一般格式为:
if(表达式1)语句1
elseif(表达式2)语句2
elseif(表达式3)语句3
……
elseif(表达式n)语句n
else语句n+1
当程序中有多个条件判断时,若使用if语句可能使嵌套太多,降低了程序的可读性,switch语句能很好的解决这个问题。
switch语句一般格式为:
switch(表达式)
{
case常量表达式1:
语句1
break;
case常量表达式2:
语句2;
break;
...
case常量表达式n:
语句n;
break;
default:
语句n+1;
}
三、实验内容及步骤
1.编程计算x的绝对值。
2.输入一个整数,然后判断其是大于0、小于0还是等于0,然后输出所得结果。
3.使从键盘输入数据x,计算并输出x的平方。
4.按照公式计算y值:
四、思考问题
1.switch语句和if语句相比,各有什么特点?
2.if语句的使用有什么注意事项?
实验三循环结构
一、目的和要求
1.掌握循环的用法。
2.掌握continue和break用法。
3.掌握二重循环的用法。
二、实验原理
三种实现重复操作的循环语句:
while语句、do-while语句和for语句。
break和continue语句专门用于跳出和中断循环操作。
while循环语句的一般格式为:
while(表达式)
{
语句
}
只要表达式为真,则执行循环体,否则,退出循环。
for循环语句一般格式为:
for(表达式1;表达式2;表达式3)语句
其中:
for是C++关键字;语句是for循环的循环体,它可以是一条语句,也可以是复合语句。
一般情况下,表达式1是对循环控制变量进行初始化,表达式2为循环条件,等于true或非0时,执行循环体,然后计算表达式3,再判断表达式2的值是否仍为true或非0,若是,继续执行循环体,再计算表达式3,如此反复,直到表达式2等于false或0为止。
continue语句的常见使用形式为:
while(表达式1)
{
语句1
循环体
if(表达式2)
continue;
语句2
}
当循环语句的循环体被执行时,在顺序执行了语句1中的操作后,如果表达式2的值为true或非0则执行continue语句,其结果是立即跳过语句2中的所有操作,直接进行下一次循环;否则(表达式2的值为false或0),则跳过continue语句,执行语句2中的所有操作,之后进行下一次循环。
三、实验内容及步骤
1.编程计算0-100间的奇数和。
2.输入一批整数(输入-1表示输入结束),计算并输出其中最大的数。
3.编程输出1-300之间能被7整除的数。
4.输入一系列数值,统计出其中正数个数、负数个数,如果输入值为0,结束这个程序。
5.编写一个程序,完成如下功能:
向用户提问“现在是否下雨?
”,提示用户输入Y或者N,如果输入Y,提示“正在下雨”,如果输入N,提示“没有下雨”,否则继续提问“现在是否下雨?
”。
四、思考问题
1.break和continue有什么不同?
2.循环和选择可以嵌套使用吗?
实验四函数
一、目的和要求
1.掌握函数编写及调用规则。
2.掌握函数返回类型的含义。
3.掌握函数嵌套调用的规则。
二、实验原理
函数定义的一般格式为:
类型标识符函数名(形式参数表)
{
语句
}
函数调用的一般格式如下:
函数名(实际参数表)
要将被调函数的计算结果,有效的传递到主调函数中去(即返回函数值),用return语句实现。
return表达式;
函数的传值调用是最常用的一种形式参数和实际参数结合的方式,在函数调用时直接将实参的值赋给被调函数的形参,形参拥有实参的一个备份,改变形参的值时实参并不做相应地改变。
函数的引用调用将在主调函数的实参变量与被调函数的形参变量之间建立某种联系,使得形参变量的变化将影响实参变量的值。
三、实验内容及步骤
1.定义一个无参函数display,用来显示由8个#组成的字符串。
2.编写一个函数,求两个整数的最大公约数和最小公倍数。
3.一个求绝对值的函数;编写一个求x的n次方的函数(n为正整数)。
4.编写判断一个整数是否是素数的函数。
5.编写程序用嵌套调用方法,计算两个整数的绝对值之和。
四、思考问题
1.函数的说明、定义和调用的作用各是什么?
2.是否可以使用return语句一次返回多个值?
3.函数参数的个数是如何确定的?
实验五递归函数
一、目的和要求
1.掌握递归函数的基本原理。
2.掌握递归函数的调用规则。
二、实验原理
函数不仅可以调用其他函数,也可以自己调用自己,这种函数自己调用自己的过程叫做函数的递归调用。
函数的递归调用包括直接的自身调用和间接的自身调用。
递归的过程可分为两个阶段,即“递推”和“回归”。
所谓递推是函数自身逐级调用的过程,反映在内存中就是调用函数的信息(包括运行环境和返回地址等)入栈过程。
所谓回归就是函数的逐级返回(结束运行)的过程,这一过程反映到内存中,就是调用函数信息的出栈过程。
对于递归的使用必须要注意:
在递归调用的函数体内应有结束递归调用的语句,即不能无限制地调用自己,而结束递归调用的往往是一个判断语句;函数体内需有直接或间接调用自身的语句,且这种递归调用语句应在判断是否结束递归的语句之后才出现,即先判断是否结束自身调用,如果条件成立则返回,否则再次调用自身。
三、实验内容及步骤
1.在主程序中提示输入整数n,编写函数用递归的方法求1+2+……+n的值。
2.按以下递归方法编写一个计算幂级数的递归函数。
四、思考问题
1.书写递归函数的规则是什么?
2.如果没有终止条件,递归函数的执行结果是什么?
实验六数组的定义和使用
一、目的和要求
1.掌握数组的基本概念。
2.掌握数组的基本使用。
3.掌握把数组名做函数参数的规则和调用结果。
二、实验原理
数组在内存中连续存放,程序运行时将会在内存中为其分配连续的存储空间来存储数组元素,每个元素占据着与其类型规定长度相同的连续内存单元。
一维数组的定义形式为:
存储类型说明符数据类型标识符数组名[常量表达式];
只能逐个访问其中的元素,对于数组元素的访问可以通过以下形式表示:
数组名[下标]
数组作为函数参数传递时,传递的是数组的首地址,函数中对形参数组值的改变将会导致实参数组值的变化。
对于数组定义应注意以下几点:
1)数组的类型实际上是指数组元素的取值类型。
对于同一个数组,其所有元素的数据类型都是相同的。
2)数组名的书写规则应符合标识符的书写规定,而且数组名不能与其它变量名相同。
3)不能在方括号中用变量来表示元素的个数,可以用符号常数或常量表达式,如arrry[10]表示数组arrry有10个元素,其下标从0开始。
三、实验内容及步骤
1.有一个数组,存放n个互不相同的整数,从键盘输入一个数,要求从数组中删除与该数值相同的元素,如果数组中没有此数,则输出“无此数”。
2.编写程序,查找数组中的最大值和最小值。
四、思考问题
1.什么是数组越界问题?
实验七指针的定义和使用
一、目的和要求
1.掌握指针的基本使用、掌握使用指针处理数组。
2.掌握使用指针完成交换两个整数的值。
3.了解指向函数的指针和指针数组的基本概念。
4.了解返回指针的函数的用法。
二、实验原理
指针是C语言中的一种数据类型,是一种特殊的数据类型,指针并不是某个具体的数据值,而是指向数据存储单元的计算机存储器的地址。
对指针值的访问有两种形式,一种是将一个指针的值赋给另一个指针,另一种是用指针运算符*将指针所指向的变量的值取出用以访问。
指针变量加或减一个整数i的意义是把指针的当前位置(指向某数组元素)向前或向后移动i个位置。
两指针之间的关系运算表示他们指向的变量在内存中的位置关系,指针的关系运算一般用于对数组的访问。
数组名就是一个不允许赋值运算的指针,这个指针的值就是数组的起始地址。
两个与指针有关的运算符:
&(取地址运算符)和*(指针运算符或称为间接访问运算符)。
三、实验内容及步骤
1.编写一个函数,读入三个整数a、b、c,然后交换它们中的数,把a中原来的值给b,把b中的值给c,把c中的值给a,要求用传地址调用实现。
2.写一个子函数,使用指针作函数参数,计算传入的整型数组元素的和。
四、思考问题
1.使用指针的注意事项有哪些?
实验八字符串和结构使用
一、目的和要求
1.掌握字符串的基本概念。
2.掌握字符串的结束标志。
3.掌握结构的基本使用。
二、实验原理
当把一个字符串存入一个数组时,编译系统会自动把结束符'\0'存入数组,并以此作为该字符串是否结束的标志。
对字符数组的访问同样也可以使用指针法。
C语言提供了结构类型用以描述和管理复杂的数据结构,结构是若干相关数据项的有机结合,但各数据项的数据类型可以不同。
访问一个结构变量中的某个数据成员需要用到成员运算符“.”
三、实验内容及步骤
1.完求字符串长度和拷贝字符串的函数。
2.编写程序,声明用于存放学生基本信息的结构体,并定义结构变量,输出学生的信息。
四、思考问题
1.字符串的特征是什么?
2.使用结构的基本步骤是什么?
实验九类和对象
一、目的和要求
1.掌握类的基本概念。
2.掌握使用类的基本步骤。
3.掌握构造函数核析构函数的含义。
二、实验原理
类包含两部分:
类头和类体,类头由关键字class及其后面的类名构成,类体由一对大括号包围起来,一般情况下,类定义后面接一个分号。
在C++中声明类的一般形式为:
class类名
{
private:
私有数据和函数;
public:
公有数据和函数;
protected:
保护数据和函数;
};
构造函数是一个可以被重载的用户自定义函数,它由类设计者提供,在程序中的对象第一次被使用之前,构造函数被自动应用在每个类对象上。
析构函数是与构造函数互补的用户自定义成员函数,它主要用来释放在类的构造函数中或整个生命期中获得的资源,当该类的对象离开了它的作用域或者delete表达式应用到一个该类的对象的指针上时,析构函数会自动被调用。
三、实验内容及步骤
1.定义一个animal类,包含age、weight等属性,以及对这些属性操作的方法,实现并且测试这个类。
2.定义一个Point类,其数据成员包括一个点的坐标x、y,成员函数包括设置和读取这两个变量。
四、思考问题
1.构造函数和析构函数的作用是什么?
2.是否可以不定义构造函数和析构函数?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)