C++AND UML习题及答案(给学生)

2019-07-31 09:36

复习要求: 1.C++语言概述

(1)了解C++语言的基本符号。

(2)了解C++语言的词汇(保留字、标识符、常量、运算符、标点符号等)。 (3)掌握C++程序的基本框架(结构程序设计框架、面向对象程序设计框架等)。 (4)能够使用Visual C++ 6.0集成开发环境编辑、编译、运行与调试程序。 2.数据类型、表达式和基本运算

(1)掌握C++数据类型(基本类型、指针类型)及其定义方法。

(2)了解C++的常量定义(整型常量、字符常量、逻辑常量、实型常量、地址常量、符号常量)。 (3)掌握变量的定义与使用方法(变量的定义及初始化、全局变量、局部变量)。 (4)掌握C++运算符的种类、运算优先级和结合性。

(5)熟练掌握C++表达式类型及求值规则(赋值运算、算术运算符和算术表达式、关系运算符和关系表达式、逻辑运算符和逻辑表达式、条件运算、指针运算、逗号表达式)。 3.C++的基本语句

(1)掌握C++的基本语句,例如赋值语句、表达式语句、复合语句、输入、输出语句和空语句等。

(2)用if语句实现分支结构。

(3)用switch语句实现多分支选择结构。 (4)用for语句实现循环结构。 (5)用while语句实现循环结构。 (6)用do…while语句实现循环结构。

(7)转向语句(goto,continue,break和return)。 (8)掌握分支语句和循环语句的各种嵌套使用。 4.数组、指针与引用

(1)掌握一维数组的定义、初始化和访问,了解多维数组的定义、初始化和访问。 (2)了解字符串与字符数组。

(3)熟练掌握常用字符串函数(strlen,strcpy,strcat,strcmp,strstr等)。 (4)掌握指针与指针变量的概念、指针与地址运算符、指针与数组。 (5)掌握引用的基本概念、引用的定义与使用。

5.掌握函数的有关使用

(1)函数的定义方法和调用方法。 (2)函数的类型和返回值。

(3)形式参数与实在参数,参数值的传递。 (5)递归函数。 (6)函数重载。 (7)内联函数。

(8)带有默认参数值的函数。

6.熟练掌握类与对象的相关知识

(1)类的定义方式、数据成员、成员函数及访问权限(public,private,protected)。 (2)对象和对象指针的定义与使用。 (3)构造函数与析构函数。 (4)this指针的使用。

(5)对象数组与成员对象。 7.掌握类的继承与派生知识

(1)派生类的定义和访问权限。

(2)继承基类的数据成员与成员函数。 8. 了解UML的一些相关知识 (1)UML的发展史,建模对象。 (2)UML的四种类型事物。 (3)UML的四种关系。 9. 函数、运算符重载

(1)掌握常用运算符重载的方法,包括成员函数重载和友元函数的重载。 (2)掌握虚函数和纯虚函数的概念。

(3)在成员函数中实现自加,重载前置自加运算符,重载后置自加运算符. (4)重载加法运算函数operator+, 重载赋值运算函数operator=. (5)转换类型运算符 10.多态性

(1)运算符重载的运用。 (2)虚函数的定义。 (3)抽象类的声明。 一. 填空 1、

#include Using namespace std; int add(int a,int b); int main() {

int x,y,sum;

cout<<\:\

//在下画线处填上语句,完成用cin读入x和y cin>>x; cin>>y; sum=add(x,y);

cout<<\return 0; }

int add(int a,int b)

{

//在下画线处填上语句,完成计算a与b的和并返回之 return a+b; } 2、

#include Using namespace std; int main() {

char name[20];

cout<<”Hello,your name:”;

//在下画线处填上语句,完成将字符串输入到数组name中 cin>>name; //在下画线处填上语句,完成将name数组用cout输出 cout<

#include Using namespace std;

int mul(int x,int y) //mul函数1 { return x*y; }

int mul(int x,int y,int z) //mul函数2 { return x*y*z; } void main() {

int a=3,b=4,c=5;

//在下画线处填上语句,用于调用mul函数1 cout<

#include Using namespace std; main() {

int *p; //声明一个整型指针变量p

//在下画线处,用new关键字动态分配一个int型存储区,并将首地址赋给p

p=new int; *p = 10;

cout<<*p; //在下画线处填上语句,用于撤销指针p,释放p指向的存储空间 delete p; return 0; } 5

#include main() { int *p;

//在画线处填上语句,用new关键字动态分配一个int型存储区,并将首地址赋给p p=new int; if (!p) {

cout<<\return 1; }

//在下画线处填上语句,将p所指向的存储区赋值20 *p=20; cout<<*p;

//在下画线处填上语句,用于撤销指针p,释放p指向的存储空间 delete p; return 0;

}

6下列程序的输出结果是 7 。 #include using namespace std; int main() {

int i = 5;

int *p =& i;*p = 7; cout << i << endl; return 0; }

7下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!=n*(n-1)*...*2*1)

unsigned fact(unsigned n) { if ( n<= 1) return 1;

return n*fact(n-1) ; }

8与成员访问表达式p->name等价的表达式是 (*P).name 。 9.UML的全称为Unified Modeling Language,统一建模语言。

10.UML中有 结构事物,动作事物,分组事物,注释事物 四种类型事物。 11.UML中的四种关系为 依赖,关联,泛化,实现 。

12.类Sample的构造函数将形参data赋值给数据成员data。请将类定义补充完整。 class Sample{ public:

Sample(int data=0); Private: Int data; };

Sample::Sample(int data){ 【this->data=data;】 }

(13)若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为【double】。 (14)有如下循环语句:

For(int i=50; i>20; i-=2) cout<

(15)利用表达式a[i]可以访问int型数组a中下标为i的元素。在执行了语句int *p=a;后,利用指针p也可访问该元素,相应的表达式是【*(p+i)】。

(16)下面是一个递归函数,其功能是使数组中的元素反序排列。请将函数补充完整。 void reverse(int *a, int size){ if(size<2) return; int k=a[0]; a[0]=a[size-1]; a[size-1]=k;

reverse(a+1, size-1 ); }

(17)有如下类定义: class Sample{ public: Sample(); ~Sample(); Private:

Static int date; };

将静态数据成员data初始化为0的语句是【int Sample::data = 0;】

(18)“图形”类Shape中定义了纯虚函数CalArea(),“三角形”类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。 class Shape{ public:

virtual int CalArea()=0;


C++AND UML习题及答案(给学生).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一位普通小学乡村教师的悼词

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: