川大网教《面向对象程序设计》第一次作业答案(96分)
国家开放大学四川02372《面向对象程序设计》第1次形成性考核作业资料
面向对象程序设计-第1次形成性考核复习题(带答案)
说明:每学期的课程题号都可能更换,请认真核对是您需要的题号后再下载!
【题号】
java是一门()语言。
a. 机器
b. 面向对象的高级
c. 面向过程的高级
d. 汇编
[认真学习课本知识,并分析作答上述题号]
参考答案:面向对象的高级
【题号】
机器语言中的指令编码为()编码。
a. 数字
b. 十进制
c. 符号
d. 二进制
[认真学习课本知识,并分析作答上述题号]
参考答案:二进制
【题号】
更接近人类自然语言的计算机语言是()语言。
a. 高级
b. 机器
c. 汇编
d. 数字
[认真学习课本知识,并分析作答上述题号]
参考答案:高级
【题号】
对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
a. 状态
b. 重量
c. 颜色
d. 动态
[认真学习课本知识,并分析作答上述题号]
参考答案:动态
【题号】
类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
a. 实例
b. 元素。
国开(四川)02372《面向对象程序设计》第1次形成性考核复习资料答案
面向对象程序设计-第1次形成性考核作业资料答案
说明:每学期的课程题目都可能更换,请认真核对是您需要的题目后再下载!
【题目】
java是一门()语言。
a. 机器
b. 面向对象的高级
c. 面向过程的高级
d. 汇编
[请认真阅读以上题目,运用所学知识完成作答]
参考答案:面向对象的高级
【题目】
机器语言中的指令编码为()编码。
a. 数字
b. 十进制
c. 符号
d. 二进制
[请认真阅读以上题目,运用所学知识完成作答]
参考答案:二进制
【题目】
更接近人类自然语言的计算机语言是()语言。
a. 高级
b. 机器
c. 汇编
d. 数字
[请认真阅读以上题目,运用所学知识完成作答]
参考答案:高级
【题目】
对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
a. 状态
b. 重量
c. 颜色
d. 动态
[请认真阅读以上题目,运用所学知识完成作答]
参考答案:动态
【题目】
类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
a. 实例
b. 元素。
C#面向对象程序设计课后答案
习题参考答案Chapter 11_1 对象客观世界中的事物都是对象,包括有形的物理对象,可感知的逻辑实体,以及概念化的抽象实体。
它有自己的属性,能够执行特定的操作。
类具有相同属性和操作的一组对象的集合;它描述的不是单个对象,而是“一类”对象的共同特征。
其重要性在于它是面向对象技术中最重要的结构,它支持信息隐藏和封装,进而支持对抽象数据类型(ADT)的实现。
1_2略1_3参考图如下图11_4 UML与面向对象UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它溶入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
标准建模语言UML 适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
Chapter 22_1 程序的功能一般通过方法代码来实现。
每个方法都是从其第一行代码开始执行,直至最后一行代码结束,期间可以通过代码来调用其他的方法,从而完成各式各样的操作。
C#程序的起点是由Main方法定义的,程序总是从Main方法的第一行代码开始执行,在Main方法结束时停止运行。
2_2略(注:不同版本的V isual Studio的菜单项有所区别)2_3 略(注:不同版本的V isual Studio引用的程序集有所区别)2_4C#源代码会被编译为一种通用的中间语言(IL)代码,该语言类似于低级语言,但其代码与具体的硬件平台无关;之后CLR再针对特定的平台将IL程序翻译为机器指令,加载所需要的资源并管理执行。
2_5//动态链接库程序using System;namespace p2_5{class Adder{public static int Add(int a, int b){return a+b;}}}//控制台应用程序using System;using p2_5;namespace P2_6{class Program{static void Main(){Console.WriteLine("请输入两个数:");int a = int.Parse(Console.ReadLine());int b = int.Parse(Console.ReadLine());Console.WriteLine("{0}+{1}={2}", a, b, Adder.Add(a+b));}}}Chapter 33_1 略3_2第一:值类型的变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块区域;只有通过变量才能修改它所包含的数据。
2023年川大面向对象程序设计第一次作业
我旳作业列表 - 《面向对象程序设计》第一次作业答案你旳得分: 100.0完毕日期: 2023年06月25日12点24分1.阐明:每道小题括号里旳答案是您最高分那次所选旳答案, 原则答案将在本次作业结束(即2023年09月11日)后显示在题目旁边。
2.一、单项选择题。
本大题共30个小题, 每题2.0 分, 共60.0分。
在每题给出旳选项中, 只有一项是符合题目规定旳。
C++函数旳申明和定义可以分开, 函数申明不需要()。
( D )A.返回类型B.函数名C.参数表D.函数体3.函数旳形参是( )。
( B )A.全局变量B.局部变量C.静态变量D.部变量4.数组名表达旳是数组旳()。
( C )A.类型B.用途C.地址D.长度假如短整型旳长度是2字节, 有一种短整型指针p旳值是0xFFED1200, 那么p+1旳值为()。
( B )E.0xFFED1201F.0xFFED1202G.0xFFED1203H.0xFFED12045.private访问属性限制对象旳组员可以在( )中访问。
( A )A.本类旳组员函数B.main函数C.父类旳组员函数D.子类旳组员函数假如定义了一种类myclass, 则为myclass类对象以组员函数形式重载后++运算符旳申明应当为()。
( C )E.myclass operator++();F.myclass&operator++();G.myclass operator++( int );H.myclass& operator++( int );假如有如下定义: const char* str = "OK";那么, sizeof(str)旳值应当是()( D )I. 1J. 2K. 3L. 4父类和子类各自定义一种组员函数, 函数名相似, 参数表不一样, 那么()。
( D )M.在子类中这两个函数构成重载关系N.子类不会继承父类旳这个函数O.子类中旳函数会覆盖父类中旳函数P.编译时会发生错误假如myclass类定义了拷贝构造函数和一种整型参数旳构造函数, 还重载了赋值运算符, 那么语句myclass obj = 100;会()。
c面向对象程序设计课后习题答案
c面向对象程序设计课后习题答案C面向对象程序设计课后习题答案在学习C面向对象程序设计课程的过程中,课后习题是巩固知识、提升能力的重要途径。
通过认真完成习题,我们可以更好地理解课程内容,掌握编程技巧,提高解决问题的能力。
下面我们将针对一些常见的C面向对象程序设计课后习题进行答案解析。
1. 请编写一个C++程序,实现一个简单的学生信息管理系统,包括学生姓名、学号、成绩等信息的录入、查询和修改功能。
答案解析:首先,我们需要定义一个学生类,包括姓名、学号、成绩等属性,并实现相应的方法来实现信息的录入、查询和修改功能。
然后在主函数中创建学生对象,调用相应的方法即可实现学生信息管理系统。
2. 编写一个C++程序,实现一个简单的图书管理系统,包括图书名称、作者、出版社等信息的录入、查询和删除功能。
答案解析:同样地,我们需要定义一个图书类,包括图书名称、作者、出版社等属性,并实现相应的方法来实现信息的录入、查询和删除功能。
在主函数中创建图书对象,调用相应的方法即可实现图书管理系统。
3. 设计一个C++程序,模拟实现一个简单的银行账户管理系统,包括账户余额、存款、取款等功能。
答案解析:在这个问题中,我们需要定义一个银行账户类,包括账户余额、存款、取款等属性,并实现相应的方法来实现账户管理系统。
在主函数中创建账户对象,调用相应的方法即可实现银行账户管理系统。
通过以上习题的解答,我们可以看到C面向对象程序设计的重要性和实际应用。
通过不断地练习和实践,我们可以更好地掌握面向对象程序设计的知识和技能,提高编程能力,为今后的工作和学习打下坚实的基础。
希望同学们能够认真对待课后习题,不断提升自己的编程水平。
面向对象的程序设计第1阶段练习题江大考试题库及答案一科共有三个阶段,这是其中一个阶段。答案在最后一页
面向对象的程序设计第1阶段练习题江大考试题库及答案一科共有三个阶段,这是其中一个阶段。
答案在最后一页B.静态成员可以在类的外部初始化C.静态成员可以被继承D.静态成员可以被声明为const类型12.下面关于继承的说法,正确的是()。
(1分)A.子类可以访问父类的私有成员B.子类可以继承父类的构造函数C.子类可以继承父类的析构函数D.子类可以继承父类的友元函数13.下面哪个关键字可以在子类中引用父类的构造函数()。
(1分)A.XXX.base三判断题(共3题,总分值3分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)14.当函数调用时,参数按值传递,函数内对参数的修改不会影响到实参。
(1分)A.√B.×15.友元函数是类的成员函数,可以访问类的私有成员。
(1分)A.×B.√16.多态是指同一个函数名可以有多种不同的实现方式。
(1分)A.√B.×XXX网络教育第一阶段练题考试科目:《面向对象的程序设计》第1章至第4章(总分100分)研究中心(教学点)批次:______ 层次:______ 专业:______ 学号:______ 身份证号:______ 姓名:______ 得分:______一、单选题(共9题,总分值9分,每题1分)1.下列关于成员函数的说法中,不正确的是()。
A.成员函数可以无返回值B.成员函数可以重载C.成员函数一定是内联函数D.成员函数可以设定参数的默认值2.函数没有返回值的时候,应该选择()的函数类型。
A.voidB.intC.不确定D.float3.假定A是一个类,那么执行语句“A a。
b(3)。
*p;”调用了()次构造函数。
A.1B.2C.3D.44.在类的定义中,引入友元的原因是()。
A.提高效率B.深化使用类的封装性C.提高程序的可读性D.提高数据的隐蔽性5.对重载的函数来说,下面叙述不正确的是()。
A.参数的类型不同B.参数的顺序不同C.参数的个数不同D.参数的个数、类型、顺序都相同,但函数的返回值类型不同6.下面对友元的错误描述是()。
(完整版)《面向对象程序设计》答案
实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。
2、掌握如何编辑、编译、连接和运行一个C++程序。
3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。
二、实验要求1、分析下列程序运行的结果。
程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
《面向对象程序设计》课程作业及答案汇总
《面向对象程序设计》课程作业及答案作业1:是非题1. 头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。
1. 错2. 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。
4. 对填空题下面是一个求数组元素之和的程序。
主程序中定义并初始化了一个数组,然后计算该数组各元素的和,并输出结果。
函数sum计算数组元素之和。
填充程序中不完整的部分。
________A__________int sum(int [],int;void main({int ia[5] = {2,3,6,8,10};B ;sumOfArray = sum(ia,5;cout << "Sum of array:" << sumOfArray << endl;}int sum(int array[],int len{int iSum = 0;for(int i = 0; C ; DE ;return iSum;}答案:A #includeB int sumOfArray;C i < lenD i++E iSum += array[i];阅读理解题写出下列程序的运行结果://file1.cppstatic int i = 20;int x;static int g(int p{return i + p;}void f(int v{x=g(v;}//file2.cpp#includeextern int x;void f(int;void main({int i=5;f(i;cout << x;}回答以下问题:1. 程序的运行结果是什么样的?2. 为什么文件file2.cpp中要包含头文件?3. 在函数main(中是否可以直接调用函数g(?为什么?4. 如果把文件file1.cpp中的两个函数定义的位置换一下,程序是否正确?为什么?5. 文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的?在程序中直接标出两个变量各自的作用域。
福师《面向对象的程序设计》在线作业一答案
福师《面向对象的程序设计》在线作业一-0002试卷总分:100 得分:100一、单选题(共9 道试题,共18 分)1.在UML中,包含关系表示为虚线箭头加()字样。
A.<<include>>B.<<extend>>C.<<association>>D.<<generalization>>答案:A2.并发视图由状态图、(),以及活动图组成。
A.协作图B.时序图C.类图D.用例图答案:A3.对象约束语言是一种()语言,它主要用于表示UML模型中施加于模型上的约束。
A.面向对象B.过程化C.形式化D.结构性答案:C4.下列哪个关系指明一个事物的对象与另一个事物的对象之间的联系。
A.关联关系B.依赖关系C.泛化关系D.实现关系E.聚合关系答案:A5.在UML中,时序图将交互关系表示为()。
A.三维图B.线性图C.二维图D.随机图形答案:C6.在UML中,扩展关系表示为虚线箭头加()字样。
A.<<include>>B.<<extend>>C.<<association>>D.<<generalization>>答案:B7.时序图是以()为序的表示方法,主要用来描述对象之间的时间顺序。
A.空间B.时间C.随机D.线性答案:B8.UML的四层模型体系结构中,元元模型层通常称为()层A.M0B.M1C.M2D.M3答案:D9.UML的()为UML的基础结构,基础结构由Infrastructure包表示。
A.元元模型层B.元模型层C.模型层D.运行时实例层答案:A二、多选题(共18 道试题,共36 分)10.类图包含的元素分别是:类、接口、协作、()。
A.依赖关系B.泛化关系C.关联关系D.实现关系答案:ABCD11.类的设计应遵循如下原则()A.把类设计成可复用的“插接相容性”部件B.把类设计成健壮的部件C.把类设计成可集成的部件D.把类设计成任何情况下不能继承的部件答案:ABC12.状态图的图标可以分为以下几个部分:()。
四川大学智慧树知到“通信工程”《面向对象程序设计2261》网课测试题答案_4
四川大学智慧树知到“通信工程”《面向对象程序设计2261》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共10题)1.下面函数调用语句含有实参的个数为:()funC((exp1,exp2),(exp3,exp4,exp5))A.1B.2C.4D.52.数组名表示的是数组的()。
A.类型B.用途C.地址D.长度3.有如下类定义:class Point{private;static int how_many;};_______how_many0; 要初始化 Point 类的静态成员 how_many,下划线处应填入的内容是()。
A.ingB.staticintC.intPoint::D.staticintPoint::4.一个类如果没有定义任何函数,编译器不会自动为这个类产生()。
A.拷贝构造函数B.无参构造函数C.输出流运算符D.赋值运算符5.设有定义语句:int x[6]={2,4,6,8,5,7},*p=x,i;\n要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有()。
A.for(i=0;i6;i++)printf(“%2d”,*(p++))B.for(i=0;i6;i++)printf(“%2d”,*(p+i))C.for(i=0;i6;i++)printf(“%2d”,*p++)D.for(i=0;i6;i++)printf(“%2d”,(*p)++)6.C++函数的声明和定义可以分开,函数声明不需要()。
A.返回类型B.函数名C.参数表D.函数体7.字符串“ab\\\n”在机器中占6个字节。
()A.错误B.正确8.在下列关键字中,不能用来表示继承方式的是()。
A.privateB.statiCC.publiCD.proteCted9.在定义inta[3][4][2];后,第10个元素是()。
A.a[2][1][2]B.a[1][0][1]C.a[2][0][1]D.a[2][2][1]10.下列排序算法中,平均效率最低的排序算法是()。
川大《面向对象程序设计2261》19春在线作业1【100分】
《面向对象程序设计2261》19春在线作业1
以下不能正确进行字符串赋初值的语句是()
A.charstr[5]="good!";
B.charstr[]="good!";
C.char*str="good!";
D.charstr[5]={‘g',‘o',‘o',‘d'};
正确答案:A
如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为()
A.myclassoperator++();
B.myclass& operator++();
C.myclassoperator++(int);
D.myclass& operator++(int);
正确答案:C
下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“left”,输出效果将发生变化的是()
A.coutleftsetfill(~*~)357;
B.coutleftsetw(5)357;
C.coutleftsetw(5)"ABCDE";
D.coutleft"ABCDE";
正确答案:B
在每个C++程序中都必须包含有这样一个函数,该函数的名称为()
A.main
B.MAIN
D.function
正确答案:A
下列有关抽象类和纯虚函数的叙述中,错误的是()
A.拥有纯虚函数的类是抽象类,不能用来定义对象
B.抽象类的派生类若不实现纯虚函数,它也是抽象类
C.纯虚函数的声明以“=0;”结束
D.纯虚函数都不能有函数体。
面向对象程序设计习题及答案【精选文档】
面向对象程序设计一、选择填空1.关于C++与C语言的关系描述中,(D)是错误的.(A)C语言是C++的一个子集(B)C语言与C++是兼容的(C)C++对C语言进行了一些改进(D)C++和C语言都是面向对象的2.下面关于对象概念的描述中,(B)是错误的。
(A)对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3.下面关于类概念的描述中,(D)是错误的。
(A)类是抽象数据类型的实现(B)类是具有共同行为的若干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4.按照标识符的要求,(A)符号不能组成标识符。
(A)连接符(B)下划线(C)大小写字母(D)数字字符5.下列符号中,(C)不可作为分隔符。
(A),(B):(C)?(D);6.在16位机中,int型字宽为(A)字节.(A)2(B)4(C)6(D)87.类型修饰符unsigned修饰(D)类型是错误的。
(A)char(B)int (C)long int(D)float8.对于int *pa[5];的描述,(D)是正确的.(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa[5]表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。
9.下列关于指针的运算中,(D)是非法的。
(A)两个指针在一定条件下,可以进行相等或不等的运算。
(B)可以有一个空指针赋值给某个指针.(C)一个指针可以加上一个整数。
(D)两个指针在一定条件下,可以相加.10.指针可以用来表示数组元素,下列表示中(A)是错误的。
已知:int a[3][7];(A)*(a+1)[5] (B)*(*a+3)(C)*(*(a+1))(D)*(&a[0][0]+2)11.下列表示引用的方法中,(A)是正确的。
川大网教《面向对象程序设计》第一次作业答案(96分).
《面向对象程序设计》第一次作业答案你的得分:96.0完成日期:2013年09月02日15点40分说明:每道小题括号里的答案是您最高分那次所选的答案,标准答案将在本次作业结束(即2013年09月12日)后显示在题目旁边。
一、单项选择题。
本大题共30个小题,每小题2.0 分,共60.0分。
在每小题给出的选项中,只有一项是符合题目要求的。
1.C++函数的声明和定义可以分开,函数声明不需要(D )。
A.返回类型B.函数名C.参数表D.函数体2.函数的形参是(B )。
A.全局变量B.局部变量C.静态变量D.部变量3.数组名表示的是数组的(C)。
A.类型B.用途C.地址D.长度4.如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为(B)。
A.0xFFED1201B.0xFFED1202C.0xFFED1203D.0xFFED12045.private访问属性限制对象的成员可以在(A )中访问。
A.本类的成员函数B.main函数C.父类的成员函数D.子类的成员函数6.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为(C)。
A.myclass operator++();B.myclass&operator++();C.myclass operator++( int );D.myclass& operator++( int );7.如果有如下定义:const char* str = "OK";那么,sizeof(str)的值应该是(D)A.1B.2C.3D.48.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么(C)。
A.在子类中这两个函数构成重载关系B.子类不会继承父类的这个函数C.子类中的函数会覆盖父类中的函数D.编译时会发生错误9.如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclass obj = 100;会(B)。
四川大学智慧树知到“通信工程”《面向对象程序设计2261》网课测试题答案1
四川大学智慧树知到“通信工程”《面向对象程序设计2261》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.有如下4个语句:①cout~A~setfill(~*~)leftsetw(7)~B~endl;②coutsetfill(~*~)leftsetw(7)~A~~B~endl;③coutAserfill(~*~)rightsetw(7)~B~endl;④coutsetfill(~*~)rightsetw(7)~A~~B~endl;其中能显示 A******B 的是()。
A.①和③B.①和④C.②和③D.②和④2.用Cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是()。
A.0B.负数C.正数D.不确定3.已知Value是一个类,Value是Value的一个对象。
下列以非成员函数形式重载的运算符函数原形中,正确的是()。
A.Valueoperator+(Valuev,inti)B.Valueoperator+(Valuev=value,inti)C.Valueoperator+(Valuevinti=0)D.Valueoperator+(Valuev=value,inti=0)4.程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用()符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车5.如果有如下定义:ConstChar*str=“OK”;那么,sizeof(str)的值应该是()。
A.1B.2C.3D.46.在下列关键字中,不能用来表示继承方式的是()。
A.privateB.staticC.publicD.protected7.重载函数形参个数可以不同。
()A.错误B.正确8.C++源文件的缺省扩展名为()。
A.CppB.exeC.objD.lik9.C++函数的声明和定义可以分开,函数声明不需要()。
A.返回类型B.函数名C.参数表D.函数体10.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()。
《面向对象程序设计》答案
实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。
2、掌握如何编辑、编译、连接和运行一个C++程序。
3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。
二、实验要求1、分析下列程序运行的结果。
程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
面向对象程序设计第一阶段作业及答案
第一阶段作业简答题:1、对象的概念,对象的特性。
2、消息的概念。
3、什么是方法?4、简介面向对象的几个特性。
5、什么是内联函数?6、什么是函数重载?7、什么叫友元函数?1.答:(1)对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
(2)面向对象的三个基本特性:封装、继承和多态。
2.答:消息指报道事情的概貌而不讲述详细的经过和细节,以简要的语言文字迅速传播新近事实的新闻体裁,也是最广泛、最经常采用的新闻基本体裁。
3.答:软件编程语言中,如果将函数定义为类定义的一部分或者将它与某个对象绑定,则该函数称为方法.4.答:面向对象的特征(1)对象唯一性。
每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。
在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
(2)分类性。
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。
一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。
任何类的划分都是主观的,但必须与具体的应用有关。
(3)继承性。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。
在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。
采用继承性,提供了类的规范的等级结构。
通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。
面向对象程序设计-1-标准答案
面向对象程序设计试卷标准答案及评分标准(1)一、上机题(70 分)1.(共20 分)(1)界面设计部分(1 分),将Form1~Form3 设成MDIFORM 的子窗体(设置Mdichild 属性为true)1 分,其余代码如下2 分Private Sub MDIForm_Load()Me.WindowState = 2End Sub(2)设计菜单1 分(过程略)Private Sub mnuExit_Click()If MsgBox("Are you sure?", vbQuestion + vbokcancel, "上机考试") = vbok Then Unload MeEnd IfEnd Sub ….2 分Private Sub mnuForm1_Click()Form1.ShowEnd SubPrivate Sub mnuForm2_Click()form2.ShowEnd SubPrivate Sub mnuForm3_Click()Form3.ShowEnd Sub ….2 分(3)设计状态栏2 分Private Sub Form_Activate()MDIForm1.StatusBar1.Panels(1).Text = Me.CaptionEnd Sub ….2 分(4)在菜单编辑器中设计菜单1 分Private Sub MDIForm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 ThenPopupMenu mnureportEnd IfEnd Sub ….2 分(5)设计工具栏2 分Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.IndexCase 1mnuForm1_ClickCase 2mnuForm2_ClickCase 3mnuForm3_ClickCase 5mnuExit_ClickEnd SelectEnd Sub ….2 分2.(共12 分)(1)2.947676Private Sub Command1_Click()Dim n As IntegerDim E As SingleFor n = 0 To 50E = E + 1 / (2 * n + 1)NexttxtAnswer1.Text = CStr(E)End Sub变量定义正确,For 循环结构正确2 分,功能正确4 分(2)7.54293670171318Private Sub Command2_Click()Dim E As DoubleDim S As DoubleDim n As LongS = 1DoE = E + Sn = n + 1S = 1 / (2 * n + 1)Loop Until S < 0.000001txtAnswer2.Text = CStr(E)End Sub变量定义正确,Do 循环结构正确2 分,功能正确4 分4.(共23 分)Private mvarPName As StringPrivate mvarPrice As CurrencyPrivate mvarNumber As LongPublic Event NumberBelowPoint() ….2 分Public Enum errcodedierror = vbObjectError + 512 + 1End Enum ….1 分Public Sub ShowMe() ….2 分MsgBox "Name:" & mvarPName & "-Price:" & mvarPrice & "-Number:" & mvarNumber End SubPublic Sub Sale(ByVal intAmount As Long) ….3分mvarNumber = mvarNumber - intAmountIf mvarNumber < 20 ThenRaiseEvent NumberBelowPoint ….1分End IfEnd SubPublic Sub Add(ByVal intAmount As Long) ….3分If intAmount < 0 ThenErr.ClearErr.Raise dierror, "Class1", "无效的上架数量" ….2分End IfmvarNumber = mvarNumber + intAmountIf mvarNumber < 20 ThenRaiseEvent NumberBelowPoint ….1分End IfEnd SubPublic Property Let Number(ByVal vData As Long)mvarNumber = vDataIf mvarNumber < 20 ThenRaiseEvent NumberBelowPointEnd IfEnd Property ….1 分Public Property Get Number() As LongNumber = mvarNumberEnd Property ….1 分Public Property Let Price(ByVal vData As Currency)mvarPrice = vDataEnd Property ….1 分Public Property Get Price() As CurrencyPrice = mvarPriceEnd Property ….1 分Public Property Let PName(ByVal vData As String)mvarPName = vDataEnd Property ….1 分Public Property Get PName() As StringPName = mvarPNameEnd Property ….1分Private Sub Class_Initialize()mvarPName = "Computer"mvarPrice = 12.6mvarNumber = 20End Sub ….2 分4.(共15 分)Private Sub Command1_Click() ….1分DataEnvironment1.rsCommand1.MoveFirstEnd SubPrivate Sub Command2_Click() ….1分DataEnvironment1.rsCommand1.MovePreviousIf DataEnvironment1.rsCommand1.BOF Then DataEnvironment1.rsCommand1.MoveFirst End SubPrivate Sub Command3_Click() ….1分DataEnvironment1.rsCommand1.MoveNextIf DataEnvironment1.rsCommand1.EOF Then DataEnvironment1.rsCommand1.MoveLast End SubPrivate Sub Command4_Click() ….1分DataEnvironment1.rsCommand1.MoveLastEnd SubPrivate Sub Command5_Click() ….1分DataEnvironment1.rsCommand1.AddNewEnd SubPrivate Sub Command6_Click() ….1分DataEnvironment1.rsCommand1.UpdateEnd SubPrivate Sub Command7_Click() ….1分DataEnvironment1.rsCommand1.DeleteDataEnvironment1.rsCommand1.MoveNextIf DataEnvironment1.rsCommand1.EOF Then DataEnvironment1.rsCommand1.MoveLast End Sub报表设计略其中:表头正确1 分有日期栏1 分报表结束的汇总信息2 分报表显示正确:3 分二、选择题:(每题2 分,共30 分)1.D2.C3.D4.A5.C6.D7.C8.A9.D10. A11. C12. C13. D14. A15. D。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》第一次作业答案你的得分:96.0完成日期:2013年09月02日15点40分说明:每道小题括号里的答案是您最高分那次所选的答案,标准答案将在本次作业结束(即2013年09月12日)后显示在题目旁边。
一、单项选择题。
本大题共30个小题,每小题2.0 分,共60.0分。
在每小题给出的选项中,只有一项是符合题目要求的。
1.C++函数的声明和定义可以分开,函数声明不需要(D )。
A.返回类型B.函数名C.参数表D.函数体2.函数的形参是(B )。
A.全局变量B.局部变量C.静态变量D.部变量3.数组名表示的是数组的(C)。
A.类型B.用途C.地址D.长度4.如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为(B)。
A.0xFFED1201B.0xFFED1202C.0xFFED1203D.0xFFED12045.private访问属性限制对象的成员可以在(A )中访问。
A.本类的成员函数B.main函数C.父类的成员函数D.子类的成员函数6.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为(C)。
A.myclass operator++();B.myclass&operator++();C.myclass operator++( int );D.myclass& operator++( int );7.如果有如下定义:const char* str = "OK";那么,sizeof(str)的值应该是(D)A.1B.2C.3D.48.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么(C)。
A.在子类中这两个函数构成重载关系B.子类不会继承父类的这个函数C.子类中的函数会覆盖父类中的函数D.编译时会发生错误9.如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclass obj = 100;会(B)。
A.调用拷贝构造函数B.调用整型参数的构造函数C.调用赋值运算符D.引起编译错误10.抽象类指的是(D)。
A.没有任何成员的类B.只有成员函数没有数据成员的类C.有虚函数的类D.有纯虚函数的类11.多重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由(C)的构造函数来传递。
A.第一个父类B.第二个父类C.派生类D.以上都不是12.多态性是通过(C )实现的。
A.构造函数B.析构函数C.虚函数D.函数重载13.十进制数127转换成二进制数是(A )A.11111111B.01111111C.10000000D.1111111014.执行语句char ch[] = "Hello";char * p = &ch[0];cout<<*p结果是输出(C)。
A.一个地址B.HC.HelloD.乱码15.以下不能正确进行字符串赋初值的语句是(A)A.char str[5]="good!";B.char str[]="good!";C.char *str="good!";D.char str[5]={‘g',‘o',‘o',‘d'};16.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是:(D )A.B.负数C.正数D.不确定17.使用流控制符(C )需要头文件。
A.endlB.hexC.setwD.left18.C++泛型编程通过(B )实现。
A.voidB.templateC.NULLD.typedef19.C++异常处理机制中没有(D )。
A.tryB.throwC.catchD.finally20.要打开一个文件并从中读取数据,应该使用(C)类的对象。
A.istreamB.ostreamC.ifstreamD.ofstream21.判断一个ofstream类对象file打开文件是否失败,应该判断(D)。
A.创建文件流对象时是否抛出异常B.open成员函数的返回值C.feof成员函数的返回值D.! file 是否为真22.链表的基本单元是(B)。
A.节点B.头指针C.尾指针D.数据域23.二叉查找树按(C)遍历时访问到节点的数据是排好序的。
A.前序B.中序C.后序D.层次24.二进制数00001001跟01000011异或的结果为(C )。
A.01001011B.00000001C.01001010D.0100110025.若有定义:int aa[ 8];。
则以下表达式中不能代表数组元aa[1]的地址的是(C)A.&aa[0]+1B.&aa[1]C.&aa[0]++D.aa+126.一个类如果没有定义任何函数,编译器不会自动为这个类产生(C )。
A.拷贝构造函数B.无参构造函数C.输出流运算符D.赋值运算符27.如果在try块中用throw "error";语句抛出一个异常,则参数类型是(B)的catch块能够捕获这个异常。
A.char *B.const char *C.CharD.const char28.队列的最大特征是(A)。
A.先进先出B.后进先出C.自动排序D.大数优先29.下列排序算法中,平均效率最低的排序算法是(B)。
A.插入法B.冒泡法C.选择法D.快速排序法30.下面不支持下标操作的容器是(C )。
A.vectorB.dequeC.listD.map二、多项选择题。
本大题共5个小题,每小题4.0 分,共20.0分。
在每小题给出的选项中,有一项或多项是符合题目要求的。
1.for语句的格式为for(表达式1;表达式2;表达式3),其中可以省略的是(BCD )。
A.两个分号B.表达式1C.表达式2D.表达式32.C++中变量要求(ABD)。
A.有明确的类型B.先声明后使用C.名字中不能使用下划线D.严格区分大小写3.流程控制语句有(ABC )几种。
A.条件语句B.循环语句C.分支语句D.表达式语句4.面向对象的编程方法的主要特征包括(ABC )。
A.封装B.继承C.多态D.消息5.类成员的访问属性可以是(ABC )。
A.publicB.protectedC.privateD.default三、判断题。
本大题共5个小题,每小题4.0 分,共20.0分。
1._int可以定义为用户标识符。
( 正确)正确错误2.结构化程序设计的基本方法是递归法。
(错)正确错误3.C++语言的跳转语句中,break语句只应用于循环体中。
(错)正确错误4.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是面向过程。
(错)正确错误5.重载函数形参个数可以不同。
( 正确)正确错误。