4399 C++测试题
一.选择题:
1.以下代码执行的结果是什么? a
void main()
{
int i;
char a[]="String";
char *p="New Sring";
char *Temp;
Temp=a;
a=malloc(strlen(p) + 1);
strcpy(a,p);
p = malloc(strlen(Temp) + 1);
strcpy(p,Temp);
printf("(%s, %s)",a,p);
free(p);
free(a);
}
a) 交换p 和& a的内容,同时打印出 New string, string
c) 在第5行生成编译期错误
d) 在第7行生成编译期错误 e) 在第1行生成编译期错误
2. 下面程序的执行结果是? b
char *gxxx()
{
static char xxx[1024];
return xxx;
}
void main()
{
char *g="string";
strcpy(gxxx(),g);
g = gxxx();
strcpy(g,"oldstring");
printf("The string is : %s",gxxx());
}
a) The string is : string
b) The string is :Oldstring
c) 产生执行期错误
d) 产生编译期语法错误
e) 以上都不对
3. 以下程序的执行结果是? c
void myalloc(char *x, int n)
{
x= (char *)malloc(n*sizeof(char));
memset(x,\0,n*sizeof(char));七一活动计划
}
main()
{
char *g="String";
myalloc(g,20);
strcpy(g,"Oldstring");
printf("The string is %s",g);
}
a) The string is : String
b) 执行期错误
c) The string is : Oldstring
d) 编译期语法错误
e) 以上都不对
4.以下代码的执行结果是? c
void main()
{
char p[]="String";
int x=0;
if(p=="String")
{
printf("Pass 1");
if(p[sizeof(p)-2]=='g')
printf("Pass 2");
else
printf("Fail 2");
}
else
{
printf("Fail 1");
if(p[sizeof(p)-2]=='g')
printf("Pass 2");
else
printf("Fail 2");
}
}
a) Pass 1, Pass 2
b) Fail 1, Fail 2
c) Pass 1, Fail 2
d) Fail 1, Pass 2
e) 编译器语法错
5. 对于下面的代码,哪个说法是对的? b
const char *p; 以及 char * const p;
a) 两个字符串内容都不可修改
b) 第一个: 不可修改字符串内容,第二个,不可假改指针内容
c) 两个指针都不可修改
d) 第一个: 不可修改指针,第二个,不可修改字符串内容
e) 以上说法都不对
6. 以下代码的输出是? c
void main()
{
char c=-64;
int i=-32;
unsigned int u =-16;
if(c>i)
{
printf("pass1,");
if(c<u)
printf("pass2");
else
printf("Fail2");
}
else
{
printf("Fail1);
if(i<u)
printf("pass2");
else
printf("Fail2")
}
}
a) Pass1,Pass2
b) Pass1,Fail2
c) Fail1,Pass2
d) Fail1,Fail2
e) 以上都不对
7. 以下代码的输出是 e
void main()
{
int i=0;
for(i=0;i<20;i++)
{
switch(i)
{
case 0:
i+=5;
case 1:
i+=2;
case 5:
i+=5;
default:
i+=4;
break;
}
printf("%d,",i);
}
}
a) 0,5,9,13,17
b) 5,9,13,17
c) 12,17,22
d) 16,21
e) 语法错误
8. 下面哪个说法是对的? d
class A
{
virtual void func1();
void func2();
}
Class B: public class A
{
void func1()
{
cout << "fun1 in class B" << endl;
}
virtual void func2()
{
cout << "fun2 in class B" << endl;
}
}
b) A中的func1和B中的func2都不是虚函数如何把多张照片合成一张.
c) A中的func2是虚函数.,B中的func1不是虚函数.
d) A中的func2不是虚函数,B中的func1是虚函数.
9. cout是I/O流库预定义的什么?. b
a)类
关于莲的故事b)对象
c)包含文件
d)常量
a)cout<<pa;
b)cout<<*pa;
c)cout<<&pa;
d)cout<<unsigned long(&pa);
11. 32位系统下,有一个类A定义如下:
Class A
{
Int M1;
Float M2;
Virtual void F1( void );
Void F2( void );
Static void F3( void );
};
定义一个A的实例a,请问a在常规的编译实现下,所占的内存空间有多大b
a)8
b)12
c)16
d)20
e)24
f) 以上答案都不对
12. 32位系统下,有一个类A定义如下:
定义一个A的实例a,请问a在常规的编译实现下,所占的内存空间有多大
Class A
{
Int M1;
Float M2;
Static Float M3;
Static const Int M4;
Enum M5
{
E1 = 1;
E2 = 2;
}
};
定义一个A的实例a,请问a在常规的编译实现下,所占的内存空间有多大 d
a)8
b) 12
c)16
d)20
e)24
f) 以上答案都不对
13. 已知类型定义如下:
class A
{
int x;
virtual ~A(){}
};
class B: public A
{
int y;
}
以下表达式的输出为: c
A* pa = New A; //假定pa赋值后的地址为0x111111;
B* pb = dynamic_cast< B*>( pa );
寇仲宋玉致请问以上代码执行后,pb的值是:
a)0
b)与pa相同,即为0x111111
c)抛出异常
d)在pa地址上,进行类型换算偏移后的地址
e)以上结果都不对
14. 已知类型定义如下:
class A
{
int x;
virtual ~A(){}
};
class B: public A
{
int y;
}
以下表达式的输出为:
A* pa = New A; //假定pa赋值后的地址为0x111111;
B& b = dynamic_cast< B&>(* pa );
请问以上代码执行后, b的地址是: c
a)0
b)与pa相同,即为0x111111
c)抛出异常
d)在pa地址上,进行类型换算偏移后的地址
e)以上结果都不对
15. 关于this指针的说法错误的是梅花的句子唯美短句 d
a) this指针不需要显示说明
b) 虚函数拥有this指针
c) 成员函数拥有this指针
d) 静态成员函数拥有this指针
董洁的老公16. 下面对构造函数的不正确描述是 a
a) 系统可以提供默认的构造函数
b) 构造函数可以有参数,所以可以有返回值
c) 构造函数可以重载
d) 构造函数可以设置默认参数
17.下列对模板的声明,正确的是 c
a) template <T>
b) template <class T1,T2>
c) template <class T1,class T2>
d) template <class T1;class T2>
18. 什么函数只能访问静态成员变量。 b
a) 静态函数
b) 虚函数
c) 构造函数
d) 析构函数
19 假定类定义如下:
Class A
{
~A(void){}
}
Class B
{
~B( void){}
}
Class C :public B
{
~C( void ){}
A a;
}
现有C的实例c,则当C被销毁时,调用的析构函数的顺序为 e
a) ~C(), ~A(), ~B();
b) ~A(),~C(),~B()
c) ~B(),~A(),~C()
d) ~C(),~B(),~A()
e) ~A,~B(),~C()
f) ~B(),~C(),~A()
20假定类定义如下:
Class A
{
A(void){}
}
Class B
{
B( void){}
}
Class C :public B
{
C( void ){}
A a;
}
现有C的实例c,则当C被创建时,调用的建构函数的顺序为 a
a) C(),A(),B();
b) A(),C(),B()
c) B(),A(),C()
d) C(),B(),A()
e) A, B(),C()
f) B(),C(),A()
二.问答题
1.以下程序的输出是
#include<iostream.h>
#define MAX(a,b) a > b ? a : b
void main ()
发布评论