C++试题及答案文档格式.docx
- 文档编号:15936167
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:55
- 大小:54.98KB
C++试题及答案文档格式.docx
《C++试题及答案文档格式.docx》由会员分享,可在线阅读,更多相关《C++试题及答案文档格式.docx(55页珍藏版)》请在冰豆网上搜索。
a[0]+i*d,其中d为该数组类型所占的字节数,TurboC++中int占二字节,而VC++中是4字节。
4、假定a为一个整型数组名,则元素a[4]的字节地址为
a[4]=a[0]+4*4
A.a+4
B.a+8
C.a+16
D.a+32
此题应注意的是:
在C++中、假定一下全是int型的数据则a(4)一个整型变量空间赋初值为4、而b[3]则代表长度为3的数组、其中有3个数值、而指针并不分配空间而是指向空间中的数据。
5、假定AB为一个类,则执行“AB
a(4),b[3],*p[2];
”语句时,自动调用该类构造函数的次数为
所以其值为:
4次
A.3
B.4
C.6
D.9
operator运算符重载用的其中&
的意思有三种:
1、位与2、取地址符3、表引用引用即为别名
6、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:
A.
AB
operator+(AB
a,AB
b)
B.
a)//应该是表示引用
C.
a)
D.
operator+()
二、填空题)
1、C++语言中的每条基本语句以
;
作为结束符,每条复合语句以
}
作为结束符。
2、执行“cout
<
<
char('
A'
+2)<
endl;
”语句后得到的输出结果为
C
ASCII码的应用
。
3、float《单精度》和double《双精度》类型的大小分别为
4
和
8
4、算术表达式
对应的C++表达式为
5、关系表达式x+y>
5的相反表达式为
x+y<
=5
6、假定一个一维数组的定义为“char
*a[8]---(指针数组);
”,则该数组所含元素的个数为
,所占存储空间的字节数为
32
//char一个字符占4个字节char(*a)[5]--(数组指针)
7、变量分为全局和局部两种,
局部
变量没有赋初值时,其值是不确定的。
8、假定a是一个二维数组,则a[i][j]的指针访问方式为
*(a[i]+j)
或者为:
*(*(a+i)+j)
所以在C++中可以实现:
a[i]=a+i;
//double为8个字节、int为:
4个字节指针在32位系统中所占的字节为4
//所以其运算结果为:
4+8+4*2=20,即为一般结构体所占空间的计算方法就是累加所有的字节数
9、假定一个结构类型定义为
“struct
D{int
a;
union{int
b;
double
c;
};
D
*d[2];
”,
则该类型的大小为
24
字节。
10、对一个类中的数据成员的初始化可以通过构造函数中的
初始化表
实现,也可以通过构造函数中的
函数体
实现。
11、假定AB为一个类,则执行“AB
a[10];
”语句时,系统自动调用该类的构造函数的次数为
10
《因为要分配至少十个空间出来》
构造函数的作用就是起到初始化的作用
12、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为
AB:
:
bb
即相当于bb属于AB类
三、给出下列程序运行后的输出结果
1、#include<
iostream.h>
voidSB(charch){
switch(ch){
case'
a'
cout<
"
well!
;
break;
B'
b'
good!
C'
c'
pass!
default:
bad!
}
}
voidmain(){
chara1='
a2='
a3='
f'
SB(a1);
SB(a2);
SB(a3);
SB('
);
SB(a1):
good
SB(a2)pass
SB(a3)bad
SB(‘A’)well
2、#include<
#include<
string.h>
//大写字符的范围从A-Y\Z为:
65-90
//小写字符的范围从a-z为:
97-122即小写要比大写多:
32
char*a[5]={"
student"
"
worker"
cadre"
soldier"
peasant"
};
char*p1,*p2;
p1=p2=a[0];
for(inti=0;
i<
5;
i++){
if(strcmp(a[i],p1)>
0)p1=a[i];
//strcmp比较字符串内置函数
if(strcmp(a[i],p2)<
0)p2=a[i];
p1<
'
'
p2<
workercadre找到最大和最小的
3、
//考全局变量与局部变量的关系
inta=5;
//定义全局变量
inta=10,b=20;
a<
b<
//10、20
{
inta=0,b=0;
for(inti=1;
6;
a+=i;
b+=a;
//执行加过程
}
//15155
//1020
4、#include<
iomanip.h>
intLB(int*a,intn){//int型的指针未初始化的为0,
ints=1;
n;
i++)
s*=*a++;
returns;
inta[]={1,2,3,4,5,6,7,8};
intb=LB(a,5)+LB(&
a[3],3);
b="
//240
5、C++中结构体的应用
//输入输出流的预处理命令
//字符串的预处理命令
//定义结构体Worker同C#一样的
structWorker{
charname[15];
//姓名
intage;
//年龄
floatpay;
//工资
Workerx;
//定义结构体的实例化对象
/*在C++中如果是在堆上申请得用NEW和DELETE
如果是在栈上的话,就不能用NEW。
Char*p;
这样的也是有很多的
而且还有拷贝构造和赋值构造,拷贝的好像比较少,主要是赋值
char*p=q;
还有引用
char*&
p=q;
*/
char*t="
liouting"
//定义指针*t
intd=38;
floatf=493;
//字符串拷贝strcpy(a,b)把b的内容复制到a
strcpy(x.name,t);
//即把*t指向地址的内容复制给x.Name
x.age=d;
x.pay=f;
用结构体来显示人员的详细信息:
x.name<
x.age<
x.pay<
//liouting38493
6、此题主要用于考类的继承调用以及变量的释放顺序
//有关类的继承以及调用
classA{
inta;
public:
A(intaa=0){a=aa;
~A(){cout<
DestructorA!
}//Destructor破坏者、垃圾回收销毁机制
//类B继承与类A
classB:
publicA{
intb;
B(intaa=0,intbb=0):
A(aa){b=bb;
~B(){cout<
DestructorB!
Bx(5),z(6,7);
//在C++中后定义的变量将先被释放。
x,z相当于类B的实例化对象同栈的思想,
答案:
A(5)B(5,0),A(6),B(6,7)~B()~A()~B(),~A()
四、写出下列每个函数的功能
intSA(inta,intb){
if(a>
b)return1;
elseif(a==b)return0;
elsereturn-1;
比较大小
2、floatFI(intn)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 试题 答案