14.下面关于数组的描述错误的是( )
A.在C++语言中数组的名字就是指向该数组第一个元素的指针
B.长度为n的数组,下标的范围是0~n-1
C.数组的大小必须在编译时确定
D.数组只能通过值参数和引用参数两种方式传递给函数
【参考答案】D
15.下面的哪个选项不能作为函数的返回类型?( )
A.void B.int C.new D.long
【参考答案】C
16.下列程序的输出结果为( )
#include<iostream.h>
int func(int n)
{if(n<1) return 1;
else return n+func(n-1);
return 0;}
void main()
{cout<<func(5)<<endl;}
A.0 B.10 C.15 D.16
【参考答案】D
17.以下程序中,错误的行为( )
1.#include<iostream.h>
2.class A
3.{
4.public:
5.int n=2;
6.A(int val) {cout<<val<<endl;}
7.~A(){ }
8.{;
9.void main()
10{
11.A a(0);
12.}
A.5 B.6 C.7 D.11
【参考答案】A
18.下面程序的运行结果为( )
#include<iostream.h>
class A
{
int num;
public:
A(int i){num=i;}
A(A &a){num=a.num++;}
void print(){cout<<num;}
};
void main()
{
A a(1),b(a);
a.print();
b.print();
}
A.11 B.12 C.21 D.22
【参考答案】C
19.如果类A被说明成类B的友元,则( )
A.类A的成员即类B的成员 B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元
【参考答案】D
20.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为( )
A.abc B.acb C.cab D.cba
【参考答案】A
21.下面关于模板的描述,错误的是( )
A.函数模板和类模板的参数可以是任意的数据类型
B.类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用
C.函数模板不能直接使用,需要实例化为模板函数后才使用
D.类模板的成员函数都是模板函数
【参考答案】A
22.下面程序的运行结果是( )
#include<iostream.h>
void main()
{
int num=1;
int &ref=num;
ref=ref+2;
cout<<num;
num=num+3;
cout<<ref<<endl;
}
A.13 B.16 C.36 D.33
【参考答案】C
23.下列程序的运行结果为( )
#include<iostream.h>
int i=0;
class A{
public:
A(){i++;}
};
void main()
{A a,b[3],*c;
c=b;
cout<<i<<endl;}
A.2 B.3 C.4 D.5
【参考答案】C
24.下列字符串中可以用C++语言标识符的是()
A._1234 B.foo~~bar
C.virtua D.34var
【参考答案】A
25.下列语句的输出结果( )
cout<<strlen(″\t\″\065\xff\n″);
A.5 B.14 C.8 D.输出项不合法,无正常输出
【参考答案】A
26.若有如下语句( )
#include<iostream.h>
void main()
{int x=3;
do{
x=x-2;
cout<<x;
}while(!(--x));
}
则上面程序段
A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环
【参考答案】B
27.以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是( )
#include<iostream.h>
void main()
{ int *p,*q,a,b;
p=&a;
cout<<″input a:″;
cin>>p;}
A.*p表示的是指针变量P的地址
B.p表示的是变量a的地址,而不是变量a的值
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
【参考答案】B
28.有以下程序
#include<iostream.h>
void fun(int a,int b,int c)
{a=456,b=567,c=678;}
void main()
{int x=10,y=20,z=30;
fun(x,y,z);
cout<<x<<′,′<<y<<′,′<<z<<endl;}
输出结果是( )
A.30,20,10 B.10,20,30
C.456,567,678 D.678,567,456
【参考答案】B
29.下列定义中p指向的地址可更改,但*p不能够更改的是( )
A.const int *P B.int * const p; C.const int *const p; D.int *p;
【参考答案】A
30.下面程序的结果是( )
#include<iostream.h>
class A
{
int a;
public:
A():a(1){ }
void showa(){cout<<a;}
};
class B
{
int a;
public:
B():a(2){ }
void showa(){cout<<a;}
};
class C:public A,public B
{int a;
public:
C():a(3){ }
void showa(){cout<<a;}
};
void main()
{C c;
c.showa();}
A.1 B.2 C.3 D.程序有错误
【参考答案】C
31.如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为( )
A.operator+(operator*(x,y),z)
B.x.operator+(operator*(x,y),z)
C.y.operator*(operator+(x,y),z)
D.x.operator+(operator*(x,y))
【参考答案】A
32.对于语句cout<<setfill(′*′)<<setw(10)<<1<<setfill(′*′)<<setw(2)<<2;的输出结果是( )
A.*********1*2 B.********12 C.*******1*2 D.12********
【参考答案】A
33.有如下程序
#include<iostream.h>
int func(int a,int b)
{return(a+b);}
void main()
{int x=2,y=5,z=8,r;
r=func(func(x,y),z);
cout<<r;}
该程序的输出的结果是( )
A.12 B.13 C.14 D.15
【参考答案】D
34.下列描述中,抽象类的特性是( )
A.可以说明虚函数
B.可以定义友元函数
C.可以进行构造函数重载
D.不能说明其对象
【参考答案】D
35.下列程序的运行结果是( )
#include<iostream.h>
void fun(int *a,int *b)
{ int *k;
k=a;a=b;b=k;
}
void main()
{ int a=3,b=6,*x=&a,*y=&b;
fun(x,y);
cout<<a<<″ ″<<b;
}
A.6 3 B.3 6 C.编译出错 D.0 0
【参考答案】B
二、填空题
1.在面向对象方法中,类之间共享属性和操作的机制称为【1】。
【参考答案】
1.【1】继承
2.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【2】的联系。
【参考答案】
2.【2】一对多(或1:N)
3.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向【3】的设计方法。
【参考答案】
3.【3】数据结构
4.软件设计模块化的目的是【4】。
【参考答案】
【4】降低复杂性
5.在树结构中,树根结点没有【5】。
【参考答案】
【5】前件
6.C++中封装性、继承性和【6】是面向对象思想的主要特征。
【参考答案】
【6】 多态性
7.下列for语句的循环次数为【7】。
for(int a=0,b=1;b&&a<5;a++);
【参考答案】
【7】5
8.C++程序是从【8】函数开始执行的。
【参考答案】
【8】main
9.派生类构造函数的执行顺序是先执行【9】的构造函数,然后执行成员对象的构造函数,最后执行【10】的构造函数。
【参考答案】
9.【9】基类 【10】派生类
10.C++语言程序的注释可以出现在程序中的任何地方,一个注释以【11】作为开始和结束的标记。
【参考答案】
【11】/**/
11.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。
st=(char*)【12】;
【参考答案】
【12】malloc(11)或malloc(sizeof(char)*11)
voidmain()
{
Catkitty;
kitty.Meow();
kitty.SetAge(5);
cout<<"kittyisacatwhois";
cout<<kitty.GetAge();
cout<<"yearsold.\n";
kitty.Meow();
}
【参考答案】
(1)int itsAge;
(2)return itsAge;
(3)itsAge=age;
(4)cout<<"meow.\n";
【试题解析】
本题主要考查类的定义和成员函数的定义的深刻理解。