C++自学指导书.docx

上传人:b****6 文档编号:6984683 上传时间:2023-01-14 格式:DOCX 页数:55 大小:98.93KB
下载 相关 举报
C++自学指导书.docx_第1页
第1页 / 共55页
C++自学指导书.docx_第2页
第2页 / 共55页
C++自学指导书.docx_第3页
第3页 / 共55页
C++自学指导书.docx_第4页
第4页 / 共55页
C++自学指导书.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

C++自学指导书.docx

《C++自学指导书.docx》由会员分享,可在线阅读,更多相关《C++自学指导书.docx(55页珍藏版)》请在冰豆网上搜索。

C++自学指导书.docx

C++自学指导书

《VisualC++》自学指导书

作业:

第一部分:

一、选择题

(1)      软件是指

A程序B程序和文档

C算法加数据结构D程序、数据与相关文档的完整集合

(2)软件调试的目的是

A发现错误B改正错误

C改善软件的性能D验证软件的正确性

(3)在面对对象方法中,实现信息隐蔽是依靠

A对象的继承B对象的多态

C对象的封装D对象的分类

(4)下列叙述重,不符合良好程序设计风格要求是

A程序的效率第一,清晰第二B程序的可读性好

C程序中要有必要的注释D输入数据前要有提示信息

(5)下列叙述中正确的是

A程序执行的效率与数据的存储结构密切相关

B程序执行的效率只取决于程序的控制结构

C程序执行的效率之取决于所处理的数据量

D以上三种说法都不对

(6)下列叙述中正确的是

A数据的输入结构与存储结构必定是——对应的

B计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D以上三种说法都不对

(8)一棵二叉树中共有70个叶子结点于80个度为1的结点,则该二叉树重的总结点数为

A219B221C229D221

(9)下列叙述重正确的是

A数据库系统是一个独立的系统,它需要操作系统的支持

B数据库技术的根本目标是要解决数据的共享问题

C数据库管理系统是数据库系统

D以上说法都不正确

(10)下列叙述中正确的是

A为了建立一个关系,首先是要构造数据的逻辑关系

B表示关系的二维表中各各组的每一个分量还可以分成若干数据项

C一个关系的属性名称为关系模式

D一个关系可以包括多个二维表

(11)在函数中,可以用auto,extem,register,和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是

AautoBextemCregisterDstatic

(12)对于一个类定义,下列叙述中错误的是

A如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

B如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数

C如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数

D如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

(13)如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问类型分别是

Apublic和publicBpublic和protected

Cprotected和publicDprotected和protected

(14)下列运算符函数中肯定不属于类FunNumber的成员函数的是

Aintoperator-(FunNumber)

BFunNumberoperator-()

CFunNumberoperator-(int)

Dintoperator–(FunNumber)(15)C++中的模板包括

A对象模板和函数模板B对象模板和类模板

C函数模板和类模板D变量模板和对象模板

(16)如果调用C++流进行输入输出,下面的叙述中正确的是

A只能借助于流对象进行输入输出

B只能进行格式化输入输出

C只能借助于cin和cout进行输入输出

D只能使用运算符》和《进行输入输出

(17)下列富豪中不属于C++关键字的是

AfriendBnamespaceCcontinueDbyte

(18)下列各组的量申明中,含义相同的一组是

Aunsignedlongint和longBsignedshortint和short

Bunsignedshort和shortDshortint和int

(19)必须用一对打括号括起来的程序段是

Aswitch语句中的case标号语句

Bif语句的分支

C循环语句的循环体

D函数的函数体

(20)语句的int*p=&k定义于指针P,于这个语句等效的语句序列是

Aint*p;p=&kBint*p;p=k

Cint*p;*p=&kDint*p;*p=k

(21)关于函数重载,下列叙述中错误的是

A重载函数的函数名必须相同

B重载函数必须在函数个数或类型上有所不同

C重载函数的返回值类型必须相同

D重载函数的函数体可以有所不同

(22)有如下头文件

Intf1();

Staticintf2();

ClassMA{

Public

Intf3();

Staticintf4();

};

在所描述的函数中,具有隐含的this指针的是

Af1Bf2Cf3Df4

(23)派生类的成员函数不能访问基类的

A共有成员和保护成员B共有成员

C私有成员D保护成员

(24)下列关于运算符重载的描述中,正确的是

A运算符重载为成员函数时,若参数表中五参数,重载的是一元运算符

B一元运算符只能作为成员函数重载

C二元运算符重载为非成员函数时,参数表中有一个参数

DC++中可以重载所有的运算符

(25)下列关于类模板的模板参数的叙述中,错误的是

A模板参数可以作为数据成员的类型

B模板参数可以作为成员函数的返回类型

C模板参数可以作为成员函数的参数类型

D模板函数不能作为成员函数的局部变量的类型

(26)已知一程序运行后执行的第一个输出操作是

Cout<

则此操作的输出结构是

A1234B******1234

C**********1234D1234******

(27)有如下程序

#include

Usingnamespacestd;

Classmyclass{

Public:

MyClass(){++count;}

~MyClass(){--count;}

Staticintgetcount(){returncount;}

Private

Staticintcount;

};

IntMyClass:

:

count=0;

Intmain(){

Myclassobj;

Cout<

MyClass*ptr=newMyClass;

Cout<

:

getcount();

Deleteptr;

Cout<

:

gercount();

Return();

}

程序的输出结果是

A121B232C221D122

程序的输出结果是

Aval=10const:

val=20

Bconst:

val=10const:

val=20

Cconst:

val=10val=20

Dval=10val=20

(29)有如下程序

#include

Usingnamespacestd;

Classpart{

Public;

Part(intx=(\):

val(x){cout,,val;}

-part(){cout<

Private;

Intval;

};

Classwhole{

Public;

Whole(intx,inty,intz=0):

p2(x),p1(y),val(z){cout<

Whole(){count,,val;}

Private;

Partp1,p2;

Intval;

};

Intmaint{

Wholeobj(1,2,3);

Resturn();

}

程序输出的结果是

A123321B213312C213

(30)有如下程序:

#include

Usingnamespacestd;

Classbase{

Public:

Base(intx=0){cout<

};

Classderived:

publicbase{

Public:

Derivedrin(x=y){cout<

Priblic:

Baseval;

};

Intmain(){

Derivedd(!

);

Return();

}

程序的输出结果是

A0B1C01D001

(31)若有如下类定义:

ClasssB{

Voidfun(){}

Protected;

Doublevarl;

Public:

Voidfun2(){}

};

ClassD:

publicB{

Protected;

Voidfun3(){}

};

已知obj是类D的对象,下列语句中不违反成员访问控制的权限的是

Aobj.fun1();Bobj.var1;Cobj.fun2();Dobj.fun3();

(32)有如下程序:

#include

Usingnamespacesid;

Classbase{

Public;

Voidoutput(){cout<<1;}

Virtualvoidprint(){cout<

};

Classderived:

publicbase{

Public:

Voidoutput(){cout<<2;}

Voidprint(){cout<<’D’;}

};

Intmain()

Base*passnewderived;

Ptr->output();

Ptr->print();

Deleteptr;

Return();

}

程序的输出结果是

A1BB1DC2BD2D

下列是重载乘法运算的函数原型声明,其中错误的是

Amyclassoperator*(double,double);

Bmyclassoperator*(double,myclass);

Cmyclassoperator*(myclass,double);

Dmyclassoperator*(myclass,myclass);

(35)有如下程序:

#include

Usingnamespacestd:

ClassB{

Public:

Virtualvoidshow(){cout<<”b”;}

};

ClassD:

publicB{

Public:

Voidshow(){cout<

};

Voidfun1(B*ptr){ptr->show();}

Voidfun2(B&ref){ref.show();}

Voidfun3(Bb){b.show();}

Intmain(){

Bb,*p=newD;

Dd;

Fun1(p);

Fun2(b);

Fun3(d);

Return();

}

程序的输出结果是

ADBDBBBDCDBBDDBD

二、填空题

(2).软件需求规格说明书应具有完整性、无歧视性、正确性、可验证性、可修改性等特征,最重要的是_______.

(3).在两种基本测试方法中_______测试的原则之一是保证所测模板中每一个独立路径至少要执行一次。

(4).线性表的存储结构主要分为顺序存储结构和链式储存结构。

队列中是一种特殊的线性表。

循环队列是队列的_____存储结构。

(5).对下列二叉树进行中序遍历的结果为______.

(6).在E-R图中,矩形属于______

在有定义语句:

inta=3,b=2,c=1;则表达式a

a:

b的值是_____

(7).执行下列语句后,变量sum的值是____.

Intsum=0;

For(intj=I;j<=I;j++)

For(intj=I;j<=I;j++)

Sum++;

(8).已知有函数f的定义如下:

Intf(){

Staticint-6;

s-2;

returns

}

则在某程序中第二次执行函数用语句f();时,函数f的返回值是_____.

(9)已知如下程序得输出结果时23,请将划线处缺失得部分补充完整。

#include

Usingnamespacestd;

Classmyclass{

Public:

Voidprint()cout{cout<<23;}

}

Intmain(){

Myclass*p=newmyclass();

______print();

Return();

Classsample{

Public:

Sample(){}

_________

}

(14)请将如下程序补充完整,使得输出结果为bbaa

#include

Usingnamespacestd;

ClassA{

Public:

_____{cout<<”aa”;}

};

ClassB:

publicA{

Public:

~B(){cout<<”bb”;}

};

Intmain(){

B*p=newB;

Deletep;

Return();

}

(15)请将下列栈类stack补充完整

Classstack{

Private;

Intplist[100];//int数组,用于存放栈的元素

Inttop;//栈顶元素(数组下标)

Public:

Stack():

top(0){}

Voidpush(sonsint&item);//新元素item压入栈

Intpop(void);//将栈顶元素弹出栈

};

Voidstack:

:

pbsh(constint&item){

If(top==99)//如果栈满,程序结束

Exit

(1);

Top++;//栈顶指针增1

___【15】____;

}

Intstack:

:

pop(){

If(top<0)//如果栈空,程序结束

Exit

(1);

Returnplish[top--];

}

 

第一部分答案

填空题:

 

1.无歧性

2.逻辑覆盖

3.链式

4.ACBDFHGPE

5.实体

6.2

7.6

8.4

9.(*p)

10.ABBA

11.voidBase:

:

fun()

12.virtualdisplay()==0;

14.-A()

15.pList[top]=item

 

第二部分

一、选择题

(1)数据的存储结构是指

 A)存储在外存中的数据

 B)数据所占的存储空间量

 C)数据在计算机中的顺序存储方式

 D)数据的逻辑结构中计算机中的表示

(2)下列关于栈的描述中错误的是

 A)栈是先进后出的线性表

 B)栈只能顺序存储

 C)栈具有记忆作用

 D)对栈的插入与删除操作中,不需要改变栈底指针

(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是

 A)冒泡排序为n/2

 B)冒泡排序为n

 C)快速排序为n

 D)快速排序为n(n-1)/2

(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为

 A)log2n

 B)n/2

 C)n

 D)n+1

(5)下列对于线性链表的描述中正确的是

 A)存储空间不一定是连续,且各元素的存储顺序是任意的

 B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面

 C)存储空间必须连续,且前件元素一定存储在后件元素的前面

 D)存储空间必须连续,且各元素的存储顺序是任意的

(6)下列对于软件的描述中正确的是

 A)软件测试的目的是证明程序是否正确

 B)软件测试的目的是使程序运行结果正确

 C)软件测试的目的是尽可能多地发现程序中的错误

 D)软件测试的目的是使程序符合结构化原则

(7)为了使模块尽可能独立,要求B

 A)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强

 B)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱

 C)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱

 D)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强

(8)下列描述中正确的是

 A)程序就是软件

 B)软件开发不受计算机系统的限制

 C)软件既是逻辑实体,又是物理实体

 D)软件是程序、数据与相关文档的集合

(9)数据独立性是数据库技术的重要特点之一。

所谓数据独立性是指

 A)数据与程序独立存放

 B)不同的数据被存放在不同的文件中

 C)不同的数据只能被对应的应用程序所使用

 D)以上三种说法都不对

(10)用树形结构表示实体之间联系的模型是

 A)关系模型

 B)网状模型

 C)层次模型

 D)以上三个都是

(11)算法具有五个特性,以下选项中不属于算法特性的是

 A)有穷性

 B)简洁性

 C)可行性

 D)确定性

(12)以下选项中可作为C语言合法常量的是

 A)-80.

 B)-080

 C)-8e1.0

 D)-80.0e

(13)以下叙述中正确的是

 A)用C程序实现的算法必须要有输入和输出操作

 B)用C程序实现的算法可以没有输出但必须要有输入

 C)用C程序实现的算法可以没有输入但必须要有输出

 D)用C程序实现的算法可以既没有输入也没有输出

(14)以下不能定义为用户标识符的是

 A)Main

 B)_0

 C)_int

 D)sizeof

(15)以下选项中,不能作为合法常量的是

 A)1.234e04

 B)1.234e0.4

 C)1.234e+4

 D)1.234e0

(16)数字字符0的ASCII值为48,若有以下程序

main()

{chara='1',b='2';

printf("%c,",b++);

printf("%d\n",b-a);

}

程序运行后的输出结果是

 A)3,2

 B)50,2

 C)2,2

 D)2,50

(17)有以下程序

main()

{intm=12,n=34;

printf("%d%d",m++,++n);

printf("%d%d\n",n++,++m);

}

程序运行后的输出结果是

 A)12353514

 B)12353513

 C)12343514

 D)12343513

(18)有定义语句:

intb;charc[10];,则正确的输入语句是

 A)scanf("%d%s",&b,&c);

 B)scanf("%d%s",&b,c);

 C)scanf("%d%s",b,c);

 D)scanf("%d%s",b,&c);

(19)有以下程序

main()

{intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是

 A)m=123n=456p=789

 B)m=123n=456p=789

 C)m=123,n=456,p=789

 D)123456789

(20)有以下程序

main()

{

inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);

}

程序运行后的输出结果是

 A)6,1

 B)2,1

 C)6,0

 D)2,0

(21)有以下程序

main()

{inti=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

printf("%d%d%d\n",i,j,k);

}

程序运行后的输出结果是

 A)123

 B)234

 C)223

 D)233

(22)若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a A)1

 B)2

 C)3

 D)4

(23)有以下程序

main()

{

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)if(p[i]%2)j+=p[i];

printf("%d\n",j);

}

程序运行后的输出结果是

 A)42

 B)45

 C)56

 D)60

(24)有以下程序

main()

{chara[7]="a0\0a0\0";inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d\n",i,j);

}

程序运行后的输出结果是

 A)22

 B)76

 C)72

 D)62

(25)以下能正确定义一维数组的选项是

 A)inta[5]={0,1,2,3,4,5};

 B)chara[]={0,1,2,3,4,5};

 C)chara={’A’,’B’,’C’};

 D)inta[5]="0123";

(26)有以下程序

intf1(intx,inty){returnx>y?

x:

y;}

intf2(intx,inty){returnx>y?

y:

x;}

main()

{inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf("%d,%d%d\n",e,f,g);

}

程序运行后的输出结果是

 A)4,3,7

 B)3,4,7

 C)5,2,7

 D)2,5,7

(27)已有定义:

chara[]="xyz",b[]={’x’,’y’,’z’};,以下叙述中正确的是

 A)数组a和b的长度相同

 B)a数组长度小于b数组长度

 C)a数组长度大于b数组长度

 D)上述说法都不对

(28)有以下程序

voidf(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

main()

{inta[8]={1,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1