资源描述
. .
序号
考试场次
试卷名称
分数
考试时间
进入试卷
考试详情
考试场次:2014_08月月考_08月25日_C++ 试卷名称:2014年08月_C++_CSD/ESD1405
1. 关于约束说法错误的是"
A. 约束分为表级约束和列级约束
B. 非空约束没有表级约束
C. 列级约束可以完成所有表级约束所有的功能
D. 表级约束可以完成联合约束 列级完不成联合约束
正确答案:C
2. Integer类的后缀自增运算符函数是?
A.
Integer&Integer::operator++(void){
m_i++;
return*this;
}
B.
constIntegerInteger::operator++(int){
Integerold=*this;
m_i++;
returnold;
}
C.
Integer&Integer::operator++(void){
Integerold=*this;
m_i++;
returnold;
}
D.
constIntegerInteger::operator++(int){
m_i++;
return*this;
}
正确答案:B
3. 查询所有人的名字 只显示前三个字符 不足的显示已经有的 并且全部转为小写的SQL语句是"
A. select lower(substr(first_name,0,3)) from s_emp
B. select upper (substr(first_name,0,3)) from s_emp
C. select lower(substr(first_name,1,3)) from s_emp
D. select upper(substr(first_name,1,3)) from s_emp
正确答案:C
4. 显示s_emp表的first_name和first_name的后三个字母的SQL语句是"
A.
select first_name,substr(first_name,3,3) from s_emp
B.
select first_name,substring(first_name,3,3) from s_emp
C.
select first_name,substring(first_name,-3,3) from s_emp
D. select first_name,substr(first_name,-3,3) from s_emp
正确答案:D
5.
阅读如下代码:
class Human{
string name;
int power;
public:
Human(string n="", int p=0)
:name(n),power(p){
}
//拷贝构造函数
Human(const Human& h){
cout << "Human(const Human&), "
<< this << endl;
name = h.name;
power = h.power;
}
void show(){
cout<<name<<","<<power<<endl;
}
};
void fa(Human h){}
void fb(Human& h){}
下列代码哪个会调用拷贝构造函数:
A. Human h1("Daniel", 100);
B.
Human h1("Daniel", 100);
Human h2;
h2 = h1;
C.
Human h1("Daniel", 100);
fa(h1);
D.
Human h1("Daniel", 100);
fb(h1);
正确答案:C
6. 关于拷贝构造函数,以下说法错误的是?
A. 参数(对象)值传递时,调用拷贝构造
B. 函数返回临时值(对象),调用拷贝构造
C. 用相同类型的对象做参数,构造新对象时,调用拷贝构造
D. 引用传递调用拷贝构造,地址传递不调用
正确答案:D
7.
以下代码
classInteger{
public:
Integer(inti=0):m_i(i){
cout<<'A'<<endl;
}
Integer(constInteger&that):m_i(that.m_i){
cout<<'B'<<endl;
}
~Integer(void){
cout<<'C'<<endl;
}
private:
intm_i;
};
Integerfoo(Integeri){
returni;
}
intmain(void){
Integeri=foo(10);
return0;
}
的输出是?
A.
A
C
B.
B
C
C.
A
C
B
C
D.
A
B
C
C
正确答案:D
8. 把s_emp月薪超过1000的员工列出来的SQL语句是"
A.
select last_name,salary from s_emp where salary>1000
B.
select name,salary from s_emp where salary>1000
C.
select name,salary from s_emp where salary<1000
D. select last_name,salary from s_emp where salary<1000
正确答案:A
9.
阅读以下代码:
class Human{
public:
void move(){
cout<<"moving"<<endl;
}
virtual void attack(){
cout<< "attack" << endl;
}
};
class FootMan : public Human{
public:
void move(){
cout << "action" << endl;
}
virtual void attack(){
cout << "FootMan attack" << endl;
}
};
int main()
{
Human* ph = new FootMan;
ph->move();
ph->attack();
delete ph;
}
请问执行的结果是?
A. moving和FootMan attack
B. moving和attack
C. action和FootMan attack
D. action和attack
正确答案:A
10. 在建表时,经常需要用到约束,请问下面哪个不是常见约束?
A. 主键
B. 非空
C. 回滚
D. 外键
正确答案:C
11. 假设Base类派生了Derived类,FileException和MemoryException都是异常类,则以下虚函数的声明中哪些可以构成正确的覆盖?
A.
Base*Base::copy(Base*);
Base*Derived::copy(Derived*);
B.
Base*Base::copy(Base*=NULL)throw(FileException,MemoryException);
Derived*Derived::copy(Base*)throw(MemoryException);
C.
boolBase::print(ostream&);
voidDerived::print(ostream&);
D.
voidBase::eval(void)const;
voidDerived::eval(void);
正确答案:B
12. 下面分组语句正确的是?
A. Select name,dept_id from s_dept d,s_emp e where dept_id=id group by dept_id;
B. Select e.name,dept_id from s_dept d,s_emp e where dept_id=d.id group by dept_id;
C. Select e.name,dept_id from s_dept d,s_emp e where dept_id=d.id group by dept_id;
D. Select max(name),dept_id from s_dept d,s_emp e where dept_id=d.id group by dept_id;
正确答案:D
13. 已知数据库中有员工表s_emp和部门表s_dept,具体字段如下:
员工表字段介绍:
ID 员工编号
LAST_NAME 员工姓
FIRST_NAME 员工名
USERID 用户编号
START_DATE 入职日期
MENTS 员工备注信息
MANAGER_ID 员工的领导ID
TITLE 员工的职位
DEPT_ID 部门的编号
SALARY 员工的月薪
MISSION_PCT 提成
部门表的字段介绍:
ID 部门编号
NAME 部门名
REGION_ID 地区编号
注:以下所有数据库相关题目,均使用这两个表
把s_emp表中的每个人的全名和工资列出来的SQL语句是?
A.
select first_name|last_name ,salary from s_emp
B.
select first_name||last_name ,salary from s_emp
C.
select first_name|last_name ,salary from emp
D. select first_name||last_name ,salary from emp
正确答案:B
14.
阅读如下C++代码:
bool b = true;
b = 3;
int x = 10;
x += b;
cout << x << endl;
该代码的输出为:
A.
11
B. 13
C. 10
D. 编译错误
正确答案:A
15.
在大型项目设计时,类的继承层次会相应比较复杂,假设有如下类的继承关系:
class A{virtual void m(){}};
class B : public A{};
class C : public B{};
class D : public B{};
现有一变量的定义如下:
A* p = new B;
那么,下列表达式的结果为逻辑真(true)的是:
A. typeid(*p) == typeid(A);
B. typeid(*p) == typeid(B);
C. typeid(*p) == typeid(C);
D. typeid(*p) == typeid(D);
正确答案:B
16.
以下代码
classA{
public:
virtual~A(void){}
private:
charm_c;
};
classB:virtualpublicA{};
classC:virtualpublicA{};
classD:publicB,publicC{};
intmain(void){
cout<<sizeof(A)<<''<<sizeof(B)<<''
<<sizeof(C)<<''<<sizeof(D)<<endl;
return0;
}
的输出是?
A. 8 12 12 16
B. 8 12 12 24
C. 8 8 8 16
D. 1 1 1 2
正确答案:A
17. 统计每个部门的人数的SQL语句是"
A. select dept_id,max(dept_id) from s_emp group by dept_id
B. select dept_id,avg(dept_id) from s_emp group by dept_id
C. select dept_id,count(dept_id) from s_emp group by dept_id
D. select dept_id,sum(dept_id) from s_emp group by dept_id
正确答案:C
18.
以下代码
voidfoo(charc){
cout<<'A'<<endl;
}
voidfoo(intn){
cout<<'B'<<endl;
}
voidfoo(longlongl){
cout<<'C'<<endl;
}
intmain(void){
shorts=0;
foo(s);
return0;
}
的输出是?
A. A
B. B
C. C
D. 编译错误
正确答案:B
19. 下列关于new 和 malloc的说法错误的是:( )
A. malloc只负责分配存空间,并不会调用对象的构造函数,对象销毁时,也不会调用析构函数。
B. malloc需要进行类型转换,而new已经把类型转换好了。
C. 在C++语言中,在栈中分配存时,尽量使用new,在堆中分配容时,使用malloc。
D. malloc分配的空间只能由free释放,new分配的空间只能由delete释放。
正确答案:C
20. 查询所有人的名字和所在部门名称的SQL语句是"
A.
select first_name,name from s_emp, s_dept where dept_id=s_dept.id
B.
select first_name,name from s_emp, s_dept where dept_id=id
C.
select first_name,name from s_emp, s_dept where id=s_dept.id
D. select first_name,name from s_emp, s_dept where s_emp.id=s_dept.id
正确答案:A
21. 以下有关C++异常机制的讨论中不正确的是?
A. C++的异常机制,一方面避免了逐层判断返回值所导致的流程复杂的弊端,另一方面也不会象setjmp/longjmp远程跳转那样使中间对象失去被析构的机会,是一种简洁高效的错误处理机制
B. 为了避免不必要的麻烦,通常的做法是抛出匿名临时对象作为异常,并以引用的方式捕获它们
C. catch子句是依其出现的先后顺序被依次检视的,其中的异常类型应按照先子类后基类的顺序排列
D. 异常可以在任何场合下抛出,包括一个类的构造和析构函数
正确答案:D
22.
以下代码
classObject{
public:
Object(intx=0):m_a(x),m_b(m_a){}
intm_b;
intm_a;
};
intmain(void){
Objectobj(100);
cout<<obj.m_a<<''<<obj.m_b<<endl;
return0;
}
的输出是?
A. 100 <不确定的数>
B. 100 100
C. 0 <不确定的数>
D. 0 0
正确答案:A
23. 把工资大于1000的first_name,salary 显示出来,按工资排序,工资相同按first_name降序的SQL语句是"
A.
select first_name,salary from s_emp order by salary,first_name
B.
select first_name,salary from s_emp order by salary,first_name asc
C.
select first_name,salary from s_emp order by salary desc,first_name
D. select first_name,salary from s_emp order by salary,first_name desc
正确答案:D
24. Plsql中定义变量,哪个是正确的?
A. Var_i int ;
B. Number Var_i;
C. Var_i number;
D. var_i number not null;
正确答案:C
25. 下面那个语句可以得到manager_id不是NULL的数据:
A. Select first_name,manager_id from s_emp where manager_id!=null;
B. Select first_name,manager_id from s_emp where manager_id no in(null);
C. Select first_name,manager_id from s_emp where manager_id not is null;
D. Select first_name,manager_id from s_emp where manager_id is not null;
正确答案:D
26. 已知有序列seq,那么使用序列的值插入s_dept表的SQL语句是?
A. insert into s_dept(seq.nextval,’test’)
B. insert into s_dept values(seq.nextval,’test’,1)
C. insert into s_dept values(seq.nextval,’test’)
D. insert into s_dept values(seq.currval,’test’,1)
正确答案:B
27. 下列建表的SQL语句错误的是?
A. Create table test123(
Id number,
Dname varchar2(30)
)
B. Create table test123(
Id number,
Dname varchar2(30),
MyDate date
)
C. Create table test123(
Id number,
Dname char(30)
)
D. Create table test123(
Id number,name varchar2(30),
)
正确答案:B
28. 关于用new分配存空间,以下代码正确的是:
A. int x = new int;
B. int *x = new int;
C. int x = new int(10);
D. int x = new int[10];
正确答案:B
29. 下面不能在oracle中使用的数据类型是?
A. Number
B. Varchar2
C. Int
D. Date
正确答案:C
30.
以下是Dumy类的定义
classDumy{
public:
Dumy(inta):m_a(a){
m_b=20;
}
private:
constintm_a;
constintm_b;
constintm_c=30;
staticconstintm_d=40;
};
该类包含四个成员变量,其中初始化方式不正确的是?
A. m_a和m_c
B. m_b和m_d
C. m_b和m_c
D. m_c和m_d
正确答案:C
31.
文件foo.txt的容如下:
abcd
e
其中a和b之间隔一个空格符,c和d之间隔一个制表符,d和e之间隔一个换行符。以下代码
intmain(void){
ifstreamifs("foo.txt");
if(!ifs)
return-1;
charc;
while(ifs>>c)
cout<<c;
cout<<endl;
ifs.clear();
ifs.seekg(ios::beg);
while((c=ifs.get())!=EOF)
cout<<c;
ifs.clear();
ifs.seekg(ios::beg);
ifs.unsetf(ios::skipws);
while(ifs>>c)
cout<<c;
ifs.close();
return0;
}
的输出是?
A.
abcde
abcd
e
abcde
B.
abcde
abcd
e
abcd
e
C.
abcd
e
abcde
abcd
e
D.
abcde
abcde
abcd
e
正确答案:B
32.
阅读如下代码:
#include <iostream>
using namespace std;
class Sample{
int x;
public:
Sample(int x=0):x(x){}
void setX(int x){this->x = x;}
int getX()const{return x;}
void show()const{cout<<"x="<<x<<endl;}
};
void fc(const Sample& s){
s.setX(300);
s.show();
}
int main()
{
}
关于本段代码,下列说确的是?
A. 编译可以通过,运行没有输出。
B. class Sample中的代码编译不能通过
C. 函数fc代码编译不能通过
D. 主函数main需要返回
正确答案:C
33. Plsql中定义了一个数字变量 var_sum 对var_sum的操作不正确的是?
A. Var_sum:=100;
B. Select salary into var_sum from s_emp where id=1;
C. Var_sum:=var_sum+100;
D. Var_sum=1000;
正确答案:D
34. 下面语句能按照工资排序后可以显示第11到第20条的语句是?
A.
select rownum,id,first_name,salary from s_emp where rownum<21;
B.
select rownum,id,first_name,salary from s_emp where rownum>10 and rownum<21 order by salary;
C. select* from
(select rownum r,id,first_name,salary
from (select id,first_name,salary from s_emp order by salary
)where rownum<21
)where r>10;
D. select* from
(select rownum r,id,first_name,salary from (select rownum ,id,first_name,salary
from s_emp order by salary ) where rownum<21 )where r>10;
正确答案:C
35.
阅读以下代码:
int x = 10;
int& r = x;
int y = 20;
r = y;
关于x,r和y的关系,以下说确的是:
A. r是y的引用,与x无关。
B. r是x的引用,r的值与y无关。
C. r同时是x和y的引用
D. r是x的引用,r的值被赋值为y。
正确答案:D
36. 查询所有人的名字 只显示前三个字符 不足的显示已经有的 并且全部转为小写的SQL语句是"
A. select lower(substr(first_name,0,3)) from s_emp
B. select upper (substr(first_name,0,3)) from s_emp
C. select lower(substr(first_name,1,3)) from s_emp
D. select upper(substr(first_name,1,3)) from s_emp
正确答案:C
37. 查找和Smith一个title的所有员工的名字的SQL语句是?
A. SELECT last_name from s_emp where title=(select title from s_emp where last_name=’Smith’)
B. SELECT last_name from s_emp where title=(select title from s_emp where last_name=”Smith”)
C. SELECT last_name from s_emp where title=(select last_name,title from s_emp where last_name=’Smith’)
D. SELECT last_name from s_emp where title=(select title from s_emp last_name=’Smith’)
正确答案:A
38.
有如下类的定义:
class Emp{
string name;
int age;
public:
Emp(string name=“”, int age=0):name(name),age(age){}
string getName(){ return name;}
int getAge(){return age;}
};
那么,下列那段代码使用类Emp是正确的:
A.
Emp e;
e.name = “Daniel”;
e.age = 30;
cout << e.getName() << “,” << e.getAge() << endl;
B.
Emp e(“Daniel”, 30);
e.age++;
cout << e.getName() << “,” << e.getAge() << endl;
C.
Emp *e = new Emp(“Daniel”, 30);
cout << e.getName() << “,” << e.getAge() << endl;
delete e;
D.
Emp *e = new Emp;
cout << e->getName() << “,” << e->getAge() << endl;
delete e;
正确答案:D
39. 把s_emp中的月薪在900和1500之间的人列出来的SQL语句是"
A. select first_name,salary from s_emp where 1500<salary<900
B. select first_name,salary from s_emp where salary in (900,1500)
C. select first_name,salary from s_emp where salary between 900 and 1500
D. select first_name,salary from emp where salary between 900 and 1500
正确答案:C
40. 把s_emp中的月薪在900和1500之间的人列出来的SQL语句是"
A.
select first_name,salary from s_emp where 1500<salary<900
B.
select first_name,salary from s_emp where salary in (900,1500)
C.
select first_name,salary from s_emp where salary between 900 and 1500
D. select first_name,salary from emp where salary between 900 and 1500
正确答案:C
41.
有如下类的定义:
class A{
public:
void fa(){ cout << “in A fa” << endl;}
virtual void fb(){cout << “in A fb” << endl;}
};
class B : public A{
public:
void fa(){ cout << “in B fa” << endl;}
void fb(){ cout << “in B fb” << endl;}
};
下列哪段代码运行时会输出以下结果:
in A fa
in B fb
A.
A* pa = new A;
pa->fa();
pa->fb();
B.
B b;
A& pr = b;
pr.fa();
pr.fb();
C.
A* pa = new B;
B* pb = new A;
pa->fa();
pb->fb();
D.
A a;
B b;
A& ar = b;
B& br = a;
ar.fa();
br.fb();
正确答案:B
42. 下面函数属于组函数的是?
A. To_date
B. Substr
C. To_char
D. Avg
正确答案:D
43.
C++中,int是基本数据类型, 如果我们定义一个类来表示一个整数对象的话,类的定义可能如下:
class Integer{
int x;
public:
Integer(int x=0):x(x){}
(空白处)
};
下列哪个运算符重载函数放入空白处是错误的:
A. friend ostream& operator<<(ostream&o,const Integer&i){return o<<i.x;}
B. friend istream& operator>>(istream&is,const Integer&i){return is>>i.x;}
C. friend const Integer operator+(const Integer&i1,const Integer&i2){return i1.x+i2.x;}
D. const Integer operator~(){ return ~x; }
正确答案:B
44. 以下有关指针和引用的讨论中不正确的是?
A. 可以定义指针的指针,但不能定义引用的引用
B. 可以定义指针的引用,但不能定义引用的指针
C. 可以定义指针的数组,但不能定义引用的数组
D. 可以定义数组的指针,但不能定义数组的引用
正确答案:D
45.
阅读如下C++代码:
int x = 10;
int& r = x;
r = 20;
cout << "x=" << x << endl;
int y = 200;
r = y;
y=100;
cout << "x=" << x << endl;
cout << "r=" << r<< endl;
cout << "y=" << y<< endl;
该代码的输出为:
A. x=10 x=200 r=200 y=100
B. x=20 x=200 r=100 y=100
C. x=20 x=200 r=200 y=100
D. x=20 x=100 r=100 y=100
正确答案:C
46. 下列说法错误的是?
A. 索引可以提高查询效率 所以索引越多越好
B. 索引会占有大量的空间
C. 视图占的空间很少 我们可以认为视图不占空间
D. 序列生成的值 一般用来做表中主键的值
正确答案:A
47. 显示所有的工资级别和级别对应的salary和first_name的SQL语句是"
A. Select grade,first_name,salary from s_emp,salgrade where salary(+) between losal and hisal
B.
展开阅读全文