C++面向对象程序设计问题,求教

C++面向对象程序设计问题,求教,第1张

一、单项选择题

1.用来构成C++程序文件的基本单位是( C )。

A.字符 B.语句 C.函数 D.表达式

2、在下列符号常量定义中,错误的定义是( C )。

A.const double DD=3.14 B.const int M=20

C.const char chD.const bool mark=ture

3.下面给字符数组赋初值时,正确的语句是( A )。

A.char s1[]="abcdef"

B.char s2[4]="abcd"

C.char s3[2][3]={"abc","xyz"}

D.char s4[4][]={'a','x','s','t'}

4.假定一条定义语句为“int a[10],x,* pa=a”若要把数组a中下标为3的元素值赋给x,则不正确的语句为( D)。

A.x=pa[3] B.x=*(a+3)

C.x=a[3] D.x=* pa+3

5.在一个完整类的定义中,应包含有( D )成员的定义。

A.数据 B.函数 C.数据和函数 D.数据或函数

6.假定AA为一个类,a()为该类共有的函数成员,X为该类的一个对象,则访问X对象中函数成员a()的格式为( B )。

A.x.a B.x.a() C.x->a D.x->a()

7.假定AA是一个类,abc()是该类的一个成员函数,则参数表中隐含的第一个参数的标识符为( C )。

A.abc B.int C.this D.bool

8.对于一个类的构造函数,其函数名与类名( A )。

A.完全相同B.基本相同 C.不相同 D.无关系

9.假定AB为一个类,则执行“AB * s=new AB(a,5)”语句时得到的一个动态对象为( B )。

A.s B.s->a C.s.a D.*s

10.若派生类公有继承基类,则基类的公有和保护成员在派生类中将( D )成员。

A.全部变成公有 B.全部变成保护

C.全部变成私有 D.仍然相应保持为公有和保护

二、填空题

1.C++语言是在_C____语言的基础上发展起来的。

2.假定x=5,y=6,则执行表达式 y * =x++后,y的值为____30___。

3.在if语句中,每个else关键字与它同层次并且最接近的___if___关键字相配套。

4.一维字符组a[20]能够储存的字符串的长度至多为___20____。

5.假定p所指对象的值为25,p+1所指对象的值为42,则执行*p++运算后,p所指对象的值为___42____。

6.若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的__this_____就代表了类外的p指针。

7.一个类中定义的数据成员或函数成员,可以使用____种保护属性中的一种。

8.假定用户只为类AB定义了一个构造函数“AB(int aa, int BB=0){a=aab=bb}”,则定义该类的对象时,其初始化实参表中至少带有___1__个实参。

9.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的__成员函数________。

10.重载一个运算符时,该运算符的优先级、__结合律________以及运算对象的个数都不允许改变。

三、程序填充题(在横线上填写上合适的内容)

1.对数组a中的元素按相反次序重新排列。

void PV(int a[],int n)

{

int i

for(i=0,i<n/2_i++_________){

int x=a[i]

a[i]=__a[n-i-1]__

a[n-i-1]=x

}

}

2.把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。如输入24时得到的输出结果为“2 2 2 3”,输入50时得到“2 5 5”,输入37时得到的结果为37。

#include<iostream.h>

void main()

{

int x

cout<<"请输入一个整数,若小于三则重输:"

do cin>>xwhile(____x<3__________)

int i=2

do{

while(x%i==0){cout<<i<<''x/=i}

_____i++________

}while(i<x)

if(x! =1) cout<<x

}

3.假定有定义为“struct NODE{int dataNODE * next}”,下面算法遍历输出以参数L为表头指针的单链表中每个结点的值。

void f6(NODE * L)

{

if(_____L==NULL_____) return

NODE * P=L

while(p){

cout<<p->data<<''

p=_p->next__

}

cout<<endl

}

4.类A的定义

class A {

char *a

public:

A(){a=0}

A(char *aa){ //定义带参构造函数

a=__new__char[strlen(aa)+1] //进行动态存储分配

strcpy(a,aa)//用aa所指字符串初始化a所指向德动态存储空间

}

___~A()_________________{delete []a} //定义析构函数

};

四.理解问答题(分别写出前两题的运行结果和后两题的函数功能)

1.#include<iomanip.h>

const int M=20

void main()

{

int c2,c3

c2=c3=0

for(int i=1i<=Mi++){

if(i%2==0)c2++

if(i%3==0)c3++

}

cout<<c2<<''<<c3<<endl

}

运行结果:

过程:

0 0

1 0

1 1

2 1

2 1

3 2

3 2

4 2

4 3

5 3

5 3

6 4

6 4

7 4

7 5

8 5

8 5

9 6

9 6

10 6

结果:

10 6

2.#include<iostream.h>

class A{

int a,b

public:

A(){a=b=0}

A(int aa,int bb){a=aab=bb}

int Sum(){return a+b}

}

void main(){

A x(12,46)

cout<<x. Sum()<<endl

}

运行结果:

58

3.void fun5(char * a,const char * b)

{

while(*b)*a++=*b++

*a='\0'

}

函数功能:

将b的值赋给a

4.bool fun8(int a[],int n,int key)

{

for(int i=0i<ni++)

if(a[i]==key)return true

return false

}

函数功能:

查找数组a中有没有key,如有返回true,否则返回false

五.编程题

1.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。

int f(int a[],int n)

{

if(n>0)

return a[n]+f(a,n-1)

else

return 0

}

2.根据下面类中拷贝构造函数的原型写出它的类的类外定义。

class Array{

int *a//指向动态分配的整型数组空间

Int n //记录数组长度

public:

Array(int aa[],int nn)//构造函数,利用aa数组长度nn初始化n,

//利用aa数组初始化a所指向的数组空间

Arrsy(const Array&aa) //拷贝构造函数

}

//在下面写出拷贝构造函数的类外定义

Array::Array(Array&aa) {

n=aa.n

a=new int[n]

for(int i=0i<ni++) a[i]=aa.a[i]

}

信息信息技术-2 1-5、DDCDB

信息与信息技术-3 1-5、BDCAC

信息与信息技术-4 1-5、CDDBB

信息的获取-2 1-5、DDCAB

信息的获取-3 1-5、DBABC

信息的获取-4 1-4、CBBC

信息的获取-5 1、AD2-4、DAB

网络信息检索4-1 1-5、ADBDB

网络信息检索4-2 1-5、BACCB

网络信息检索4-3 1-5、BBBAD

文本信息加工9-2 1-5、CDABC

文本信息加工9-3 1-3、DCD

文本信息加工9-4 1-3、BAD

信息的编码8-11-5、CACDD

信息的编码8-21-4、BCAD

信息的编码8-31-4、BBCC

信息的编程加工6-11-5、DADDC

信息的编程加工6-21-5、ADCCA

信息的编程加工6-31-5、CBCCC

信息的编程加工6-41-3、CDB

信息的智能化加工7-1 1-5、CACCB

信息的智能化加工7-2 1-5、CBCDC

信息的智能化加工7-3 1-5、ADCBC

信息的评价5-11-6、ABAAAA

信息的评价5-21-6、ACDCAB

信息的评价5-31-5、BACCD

表格数据的数值计算10-2 1-6、ACDBAD

表格数据的数值计算10-3 1-5、BBDCD

表格数据的图形化11-1 1、B 2、B 3、D 4、B5、C

表格数据的图形化11-2 1、A 2、C 3、D 4、C5、D

表格数据的图形化11-3 1-4、BCAA

11-4 1、A 2、D 3、C 4、A

13-2 1、D 2、B 3、B 4、B5、D

13-3 1、C 2、D 3、C 4、B

14-2 1、D 2、A 3、C 4、C5、C

14-3 1、D 2、B 3、C 4、D

15-2 1、C 2、A 3、A 4、B5、A

15-3 1、B 2、C 3、AB4、B

15-4 1、B 2、B 3、B 4、A

16-2 1、C 2、B 3、A 4、D5、A

16-3 1、C 2、C 3、B 4、A5、B

16-4 1、B 2、A 3、B 4、A5,B

17-5 1、A 2、D 3、C 4、A

多媒体及多媒体技术的概念和特征(1-1)1-6:B D B B B D

多媒体及多媒体技术的概念和特征(1-2)1-6:B D B D D D

多媒体作品设计规划和创作流程(2-1) 1-5:A C B C A

多媒体作品设计规划和创作流程(2-2) 1-3:A B B

多种媒体集成的一般过程(3-1)1-4:B A B B

多种媒体集成的一般过程(3-2)

1-3、D D C 4、顺序型 5、AUTHORWARE、FLASH、VB

java C# C++ Visual Basic 等都是优秀的面向对象的程序设计语言,汇编语言、c、Basic 等都是面向过程的程序设计语言,面向过程的结构化语言,结构紧凑,环境要求低一般用于计算机底层、芯片设计和硬件编码等等,面向对象甚至还有面向服务的高级语言一般用于软件、系统、网络、游戏、工业控制、自动化等等方面的设计


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10958266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存