C试题
类型:C试题 | 试题:55道试题(50道选择题,5道问答题)
注意: 答题过程如果您不提交答案,或者关闭浏览器退出,我们将不再允许您再次答题。
谢谢!
试题 选项
Question 1. (单选)
在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为(3)
1. 2
2. 3
3. 4
4. 5
Question 2. (单选)
设散列表的存储空间大小为19,所用散列函数为h(key)=key mod 19,用开地址线性探查法解决碰撞。散列表的当前状态如下:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190 194 768 559 582 393 208.现要将关键码值75插入到该散列表中,其地址应为 (1)
1. 1
2. 11
3. 5
4. 15
Question 3. (单选)
作业管理的主要任务包括作业输入、作业处理和作业输出。其中作业处理的工作是Ⅰ.作业调度 Ⅱ.作业控制 Ⅲ.作业后备 (3)
1. 只有Ⅰ
2. 只有Ⅱ
3. Ⅰ和Ⅱ
4. 都是
Question 4. (单选)
系统为了管理文件,设置了专门的数据结构----文件控制块(FC。FCB是在执行下列哪一个系统调用时建立的? (1)
1. create
2. open
3. read
4. write
Question 5. (单选)
下面关于通道的叙述中,正确的是Ⅰ.通道相当于一个功能简单的处理机Ⅱ.通道完成数据输
入输出工作Ⅲ.通道与CPU共用一个内存 (4)
1. Ⅰ和Ⅱ
2. Ⅰ和Ⅲ
3. Ⅱ和Ⅲ
4. 都是
Question 6. (单选)
互操作性是指在不同环境下的应用程序可以相互操作,交换信息。要使采用不同数据格式的各种计算机之间能够相互理解,这一功能是由下面哪一层来实现的? (2)
1. 应用层
2. 表示层
3. 会话层
4. 传输层
Question 7. (单选)
在UNIX的Shell程序中,可以使用位置变量。若要指明Shell引用的最近后台进程的号码,可以使用位置变量 (2)
1. $$
2. $!
3. $#
4. $-
Question 8. (单选)
设二叉树根结点的层次为0,一棵深度(高度)为k的满二叉树和同样深度的完全二叉树各有f个结点和c个结点,下列关系式不正确的是: (2)
1. f>=c
2. c>f
3. f=2k+1-1
4. C>2k-1
Question 9. (单选)
单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列中哪一个是正确的? (3)
1. q:=p^.link; p^.link:=q^.link
2. p^.link:=q^.link; q:=P^.link
3. q^.link:=p^.link; p^.link:=q;
4. p^.link:=q; q^.link:=p^,link
Question 10. (单选)
某二叉树结点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E。该二叉树结点的前序序列为 (2)
1. E、G、F、A、C、D、B
2. E、A、C、B、D、G、F
3. E、A、G、C、F、B、D
4. E、G、A、C、D、F、B
Question 11. (单选)
某二叉树结点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E。该二叉树对应的树林包括多少棵树? (2)
1. 1
2. 2
3. 3
4. 4
Question 12. (单选)
某二叉树结点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E。该二叉树对应的树林结点的层次次序序列为 (1)
1. E、G、F、A、C、D、B
2. E、A、C、B、D、G、F
3. E、A、G、C、F、B、D
4. E、G、A、C、D、F、B
Question 13. (单选)
假设就绪队列中有10个进程,系统将时间片设为200ms, CPU进行进程切换要花费10ms。则系统开销所占的比率约为 (2)
1. 1%
2. 5%
3. 10%
4. 20%
Question 14. (单选)
长度相同但格式不同的2种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其它
规定均相同,则它们可表示的数的范围和精度为: (2)
1. 两者可表示的数的范围和精度相同
2. 前者可表示的数的范围大但精度低
3. 后者可表示的数的范围大且精度高
4. 前者可表示的数的范围大且精度高
Question 15. (单选)
所谓“变号操作”是指将一个整数变成绝对值相同但符号相反的另一个整数。假设使用补码表示的8位整数X=10010101,则经过变号操作后结果为:(4)
1. 1101010
2. 10101
3. 11101010
4. 1101011
Question 16. (单选)
设有一个用数组Q[1..m」表示的环形队列,约定f为当前队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向),若队列非空,则计算队列中元素个数的公式应为:(2)
1. r-f
2. (m+r-f) mod m
3. (m-r+f)mod m
4. (m-r-f) mod m
Question 17. (单选)
计算机最主要的工作特点是(2)
1. 存储程序与自动控制
2. 高速度与高精度
3. 可靠性与可用性
4. 有记忆能力
Question 18. (单选)
计算机中数据的表示形式是(3)
1. 八进制
2. 十进制
3. 二进制
4. 十六进制
Question 19. (单选)
下面列出的四种存储器中,易失性存储器是(1)
1. RAM
2. ROM
3. PROM
4. CD-ROM
Question 20. (单选)
I/O接口位于 (2)
1. 总线和设备之间
2. CPU和I/O设备之间
3. 主机和总线之间
4. CPU和主存储器之间
Question 21. (单选)
计算机硬件能直接识别和执行的只有(4)
1. 高级语言
2. 符号语言
3. 汇编语言
4. 机器语言
Question 22. (单选)
具有多媒体功能的微型计算机系统中,常用的CD-ROM是(2)
1. 只读型大容量软盘
2. 只读型光盘
3. 只读型硬盘
4. 半导体只读存储器
Question 23. (单选)
微机中1K字节表示的二进制位数是(4)
1. 1000
2. 8x1000
3. 1024
4. 8x1024
Question 24. (单选)
下列字符中,ASCII码值最小的是(2)
1. a
2. A
3. x
4. Y
Question 25. (单选)
OSI(开放系统互联)参考模型的最低层是(3)
1. 传输层
2. 网络层
3. 物理层
4. 应用层
Question 26. (单选)
在面向对象的系统中,系统责任的良好分配原则是(3)
1. 在类之间均匀分配
2. 集中分配在少数控制类中
3. 根据交互图的消息进行分配
4. 根据个人喜好进行分配
Question 27. (单选)
在CMM模型中,对软件成熟度有以下5个级别,请从低到高排序
a 初始级:软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过定义的,成功依赖于个人的努力。
b 优化级:利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能。
c 已定义级:管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到组织的标准软件过程。
d 已管理级:已采集详细的有关软件过程和产品质量的度量,无论软件过程还是产品均得到定量了解和控制。
e 可重复级:已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律已经就位,使具有类似应用的项目。能重复以前的成功。(3)
1. acdbe
2. adceb
3. aecdb
4. abcde
Question 28. (单选)
在下面所列举的逻辑测试覆盖中,测试覆盖最强的是(3)
1. 条件覆盖
2. 条件组合覆盖
3. 语句覆盖
4. 条件及判定覆盖
Question 29. (单选)
一般来说,在软件维护过程中,大部分工作是由什么引起的(3)
1. 适应新的软件环境
2. 适应新的硬件环境
3. 用户的需求改变
4. 程序的可靠性
Question 30. (单选)(2)
PSP是?
1. 团队软件过程
2. 个体软件过程
3. 过程改进过程
4. 质量管理过程
Question 31. (单选)
假定a和b为int型变量,则执行以下语句后b的值为 (4)
a=1; b=10; do { b-=a; a++; } while (b--<0);
1. 9
2. -2
3. -1
4. 8
Question 32. (单选)
设有以下宏定义: #define N 3 ,
#define Y(n) ( (N+1)*n) ,
则执行语句:z=2 * (N+Y(5+1));后,z的值为 (3)
1. 出错
2. 42
3. 48
4. 54
Question 33. (单选)
执行以下程序段后,m的值为 (1)
int a[2][3]={ {1,2,3},{4,5,6} };
int m,*p;
p=&a[0][0];
m=(*p)*(*(p+2))*(*(p+4));
1. 15
2. 14
3. 13
4. 12
Question 34. (单选)
有以下程序
main()
{ char a[]="programming", b[]="language";
char *p1,*p2;
int i;
p1=a; p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); }
输出结果是 (4)
1. gm
2. rg
3. or
4. ga
Question 35. (单选)
有以下程序
int fun(int x,int y,int *cp,int *dp)
{ *cp=x+y; *dp=x-y; }
main()
{ int a, b, c, d;
a=30; b=50;
fun(a,b,&c,&d);
printf("%d,%d
", c, d); }
输出结果是 (3)
1. 50,30
2. 30,50
3. 80,-20
4. 80,20
Question 36. (单选)
下述标识符中, 合法的用户标识符是(4)
1. A#C
2. getch
3. void
4. sizeOf
Question 37. (单选)
以下选项中合法的字符常量是(3)
1. A
2. ''10''
3. 68
4. D
Question 38. (单选)
以下叙述正确的是 (3)
1. 在C程序中,main函数必须位于程序的最前面
2. C程序的每行中只能写一条语句
3. C语言本身没有输入输出语句
4. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
Question 39. (单选)
以下叙述中不正确的是 (4)
1. 在不同的函数中可以使用相同名字的变量
2. 函数中的形式参数是局部变量
3. 在一个函数内定义的变量只在本函数范围内有效
4. 在一个函数内的复合语句中定义的变量在本函数范围内有效
Question 40. (单选)
设int类型的数据长度为2个字节,则 unsigned int 类型数据的取值范围是 (2)
1. 0~255
2. 0~65535
3. -32768~32767
4. -256~255
Question 41. (单选)
某文件中定义的静态全局变量(或称静态外部变量)其作用域是 (2)
1. 只限某个函数
2. 本文件
3. 跨文件
4. 不限制作用域
Question 42. (单选)
语句:printf("%d",12 & 012);的输出结果是 (3)
1. 12
2. 012
3. 8
4. 6
Question 43. (单选)
设int x=4; 则执行以下语句: x+=x-=x-x;后,x的值为 (3)
1. 0
2. 4
3. 8
4. 12
Question 44. (单选)
while(!x)中的(!x)与下面条件等价。 (4)
1. x==1
2. x!=1
3. x!=0
4. x==0
Question 45. (单选)
已知int i,a;执行语句: i=(a=2*3,a*5),a+6;后,变量i的值是 (3)
1. 6
2. 12
3. 30
4. 36
Question 46. (单选)
整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 (4)
1. x || y
2. x | y
3. x & y
4. x ^ y
Question 47. (单选)
x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 (2)
1. INPUT x、y、z;
2. scanf("%d%d%d",&x,&y,&z);
3. scanf("%d%d%d",x,y,z);
4. read("%d%d%d",x,y,z);
Question 48. (单选)
以下各选项企图说明一种新的类型名,其中正确的是 (2)
1. typedef v1 int;
2. typedef int v3;
3. typedef v4: int;
4. typedef v2=int;
Question 49. (单选)
char x=3,y=6,z;
z=x^y<<2;
则z的二进制值是 (2)
1. 10100
2. 11011
3. 11100
4. 11000
Question 50. (单选)
若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是 (2)
1. i=*p;
2. *p=*&j;
3. i=&j;
4. i=**p;
Question 51. (问答)
给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a的bit 3。在上两个操作中,要保持其它位不变。
a|=0x4;
int b=a&0x7;
a>>=4;
a=(a<<4)|b;
Question 52. (问答)
有双向循环链表结点定义为:
struct node
{ int data;
struct node *front,*next;
};
有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中dat
a值相同的结点删除
struct node
{ int data;
struct node *front,*next;
};
node* del(node *pHead){
if(pHead==pHead->next){
free(pHead);
return NULL;
}
node *p=pHead;
pHead->next->front=pHead->front;
pHead->front->next=pHead->next;
pHead=pHead->next;
free(p);
return pHead;
}
void delequ(node*pHeadA,node *pHeadB){
node *pA=pHeadA;
node *pB;
int flag;
do{
flag=0;
pB=pHeadB;
do{
if(pB->data==pA->data){
if(pA==pHeadA){
pHeadA=pA=del(pHeadA);
flag=1;
}
else{
pA=del(pA);
}
pB=del(pB);
break;
}
pB=pB->next;
}while(pB!=pHeadB);
if(flag==0){
pA=pA->next;
}
}while(!pA && !pB && (flag||(pA!=pHeadA)));
}
Question 53. (问答)
编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"c
ad"char* constr(char *A,char *B){
int lenA=strlen(A),lenB=strlen(B);
int itmp,conlen=0;
char *pequ,*pH=NULL;
char *pA,*pB,*pA2,*pB2;
for(pA=A;pA-A for(pB=B;pB-B if(*pB==*pA){
pA2=pA+1;
pB2=pB+1;
for(itmp=1;*pA2==*pB2 && pA2++-A if(itmp>conlen){
conlen=itmp;
pH=pA;
}
}
pB++;
}
}
pequ=(char*)malloc(conlen+1);
memcpy(pequ,pH,conlen);
*(pequ+conlen)=''\0'';
return pequ;
}
Question 54. (问答)
说明关键字static和volatile的含义
static用于外部变量或者函数时,限制了它们的作用域为文件内部;static也可以用于内
部变量,这样,内部变量在每次函数调用时都为同一存储,值具有连续性。
volatile说明了一个变量的值是会随机变化的,即使程序没有对它进行任何赋值操作。它
告诉编译器的优化处理器,这些变量是实实在在存在的,在优化过程中不能无故消除,这样就保证了编译后的代码在每次操作是从变量地址
处取数。
Question 55. (问答)
编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列
库函数
void put(long data){
long mask=0x1<<(8*sizeof(long)-1);
int i;
char c;
if(data&mask)
putchar(''1'');
else
putchar(''0'');
mask=0x1<<(8*sizeof(long)-2);
for(i=1;i<8*sizeof(long);i++){
if(data&mask)
putchar(''1'');
else
putchar(''0'');
mask>>=1;
}
putchar(''\n'');
mask=0xf<<(8*sizeof(long)-4);
c=(data&mask)>>(8*sizeof(long)-4);
if(c<10)
putchar(c+''0'');
else
putchar(c+''a'');
mask=0xf<<(8*sizeof(long)-8);
for(i=1;i<2*sizeof(long);i++){
c=(data&mask)>>(8*sizeof(long)-4*i-4);
if(c<10)
putchar(c+''0'');
else
putchar(c+''a'');
mask>>=4;
}
}
雅虎笔试题
IP地址18.7.0.1属于:
1. A类地址
2. B类地址
3. C类地址
4. D类地址
Question 2. (单选)
FTP协议的端口号码是:
1. 21
2. 23
3. 25
4. 1080
Question 3. (多选)
正则表达式 ab?c 匹配的字符串是:
1. abcd
2. acd
3. abdc
4. abbc
Question 4. (多选)
UNIX程序运行时会自动打开的文件描述符包括:
1. 标准输入
2. 标准输出
3. 标准错误
4. 系统日志
Question 5. (多选)
下列可以用于进程间通信的技术有:
1. 管道
2. SOCKET
3. 共享内存
4. 消息队列
Question 6. (多选)
数据通信中数据传输速率是最重要的性能指标之一,它指单位时间内传送的二进制数据
位数,常用的计量单位是:
1. Kbps
2. Byte
3. MB
4. Mbps
Question 7. (单选)
互操作性是指在不同环境下的应用程序可以相互操作,交换信息。要使采用不同数据格式
的各种计算机之间能够相互理解,这一功能是由下面哪一层来实现的?
1. 应用层
2. 表示层
3. 会话层
4. 传输层
Question 8. (单选)
在UNIX的Shell程序中,可以使用位置变量。若要指明Shell引用的最近后台进程的号码,
可以使用位置变量
1. $$
2. $!
3. $#
4. $-
Question 9. (单选)
设二叉树根结点的层次为0,一棵深度(高度)为k的满二叉树和同样深度的完全二叉树各
有f个结点和c个结点,下列关系式不正确的是:
1. f>=c
2. c>f
3. f=2k+1-1
4. C>2k-1
Question 10. (单选)
某二叉树结点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E
。该二叉树结点的前序序列为
1. E、G、F、A、C、D、B
2. E、A、C、B、D、G、F
3. E、A、G、C、F、B、D
4. E、G、A、C、D、F、B
Question 11. (单选)
某二叉树结点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E
该二叉树对应的树林包括多少棵树?
1. 1
2. 2
3. 3
4. 4
Question 12. (单选)
假设就绪队列中有10个进程,系统将时间片设为200ms, CPU进行进程切换要花费10ms。
则系统开销所占的比率约为
1. 1%
2. 5%
3. 10%
4. 20%
Question 13. (单选)
长度相同但格式不同的2种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其
它规定均相同,则它们可表示的数的范围和精度为:
1. 两者可表示的数的范围和精度相同
2. 前者可表示的数的范围大但精度低
3. 后者可表示的数的范围大且精度高
4. 前者可表示的数的范围大且精度高
Question 14. (单选)
设有一个用数组Q[1..m」表示的环形队列,约定f为当前队头元素在数组中的位置,r为
队尾元素的后一位置(按顺时针方向),若队列非空,则计算队列中元素个数的公式应为
:
1. r-f
2. (m+r-f) mod m
3. (m-r+f)mod m
4. (m-r-f) mod m
Question 15. (单选)
计算机最主要的工作特点是
1. 存储程序与自动控制
2. 高速度与高精度
3. 可靠性与可用性
4. 有记忆能力
Question 16. (单选)
具有多媒体功能的微型计算机系统中,常用的CD-ROM是
1. 只读型大容量软盘
2. 只读型光盘
3. 只读型硬盘
4. 半导体只读存储器
Question 17. (单选)
下列字符中,ASCII码值最小的是
1. a
2. A
3. x
4. Y
Question 18. (单选)
当个人计算机以拨号方式接入Internet网时,必须使用的设备是
1. 网卡
2. 调制解调器(Modem)
3. 电话机
4. 浏览器软件
Question 19. (单选)
微机计算机硬件系统中最核心的部件是
1. 主板
2. CPU
3. 内存储器
4. I/O设备
Question 20. (单选)
下列关于系统软件的四条叙述中,正确的一条是
1. 系统软件与具体应用领域无关
2. 系统软件与具体硬件逻辑功能无关
3. 系统软件是在应用软件基础上开发的
4. 系统软件并不具体提供人机界面
Question 21. (单选)
在计算机网络中,表征数据传输可靠性的指标是
1. 传输率
2. 误码率
3. 信息容量
4. 频带利用率
Question 22. (单选)
以下哪一个不是栈的基本运算
1. 删除栈顶元素
2. 删除栈底元素
3. 判断栈是否为空
4. 将栈置为空栈
Question 23. (单选)
设有关系R(S,D,M),其函数依赖集F={S→D,D→M}。则关系R至多满足
1. 1NF
2. 2NF
3. 3NF
4. BCNF
Question 24. (单选)
网络协议的三个要素是语法、语义与
1. 工作原理
2. 时序
3. 进程
4. 服务原语
Question 25. (单选)
WWW的超链接中定位信息所在的位置使用的是
1. 超文本(hypertext)技术
2. 统一资源定位器(URL, Uniform Resource Locators)
3. 超媒体(hypermedia技术)
4. 超文本标注语言HTML
Question 26. (单选)
提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错
误技术无法做到完美无缺和绝无错误,这就需要
1. 测试
2. 消除错误
3. 避开错误
4. 容错
Question 27. (单选)
可行性研究要进行一次_____需求分析
1. 详细的
2. 全面的
3. 简化的、压缩的
4. 彻底的
Question 28. (多选)
以下哪些内容需要进行配置管理?
1. 代码
2. 需求
3. 详细设计
4. 项目例会记录
Question 29. (单选)
详细设计的结果基本决定了最终程序的
1. 代码规模
2. 运行速度
3. 质量
4. 可维护性
Question 30. (多选)
软件开发包括哪些过程?
1. 需求分析
2. 设计
3. 编码
4. 测试
Question 31. (多选)
C++编译器通常不进行( )的检查
1. 函数原型
2. 变量类型
3. 数组边界
4. 指针类型
Question 32. (多选)
在派生类中能直接访问基类的哪些成员?
1. 公有成员
2. 保护成员
3. 私有成员
4. 所有成员
Question 33. (单选)
已知f1 f2同一类两个成员函数,但f1不能调用f2;则下列哪种说法正确?
1. f1 f2都是静态函数
2. f1是静态,f2不是静态函数
3. f1不是静态函数,f2是静态函数
4. f1 f2都不是静态函数
Question 34. (单选)
X = ++i + ++j; X的值等于?
1. i + j + 3
2. i + j + 2
3. i + j + 1
4. i + j
Question 35. (单选)
设int x; 则经过()之后,语句*px=0;可以将变量x的值置为0。
1. int *px;
2. int const *px = &x;
3. int *const px=&x;
4. const int *px = &x;
Question 36. (单选)
使用操作符setw对数据进行格式输出时,需要包含( )文件
1. iostream.h
2. fstream.h
3. iomanip.h
4. stdlib.h
Question 37. (多选)
调用一成员函数时,下面列出的哪些情况使用动态联编(动态绑定)?
1. 通过对象调用一虚函数
2. 通过指针或引用调用一虚函数
3. 通过对象调用静态函数
4. 通过指针或引用调用一静态函数
Question 38. (单选)
假定C是一个类,要为其实现加号运算符重载成员函数,实现两个C类对象的加法,并返
回结果。该成员函数的声明应该为:
1. C operator+(C &a, C &b);
2. C operator+ (C &a)
3. operator+ (C a)
4. C& operator+(C a, C b)
Question 39. (多选)
关于类的构造函数,哪些说法是正确的?
1. 可以是虚函数
2. 返回类型只能是void
3. 一个类只能有一个构造函数
4. 没有任何返回类型
Question 40. (单选)
C++中,对于基类中的protected成员,当以protected方式派生一个新类时,该成员将成
为派生类的( )成员
1. private
2. protected
3. public
4. 非法
Question 41. (单选)
C++基类指针可以访问派生类对象,但不能访问派生类对象的( )成员
1. private
2. protected
3. public
4. 新增
Question 42. (多选)
const int *p说明不能修改 ( )
1. p指针
2. p指针指向的变量
3. p指针指向的数据类型
4. 上述A、B、C三者
Question 43. (多选)
下列定义中,哪些是错误的?
1. template T foo (int *T);
2. inline template void foo (T, unsigned int );
3. template T foo (U);
4. template foo (T, T);
Question 44. (单选)
考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调
用的是
1. test(5);
2. test(5,8);
3. test(6,"#")
4. test(0,0."*");
Question 45. (多选)
下面关于iterator的用法,哪些是错误的?
const vector ivec;
vector svec;
list ilist;
1. vector::iterator it = ivec.begin();
2. list::iterator it = ilist.begin() + 2;
3. vector::iterator it = &svec[0];
4. for (vector::iterator it=svec.begin();it!=svec.end();++it) { …}
Question 46. (多选)
下面的函数声明中,哪些声明表示函数会抛出异常?
1. void funca (int) throw(string);
2. void funcb(int) throw ();
3. void funcc (int);
4. void funcd (int) throw (Exception);
Question 47. (单选)
有如下程序:
class BASE{
char c;
public:
BASE(char n):c(n){}
virtual~BASE(){cout< };
class DERIVED:public BASE{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
~DERIVED(){cout< };
int main()
{ DERIVED("X");
return 0;
}
执行上面的程序将输出()
1. XY
2. YX
3. X
4. Y
Question 48. (多选)
下面哪些运算符不能被重载?
1. 作用域运算符“::”
2. 对象成员运算符“.”
3. 指针成员运算符“->”
4. 三目运算符“? :”
Question 49. (单选)
下面有关重载函数的说法中正确的是
1. 重载函数必须具有不同的返回值类型
2. 重载函数形参个数必须不同
3. 重载函数必须有不同的形参列表
4. 重载函数名可以不同
Question 50. (单选)
C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行
的最大改进是
1. 面向过程
2. 面向对象
3. 安全性
4. 复用性
Question 51. (问答)
编写类String的构造函数、析构函数和赋值函数
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数。
Question 52. (问答)
请实现一个“先进先出(FIFO)”队列类;并写一段示例代码来演示如何使用您定义的
类完成队列的数据操作。
Question 53. (问答)
请编写代码完成如下功能:
1. 类Shape是纯虚基类,Circle和Squre都是Shape类的派生类;
2. 每个实例都有一个唯一的ID,该ID自动分配,全局统一。如在执行 Circle c1,c2;
Sqaure s1, s2;后,c1的id是1, c2的id是2,s1的id是3,s2的id是4。
3. 每个类实现方法area,计算该实例图形的面积
4. 为类重载cout操作符,输出的数据格式为“名字 id 图形面积”(如:Square 5 ar
ea=100)
5. 实现void displayShapes (Shape []pShape, int iShapeCount); 输出pShape数组中
没有Shape的信息。
6. 实现main函数,创建10个Circle实例,5个Square实例,调用displayShapes()函数输
出Shape信息。
Question 54. (问答)
通常类A的拷贝构造函数的原型写为A(const A&);,请问为什么参数一定要使用引用形式?
Question 55. (问答)
C++中的空类(没有定义任何成员的类,如:class Empty {};),默认产生哪些类成员
函数?