搜档网
当前位置:搜档网 › 面向对象程序设计题库C

面向对象程序设计题库C

面向对象程序设计题库C
面向对象程序设计题库C

一、单项选择题

1. 在C++语言中,对函数参数默认值描述正确的是:( D )

A) 函数参数的默认值只能设定一个

B) 一个函数的参数若有多个,则参数默认值的设定可以不连续

C) 函数参数必须设定默认值

D) 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值

2. 假定AB 为一个类,则执行AB x ;语句时将自动调用该类的( B )。

A) 有参构造函数B) 无参构造函数

C) 拷贝构造函数D) 赋值构造函数

3. 下述关于开关语句的描述中,()是正确的。

A) 开关语句中default子句可以没有,也可以有一个;

B) 开关语句中每个语句序列中必须有break语句;

C) 开关语句中default子句只能放在最后;

D) 开关语句中case子句后面的表达式可以是整形表达式。

4. 关于对象概念的描述中,()是错误的。

A) 对象就是C语言中的结构变量;

B) 对象代表着正在创建的系统中的一个实体;

C) 对象是一个状态和操作(或方法)的封装体;

D) 对象之间的信息传递是通过消息进行的;

5. 下列给字符数组进行初始化中,()是正确的。

A) char s1[ ]="12345abcd"; B) char s2[3]="xyz";

C) char s3[][3]={ 'a', 'x', 'y'}; D) char s4[2[3]={"xyz","mnp"};

6. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是()。

A) 3 B) 2 C) 6 D) 4

7. 声明类test的拷贝构造函数的正确形式是( D )。

A) int test B) void test C) test(void) D) test(test&)

8. 关于new运算符的下列描述中,()是错的。

A) 它可以用来动态创建对象和对象数组;

B) 使用它创建的对象或对象数组可以使用运算符delete删除;

C) 使用它创建对象时要调用构造函数;

D) 使用它创建对象数组时必须指定初始值。

9. 在C++ 中有以下4 条语句:static int hot=200;int &rad=hot;

hot=hot+100;cout<

A) 0 B) 100

C) 300 D) 200

10. 下列关于构造函数的描述中,错误的是( B )。

A) 构造函数可以设置默认参数;

B) 构造函数在声明对象时自动执行;

C) 构造函数可以对静态数据成员进行初始化;

D) 构造函数可以重载;

11. 下面关于重载函数的说明中正确的是( )。

A) 重载函数必须具有不同的返回类型。

B) 重载函数形参的个数必须不同

C) 重载函数必须具有不同的形式参数表

D) 重载函数名可以不同

12. 下列关于C++函数的说明中,正确的是( )。

A) 内联函数就是定义在另一个函数体内部的函数

B) 函数体的最后一条语句必须是return 语句

C) C++要求在调用一个函数前必须先声明其原型

D) 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

13. 已知函数原型为:

void foo(int*, long &b);

实参定义为:

int i;

long f;

则正确的调用语句是( ).

A) foo(i, &f); B) foo(i, f); C) foo(&i, f); D) foo(&i, &f);

14. C++中对于结构中定义的成员,其默认的访问权限为( )。

A) public B) protected C) private D) static

15. 下列关于类与对象的说法中,不正确的是( )。

A) 对象是类的一个实例

B) 任何对象只能属于一个具体的类

C) 一个类只能有一个对象

D) 类与对象的关系和数据类型与变量的关系相似

16. 下列关于构造函数的描述中错误的是( )

A) 构造函数可以设置默认参数B) 构造函数在定义类对象时自动执行

C) 构造函数可以对静态数据成员进行初始化D) 构造函数不可以重载

17. 类的析构函数的作用是( )。

A) 作为类的一般成员函数B) 类的初始化C) 对象的初始化D) 对象的删除

18. 以下关于静态数据成员的描述正确的是( )。

A) 静态数据成员可以在类体中进行初始化B) 静态数据成员不可以被类的实例调用

C) 静态数据成员不能受protected控制符的作用D) 静态数据成员可以直接用类名调用

19. 下面关于友元函数的描述中正确的是( )。

A) 友元函数的实现必须在类的内部定义B) 友元函数是类的成员函数

C) 友元函数破坏了类的封装性和隐藏性C) 友元函数不能访问类的私有成员

20. 下面关于友元函数的描述中错误的是( )。

A) 如果类A是类B的友元,那么类B也是类A的友元

B) 如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C) 友元关系不能被继承

D) 如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数

21. 下列属于C++语句的是。

A) ; B) a=17 C) a+5 D) cout<<’\n’

22. 执行语句k=30;j=k++;后k和j的值分别为。

A) k=30,j=30 B) k=30,j=31

C) k=31,j=30 D) k=31,j=31

23. 若X是一个bool型变量,则X && 5<3的值。

A) 为true B) 为false

C) 与X的值相同 D) 与X的值相反

24. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c

A) 3 B) 2 C) 1 D) 4

25. 执行下列语句后的输出结果是。

int hot=100;

int &rad=hot;

hot+=100;

cout<

A) 0 B) 100

C) 200 D) 300

26. 下列关于break语句的叙述不正确的是。

A) break语句可用于循环体中,它将使执行流程跳出本层循环体;

break语句可用于switch语句中,它将使执行流程跳出当前的switch语句;break语句可用于if语句中,它将使执行流程跳出当前if语句;

break语句在一层循环体中可以出现多次。

27. 下面关于类的对象性质的描述,正确的是。

A) 对象之间不可以相互赋值B) 不可以说明指向对象的指针

C) 对象不能用作数组元素D) 一个对象能用作另一个对象的成员

28. 在C++ 中实现封装是借助于。

A) 枚举 B) 类

C) 数组D) 函数

29. 下列不是描述类的成员函数的是。

A) 构造函数B) 析构函数

C) 友元函数D) 拷贝构造函数

30. 不能作为函数重载判断依据的是。

A) 参数个数B) 参数类型

C) 函数名称D)返回值类型

31. 假定一个类的构造函数为A(int aa,int bb){a=aa++;b=a*bb++;} ,则执行

A X(4,5); 语句后,X.a 和X.b 的值分别为。

A) 4 和5 B)5 和30

C) 4 和20 D)20 和5

32. 对于double (*p)[10];的描述,是正确的。

A) p是一个指向数组的指针,所指向的数组是10个double型元素;

B) p是一个指向某个数组中第10个元素的指针,该元素是double型变量;

C) p[5]表示某个数组的第10个元素的值;

D) p是一个具有10个元素的指针数组,每个元素是一个double型指针;

33. 下面的函数声明中, 哪一个是”void BC(int a, int b);”的重载函数?

A) int BC(int a, int b) B) void BC(int a, char b)

C) float BC(int a, int b, int c = 0) D) void BC(int a, int b=0)

34. 已知char c; char * const pc="asdf",是正确的。

A) pc="dfgh"B) *pc=‘b’

C) *pc++=‘y’D) pc=&c

35. 下列关于构造函数的叙述,错误的是。

A)构造函数可以设置默认参数;

B)构造函数在说明类变量时自动调用;

C)构造函数可以对静态数据成员进行初始化;

D)构造函数可以重载;

36. 下列关于构造函数的描述中错误的是( )

A) 构造函数可以设置默认参数B) 构造函数在定义类对象时自动执行

C) 构造函数可以对静态数据成员进行初始化D) 构造函数不可以重载

37. 类的析构函数的作用是( )。

A) 作为类的一般成员函数B) 类的初始化C) 对象的初始化D) 对象的删除

38. 以下关于静态数据成员的描述正确的是( )。

A) 静态数据成员可以在类体中进行初始化B) 静态数据成员不可以被类的实例调用

C) 静态数据成员不能受protected控制符的作用D) 静态数据成员可以直接用类名调用

39. 下面关于友元函数的描述中正确的是( )。

A) 友元函数的实现必须在类的内部定义B) 友元函数是类的成员函数

C) 友元函数破坏了类的封装性和隐藏性C) 友元函数不能访问类的私有成员

40. 下面关于友元函数的描述中错误的是( )。

A) 如果类A是类B的友元,那么类B也是类A的友元

B) 如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C) 友元关系不能被继承

D) 如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数

41. 重载函数在调用时选择的依据中,错误的是( )

A. 函数的参数

B. 参数的类型

C. 函数的名字

D. 函数的类型

42. 一个函数功能不太复杂,但要求被频繁调用,选用( . )

A. 内联函数

B. 重载函数

C. 递归函数

D. 嵌套函数

43. 下列不是描述类的成员函数的是( )

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

44. 构造函数不具备的特征的是( )

A. 构造函数的函数名与类名相同

B. 构造函数可以重载

C. 构造函数可以设置默认参数

D. 构造函数可以指定返回类型

45. 通常,拷贝构造函数的参数是( )

A. 某个对象名

B. 某个对象的成员名

C. 某个对象的引用名

D. 某个对象的指针名

46. 继承机制的作用是( )

A. 信息隐藏

B. 数据封装

C. 代码重用

D. 数据抽象

47. 类的析构函数的作用是( )

A.一般成员函数

B.类的初始化

C.对象的初始化

D.删除对象创建的所有对象

48. 类的析构函数是在( ) 调用的。

A. 类创建时

B. 创建对象时

C. 删除对象时

D. 不自动调用

49. 已知print ()函数是一个类无返回值的常成员函数,下列表示中正确的是( )。

A.void print()const

B.const void print()

C.void const print ;

D.void print (const );

50. 如果类A 被说明成类B 的友元,则( )

A. 类A 的成员即类B 的成员

B. 类B 的成员即类A 的成员

C. 类A 的成员函数不得访问类B 的成员

D. 类B 不一定是类A 的友元

51. 通过一个对象调用虚函数时,C++系统对该调用采用( )。

A.动态联编

B.静态联编

C.不确定是哪种联编

D.函数重载

52. 在公有继承的情况下,基类成员在派生类中的访问权限( )

A. 受限制

B. 保持不变

C. 受保护

D. 不受保护

53. 在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针。

A.对象

B.派生C基类 D.this

54. 假定AB 为一个类,则执行AB x ;语句时将自动调用该类的( )

A. 有参构造函数

B. 无参构造函数

C. 拷贝构造函数

D. 赋值构造函数

55. C++ 语言建立类族是通过( )

A. 类的嵌套

B. 类的继承

C. 虚函数

D. 抽象类

二、判断题

1、C++中,数组下标从1开始。( 错)

2、C++允许对字符串进行整体操作。( )

3、break语句也可以用于if体内,它可退出if语句。()

4、在说明语句char a(‘A’),&b=a,*pa=&a;中,b的值与*pa的值相等。( )

5、对象数组的元素可以是不同类的对象。()

6、私有继承中,基类中所有成员对派生类的对象都是不可见的。()

7、类中所提供的成员函数可以直接访问私有成员。()

8、按照标识符的要求,下划线是不能组成正确标识符的。()

9、函数的默认参数没有顺序要求,可以随意定义。()

10、在C++ 语言中,”A”占两个字节,而’A’占一个字节。()

11、C++语言支持封装性和继承性,不支持多态性。[ 错]

12、关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。)[ ]

13、字符串"sdfgh"的长度是5。[ ]

14、引用和指针都可作函数参数。[ ]

15、友元函数说明在类体内,它是一种成员函数。[ ]

16、友元类必须被说明为公有成员。[ ]

17、纯虚函数是在基类中说明的虚函数,它在该基类中没有定义具体的操作内容。[ ]

18、析构函数不能被继承。[ ]

19、运算符重载以后,其优先级和结合性都不能改变。[ ]

20、在C++中,函数名实际上是一个指针,它指向函数的入口。[ ]

21、构造函数可以被继承。( )

22、析构函数不能被继承。( )

23、多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。( )

24、解决多继承情况下出现的二义性的方法之一是使用成员名限定法。( )

25、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。( )

26、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。( )

27、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。( )

28、对单目运算符重载为友元函数时,说明一个形参;重载为成员函数时,不能显式说明形参。( )

29、重载运算符保持原运算符的优先级和结合性不变。( )

30、构造函数说明为纯虚函数是没有意义的。( )

三、简答题

1. 简述C++的异常处理机制?

2.C++的预定义的流对象有哪些?

3. 试以客观世界为例,说明抽象、封装、继承性和多态性等概念。

4. 多继承的情况下为什么会产生二义性?如何消除二义性?

5. 试说明void F(const T &t); 和inf f() const; 中关键字const 作用。

6.有如下程序

#include

#include

using namespace std;

class B;

class A{

friend B;

public:

A(){

cout<<"in A()"<

}

A(const A &a){

cout<<"in A(const A &a)<

}

~A(){

cout<<"In ~A()"<

}

};

class B: public A{

public:

B(){

cout<<"In B()"<

}

B(const A a){

cout<<"In B(const A a)"<

}

};

void f(A &a){

cout<<"In f(A &a)"<

}

void ff(const B &b){

cout<<"In ff(B &b)"<

}

void ff(A a){}

int main()

{

A a;

B bb=a;

}

程序运行的结果是_________________________

7.有如下程序

#include

using namespace std;

template

class HisClass

{

Type data;

public:

HisClass(Type a, Type b, Type c);

Type getData();

};

template

HisClass::HisClass(Type a, Type b, Type c){

if(a>b&&a>c)

data=a;

else

if(b>c)

data=b;

else

data=c;

}

template

Type HisClass::getData()

{

return data;

}

int main()

{

HisClass x1(3,4,5), x2(5,3,4),

x3(4,5,3), x4(7,8,9),

x5(8,7,9);

cout<

<

system("pause");

return 0;

}

程序运行的结果是_________________________

8. 以下程序在运行中出现致命错误,找出错误原因并修正。

#include

#include

class sample{

private:

char *string;

public:

sample(const char *s){

string = new char[strlen(s)+1];

strcpy(string s);

}

~sample(){

delete string;

};

};

sample f(char *arg){

sample tmp(arg);

return tmp;

}

int main()

{

sample local=f("abcd");

return 0;

}

9.有如下程序

#include

using namespace std;

class P

{

char *name;

int age;

char *add;

public:

P(){

cout<<"P";

}

~P(){

cout<<"!P";

}

};

class S:public P

{

char *department;

int level;

cout<<"S";

}

~S(){

cout<<"!S";

}

};

class T: public P

{

char *major;

float s;

public:

T(){

cout<<"T";

}

~T(){

cout<<"!T";

}

};

int main()

{

S s;

T t;

system("pause");

return 0;

}

程序运行的结果是_________________________

10.有如下程序

#include

using namespace std;

class B {

public:

B( ) {

cout << "B::B( )" << endl; num++;

}

virtual void f( ) = 0;

virtual void g( ) = 0;

cout << "B::k( )" << endl; g( ); }

virtual ~B( ){

cout << "B::~B( )" << endl;

num--;

}

static int getNum( ){

return num;

}

private:

static int num;

};

class D1: public B {

public:

D1( ) {

cout << "D1::D1( )" << endl; }

void f( ) {

cout << "D1::f( )" << endl;

}

void g( ){

cout << "D1::g( )" << endl;

}

~D1( ) {

cout << "D1::~D1( )" << endl; }

};

class D2: public B {

public:

D2( ) {

cout << "D2::D2( )" << endl; }

void f( ){

cout << "D2::f( )" << endl;

}

void g( ){

cout << "D2::g( )" << endl;

}

cout << "D2::~D2( )" << endl;

}

};

int B::num = 0;

int main( )

{

B* buf[3];

buf[0] = new D1;

buf[1] = new D2;

buf[2] = new D1;

int i;

cout << B::getNum( ) << endl;

for ( i = 0; i<3; i++)

buf[i]->k( );

for (i = 0; i<3; i++)

delete buf[i];

cout << B::getNum( ) << endl;

system("pause");

return 0;

}

程序运行的结果是_________________________

11.有如下程序

#include

using namespace std;

class R

{

public:

R(int r1, int r2): R1(r1), R2(r2){};

void print();

void print() const;

private:

int R1, R2;

};

void R::print(){

cout<

};

void R::print()const{

cout<

}

R a(5,4);

const R b(20,52);

b.print();

system("pause");

return 1;

}

程序运行的结果是_________________________

12.有如下程序

#include

using namespace std;

class demo{

public:

static int constructor, copy_constructor;

demo(){

cout<<"default constructor"<

constructor++;

}

demo(const demo& x){

cout<<"copy constructor"<

copy_constructor++;

}

};

int demo::constructor=0;

int demo::copy_constructor=0;

demo usercode(demo b){

demo c(b);

return c;

}

int main()

{

demo a, d;

cout<<"calling usercode"<

d=usercode(a);

cout<

system("pause");

程序运行的结果是_________________________

13.有如下程序

#include

using namespace std;

class A{

static int m;

int n;

public:

A(int m, int n){

m=this->m;

n=this->n;

}

Show(){

cout<

}

}

int A::m;

int main()

{

A a1(3,4);

A a2(5,6);

a1.Show();

a2.Show();

}

程序运行的结果是_________________________ 14.有如下程序

#include

using namespace std;

class P

{

char *name;

int age;

char *add;

public:

cout<<"P";

}

~P(){

cout<<"!P";

}

};

class S:public P

{

char *department; int level;

public:

S(){

cout<<"S";

}

~S(){

cout<<"!S";

}

};

class T: public P

{

char *major;

float s;

public:

T(){

cout<<"T";

}

~T(){

cout<<"!T";

}

};

int main()

{

S s;

T t;

system("pause"); return 0;

}

程序运行的结果是:

15. 为什么要定义虚析构函数?

16.有如下程序

#include

using namespace std;

class B {

public:

B( ) {

cout << "B::B( )" << endl; num++;

}

virtual void f( ) = 0;

virtual void g( ) = 0;

void k( ){

f( );

cout << "B::k( )" << endl; g( );

}

virtual ~B( ){

cout << "B::~B( )" << endl;

num--;

}

static int getNum( ){

return num;

}

private:

static int num;

};

class D1: public B {

public:

D1( ) {

cout << "D1::D1( )" << endl;

}

void f( ) {

cout << "D1::f( )" << endl;

}

void g( ){

cout << "D1::g( )" << endl;

}

~D1( ) {

cout << "D1::~D1( )" << endl;

}

};

class D2: public B {

public:

D2( ) {

cout << "D2::D2( )" << endl;

}

void f( ){

cout << "D2::f( )" << endl;

}

void g( ){

cout << "D2::g( )" << endl;

}

~D2( ){

cout << "D2::~D2( )" << endl;

}

};

int B::num = 0;

int main( )

{

B* buf[3];

buf[0] = new D1;

buf[1] = new D2;

buf[2] = new D1;

int i;

cout << B::getNum( ) << endl;

for ( i = 0; i<3; i++)

buf[i]->k( );

for (i = 0; i<3; i++)

delete buf[i];

cout << B::getNum( ) << endl;

system("pause");

return 0;

}

程序运行的结果是_________________________ 17.有如下程序

#include

using namespace std;

class R

{

public:

R(int r1, int r2): R1(r1), R2(r2){};

void print();

void print() const;

private:

int R1, R2;

};

void R::print(){

cout<

};

void R::print()const{

cout<

}

int main()

{

R a(5,4);

const R b(20,52);

b.print();

system("pause");

return 1;

}

程序运行的结果是:

18.有如下程序

#include

using namespace std;

class B;

class A{

friend B;

public:

A(){

cout<<"in A()"<

}

A(const A &a){

cout<<"in A(const A &a)<

}

~A(){

cout<<"In ~A()"<

}

};

class B: public A{

public:

B(){

cout<<"In B()"<

}

B(const A a){

cout<<"In B(const A a)"<

}

};

void f(A &a){

cout<<"In f(A &a)"<

}

void ff(const B &b){

cout<<"In ff(B &b)"<

}

void ff(A a){}

int main()

{

A a;

B bb=a;

}

19.有如下程序

#include

using namespace std;

class demo{

public:

static int constructor, copy_constructor;

demo(){

cout<<"default constructor"<

constructor++;

}

demo(const demo& x){

cout<<"copy constructor"<

copy_constructor++;

}

};

int demo::constructor=0;

int demo::copy_constructor=0;

demo usercode(demo b){

demo c(b);

return c;

}

int main()

{

demo a, d;

cout<<"calling usercode"<

d=usercode(a);

cout<

system("pause");

return 0;

}

程序运行的结果是:

20. 请分析下面的程序并给出该程序的执行结果。

#include

class AA{

int a;

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型

c面向对象程序设计试题和答案(经典题目)

一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

(A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

面向对象程序设计C自学考试课程复习题

(07837)《面向对象程序设计C++》复习题 一、单选题 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D ) A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2.下列关于多态性的描述,错误的是( C ) A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3.在C++语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4.使用private修饰的成员变量,以下说法正确的是( A ) A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5.对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6.下面对静态数据成员的描述中,正确的是( A ) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 7.在VC++语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8.下面关于句柄正确的说法是( A ) A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9.下面关于动态链接库正确的说法是( B ) A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程序缺乏灵活性。 10.下面关于MFC应用程序中InitInstance函数正确的说法是( D ) A. 该函数由用户定义。

面向对象程序设计(答案)

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c+面向对象程序设计试题和答案题目

系名___ ___ ___ ___ 班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密 封 线 内 不 答 题 一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

面向对象程序设计课后答案(完整版)

第二章2-4 #include using namespace std; Add(int a,int b); int main() { int x,y,sum; cout<<"please input x and y:"; cin>>x>>y; sum = add(x,y); cout < using namespace std; int main() {

int *p,*init; int countp=0; int countn=0; p = new int[20]; init = p; for(int i=0;i<20;i++) { cin>>*p; p++; } p = p-20; for( i=0;i<20;i++) { if(*p>0) countp++; if(*p<0) countn++; cout<<*p<<" "; p++; } cout<<"正数有:"< //#include using namespace std; void checkagescore(string name,int age) { if (name == "exit") throw name; if(age<0||age>50) throw age;

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C面向对象程序设计教程第版陈维兴林小茶课后习题答案及解析

C++面向对象程序设计教程课后题答案 1.1 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是: 程序=对象+消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 1.2 什么是对象?什么是类?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 1.3 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1) 每一个对象必须有一个名字以区别于其他对象; 2) 用属性来描述对象的某些特征; 3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。 1.4 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下3个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 1.5 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 1.6 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

面向对象程序设计笔记

undeclared identifier “未声明的标识符” (1) 十进制整数:在一个整型常量后面加一个字母 l 或 L,则认为是 long int 型常量? (2) 八进制整数?在常数的开头加一个数字 0,就表示这是以八进制数形 式表示的常数? (3)十六进制整数?在常数的开头加一个数字0和一个英文字母X(或x), 就表示这是以十六进制数形式表示的常数? 2. 浮点数的表示方法 如果在实数的数字之后加字母 F 或f,表示此数为单精度浮点数,如1234F,-43f,占 4 个字节?如果加字母 L 或 l,表示此数为长双精度数(long double), 在Visual C++ 6.0 中占 8 个字节. (2) 指数形式(即浮点形式):用字母 e 表示其后的数是以 10 为底的幂,如 e12 表示 1012? 1.普通的字符常量:用单撇号括起来的一个字符就是字符型常量如′a′,′ #′,′%′,′D′都是合法的字符常量,在内存中占一个字节?“cout<<′\n′; ”将输出一个换行,其作用与“cout<

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句 cout<

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

面向对象程序设计期末复习分析

一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1 分,共20 分) 3.下列不属于面向对象技术的基本特征的是(B)。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与(C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是(C )。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 8. 下列不属于类的成员函数的是( C )。 A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 9. 继承机制的作用是( C )。 A. 信息隐藏 B. 数据封装 C. 派生新类 D. 数据抽象 14. (D )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 15. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作 图和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 16.(D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对 象之间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 17.(D )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示 系统中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 18. 在用UML进行数据库的分析与设计过程中,( B ) 就是进行数据库的需求分析,使用用 例图、类图、顺序图、活动图等建立业务模型。 A. 逻辑数据模型设计 B 业务Use Case模型设计 C. 物理数据模型设计 D. 物理实现设计 19. 使用UML进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 20. UML的动态建模表示包含(C )种图。 A. 9 B. 5 C. 4 D. 2 二、填空题( 每空1 分,共20 分) 1. 面向对象开发方法一改过去传统的以_功能分析,面向过程_为基础的_对象_的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

相关主题