C++程序题
C++程序题1
学过C++的过程员都懂得,new/delete是其管教内存的重要措施。与C语言相比,C++扶持面向对象技巧,因而在内存管教方面有所差异。
在C++中,数据对象(大约种类和复合种类)的创立包括两个局部:一是给数据对象分配足够的内存,二是内存举行数据的初始化。而C中,只有第一个分配内存的作用。并且,不但仅是类,其它大约种类,如int型等,也是如此。例如:
char* pc1 = new char;
char* pc2 = new char('A');
以上两条语句都能够给对应的指针分配内存,不同在于,第一条语句仅仅分配内存,而翔实的内容是随机的;而第二条语句不但分配内存,并且赋值为‘A’。相对应的,当不再必需这些内存时候,能够批准delete来释放内存。
C++中,关于new/delete相干的内容许多,初学者比拟轻率混同观念。以下是笔者的一点归纳,十月妈咪渴望对那些还处于?**露??墓?淘庇邪镏??p> 1. new/delete 关键字。C++和其它语言一样,也预先预留了一些单词作为系统利用。过程员是不能用这些单词来表示自己的数据的。如int , float, struct , class 等。当然new/delete也是。然而new/delete关键字仅仅是在词法上的定义,它只阐明过程员不能重复定义它们,用来表白其它含义。
C++程序题2
1.下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除
B.栈顶元素最后才能被删除
C.栈底元素永远不能被删除
D.以上三种说法都不对
2.下列叙述中正确的是( )。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3
B.4
C.6
D.7
4.在软件开发中,需求分析阶段产生的主要文档是( )。
A.软件集成测试计划
B.软件详细设计说明书
C.用户手册
D.软件需求规格说明书
5.结构化程序所要求的基本结构不包括( )。
A.顺序结构
B.GOT0跳转
C.选择(分支)结构
D.重复(循环)结构
6.下面描述中错误的是( )。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
7.负责数据库中查询操作的数据库语言是( )。
A.数据定义语言
B.数据管理语言
C.数据操纵语言
D.数据控制语言
8.一个教师可讲多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是( )。
A.1:1联系
B.1:m联系
C.m:1联系
D.m:n联系
9.有3个关系R、S和T如下表所示:
则由关系R和S得到关系T的操作是( )。
A.自然连接
B.交
C.除
D.并
10.定义无符号整数为Uint,下面可以作为类Uint实例化值的是( )。
A.-369
B.369
C.0.369
D.整数集合{1,2,3,4,5}
11.为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。
A.内联函数
B.重载函数
C.递归函数
D.函数模板
12.若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为( )。
A.a
B.AA.a
C.a{}
D.AA:a{}
13.当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是( )。
A.任何
B.公有或保护
C.保护或私有
D.私有
14.若要对Date类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。
A.Data+(Data);
B.Dataoperator+(Data);
C.Data+operator(Data);
D.operator+(Data.Data);
15.下列关于函数模板的描述中,正确的是( )。
A.函数模板是一个实例函数
B.使用函数模板定义的函数没有返回类型
C.函数模板的类型参数与函数的参数相同
D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数
16.C++系统预定义了3个用于标准数据流的对象,下列选项中不属于此类对象的是( )。
A.cout
B.cin
C.cerr
D.cset
17.Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是( )。
A.cpp
B.exe
C.obj
D.lik
18.字符串“a+b=12 ”的长度为( )。
A.12
B.10
C.8
D.6
19.有如下程序:
#include
usingnamespacestd;
intmain( ){
intf,f1=0,f2=1;
for(inti=3;i<=6;i++){
f=f1+f2:
f1=f2;f2=f;
}
cout
}
运行时的输出结果是( )。
A.2
B.3
C.5
D.8
20.有如下程序:
#include
usingnamespacestd;
intmain( ){
inta[6]={23,15,64,33,40,58};
ints1,s2;
s1=s2=a[0];
for(int*p=a+1;pif(s1>*p)s1=*p;
if(s2<*p)s2=*p;
}
cout
}
运行时的输出结果是( )。
A.23
B.58
C.64
D.79
21.有如下程序:
#included
usingnamespacestd;
voidfl(int&X,int&y){intz=x;x=y;y=z;)voidf2(intX,inty){intz=x;x=y;y=z;}intmain( ){
intx=10,y=26;
f1(X,y);
f2(x,y);
cout
}
运行时的输出结果是( )。
A.10
B.16
C.26
D.36
22.有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA( ){}
intget( ){returna;}
};
intXA::b=0
intmain( ){
XAd1(1),d2(3);
cout
}
运行时的输出结果是( )。
A.5
B.6
C.7
D.8
23.有如下程序:
#include
usingnamespacestd:
classPoint{
intx,y;
public:
Point(intx1=0,inty1=0)):X(X1),y(y1){}
intget( ){returnx+y;)
};
classCircle{
Pointcenter}
intradius;
public:
Circle(intCX,intcy,intr):center(cx,cy),radius(r)
{}
intget( ){returncenter.get( )+radius;}
};
intmain( ){
Circlec(3,4,5);
cout
}
运行时的输出结果是( )。
A.5
B.7
C.9
D.12
24.若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是( )。
A.operatorlong( )const;
B.operatorlong(BigNumber);
C.longoperatorlong( )const;
D.longoperatorlong(BigNumber);
25.有如下函数模板定义:
template
T1FUN(T2n){returnn*5,0;}
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。
A.FUN(9)
B.FUN<9>
C.FUN(9)
D.FUN<9>(double)
26.下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他3条语句不同,该语句是( )。
A.cout
A.析构函数可以重载
B.析构函数由系统自动调用
C.每个对象的析构函数只被调用一次
D.每个类都有析构函数
28.下列关于构造函数的描述中,错误的是( )。
A.构造函数名与类名相同
B.构造函数可以有返回值
C.构造函数可以重载
D.每个类都有构造函数
29.若PAT是一个类,则程序运行时,语句“PAT(*ad){3};”调用PAT的构造函数的次数是( )。
A.0
B.1
C.2
D.3
30.下列描述中,错误的是( )。
A.公有继承时基类中的公有成员在派生类中仍是公有成员
B.公有继承时基类中的保护成员在派生类中仍是保护成员
C.保护继承时基类中的公有成员在派生类中仍是公有成员
D.保护继承时基类中的保护成员在派生类中仍是保护成员
31.生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。
A.无需任何条件
B.基类中显式定义了构造函数
C.派生类中显式定义了构造函数
D.派生类构造函数明确调用了基类构造函数
32.下列关于派生类和基类的描述中,正确的是( )。
A.派生类成员函数只能访问基类的公有成员
B.派生类成员函数只能访问基类的公有和保护成员
C.派生类成员函数可以访问基类的所有成员
D.派生类对基类的'默认继承方式是公有继承
33.有如下类模板定义:
template
classBigNumber{
longn;
public;
BigNumber(Ti):n(i){}
BigNumberoperator+(BigNumberb){
returnBigNumber(n+b.n):
}
};
已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。
A.b1+b2
B.b1+3
C.3+b1
D.3+3
34.下列关于文件流的描述中,正确的是( )。
A.文件流只能完成针对磁盘文件的输入、输出
B.建立一个文件流对象时,必须同时打开一个文件
C.若输入流要打开的文件不存在。将建立一个新文件
D.若输出流要打开的文件不存在,将建立一个新文件
35.有如下程序:
#include
usingnamespacestd;
classPair{
intm,n;
public;
Pair(intj,intk):m(j),n(k){}
intget( ){returnIn;}
intget( )const{returnm+n;}
};
intmain( ){
Paira(3,5);
constPairb(3,5);
cout
}
运行时的输出结果是( )。
A.33
B.38
C.83
D.88
36.下列叙述中正确的是( )。
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的aut0变量和static变量的初值都是随机值
37.假定MyClass为一个类,则执行MyClassa,b(2),*p;语句时,自动调用该类构造函数( )次。
A.2
B.3
C.4
D.5
38.能正确表示逻辑关系”a≥10或a≤0”的C++语言表达式是( )。
A.a>=10ora<=0
B.a)一01a(一10
C.a>=10&&a<=0
D.a>=10||a(=0
39.若执行下面的程序时,从键盘上输入5和2,则输出结果是( )。
#include(iostream.h)
voidmain( )
(inta,b,k;
cin>>a>>b;
k=a:
if(ak=a%b;
else
k=b%a:
cout((k
B.3
C.2
D.0
40.假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。
A.void~MyClass( );
B.~MyC|ass(intn);
C.MyClass( );
D.~MyClass( );
【C++程序题】相关文章:
C++程序的基本框架08-17
c++程序语言特点08-17
凌阳科技C++程序员笔试题08-08
用C++编写程序实现向右循环移位11-21
考查C++/C程序员的基本编程技能11-25
c++语言程序设计工作简历模板下载11-16
经典c++面试笔试题目22题11-21
华为程序面试笔试高级题08-22
Windows NT 下的32 位C++程序,请计算sizeof 的值11-21
2016年Java考试精选程序阅读题09-24