




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+ 实验指导书指导教师:闫红实验一 上机环境和C+基础编程一、实验目的和要求1、了解Visual C+或Visual Studio 2008集成开发环境。2、熟悉集成开发环境的基本编辑命令及其功能键,练习使用常用功能菜单命令。3、学习完成的C+程序开发过程(编译、连接、调试、运行和查看结果)。4、理解简单的C+程序结构。二、实验内容1、熟悉Visual C+ 6.0环境,使用其基本命令,常用功能菜单命令。2、编写一个“hello word!” 小程序。实验二 选择结构设计一、实验目的和要求判断选择结构又称条件分支结构,是一种基本的程序结构类型。在程序设计中,当需要进行选择、判断和处理的时候,就要用到条件分支结构。条件分支结构的语句一般包括if语句、ifelse语句、switchcase语句。1、理解C+程序的判断选择结构。2、练习使用if语句。3、练习使用switchcase语句。二、实验内容1、求1-500之间满足能被3除余2,被5除余3,,被7除余2的所有整数。2、将100元换成10元、5元、1元,有多少种方法?3、输入的两个整数与运算符(+、-、*或/ ),循环执行运算并输出结果,直到运算符输入错误为止。4、编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入y或n。若输入为y,显示“现在正在下雨。”;若输入为n,显示“现在没有下雨。”;否则继续提问“现在正在下雨吗?”。5、编程模拟现实如下游戏:现有两人玩猜拳游戏,每人可分别用各自的拳头表示三种物体。石头(rock)、剪刀(scissors)、布(cloth)中的一种,两人同时出拳,游戏胜负规则如下。石头对剪子:石头赢。剪刀对布:剪刀赢。布对石头:布赢。实验三 过程化语句一、实验目的和要求一个程序往往由一系列语句组成,程序的执行原则是由上而下、一行一行顺序执行。但程序中往往会遇到有些语句要反复执行多次。这时候就需要这种反复执行语句的能力。因此,C+提供了循环控制语句实现对程序的循环控制。1、理解C+程序的判断选择结构。2、练习使用if语句。3、练习使用switchcase语句。二、实验内容1、从键盘输入一个整数,判断该数是几位数,逆向输出该数。2、从键盘输入一个整数,判断该数是否为回文数。所谓回文数就是从左到右读与从右到左读都是一样的数。例如7887、23432都是回文。3、虫子爬井。一只蜗牛,掉在H米深的井里,每天白天向上爬up米,但由于晚上需要休息,因此每天晚上还会滑下去down米,问蜗牛几天能爬出去?4、输入年、月、日,判断该天是这一年中的第几天。5、打印水仙花数。水仙花数是指一个三位数,它的各个位上的数字立方和等于该数。例如,153=13+53+33。6、求100-200之间的素数。实验四 函数一、实验目的和要求函数是一个命名的程序代码块,是程序完成其操作的场所,是将功能重复的程序段抽象出来所形成一个独立的、可重复使用的功能模块。1、掌握函数的声明、定义方法。2、理解函数参数的传递。3、掌握函数调用方法。二、实验内容1、程序改错#includevoid main()float x,y;if(x0);x=x+y;coutxendl;elsecout-x;编程计算级数的值,其中x为绝对值小雨4的实数,当通项的绝对值小于或等于eps时,停止计算。#include#includedouble fact(double n)double i,t;for(i=1;ieps);return t2;void main()double eps=1e-10,x=3.5,s;s=fun(s,eps);coutx=xt;couteps=epst;couts=s0,m0;其中m,n为正整数,设计程序为Acm(2,1)和Acm(3,2)。定义一个内联函数,判断一个字符是否为数字字符。哥德巴赫猜想指出:任何一个大偶数都可以表示为两个素数只和。例如4=2+2;6=3+3;8=3+5;.50=3+47。将4-50之间的所有偶数用两个素数之和表示。用函数判断一个整数是否为素数。输入x,计算并输出下列分段函数sign(x)的值,要求定义和调用函数sign(x)实现该分段函数。 输入输出示例(共运行3次)第一次运行:Enter x: 10sign(10)=1第二次运行:Enter x: -5sign(-5)=-1第三次运行:Enter x: 0sign(0)=0输入一批正整数(以零或负数为结束标志),求其中的奇数和。要求定义和调用函数even(n)判断数的奇偶性,当n为偶数时返回1,否则返回0。输入输出示例Input integer: 12 9 7 18 3 11 20 0The sum of the odd numbers is 30给定平面任意两个坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留2为小数)。要求定义和调用函数dist(x1,y1,x2,y2)计算两点间的距离。输入输出示例Input(x1,y1): 10 10Input(x2,y2): 200 100Distance=210.24输入2个整数,分别将其逆向输出,要求定义并调用函数fun(n),它的功能是返回n的逆向值。例如,fun(123)的返回值是321。输入输出示例Input m1: 123Input m2:-910123的逆向是321-910的逆向是-19实验五 数组一、实验目的和要求数组是一组在内存中依次连续存放的、具有同一类型的数据变量所组成的集合体。1、理解数组的概念。2、掌握数组的定义、初始化、赋值操作。3、学会使用一维数组、二维数组的应用的一般方法。二、实验内容1、程序改错。找出一个二维数组的鞍点,即该位置上的元素在该行元素中最大,在该列元素中最小,二维数组也可以没有鞍点。函数find判断数组a是否具有鞍点,如果有,则输出鞍点的作表及鞍点上的元素的值;如果没有,则输出“NO!”;void find(int a, in n)int i,j,k,maxj,flag = 0;for(i =0 ;i n;i+)max=ai0;maxj=0;for(j=1;j4;j+) /查找第i行中的最大值if(aij max)max=aij;maxj=j;for(k = 0;k akmaxj)break;if( k n ) /是鞍点cout aimaxj=maxendl;flag=1;if (!flag) /没有鞍点coutNo!n;void main()int a34 = 1,2,3,4,4,5,5,6,3,5,6,7;int i,j;for(i = 0;i 3;i+)for(j = 0;i4;j+)coutaijt;coutendl;find(a,3);2、输入10个整数,将这10个整数按升序排列输出,并且奇数在前,偶数在后。比如,如果输入的10个数是:10、9、8、7、6、5、4、3、2、1,则输出1、3、5、7、9、2、4、6、8、10.。3、打印杨辉三角形。11 2 11 3 3 11 4 6 4 11 5 10 10 5 14、编写一程序实现将用户输入的一字符串以反向形式输出。比如,输入的字符串为:ancdefg,输出为:gfedcna。实验六 指针一、实验目的和要求指针是C+语言最重要特性之一,也是C+的主要难点。指针提供了一种较为直观的地址操作的手段,正确地使用指针,可以方便、灵活而有效地组织和表示复杂的数据。1、理解指针的概念2、掌握指针的使用。3、学会指针与数组、函数、字符串、常量的结合使用。二、实验内容1、已知一个整型数组x4,它的各元素值分别为3、11、8、22.使用指针表示法编程序,求该数组各元素之积。2、编写一函数,判断输入的一串字符是否为“回文”。3、要求从键盘为y44数组输入数据,用一维数组指针变量输入输出数组元素,并且分别求出主、次对角线之和。4、编写一个函数int SubStrNum(char * str,char * substr),它的功能是:统计子字符串substr在字符串str中出现的次数。三、思考题编程实现Vigenere密码法定义:明表:ABCDEFGHIJKLMNOPQRSTUVWXYZ012345678910111213141516171819202122232425明文they will arrive tomorrow密钥K=Monday密码实现1) 将明文与密钥转为数字串:K=(12,14,13,3,0,24)M=(19,7,4,24,22,8,11,11,0,17,17,8,21,4,19,14,12,14,17,17,14,22,)2)将明文数字串依密钥长度分段,并逐一与密钥数字相加(模26),得到密文数字串。 19 7 4 24 22 812 14 13 3 0 145 21 17 1 22 6C=(5,21,17,1,22,6,23,25,13,20 。)3) 密文数字串转换为字母串c=(FVRBWG XZNURG HSGRMM DFBZ)解密:模26减运算2) C=(5,21,17,1,22,6,23,25,13,20 。)2)模26减运算5 21 17 1 22 6 12 14 13 3 0 14-7 7 4 -2 22 -8+ 26 26 26 26 26 26M=(19 7 4 24 22 18)3)将M转换为字符串,得到明文。 they will arrive tomorrow实验七 引用一、实验目的和实验要求从逻辑上理解,引用(reference)是已存在变量的别名(alias),通过引用我们可以间接访问变量,指针也能间接访问变量,但引用在使用上相对指针更安全。引用的主要用途是为了描述函数的参数和返回值,特别是为了传递较大的数据变量。1、理解引用的概念2、掌握引用的使用。二、实验内容1、已知:int m=10;在下列定义引用的语句中,正确的是_。 A:int &x=m; B:int y=&m; C:int &z; D:int &t=&m;答案:A评析:本题主要考查了对引用及地址(&)的理解,引用实际上就是别名,它与被引用变量拥有同一个地址空间,对于选项A而言,其操作实际上就是为m赋于一个别名x,因此选项A是对的。对于选项B,&m表示m的地址,而y是一个整型变量,在C+中不能从地址值隐式转换为整型值,故选项B是错的。对于选项C,引用必须要用被引用的对象,即引用必须要初始化;选项D中t是一个整型引用,而其被引用的对象却是m的地址,存在着与选项B类似的错误,因此选项D也是错的。本题答案为A。2、已知函数f的原型是:void f(int *a,long &b);,变量v1、v2的定义是:int v1;long v2;,正确的调用语句是_。 A:f(v1,&v2); B:f(v1,v2); C:f(&v1,v2); D:f(&v1,&v2);答案:C评析:对于函数f而言,其第一个参数为整型指针,第二个参数为一引用(实际上就是按地址传递参数),该引用是一长整型的引用。对于选项A、B,实参变量 v1为整型,而所要传递的对应的形参变量a是指针型,它接受的是地址,若将实参变量v1改为&v1,那么这一传递就是正确的;对于选项A、D,&v2为一地址,传递给整型引用,也将导致出错。本题答案为C。3、执行下列语句后,屏幕的输出结果是_。#includeusing namespace std;int main()int a=5;int *pa=&a;int &b=a;b+;cout(*pa)+endl;return 0; A:5 B:6 C:7 D:8答案:B评析:本题主要考查指针和引用的使用。 引用是个别名,建立时须用另一个数据对象的名字进行初始化,以确定该引用所代表的数据对象。此后对引用的任何操作实际上就是对所代表的数据对象的操作。 故本题选B。4、定义一个整型数a的引用,正确的是_。 A:int b=&a; B:int &b=&a C:int b=a; D:int &b=a;答案:D评析: 本题考查的是引用的定义。 引用实际上是个别名,建立时必须用另一个数据对象初始化,以确定该引用所代表的数据对象。在类型后加&以及引用名来创建一个引用。 所以本题选D。5、编写一个函数求n个整数中的最大数和最小数。要求:使用引用类型的形参实现。答案:#includeusing namespace std;void MaxAndMin(int v,int length,int& max,int& min) max=min=v0; for(int i=1;imax) max=vi; if(vimin) min=vi; void main() int v10=1,2,5,45,788,5,8,9,5,46; int max,min; MaxAndMin(v,10,max,min); coutmaxtminn;2、实验八 结构体和联合体一、实验目的和要求程序中往往需要处理一些由不同类型数据元素所构成的数据,如果使用独立的不同数据类型的变量来描述这些信息,那么,变量之间的关系不能体现出来。因此,C+提供了描述不用数据类型的组合体的方法。该方法就是结构体或联合体。1、掌握结构体的基本概念和结构体类型定义的方法。2、理解结构体数据类型存储。3、掌握结构体变量和结构体数组的定义和赋值,能够正确引用结构体分量和结构体数组元素。二、实验内容1、用结构体变量表示平面上的一个点(横坐标和纵坐标),输入两个点,求两点之间的距离。2、有20个学生,每个学生的数据包括学号(num)、姓名(name)、性别(sex)、五门课程成绩(score5)。要求编写一个程序,输入学生数据,计算并输出每个学生的总分和平均分。3、用结构体变量表示日期(年、月、日),任意输入两个日期,求它们之间相差的天数。4、现有一电话号码薄,号码薄中有姓名、电话号码、当输入电话号码时,查找出姓名与电话号码;输入姓名时,同样查找出姓名与电话号码;还允许不完全输入查找,如输入010时查找出所有以010开口的号码,输入“杨”时,列出所有姓名以“杨”开头的号码。5、给定学生成绩登记表如下:学号(num)姓名(name)成绩(grade)02Lin9203Zhang8704Zhao7205Ma9109Zhen8511Wang10012Li8613Xu8316Mao7817Hao9520Lu8221Song7622Wu88将上表划分成三个子表,其中子表1登记的是成绩在90-100之间的学生情况,子表2登记的是成绩在80-89之间的学生情况,子表3登记的是成绩在70-79之间的学生情况。用结构体数组存放表中的学生成绩情况。要求最后输出原学生程序情况表以及划分为的三个子表。输出格式如表所示(但不输出表中的框线)。实验九 类与对象编程一、实验目的和要求1、掌握类的定义,根据具体需求设计类。2、深入理解C+中类的封装性。3、会根据类创建各种对象。4、掌握对象的各种成员的使用方法。5、通过定义构造函数实现对象的初始化。二、实验内容1、 定义一个三角形类Ctriangle,求三角型面积和周长。2、 定义一个日期类CData,它能表示年、月、日。设计一个NewDay()成员函数,增加一天的日期。3、 设计一个立方体类Box,它能计算并输出立方体的体积和表面积。4、 下面是一个类的测试程序,设计出能使用如下测试程序的类。 void main() Test a; a.init(68,55); a.print(); 其执行结果为: 测试结果:68-55=13 5、 创建一个employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。把表示构造函数、changname()、display()的函数的原型放在类定义中,构造函数初始化每个成员,display()函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。 实验报告要求1、 实验报告中要包含实验安排、实验目的、实验题目、程序代码、测试数据、实验结果、实验分析与解决、总结。2、 实验题目需在每次实验所给的实验内容中任选三个写在实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届浙江省台州市温岭市五校联考英语九年级第一学期期末联考试题含解析
- 浙江省金华、丽水市2026届九年级化学第一学期期中质量检测模拟试题含解析
- 贵州省黔南州名校2026届英语九上期末综合测试试题含解析
- 2026届辽宁省海城市第六中学化学九年级第一学期期末监测试题含解析
- 山西省太原市名校2026届化学九上期中检测模拟试题含解析
- 开发商原因退房合同5篇
- 离职补偿协议范本:针对离职员工职业发展培训及提升
- 研发机构劳务派遣个人合同范本(含知识产权归属)
- 砼工程施工进度控制与协调劳务分包合同范本
- 生态保护区物业管理股权收购与生态保护合作合同
- 2025年水发集团有限公司招聘(216人)考试模拟试题及答案解析
- 3.1 生活在新型民主国家(教学课件) 2025-2026学年度道德与法治 九年级上册
- 2025年安徽省政府采购评审专家考试真题库(带答案)
- 急性白血病课件
- GB/T 46142-2025智慧城市基础设施智慧交通快速响应矩阵码应用指南
- 场景速写课件讲解
- 2025广东惠州惠城区招聘社区工作站工作人员66人笔试备考题库及答案解析
- 餐饮四个人合伙合同协议
- 人体十二经络系统解析
- 2025年巷道掘砌工(技师)职业技能鉴定理论考试题库(含答案)
- 2025年交通安全宣传周知识竞赛考试题库及答案(含各题型)
评论
0/150
提交评论