第 1 页:选择题 |
第 3 页:程序改错题 |
第 4 页:简单应用题 |
第 5 页:综合应用题 |
21当需要将一个函数boolisnunlber(charc)声明为内联函数时,此内联函数的函数原型为( )。
A.enumboolisnumber(charc);
B.defineboolisnumber(charc);
C.inlineboolisnumber(charc);
D.extemboolisnumber(charc);
参考答案:C
参考解析:本题考查内联函数的相关知识点。函数原型应指出函数名、返回值类型以及在调用函数时提供的参数的个数和类型,因为要声明为内联函数,故应加inline关键字。
22有如下程序:
#include
usingnamespacestd;
intmain( ){
inta[6]={23,l5,64,33,40,58};
ints1,s2;
s1=s2=a[0];
for(int*p=a+1;p
if(sl>*p)s1=*P;
if(s2<*p)s2=*p;
}
cout<
return0;
}
运行时的输出结果是( )。
A.23B.58C.64D.79
参考答案:D
参考解析:根据题意,找出数组a中最大值sl和最小值s2并计算二者的和。
23以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误的原因是( )。
#include(iostream.h)
voidmain( )
{int*P,*q,a,b;
p=&a;
cout<<"inputa:";
cin>>P;
}
A.*P表示的是指针变量P的地址
B.P表示的是变量a的地址,而不是变量a的值
C.*P表示的是指针变量p的值
D.*P只能用来说明P是一个指针变量
参考答案:B
参考解析:p表示的是变量a的地址,定义后*P表示的是变量a的值。
24有以下程序:
classDate
{
public:
Date(inty,intm,intd);
{
year=Y:
month=m;
day=d;
}
Date(inty=2000)
{
year=y;
month=10;
day=1;
}
Date(Date&d)
{
year=d.year;
month=d.month;
day=d.day;
}
voidprint( )
{
cout<
}
private:
intyear,month,day;
};
Datefun(Dated)
{
Datetemp;
temp=d;
returntemp;
}
intmain( )
{
Datedatel(2000,1,1),date2(0,0,0);
Datedate3(datel);
date2=fun(date3);
return0;
}
程序执行时,Date类的拷贝构造函数被调用的次数是( )。
A.2B.3C.4D.5
参考答案:B
参考解析:本题考核拷贝构造函数。上述程序中,拷贝构造函数一共被调用了3次:第1次是在执行语句Datedate3(date1)时,用已经建立的对象date1对正在建立的对象date3进行初始化;第2次是在调用fun函数时,由于是传值调用,因此实参对象date3要对形参对象d进行初始化;第3次是在执行fun函数中的返回语句returntemp;时,系统初始化一个匿名对象时使用了拷贝构造函数。
25下面程序的输出结果是( )。
#include
Usingnamespacestd;
ClassBase{
public:
Base(intx=O){count<
}
};
ClassDerived:publicBase{
public:Derved(intx=0{count<
}
private;
Baseval;
};
intmina(){
Derivedd(1);
retrun0;
}
A.0B.1C.01D.001
参考答案:D
26软件设计中划分模块的一个准则是( )。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合
参考答案:B
参考解析:耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各个模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
27下列程序的运行结果是( )。
#include
intx=5;
intfun(inta)
{
intc:
c=X*a:
returnC;
}
voidmain()
{
intx=3,a=4;
x=x+fun(a);
cout<<"x="<
}
A.x=15B.x=17C.x=23D.x=25
参考答案:C
参考解析:由主函数main入手,首先x被赋值为3,a被赋值为4,然后调用fun函数,参数为4,所以在fun函数中的a=4。而主程序中的x作用域是由它定义开始到cout输出,在fun函数中无效。而在fun函数定义前的变量X作用域是整个程序,所以fun函数中的x值为5,这样C的值就为20。在主函数中的x+fun(a)中的x为靠近这条语句的x定义,即3,所以最后x的值为20+3=23。第27题 笔记记录我的笔记(0) | 精选笔记(0)选择笔记标签:试题内容(0)答案解析(0)
28数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
参考答案:C
参考解析:数据库系统(DBS)是指在计算机系统中引入数据库后的系统,一般有数据库(DB)、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。
29在软件开发中,需求分析阶段产生的主要文档是( )。
A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书
参考答案:D
参考解析:需求分析阶段只能产生需求分析规格说明书,A测试说明书是软件测试阶段生成的,B软件详细设计说明数是设计阶段生产,C用户手册是软件发布时随软件一同交付给用户的。
30有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA( ){}
intget( ){returna;}
};
intXA::b=0
intmain( ){
XAd1(1),d2(3);
cout<
return0;
}
运行时的输出结果是( )。
A.5B.6C.7D.8
参考答案:C
参考解析:每调用一次get函数时,对新的类A对象进行一次实例化,调用一次构造函数,类A的静态成员变量b便加1。
31是( )。
A.2*a*b/c/dB.a*b/c/d*2C.a/c/d*b*2D.2*a*b/c*d
参考答案:D
参考解析:本题考查运算符的优先级书写及运算。*、/运算优先级相同,据此判断,选项D表示的是2abd/c,而不是2ab/(cd)。
32对于模板定义关键字class和typename说法不正确的是( )。
A.程序中的class并不能都替换为typename
B.class和typename都可互相替换
C.程序中的typename都能替换为class
D.程序中的部分class可以替换为typename
参考答案:B
参考解析:在C++程序中的typename是都可以替换为class的,但class不能都替换为typename。
33下面程序的运行结果为( )。
#include
ClassA
{
public:A( ){cout<<"1";}
~A( ){cout<<"2";}
};
ClassB:public:A
{
public:
B( ){cout<<"3";}
~B( ){cout<<"4";}
};
Voidmain( )
{
Bb;
}
A.1234B.1324C.1342D.3142
参考答案:C
参考解析:本题考查在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。
34有如下程序:
#include
usingnamespacestd;
classPublication{//出版物类
charname[30];
public:
Publication(char*name=”未知名称”){
~strcpy(this一>name,name);
}
constchar*getName( )const{returnname;}
virtualconstchar*getType( )const{return”未知类型”;}
};
classBook:publicPublication{//书类
public:
Book(char*name):Publication(name){}
virtualconstchar*getType( )const{return"书";}
};
voidshowPublication(Publication&p){
cout<
endl;
}
intmain( ){
Bookbook(”精彩人生”);
showPublication(book);
return0;
}
运行时的输出结果是( )。
A.未知类型:未知名称
B.未知类型:精彩人生
C.书:未知名称
D.书:精彩人生
参考答案:D
参考解析:因为getType是虚函数,所以P.getType()执行继承类的getType函数,输出“书”;P.getName()执行基类的getName函数,输出“精彩人生”。总共输出“书:精彩人生”,故选D。
35若有以下程序:
#include
usillgnamespacestd;
classA
{private:
inta;
public:
A(inti)
{a=i;}
voiddisp()
{cout<
classB
{private:
intb;
public:
B(intj)
{b=j;}
voiddisp()
{COUt<
classC:publicB,publicA
{private:
intC;
public:
C(intk):A(k-2),B(k+2)
(c=k;)
voiddisp()
{A::disp();
B::disp();
cout<
intmain()
{Cobj(10);
obj.disp();
return0;}
程序执行后的输出结果是( )。
A.10,10,10B.10,12,14C.8,10,12D.8,12,10
参考答案:D
参考解析:本题考查派生类构造函数的使用。派生类C具有多重继承关系,所以在派生类C的构造函数中应该包含基类A和B的成员初始化列表。
36若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为( )。
A.aB.AA.aC.a{}D.AA::a{}
参考答案:A
参考解析:a是类AA的非静态数据成员,在类AA的成员函数中可以直接访问。B是访问静态数据成员的方式,C和D都是访问函数的方式。
37静态成员函数没有( )。
A.返回值B.this指针C.指针参数D.返回类型
参考答案:B
参考解析:this指针是系统隐含的用于指向当前对象的指针。由于静态函数是同类中所有对象都共享的函数,在内存中只存在一份,不属于某个对象所有,所以静态函数没有this指针。
38下列程序的运行结果是( )。
#include
intx=5:
intfun(inta)
{
intC;
C=X*a:
returnC;
}
voidmain( )
{
intx=3,a=4;
x=x+fun(a);
cout<<"x="<
}
A.x=15B.x=17C.x=23D.x=25
参考答案:C
参考解析:由主函数main入手,首先X被赋值为3,a被赋值为4,然后调用fun函数,参数为4,所以在fun函数中的a=4。而主程序中的X作用域是由它定义开始到cout输出,在fun函数中无效。而在fun函数定义前的变量X作用域是整个程序,所以fun函数中的x值为5,这样c的值就为20。在主函数中的x+fun(a)中的X为靠近这条语句的x定义,即3,所以最后x的值为20+3=23。
39面向对象的没计方法与传统的面向过程的方法有本质不同,它的基本原理是( )。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
参考答案:C
参考解析:面向对象设计通过对人类认识客观世界及事物发展过程的抽象,建立了规范化的分析设计方法,由此带来软件模块化特色突出、可读性好、易维护等一系列优点。
40负责数据库中查询操作的数据库语言是( )。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言
参考答案:C
参考解析:数据库操纵语言专门负责查询、增加、删除等数据操作。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |