收藏 分销(赏)

C++试题liquanguo87含答案.doc

上传人:二*** 文档编号:4515669 上传时间:2024-09-26 格式:DOC 页数:52 大小:889KB 下载积分:5 金币
下载 相关 举报
C++试题liquanguo87含答案.doc_第1页
第1页 / 共52页
本文档共52页,全文阅读请下载到手机保存,查看更方便
资源描述
. . 序号 考试场次 试卷名称 分数 考试时间 进入试卷 考试详情 考试场次: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.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服